mirror of
https://github.com/xuquan-nikkkki/FolderFile-Splitter-Plugin.git
synced 2026-07-22 12:00:27 +00:00
refactor: abstract can folder toggle logic into a function
This commit is contained in:
parent
5317a9524f
commit
c41c19fe61
1 changed files with 12 additions and 5 deletions
|
|
@ -41,6 +41,7 @@ export type FolderExplorerStore = {
|
|||
latestCreatedFolder: TFolder | null;
|
||||
latestFolderCreatedTime: number | null;
|
||||
|
||||
canFolderToggle: (folder: TFolder) => boolean;
|
||||
getTopLevelFolders: () => TFolder[];
|
||||
getFilesCountInFolder: (
|
||||
folder: TFolder,
|
||||
|
|
@ -116,6 +117,12 @@ export const createFolderExplorerStore =
|
|||
latestCreatedFolder: null,
|
||||
latestFolderCreatedTime: null,
|
||||
|
||||
canFolderToggle: (folder: TFolder): boolean => {
|
||||
const { hasFolderChildren } = get();
|
||||
// root folder is always expanded
|
||||
return !folder.isRoot() && hasFolderChildren(folder);
|
||||
},
|
||||
|
||||
getTopLevelFolders: () => {
|
||||
return plugin.app.vault
|
||||
.getAllFolders()
|
||||
|
|
@ -613,20 +620,20 @@ export const createFolderExplorerStore =
|
|||
const {
|
||||
changeExpandedFolderPaths,
|
||||
expandedFolderPaths,
|
||||
hasFolderChildren,
|
||||
canFolderToggle,
|
||||
} = get();
|
||||
if (!hasFolderChildren(folder) || folder.isRoot()) return;
|
||||
if (!canFolderToggle(folder)) return;
|
||||
await changeExpandedFolderPaths(
|
||||
uniq([...expandedFolderPaths, folder.path])
|
||||
);
|
||||
},
|
||||
collapseFolder: async(folder: TFolder) => {
|
||||
collapseFolder: async (folder: TFolder) => {
|
||||
const {
|
||||
changeExpandedFolderPaths,
|
||||
hasFolderChildren,
|
||||
expandedFolderPaths,
|
||||
canFolderToggle
|
||||
} = get();
|
||||
if (!hasFolderChildren(folder) || folder.isRoot()) return;
|
||||
if (!canFolderToggle(folder)) return;
|
||||
await changeExpandedFolderPaths(
|
||||
expandedFolderPaths.filter((path) => path !== folder.path)
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue