From ad391fb4e69c835441db104f2e37c80b19510556 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 14 Nov 2022 16:39:05 +0800 Subject: [PATCH] Handle various DnD states --- .../templates/homeFeed/HomeFeedContainer.tsx | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index ef3f420bd..e40ff5f54 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -704,10 +704,12 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element { setShowUnsubscribeConfirmation(false) } - const [fileNames, setFileNames] = useState([]) + const [uploadingFiles, setUploadingFiles] = useState([]) + const [inDragOperation, setInDragOperation] = useState(false) const handleDrop = async (acceptedFiles: any) => { - setFileNames(acceptedFiles.map((file: { name: any }) => file.name)) + setInDragOperation(false) + setUploadingFiles(acceptedFiles.map((file: { name: any }) => file.name)) for (const file of acceptedFiles) { try { @@ -732,6 +734,8 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element { console.log("ERROR", error) } } + + setUploadingFiles([]) } return ( @@ -849,14 +853,23 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element { )} { setInDragOperation(true) }} + onDragLeave={() => { setInDragOperation(false) }} preventDropOnDocument={true} noClick={true} > {({ getRootProps, getInputProps, acceptedFiles, fileRejections }) => (
- - Drag n drop files anywhere below - + {(inDragOperation && uploadingFiles.length < 1) && ( + + Drag n drop files anywhere below + + )} + {uploadingFiles.length > 0 ? ( + + Uploading Files... + + ) : null} {!props.isValidating && props.items.length == 0 ? ( Files:
    - {fileNames.map((fileName) => ( + {uploadingFiles.map((fileName) => (
  • {fileName}
  • ))}