refactor: get include subfolder files from settings instead of passing parameter

This commit is contained in:
Xu Quan 2025-06-24 16:23:28 +08:00
parent bbe9f0a7f5
commit 017fa00cf1
3 changed files with 10 additions and 31 deletions

View file

@ -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 (

View file

@ -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)

View file

@ -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;
},
});