From c50c38657e23de012699781f07a51dd7e4199b77 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 5 Jul 2020 12:18:55 +0300 Subject: feat: implement feedback feature --- src/pages/HomePage/ReviewForm.tsx | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/pages/HomePage/ReviewForm.tsx (limited to 'src/pages/HomePage/ReviewForm.tsx') diff --git a/src/pages/HomePage/ReviewForm.tsx b/src/pages/HomePage/ReviewForm.tsx new file mode 100644 index 0000000..58a61b4 --- /dev/null +++ b/src/pages/HomePage/ReviewForm.tsx @@ -0,0 +1,75 @@ +import React, { useState, useRef } from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import { TextField, Button } from '@material-ui/core'; +import { Rating } from '@material-ui/lab'; +import { useSnackbar } from 'notistack'; + +import { post } from '../../requests'; +import { useAuth } from '../../hooks/useAuth'; +import { useNavigate } from '../../hooks/useNavigate'; + +const version = 'v1.0.0'; + +const useStyles = makeStyles(theme => ({ + root: { + display: 'flex', + flexDirection: 'column' + }, + textField: { + margin: theme.spacing(2, 0) + } +})); + +const ReviewForm: React.FC = () => { + const [contents, setContents] = useState(''); + const [score, setScore] = useState(0); + const classes = useStyles(); + const { navigate } = useNavigate(); + const { enqueueSnackbar } = useSnackbar(); + + const handleSubmit = (): void => { + if (contents && score) { + post('/feedback', { contents, score, version }).then(() => { + enqueueSnackbar('Your feedback has been submitted!', { + variant: 'success' + }); + navigate('feed'); + }); + } + }; + + const handleChange = (event: any): void => { + setContents(event.target?.value || ''); + }; + + const handleChangeRating = (event: any, newScore: any): void => { + setScore(newScore); + }; + + return ( +
+ + +
+ +
+
+ ); +}; + +export default ReviewForm; -- cgit v1.2.3