diff options
Diffstat (limited to 'src/containers')
-rw-r--r-- | src/containers/PollCreation/PollCreation.tsx | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/containers/PollCreation/PollCreation.tsx b/src/containers/PollCreation/PollCreation.tsx index 18c3c6b..68f41d2 100644 --- a/src/containers/PollCreation/PollCreation.tsx +++ b/src/containers/PollCreation/PollCreation.tsx @@ -1,22 +1,17 @@ import React from 'react'; import Bluebird from 'bluebird'; -import { useHistory } from 'react-router-dom'; import { makeStyles } from '@material-ui/core/styles'; -import { - IconButton, - Card, - Container, - LinearProgress -} from '@material-ui/core'; +import { Card, Container, LinearProgress } from '@material-ui/core'; import SendIcon from '@material-ui/icons/Send'; import { useSnackbar } from 'notistack'; import useS3Preupload from './useS3Preupload'; import ImageInput from './ImageInput'; import ModalScreen from '../../components/ModalScreen/ModalScreen'; +import Message from '../../components/Message/Message'; import UserStrip from '../../components/UserStrip/UserStrip'; import { post } from '../../requests'; -import { useFeed } from '../../hooks/APIClient'; +import { useFeed, useProfile } from '../../hooks/APIClient'; import { useAuth } from '../../hooks/useAuth'; @@ -30,10 +25,10 @@ const useStyles = makeStyles(theme => ({ const PollCreation: React.FC = () => { const classes = useStyles(); - const history = useHistory(); const { user } = useAuth(); const { enqueueSnackbar } = useSnackbar(); const { mutate: updateFeed } = useFeed(); + const { mutate: updateProfile } = useProfile(user?.username || ''); const { file: left, setFile: setLeft, @@ -56,26 +51,23 @@ const PollCreation: React.FC = () => { right: { url: rightUrl } }; - history.push('/feed'); - post('/polls/', { contents }).then(() => { updateFeed(); + updateProfile(); enqueueSnackbar('Your poll has been successfully created!', { variant: 'success' }); }); } catch (error) { enqueueSnackbar('Failed to create a poll. Please, try again.', { variant: 'error' }); - history.push('/feed'); } }; - const submitIcon = ( - <IconButton onClick={handleSubmit} disabled={!(left && right)}> - <SendIcon /> - </IconButton> - ); - return ( - <ModalScreen title="Create a poll" rightIcon={submitIcon}> + <ModalScreen + title="Create a poll" + actionIcon={<SendIcon />} + handleAction={handleSubmit} + isActionDisabled={!(left && right) || leftProgress > 0 || rightProgress > 0} + > <Container maxWidth="sm" disableGutters> <Card elevation={3}> {user && <UserStrip user={user} info="" />} @@ -83,8 +75,17 @@ const PollCreation: React.FC = () => { <ImageInput callback={setLeft} progress={leftProgress} /> <ImageInput callback={setRight} progress={rightProgress} /> </div> - {(leftProgress > 0 || rightProgress > 0) && <LinearProgress color="primary" />} </Card> + {(leftProgress > 0 || rightProgress > 0) && ( + <> + <LinearProgress color="primary" /> + <Message + tagline="You can close this window now" + message="We will upload your images in the background." + noMargin + /> + </> + )} </Container> </ModalScreen> ); |