From 88d3c411efbf5f6ac74fa67e38c154f1e53d4938 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 14 Aug 2020 02:24:18 +0300 Subject: feat: show upload progress --- src/containers/PollCreation/PollCreation.tsx | 8 +++--- src/containers/PollCreation/PollCreationImage.tsx | 34 +++++++++++++++++++---- src/hooks/useS3Preupload.tsx | 5 +++- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/containers/PollCreation/PollCreation.tsx b/src/containers/PollCreation/PollCreation.tsx index e613afd..e350179 100644 --- a/src/containers/PollCreation/PollCreation.tsx +++ b/src/containers/PollCreation/PollCreation.tsx @@ -73,17 +73,17 @@ const PollCreation: React.FC = () => { {user && }
- - + +
diff --git a/src/containers/PollCreation/PollCreationImage.tsx b/src/containers/PollCreation/PollCreationImage.tsx index 1200b11..d619a8e 100644 --- a/src/containers/PollCreation/PollCreationImage.tsx +++ b/src/containers/PollCreation/PollCreationImage.tsx @@ -3,15 +3,17 @@ import { makeStyles } from '@material-ui/core/styles'; import { CardActionArea, CardMedia, - Typography + Typography, + CircularProgress } from '@material-ui/core'; -import ClearIcon from '@material-ui/icons/CancelOutlined'; +import { Check, CancelOutlined } from '@material-ui/icons'; import AttachLink from '../../components/AttachLink/AttachLink'; import FileUpload from '../../components/FileUpload/FileUpload'; interface PropTypes { callback: (file?: File | string) => void; + progress?: number; } const useStyles = makeStyles({ @@ -32,11 +34,25 @@ const useStyles = makeStyles({ display: 'flex', justifyContent: 'center', alignItems: 'center' + }, + darkOverlay: { + backgroundColor: 'rgba(0, 0, 0, 0.45)', + color: 'white', + position: 'absolute', + top: 0, + left: 0, + transitionDuration: '0.5s' + }, + invisible: { + backgroundColor: 'rgba(0, 0, 0, 0)', + }, + icon: { + color: 'white' } }); -const PollCreationImage: React.FC = ({ callback }) => { +const PollCreationImage: React.FC = ({ callback, progress }) => { const classes = useStyles(); const [url, setUrl] = useState(); @@ -59,9 +75,17 @@ const PollCreationImage: React.FC = ({ callback }) => { ); const Media = ( - + - +
+ { + progress + ? progress < 100 + ? + : + : + } +
); diff --git a/src/hooks/useS3Preupload.tsx b/src/hooks/useS3Preupload.tsx index aeb1d65..64db942 100644 --- a/src/hooks/useS3Preupload.tsx +++ b/src/hooks/useS3Preupload.tsx @@ -41,7 +41,10 @@ export default () => { const { config: { url } } = response; return url ? url.slice(0, url.indexOf('?')) : ''; }); - } else return url || ''; + } else { + setProgress(100); + return url || ''; + } }, [file, handleUploadProgress, url]); return { setValue, isReady, resolve, progress }; -- cgit v1.2.3