mirror of
https://github.com/xuquan-nikkkki/FolderFile-Splitter-Plugin.git
synced 2026-07-22 05:37:28 +00:00
refactor: get include subfolder files from settings instead of passing parameter
This commit is contained in:
parent
bbe9f0a7f5
commit
017fa00cf1
3 changed files with 10 additions and 31 deletions
|
|
@ -35,12 +35,12 @@ const FilesCount = ({ folder }: Props) => {
|
|||
const { file, changeType } = event.detail;
|
||||
if (!isFile(file)) return;
|
||||
if (changeType === "delete" || changeType === "rename") {
|
||||
setCount(getFilesCountInFolder(folder, includeSubfolderFiles));
|
||||
setCount(getFilesCountInFolder(folder));
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
setCount(getFilesCountInFolder(folder, includeSubfolderFiles));
|
||||
setCount(getFilesCountInFolder(folder));
|
||||
window.addEventListener(VaultChangeEventName, onHandleVaultChange);
|
||||
return () => {
|
||||
window.removeEventListener(
|
||||
|
|
@ -51,7 +51,7 @@ const FilesCount = ({ folder }: Props) => {
|
|||
}, [folder]);
|
||||
|
||||
useEffect(() => {
|
||||
setCount(getFilesCountInFolder(folder, includeSubfolderFiles));
|
||||
setCount(getFilesCountInFolder(folder));
|
||||
}, [folder.children.length, includeSubfolderFiles]);
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -57,15 +57,11 @@ export const createSortFolderSlice =
|
|||
return folders.sort((a, b) => b.name.localeCompare(a.name));
|
||||
case "FilesCountAscending":
|
||||
return folders.sort(
|
||||
(a, b) =>
|
||||
getFilesCount(a, includeSubfolder) -
|
||||
getFilesCount(b, includeSubfolder)
|
||||
(a, b) => getFilesCount(a) - getFilesCount(b)
|
||||
);
|
||||
case "FilesCountDescending":
|
||||
return folders.sort(
|
||||
(a, b) =>
|
||||
getFilesCount(b, includeSubfolder) -
|
||||
getFilesCount(a, includeSubfolder)
|
||||
(a, b) => getFilesCount(b) - getFilesCount(a)
|
||||
);
|
||||
case "FolderManualOrder":
|
||||
if (!parentPath || !folderPaths || !folderPaths.length)
|
||||
|
|
|
|||
|
|
@ -18,11 +18,8 @@ export interface FolderStructureSlice {
|
|||
getSubFolders: (parentFolder: TFolder) => TFolder[];
|
||||
hasSubFolders: (folder: TFolder) => boolean;
|
||||
|
||||
getFilesInFolder: (folder: TFolder, getFilesInFolder?: boolean) => TFile[];
|
||||
getFilesCountInFolder: (
|
||||
folder: TFolder,
|
||||
includeSubfolderFiles: boolean
|
||||
) => number;
|
||||
getFilesInFolder: (folder: TFolder) => TFile[];
|
||||
getFilesCountInFolder: (folder: TFolder) => number;
|
||||
}
|
||||
|
||||
export const createFolderStructureSlice =
|
||||
|
|
@ -72,22 +69,8 @@ export const createFolderStructureSlice =
|
|||
|
||||
return getFiles(folder);
|
||||
},
|
||||
getFilesCountInFolder: (
|
||||
folder: TFolder,
|
||||
includeSubfolderFiles: boolean
|
||||
): number => {
|
||||
const getFilesCount = (folder: TFolder): number => {
|
||||
if (!folder || !folder.children) return 0;
|
||||
return folder.children.reduce((total, child) => {
|
||||
if (isFile(child)) {
|
||||
return total + 1;
|
||||
}
|
||||
if (includeSubfolderFiles && isFolder(child)) {
|
||||
return total + getFilesCount(child);
|
||||
}
|
||||
return total;
|
||||
}, 0);
|
||||
};
|
||||
return getFilesCount(folder);
|
||||
getFilesCountInFolder: (folder: TFolder): number => {
|
||||
const { getFilesInFolder } = get();
|
||||
return getFilesInFolder(folder).length;
|
||||
},
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue