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