From fca54f49bb3541f726da1becffaa60197835ca68 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Fri, 14 Aug 2020 02:45:20 +0300 Subject: refactor: resolve eslint errors --- src/hooks/useS3Preupload.tsx | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'src/hooks/useS3Preupload.tsx') diff --git a/src/hooks/useS3Preupload.tsx b/src/hooks/useS3Preupload.tsx index 64db942..3c98e9a 100644 --- a/src/hooks/useS3Preupload.tsx +++ b/src/hooks/useS3Preupload.tsx @@ -1,19 +1,28 @@ import { useState, useCallback, useMemo } from 'react'; -import { get } from '../requests'; import axios from 'axios'; +import { get } from '../requests'; + + +interface ProgressEvent { + loaded: number; + total: number; +} +interface Hook { + setValue: (value: File | string | undefined) => void; + isReady: boolean; + resolve: () => Promise; + progress: number; +} -export default () => { +export default (): Hook => { const [url, setUrl] = useState(); const [file, setFile] = useState(); const [progress, setProgress] = useState(0); const isReady = useMemo(() => Boolean(file || url), [file, url]); - - console.log({ file, url }) - - const setValue = useCallback((value: File | string | undefined): void => { + const setValue: Hook['setValue'] = useCallback(value => { if (value instanceof File) { setFile(value); setUrl(undefined); @@ -23,7 +32,7 @@ export default () => { } }, [setUrl, setFile]); - const handleUploadProgress = useCallback((progressEvent: any) => { + const handleUploadProgress = useCallback((progressEvent: ProgressEvent): void => { setProgress(Math.round((progressEvent.loaded * 100) / progressEvent.total)); }, [setProgress]); @@ -38,14 +47,18 @@ export default () => { .then(response => response.data) .then(uploadUrl => axios.put(uploadUrl, file, config)) .then(response => { - const { config: { url } } = response; - return url ? url.slice(0, url.indexOf('?')) : ''; + const uri = response.config.url; + return uri ? uri.slice(0, uri.indexOf('?')) : ''; }); - } else { - setProgress(100); - return url || ''; } + setProgress(100); + return url || ''; }, [file, handleUploadProgress, url]); - return { setValue, isReady, resolve, progress }; + return { + setValue, + isReady, + resolve, + progress + }; }; -- cgit v1.2.3