import React, { FormEvent, useState } from 'react'; import { Button } from '@material-ui/core'; import Paper from '@material-ui/core/Paper'; import TextField from '@material-ui/core/TextField/TextField'; import { fade, makeStyles, Theme } from '@material-ui/core/styles'; import CommentInput from '../../components/CommentInput/CommentInput'; import { useNewBugMutation } from './NewBug.generated'; /** * Css in JS styles */ const useStyles = makeStyles((theme: Theme) => ({ main: { maxWidth: 800, margin: 'auto', marginTop: theme.spacing(4), marginBottom: theme.spacing(4), padding: theme.spacing(2), overflow: 'hidden', }, titleInput: { borderRadius: theme.shape.borderRadius, borderColor: fade(theme.palette.primary.main, 0.2), borderStyle: 'solid', borderWidth: '1px', backgroundColor: fade(theme.palette.primary.main, 0.05), padding: theme.spacing(0, 0), transition: theme.transitions.create([ 'width', 'borderColor', 'backgroundColor', ]), }, form: { display: 'flex', flexDirection: 'column', }, actions: { display: 'flex', justifyContent: 'flex-end', }, greenButton: { backgroundColor: '#2ea44fd9', color: '#fff', '&:hover': { backgroundColor: '#2ea44f', }, }, })); /** * Form to create a new issue */ function NewBugPage() { const [newBug, { loading, error }] = useNewBugMutation(); const [issueTitle, setIssueTitle] = useState(''); const [issueComment, setIssueComment] = useState(''); const classes = useStyles(); let issueTitleInput: any; function submitNewIssue(e: FormEvent) { e.preventDefault(); if (!isFormValid()) return; newBug({ variables: { input: { title: issueTitle, message: issueComment, }, }, }); issueTitleInput.value = ''; } function isFormValid() { return issueTitle.length > 0 && issueComment.length > 0 ? true : false; } if (loading) return
Loading...
; if (error) return
Error
; return (
{ issueTitleInput = node; }} label="Title" className={classes.titleInput} variant="outlined" fullWidth margin="dense" onChange={(event: any) => setIssueTitle(event.target.value)} /> setIssueComment(comment)} />
); } export default NewBugPage;