diff --git a/packages/components-faraday/src/components/Files/FileSection.js b/packages/components-faraday/src/components/Files/FileSection.js index 950e2706c18c3618e173a67a646581382024e87f..1307664718e3b4e3939c0012741bca7fe0be9392 100644 --- a/packages/components-faraday/src/components/Files/FileSection.js +++ b/packages/components-faraday/src/components/Files/FileSection.js @@ -46,6 +46,7 @@ const FileSection = ({ disabledFilepicker, dropSortableFile, previewFile, + requestPending, }) => ( <DropSection innerRef={instance => { @@ -89,7 +90,7 @@ const FileSection = ({ <SortableList beginDragProps={['id', 'index', 'name', 'listId']} dragHandle={DragHandle} - dropItem={dropSortableFile} + dropItem={requestPending() ? null : dropSortableFile} items={files} listId={listId} listItem={FileItem} @@ -113,12 +114,19 @@ export default compose( clearError: ({ setError }) => () => { setError(e => '') }, + requestPending: ({ isFetching }) => () => + Object.values(isFetching).some(Boolean), }), withHandlers({ setError: ({ setError, clearError }) => err => { setError(e => err, () => setTimeout(clearError, 3000)) }, - disabledFilepicker: ({ files, maxFiles }) => () => files.length >= maxFiles, + disabledFilepicker: ({ + files, + maxFiles, + isFetching, + requestPending, + }) => () => files.length >= maxFiles || requestPending(), }), DropTarget( 'item', @@ -167,7 +175,14 @@ export default compose( NativeTypes.FILE, { drop( - { files, maxFiles, addFile, allowedFileExtensions, setError }, + { + files, + maxFiles, + addFile, + allowedFileExtensions, + setError, + requestPending, + }, monitor, ) { const [file] = monitor.getItem().files @@ -184,7 +199,7 @@ export default compose( ) { setError('Invalid file type.') } else { - addFile(file) + !requestPending() && addFile(file) } }, }, diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js index 4d98f7599ce5ffb792d7bef871ebf46ea5ef2e73..e7213fe79e52c59eafd318660a777a46d68f82cb 100644 --- a/packages/components-faraday/src/components/Files/Files.js +++ b/packages/components-faraday/src/components/Files/Files.js @@ -122,7 +122,7 @@ export default compose( otherProps, dragProps, ) => { - // do something if the files is not changing list + // do something if the file is not changing list const { listId: fromListId } = otherProps const { listId: toListId } = dragProps if (fromListId === toListId) {