diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-08-17 19:33:53 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-17 19:33:53 +0300 |
commit | 6c9ee57d83d30d598062cfa95a73555808e04e7f (patch) | |
tree | dde56a20e1a18b64cc93bc408981a65ee5f7a427 /src | |
parent | 0a42a6d26fad6d878e4135b218166872c6b6687b (diff) | |
parent | 3b72a38197b1a1cff1c059ed5c55bf9f9d50569d (diff) | |
download | which-ui-6c9ee57d83d30d598062cfa95a73555808e04e7f.tar.gz |
Merge pull request #89 from which-ecosystem/bugs
Bug fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/components/Image/Image.tsx | 5 | ||||
-rw-r--r-- | src/components/PollsList/RenderItem.tsx | 2 | ||||
-rw-r--r-- | src/containers/PollCreation/PollCreation.tsx | 14 | ||||
-rw-r--r-- | src/hooks/useS3Preupload.tsx | 5 |
4 files changed, 17 insertions, 9 deletions
diff --git a/src/components/Image/Image.tsx b/src/components/Image/Image.tsx index 1898716..716736f 100644 --- a/src/components/Image/Image.tsx +++ b/src/components/Image/Image.tsx @@ -15,6 +15,9 @@ interface PropTypes { type Status = 'success' | 'loading' | 'error'; const useStyles = makeStyles(theme => ({ + image: { + imageOrientation: 'from-image' + }, container: { width: '100%', height: '100%', @@ -71,7 +74,7 @@ const Image: React.FC<PropTypes> = React.memo(({ <img src={src} alt={alt} - className={`${className} ${classes[status]}`} + className={`${classes.image} ${classes[status]} ${className}`} style={{ transition }} onLoad={handleLoad} onError={handleError} diff --git a/src/components/PollsList/RenderItem.tsx b/src/components/PollsList/RenderItem.tsx index 5123bca..beed259 100644 --- a/src/components/PollsList/RenderItem.tsx +++ b/src/components/PollsList/RenderItem.tsx @@ -35,7 +35,7 @@ const RenderItem: React.FC<PropTypes> = React.memo(({ }, [mutate, index, polls]); return ( - <div key={_key} style={style}> + <div key={`${_key}-${poll._id}`} style={style}> <PollCard poll={poll} setPoll={setPoll} /> </div> ); diff --git a/src/containers/PollCreation/PollCreation.tsx b/src/containers/PollCreation/PollCreation.tsx index 107314a..489c12a 100644 --- a/src/containers/PollCreation/PollCreation.tsx +++ b/src/containers/PollCreation/PollCreation.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import Bluebird from 'bluebird'; import { useHistory } from 'react-router-dom'; import { makeStyles } from '@material-ui/core/styles'; import { @@ -49,21 +50,22 @@ const PollCreation: React.FC = () => { } = useS3Preupload(); const handleClick = async () => { - if (isLeftReady && isRightReady) { - const [leftUrl, rightUrl] = await Promise.all([resolveLeft(), resolveRight()]); + try { + const [leftUrl, rightUrl] = await Bluebird.all([resolveLeft(), resolveRight()]); const contents = { left: { url: leftUrl }, right: { url: rightUrl } }; + history.push('/feed'); + post('/polls/', { contents }).then(() => { updateFeed(); - enqueueSnackbar('Your poll has been successfully created!', { - variant: 'success' - }); + 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'); } }; diff --git a/src/hooks/useS3Preupload.tsx b/src/hooks/useS3Preupload.tsx index 3c98e9a..3545cd5 100644 --- a/src/hooks/useS3Preupload.tsx +++ b/src/hooks/useS3Preupload.tsx @@ -33,7 +33,8 @@ export default (): Hook => { }, [setUrl, setFile]); const handleUploadProgress = useCallback((progressEvent: ProgressEvent): void => { - setProgress(Math.round((progressEvent.loaded * 100) / progressEvent.total)); + // Only allow upload progress reach 95%, and set 100% when request is resolved + setProgress(Math.round((progressEvent.loaded * 95) / progressEvent.total)); }, [setProgress]); const resolve = useCallback(async (): Promise<string> => { @@ -43,10 +44,12 @@ export default (): Hook => { onUploadProgress: handleUploadProgress }; + setProgress(0.01); return get('/files') .then(response => response.data) .then(uploadUrl => axios.put(uploadUrl, file, config)) .then(response => { + setProgress(100); const uri = response.config.url; return uri ? uri.slice(0, uri.indexOf('?')) : ''; }); |