|
@@ -152,11 +152,19 @@ export const BookmarkFolderItem: FC<BookmarkFolderItemProps> = (props: BookmarkF
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const isDroppable = (item: DragItemDataType, type: string | null| symbol): boolean => {
|
|
|
|
|
|
|
+ const isDropable = (item: DragItemDataType, type: string | null| symbol): boolean => {
|
|
|
if (type === DRAG_ITEM_TYPE.FOLDER) {
|
|
if (type === DRAG_ITEM_TYPE.FOLDER) {
|
|
|
if (item.bookmarkFolder.parent === bookmarkFolder._id || item.bookmarkFolder._id === bookmarkFolder._id) {
|
|
if (item.bookmarkFolder.parent === bookmarkFolder._id || item.bookmarkFolder._id === bookmarkFolder._id) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Maximum folder hierarchy of 2 levels
|
|
|
|
|
+ const dropSourceFolderHasChildren = item.bookmarkFolder.children.length !== 0;
|
|
|
|
|
+ const dropDestFolderHasParent = bookmarkFolder.parent != null;
|
|
|
|
|
+ if (dropSourceFolderHasChildren || dropDestFolderHasParent) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return item.root !== root || item.level >= level;
|
|
return item.root !== root || item.level >= level;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -228,7 +236,7 @@ export const BookmarkFolderItem: FC<BookmarkFolderItemProps> = (props: BookmarkF
|
|
|
useDragMode={true}
|
|
useDragMode={true}
|
|
|
useDropMode={true}
|
|
useDropMode={true}
|
|
|
onDropItem={itemDropHandler}
|
|
onDropItem={itemDropHandler}
|
|
|
- isDropable={isDroppable}
|
|
|
|
|
|
|
+ isDropable={isDropable}
|
|
|
>
|
|
>
|
|
|
<li
|
|
<li
|
|
|
className={'list-group-item list-group-item-action border-0 py-0 pr-3 d-flex align-items-center'}
|
|
className={'list-group-item list-group-item-action border-0 py-0 pr-3 d-flex align-items-center'}
|
|
@@ -277,13 +285,17 @@ export const BookmarkFolderItem: FC<BookmarkFolderItemProps> = (props: BookmarkF
|
|
|
</DropdownToggle>
|
|
</DropdownToggle>
|
|
|
</div>
|
|
</div>
|
|
|
</BookmarkFolderItemControl>
|
|
</BookmarkFolderItemControl>
|
|
|
- <button
|
|
|
|
|
- type="button"
|
|
|
|
|
- className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"
|
|
|
|
|
- onClick={onClickPlusButton}
|
|
|
|
|
- >
|
|
|
|
|
- <i className="icon-plus d-block p-0" />
|
|
|
|
|
- </button>
|
|
|
|
|
|
|
+ {/* Maximum folder hierarchy of 2 levels */}
|
|
|
|
|
+ {!(bookmarkFolder.parent != null) && (
|
|
|
|
|
+ <button
|
|
|
|
|
+ id='create-bookmark-folder-button'
|
|
|
|
|
+ type="button"
|
|
|
|
|
+ className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"
|
|
|
|
|
+ onClick={onClickPlusButton}
|
|
|
|
|
+ >
|
|
|
|
|
+ <i className="icon-plus d-block p-0" />
|
|
|
|
|
+ </button>
|
|
|
|
|
+ )}
|
|
|
</div>
|
|
</div>
|
|
|
</li>
|
|
</li>
|
|
|
</DragAndDropWrapper>
|
|
</DragAndDropWrapper>
|