Skip to content

Commit 6966eaf

Browse files
authored
Fix folder deletion (#346)
* Add folder to folder object * rename to directory for clarity * add folder argument * lint * redo uploads * rename to upload files * more cleaning * redo removing * redo fetching list * rename to directory * lint
1 parent 66ab8c1 commit 6966eaf

21 files changed

+251
-189
lines changed

src/components/file-manager/file-manager-slide.tsx

+41-32
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ const ICON_FOLDER = require("../../assets/images/folder.svg");
3737

3838
const fileTarget = {
3939
drop: (props, monitor) => {
40-
const { upload, masterHandle, currentFolder } = props;
40+
const { uploadFiles, masterHandle, directory } = props;
4141
let { files } = monitor.getItem();
4242
const filesLength = files.length;
4343
if (files.length > 0) {
4444
files = files.filter(file => file.size <= FILE_MAX_SIZE);
4545
files.length !== filesLength && alert("Some files are greater then 2GB.");
46-
upload({ files, masterHandle, folder: currentFolder });
46+
uploadFiles({ files, masterHandle, directory });
4747
}
4848
}
4949
};
@@ -361,26 +361,26 @@ interface Handle {
361361
}
362362

363363
const FileManagerSlide = ({
364-
currentFolder,
365-
isLoading,
366-
history,
364+
connectDropTarget,
365+
createFolder,
366+
directory,
367+
downloadFile,
368+
downloadFiles,
369+
expirationDate,
367370
files,
368371
folders,
369372
getFileList,
370-
upload,
371-
download,
372-
removeFileByVersion,
373+
history,
374+
isLoading,
375+
isOver,
373376
masterHandle,
374377
metadata,
375-
storageUsed,
376-
storageLimit,
377-
expirationDate,
378-
connectDropTarget,
379-
isOver,
380-
downloadFiles,
378+
removeFileByVersion,
381379
removeFiles,
382-
createFolder,
383-
removeFolder
380+
removeFolder,
381+
storageLimit,
382+
storageUsed,
383+
uploadFiles
384384
}) => {
385385
const [orderedFiles, setOrderedFiles] = useState<IFile[]>([]);
386386
const [orderedFolders, setOrderedFolders] = useState<IFolder[]>([]);
@@ -423,11 +423,11 @@ const FileManagerSlide = ({
423423
);
424424
};
425425

426-
const prepareCreateFolder = (masterHandle, currentFolder, name) => {
426+
const prepareCreateFolder = (masterHandle, directory, name) => {
427427
const isExist = folders.find(i => i.name === name);
428428
!isExist
429-
? createFolder(masterHandle, currentFolder, name)
430-
: toast(`Folder ${name} is found. `, {
429+
? createFolder({ masterHandle, directory, name })
430+
: toast(`Folder ${name} already exists.`, {
431431
autoClose: 3000,
432432
hideProgressBar: true,
433433
position: toast.POSITION.BOTTOM_RIGHT,
@@ -447,9 +447,9 @@ const FileManagerSlide = ({
447447

448448
useEffect(
449449
() => {
450-
getFileList(currentFolder, masterHandle);
450+
getFileList({ directory, masterHandle });
451451
},
452-
[currentFolder]
452+
[directory]
453453
);
454454

455455
return (
@@ -482,15 +482,15 @@ const FileManagerSlide = ({
482482
</UsageWrapper>
483483
</TitleWrapper>
484484
<TopActionsWrapper>
485-
<Breadcrumbs folder={currentFolder} />
485+
<Breadcrumbs folder={directory} />
486486
<ButtonWrapper>
487487
<ButtonGroup>
488488
<Button
489489
width="auto"
490490
padding="0 10px"
491491
disabled={filemanagerFiles.length === 0}
492492
onClick={() => {
493-
downloadFiles(filemanagerFiles);
493+
downloadFiles({ files: filemanagerFiles });
494494
setFilemanagerFiles([]);
495495
}}
496496
>
@@ -511,7 +511,7 @@ const FileManagerSlide = ({
511511
removeFiles({
512512
files: filemanagerFiles,
513513
masterHandle,
514-
folder: currentFolder
514+
directory
515515
});
516516
setFilemanagerFiles([]);
517517
}}
@@ -533,14 +533,18 @@ const FileManagerSlide = ({
533533
</FolderButton>
534534
<UploadButton
535535
onSelected={files =>
536-
upload({ files, masterHandle, folder: currentFolder })
536+
uploadFiles({
537+
files,
538+
masterHandle,
539+
directory
540+
})
537541
}
538542
/>
539543
<FolderModal
540544
isOpen={!!showCreateFolder}
541545
close={() => setShowCreateFolder(false)}
542546
createFolder={name =>
543-
prepareCreateFolder(masterHandle, currentFolder, name)
547+
prepareCreateFolder(masterHandle, directory, name)
544548
}
545549
/>
546550
</ButtonGroup>
@@ -587,13 +591,13 @@ const FileManagerSlide = ({
587591
</Tr>
588592
</thead>
589593
<tbody>
590-
{orderedFolders.map(({ name, location }, i) => (
594+
{orderedFolders.map(({ name, location, folder }, i) => (
591595
<TrPointer
592596
key={i}
593597
onClick={() =>
594598
history.push(
595599
`/file-manager${
596-
currentFolder === "/" ? "" : currentFolder
600+
directory === "/" ? "" : directory
597601
}/${name}`
598602
)
599603
}
@@ -613,7 +617,12 @@ const FileManagerSlide = ({
613617
confirm(
614618
"Do you really want to delete this folder?"
615619
) &&
616-
removeFolder(name, currentFolder, masterHandle);
620+
removeFolder({
621+
folder,
622+
name,
623+
directory,
624+
masterHandle
625+
});
617626
}}
618627
>
619628
<TableIcon
@@ -668,7 +677,7 @@ const FileManagerSlide = ({
668677
</ActionButton>
669678
<ActionButton
670679
data-tip="Download file"
671-
onClick={() => download(handle)}
680+
onClick={() => downloadFile({ handle })}
672681
>
673682
<TableIcon src={ICON_DOWNLOAD} />
674683
</ActionButton>
@@ -681,7 +690,7 @@ const FileManagerSlide = ({
681690
removeFileByVersion({
682691
name,
683692
version,
684-
folder: currentFolder,
693+
directory,
685694
masterHandle
686695
})
687696
}
@@ -712,7 +721,7 @@ const FileManagerSlide = ({
712721
)}
713722
<UploadMobileButton
714723
onSelected={files =>
715-
upload({ files, folder: currentFolder, masterHandle })
724+
uploadFiles({ files, directory, masterHandle })
716725
}
717726
/>
718727
</TableContainer>

src/components/file-manager/index.tsx

+46-37
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import FileManagerSlide from "./file-manager-slide";
1414
const mapStateToProps = (state, props) => {
1515
const folderName = props.match.params.folderName;
1616
return {
17-
currentFolder: folderName ? `/${folderName}` : "/",
17+
directory: folderName ? `/${folderName}` : "/",
1818
files: state.finder.files,
1919
folders: state.finder.folders,
2020
isLoading: state.finder.isLoading,
@@ -27,62 +27,71 @@ const mapStateToProps = (state, props) => {
2727
};
2828

2929
const mapDispatchToProps = dispatch => ({
30-
upload: ({ files, folder, masterHandle }) =>
31-
dispatch(uploadActions.uploadFiles({ files, folder, masterHandle })),
32-
download: handle => dispatch(downloadActions.downloadFile({ handle })),
33-
removeFileByVersion: ({ name, version, folder, masterHandle }) =>
30+
uploadFiles: ({ files, directory, masterHandle }) =>
31+
dispatch(uploadActions.uploadFiles({ files, directory, masterHandle })),
32+
downloadFile: ({ handle }) =>
33+
dispatch(downloadActions.downloadFile({ handle })),
34+
removeFileByVersion: ({ name, version, directory, masterHandle }) =>
3435
dispatch(
35-
removeActions.removeFileByVersion({ name, version, folder, masterHandle })
36+
removeActions.removeFileByVersion({
37+
name,
38+
version,
39+
directory,
40+
masterHandle
41+
})
3642
),
37-
getFileList: (folder, masterHandle) =>
38-
dispatch(finderActions.getFileList({ folder, masterHandle })),
39-
downloadFiles: files => dispatch(downloadActions.downloadFiles({ files })),
40-
removeFiles: ({ files, masterHandle, folder }) =>
41-
dispatch(removeActions.removeFiles({ files, masterHandle, folder })),
42-
createFolder: (masterHandle, folder, name) =>
43-
dispatch(folderActions.createFolder({ masterHandle, folder, name })),
44-
removeFolder: (name, folder, masterHandle) =>
45-
dispatch(folderActions.removeFolder({ name, folder, masterHandle }))
43+
getFileList: ({ directory, masterHandle }) =>
44+
dispatch(finderActions.getFileList({ directory, masterHandle })),
45+
downloadFiles: ({ files }) =>
46+
dispatch(downloadActions.downloadFiles({ files })),
47+
removeFiles: ({ files, masterHandle, directory }) =>
48+
dispatch(removeActions.removeFiles({ files, masterHandle, directory })),
49+
createFolder: ({ masterHandle, directory, name }) =>
50+
dispatch(folderActions.createFolder({ masterHandle, directory, name })),
51+
removeFolder: ({ folder, name, directory, masterHandle }) =>
52+
dispatch(
53+
folderActions.removeFolder({ folder, name, directory, masterHandle })
54+
)
4655
});
4756

4857
const FileManager = ({
49-
currentFolder,
50-
isLoading,
51-
upload,
58+
createFolder,
59+
directory,
60+
downloadFile,
61+
downloadFiles,
62+
expirationDate,
5263
files,
5364
folders,
5465
getFileList,
55-
download,
56-
removeFileByVersion,
66+
isLoading,
5767
masterHandle,
5868
metadata,
59-
storageUsed,
60-
storageLimit,
61-
expirationDate,
62-
createFolder,
69+
removeFileByVersion,
70+
removeFiles,
6371
removeFolder,
64-
downloadFiles,
65-
removeFiles
72+
storageLimit,
73+
storageUsed,
74+
uploadFiles
6675
}) => (
6776
<DragDropContextProvider backend={HTML5Backend}>
6877
<FileManagerSlide
69-
currentFolder={currentFolder}
70-
isLoading={isLoading}
78+
createFolder={createFolder}
79+
directory={directory}
80+
downloadFile={downloadFile}
81+
downloadFiles={downloadFiles}
82+
expirationDate={expirationDate}
7183
files={files}
7284
folders={folders}
7385
getFileList={getFileList}
74-
upload={upload}
75-
download={download}
76-
removeFileByVersion={removeFileByVersion}
86+
isLoading={isLoading}
7787
masterHandle={masterHandle}
7888
metadata={metadata}
79-
storageUsed={storageUsed}
80-
storageLimit={storageLimit}
81-
expirationDate={expirationDate}
82-
createFolder={createFolder}
83-
removeFolder={removeFolder}
84-
downloadFiles={downloadFiles}
89+
removeFileByVersion={removeFileByVersion}
8590
removeFiles={removeFiles}
91+
removeFolder={removeFolder}
92+
storageLimit={storageLimit}
93+
storageUsed={storageUsed}
94+
uploadFiles={uploadFiles}
8695
/>
8796
</DragDropContextProvider>
8897
);

src/models/folder.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export interface IFolder {
22
name: string;
33
location: string;
4+
folder: any;
45
}

src/redux/actions/finder-actions.test.js

+8-6
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,28 @@ test("setList", () => {
1717

1818
test("getFileList", () => {
1919
const masterHandle = "mh1";
20-
const folder = "fo1";
20+
const directory = "fo1";
2121
const expected = {
2222
type: actions.GET_FILE_LIST,
2323
payload: {
2424
masterHandle,
25-
folder
25+
directory
2626
}
2727
};
28-
expect(actions.getFileList({ folder, masterHandle })).toEqual(expected);
28+
expect(actions.getFileList({ directory, masterHandle })).toEqual(expected);
2929
});
3030

3131
test("listenForUpdates", () => {
3232
const masterHandle = "mh1";
33-
const folder = "fo1";
33+
const directory = "fo1";
3434
const expected = {
3535
type: actions.LISTEN_FOR_UPDATES,
3636
payload: {
3737
masterHandle,
38-
folder
38+
directory
3939
}
4040
};
41-
expect(actions.listenForUpdates({ folder, masterHandle })).toEqual(expected);
41+
expect(actions.listenForUpdates({ directory, masterHandle })).toEqual(
42+
expected
43+
);
4244
});

src/redux/actions/finder-actions.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ const ACTIONS = Object.freeze({
1111
type: SET_LIST,
1212
payload: { files, folders, masterHandle }
1313
}),
14-
listenForUpdates: ({ masterHandle, folder }) => ({
14+
listenForUpdates: ({ masterHandle, directory }) => ({
1515
type: LISTEN_FOR_UPDATES,
16-
payload: { masterHandle, folder }
16+
payload: { masterHandle, directory }
1717
}),
18-
getFileList: ({ masterHandle, folder }) => ({
18+
getFileList: ({ masterHandle, directory }) => ({
1919
type: GET_FILE_LIST,
20-
payload: { masterHandle, folder }
20+
payload: { masterHandle, directory }
2121
})
2222
});
2323

0 commit comments

Comments
 (0)