aboutsummaryrefslogtreecommitdiff
path: root/src/containers/PollCreation/useS3Preupload.ts
diff options
context:
space:
mode:
authorEugene Sokolov <eug-vs@keemail.me>2020-08-22 14:56:07 +0300
committerGitHub <noreply@github.com>2020-08-22 14:56:07 +0300
commit89f038c7a0ccf6de94516cba8499a0bc69f8dae1 (patch)
tree5e6dbd7ae5a9d0ce1b79921b2b44986bb13f1874 /src/containers/PollCreation/useS3Preupload.ts
parenta42667af463b8c33a38b935b96d39582b543790b (diff)
parent93319d38e904535ce33a7868b3c1e0a2a4f33d65 (diff)
downloadwhich-ui-89f038c7a0ccf6de94516cba8499a0bc69f8dae1.tar.gz
Merge pull request #93 from which-ecosystem/avatar-uploads
Avatar uploads
Diffstat (limited to 'src/containers/PollCreation/useS3Preupload.ts')
-rw-r--r--src/containers/PollCreation/useS3Preupload.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/containers/PollCreation/useS3Preupload.ts b/src/containers/PollCreation/useS3Preupload.ts
new file mode 100644
index 0000000..0e2a8c4
--- /dev/null
+++ b/src/containers/PollCreation/useS3Preupload.ts
@@ -0,0 +1,29 @@
+import { useState, useCallback } from 'react';
+import uploadFileToS3 from '../../utils/uploadFileToS3';
+
+interface Hook {
+ file: File | string | undefined;
+ setFile: (value: File | string | undefined) => void;
+ resolve: () => Promise<string>;
+ progress: number;
+}
+
+export default (): Hook => {
+ const [file, setFile] = useState<File | string>();
+ const [progress, setProgress] = useState<number>(0);
+
+ const resolve = useCallback(async (quality?: number): Promise<string> => {
+ // Indicate start
+ setProgress(0.01);
+
+ if (file instanceof File) return uploadFileToS3(file, quality, setProgress);
+ return file || '';
+ }, [file]);
+
+ return {
+ file,
+ setFile,
+ resolve,
+ progress
+ };
+};