Web: Files: Fix upload on DnD to Catalog
This commit is contained in:
parent
02e08d8097
commit
461e628c59
@ -9,17 +9,17 @@ const DragAndDrop = (props) => {
|
||||
const { isDropZone, children, dragging, className, ...rest } = props;
|
||||
const classNameProp = className ? className : "";
|
||||
|
||||
const onDrop = useCallback((acceptedFiles) => {
|
||||
const onDrop = (acceptedFiles) => {
|
||||
acceptedFiles.length && props.onDrop && props.onDrop(acceptedFiles);
|
||||
}, []);
|
||||
};
|
||||
|
||||
const onDragOver = useCallback((e) => {
|
||||
const onDragOver = (e) => {
|
||||
props.onDragOver && props.onDragOver(isDragActive, e);
|
||||
}, []);
|
||||
};
|
||||
|
||||
const onDragLeave = useCallback((e) => {
|
||||
const onDragLeave = (e) => {
|
||||
props.onDragLeave && props.onDragLeave(e);
|
||||
}, []);
|
||||
};
|
||||
|
||||
const { getRootProps, isDragActive } = useDropzone({
|
||||
noDragEventsBubbling: !isDropZone,
|
||||
|
@ -27,6 +27,7 @@ const Item = ({
|
||||
onBadgeClick,
|
||||
showDragItems,
|
||||
startUpload,
|
||||
uploadEmptyFolders,
|
||||
setDragging,
|
||||
}) => {
|
||||
const [isDragActive, setIsDragActive] = React.useState(false);
|
||||
@ -41,9 +42,18 @@ const Item = ({
|
||||
const onDropZoneUpload = React.useCallback(
|
||||
(files, uploadToFolder) => {
|
||||
dragging && setDragging(false);
|
||||
startUpload(files, uploadToFolder, t);
|
||||
const emptyFolders = files.filter((f) => f.isEmptyDirectory);
|
||||
|
||||
if (emptyFolders.length > 0) {
|
||||
uploadEmptyFolders(emptyFolders, uploadToFolder).then(() => {
|
||||
const onlyFiles = files.filter((f) => !f.isEmptyDirectory);
|
||||
if (onlyFiles.length > 0) startUpload(onlyFiles, uploadToFolder, t);
|
||||
});
|
||||
} else {
|
||||
startUpload(files, uploadToFolder, t);
|
||||
}
|
||||
},
|
||||
[t, dragging, setDragging, startUpload]
|
||||
[t, dragging, setDragging, startUpload, uploadEmptyFolders]
|
||||
);
|
||||
|
||||
const onDrop = React.useCallback(
|
||||
@ -118,6 +128,7 @@ const Items = ({
|
||||
dragging,
|
||||
setDragging,
|
||||
startUpload,
|
||||
uploadEmptyFolders,
|
||||
|
||||
isAdmin,
|
||||
myId,
|
||||
@ -273,6 +284,7 @@ const Items = ({
|
||||
t={t}
|
||||
setDragging={setDragging}
|
||||
startUpload={startUpload}
|
||||
uploadEmptyFolders={uploadEmptyFolders}
|
||||
item={item}
|
||||
dragging={dragging}
|
||||
getFolderIcon={getFolderIcon}
|
||||
@ -301,6 +313,7 @@ const Items = ({
|
||||
showText,
|
||||
setDragging,
|
||||
startUpload,
|
||||
uploadEmptyFolders,
|
||||
]
|
||||
);
|
||||
|
||||
@ -337,7 +350,7 @@ export default inject(
|
||||
} = treeFoldersStore;
|
||||
|
||||
const { id } = selectedFolderStore;
|
||||
|
||||
const { moveDragItems, uploadEmptyFolders } = filesActionsStore;
|
||||
return {
|
||||
isAdmin: auth.isAdmin,
|
||||
myId: myFolderId,
|
||||
@ -352,8 +365,9 @@ export default inject(
|
||||
dragging,
|
||||
setDragging,
|
||||
setStartDrag,
|
||||
moveDragItems: filesActionsStore.moveDragItems,
|
||||
moveDragItems,
|
||||
startUpload,
|
||||
uploadEmptyFolders,
|
||||
};
|
||||
}
|
||||
)(withTranslation(["Home", "Common", "Translations"])(observer(Items)));
|
||||
|
Loading…
Reference in New Issue
Block a user