From 03e8bad1cfc9a8969c524b80a392f8ef9c29d520 Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munteanu@thinslices.com> Date: Thu, 8 Feb 2018 15:45:17 +0200 Subject: [PATCH] refactor sortable list and fix some bugs when moving files to another list --- .../src/components/AuthorList/AuthorList.js | 2 +- .../src/components/Files/FileSection.js | 2 -- .../src/components/Files/Files.js | 16 ++++++++++++---- .../src/components/SortableList/SortableList.js | 9 +++------ 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/components-faraday/src/components/AuthorList/AuthorList.js b/packages/components-faraday/src/components/AuthorList/AuthorList.js index 06f4f7bb2..a41601af5 100644 --- a/packages/components-faraday/src/components/AuthorList/AuthorList.js +++ b/packages/components-faraday/src/components/AuthorList/AuthorList.js @@ -61,7 +61,7 @@ const Authors = ({ /> ) : ( <SortableList - beginDragProps={['index']} + beginDragProps={['index', 'lastName']} dragHandle={DragHandle} dropItem={dropItem} editedAuthor={editedAuthor} diff --git a/packages/components-faraday/src/components/Files/FileSection.js b/packages/components-faraday/src/components/Files/FileSection.js index 45fc23817..b885046f2 100644 --- a/packages/components-faraday/src/components/Files/FileSection.js +++ b/packages/components-faraday/src/components/Files/FileSection.js @@ -125,7 +125,6 @@ export default compose( files, setError, allowedFileExtensions, - ...pm }, monitor, ) { @@ -144,7 +143,6 @@ export default compose( setError('No more files can be added to this section.') return } - if (toListId === fromListId) return changeList(fromListId, toListId, id) }, diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js index cdd8aa84f..85b4f6417 100644 --- a/packages/components-faraday/src/components/Files/Files.js +++ b/packages/components-faraday/src/components/Files/Files.js @@ -129,9 +129,17 @@ export default compose( windowReference.location = signedUrl }) }, - dropSortableFile: ({ files, setFiles, changeForm }) => () => { - setFiles(files) - changeForm('wizard', 'files', files) + dropSortableFile: ({ files, setFiles, changeForm }) => ( + otherProps, + dragProps, + ) => { + // do something if the files is not changing list + const { listId: fromListId } = otherProps + const { listId: toListId } = dragProps + if (fromListId === toListId) { + setFiles(files) + changeForm('wizard', 'files', files) + } }, changeList: ({ files, setFiles, changeForm }) => ( fromListId, @@ -149,7 +157,7 @@ export default compose( [fromListId]: fromFiles, } setFiles(newFiles) - changeForm('wizard', 'files', files) + changeForm('wizard', 'files', newFiles) }, addFile: ({ files, diff --git a/packages/components-faraday/src/components/SortableList/SortableList.js b/packages/components-faraday/src/components/SortableList/SortableList.js index ccbe292df..e45402063 100644 --- a/packages/components-faraday/src/components/SortableList/SortableList.js +++ b/packages/components-faraday/src/components/SortableList/SortableList.js @@ -41,12 +41,9 @@ const itemTarget = { } monitor.getItem().index = hoverIndex }, - drop({ dropItem, index, listId: toListId, ...rest }, monitor) { - const { listId: fromListId } = monitor.getItem() - // TODO: fix it for authors too - if (fromListId === toListId) { - if (dropItem && typeof dropItem === 'function') dropItem(index) - } + drop({ dropItem, ...restProps }, monitor) { + if (dropItem && typeof dropItem === 'function') + dropItem(restProps, monitor.getItem()) }, } -- GitLab