From 017fa00cf142cca71813e1bfd5604086925bbe8a Mon Sep 17 00:00:00 2001 From: Xu Quan Date: Tue, 24 Jun 2025 16:23:28 +0800 Subject: [PATCH] refactor: get include subfolder files from settings instead of passing parameter --- src/components/Folder/FilesCount.tsx | 6 +++--- src/store/folder/sort.ts | 8 ++------ src/store/folder/structure.ts | 27 +++++---------------------- 3 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/components/Folder/FilesCount.tsx b/src/components/Folder/FilesCount.tsx index 2071c6d..134a5ff 100644 --- a/src/components/Folder/FilesCount.tsx +++ b/src/components/Folder/FilesCount.tsx @@ -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 ( diff --git a/src/store/folder/sort.ts b/src/store/folder/sort.ts index 974f876..32d0c9d 100644 --- a/src/store/folder/sort.ts +++ b/src/store/folder/sort.ts @@ -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) diff --git a/src/store/folder/structure.ts b/src/store/folder/structure.ts index 0778ed3..594a5f1 100644 --- a/src/store/folder/structure.ts +++ b/src/store/folder/structure.ts @@ -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; }, });