mirror of
https://github.com/xuquan-nikkkki/FolderFile-Splitter-Plugin.git
synced 2026-07-22 05:37:28 +00:00
refactor: abstract set value and save to local storage function
This commit is contained in:
parent
a0f4218d63
commit
d0c7530691
4 changed files with 66 additions and 34 deletions
|
|
@ -27,7 +27,19 @@ export type CommonExplorerStore = {
|
|||
saveDataInLocalStorage: (key: string, value: string) => void;
|
||||
removeDataFromLocalStorage: (key: string) => void;
|
||||
getDataFromPlugin: <T>(key: string) => Promise<T | undefined>;
|
||||
saveDataInPlugin: (data: Record<string, unknown>) => Promise<void>;
|
||||
saveDataInPlugin: (oata: Record<string, unknown>) => Promise<void>;
|
||||
|
||||
setValueAndSaveInLocalStorage: <T>({
|
||||
key,
|
||||
value,
|
||||
localStorageKey,
|
||||
localStorageValue,
|
||||
}: {
|
||||
key: string;
|
||||
value: T;
|
||||
localStorageKey: string;
|
||||
localStorageValue: string;
|
||||
}) => void;
|
||||
};
|
||||
|
||||
export const createCommonExplorerStore =
|
||||
|
|
@ -38,11 +50,13 @@ export const createCommonExplorerStore =
|
|||
viewMode: DEFAULT_VIEW_MODE,
|
||||
|
||||
changeViewMode: (mode: ViewMode) => {
|
||||
const { saveDataInLocalStorage } = get();
|
||||
set({
|
||||
viewMode: mode,
|
||||
const { setValueAndSaveInLocalStorage } = get();
|
||||
setValueAndSaveInLocalStorage({
|
||||
key: "viewMode",
|
||||
value: mode,
|
||||
localStorageKey: FFS_VIEW_MODE_KEY,
|
||||
localStorageValue: mode,
|
||||
});
|
||||
saveDataInLocalStorage(FFS_VIEW_MODE_KEY, mode);
|
||||
},
|
||||
restoreViewMode: () => {
|
||||
const { getDataFromLocalStorage } = get();
|
||||
|
|
@ -80,4 +94,27 @@ export const createCommonExplorerStore =
|
|||
return undefined;
|
||||
}
|
||||
},
|
||||
|
||||
setValueAndSaveInLocalStorage: <T>({
|
||||
key,
|
||||
value,
|
||||
localStorageKey,
|
||||
localStorageValue,
|
||||
}: {
|
||||
key: string;
|
||||
value: T;
|
||||
localStorageKey: string;
|
||||
localStorageValue: string;
|
||||
}) => {
|
||||
const { saveDataInLocalStorage, removeDataFromLocalStorage } =
|
||||
get();
|
||||
|
||||
set({ [key]: value } as Partial<ExplorerStore>);
|
||||
|
||||
if (value === null || value === undefined) {
|
||||
removeDataFromLocalStorage(localStorageKey);
|
||||
} else {
|
||||
saveDataInLocalStorage(localStorageKey, localStorageValue);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -47,16 +47,13 @@ export const createFocusedFileSlice =
|
|||
},
|
||||
|
||||
setFocusedFile: async (file: TFile | null) => {
|
||||
const { saveDataInLocalStorage, removeDataFromLocalStorage } =
|
||||
get();
|
||||
set({
|
||||
focusedFile: file,
|
||||
const { setValueAndSaveInLocalStorage } = get();
|
||||
setValueAndSaveInLocalStorage({
|
||||
key: "focusedFile",
|
||||
value: file,
|
||||
localStorageKey: FFS_FOCUSED_FILE_PATH_KEY,
|
||||
localStorageValue: file ? file.path : "",
|
||||
});
|
||||
if (file) {
|
||||
saveDataInLocalStorage(FFS_FOCUSED_FILE_PATH_KEY, file.path);
|
||||
} else {
|
||||
removeDataFromLocalStorage(FFS_FOCUSED_FILE_PATH_KEY);
|
||||
}
|
||||
},
|
||||
|
||||
restoreLastFocusedFile: async () => {
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@ import { uniq } from "src/utils";
|
|||
import { ExplorerStore } from "..";
|
||||
|
||||
export interface ToggleFolderSlice {
|
||||
expandedFolderPaths: string[];
|
||||
expandedFolderPaths: string[];
|
||||
|
||||
canFolderToggle: (folder: TFolder) => boolean;
|
||||
changeExpandedFolderPaths: (folderNames: string[]) => Promise<void>;
|
||||
restoreExpandedFolderPaths: () => Promise<void>;
|
||||
expandFolder: (folder: TFolder) => Promise<void>;
|
||||
collapseFolder: (folder: TFolder) => Promise<void>;
|
||||
canFolderToggle: (folder: TFolder) => boolean;
|
||||
changeExpandedFolderPaths: (folderNames: string[]) => Promise<void>;
|
||||
restoreExpandedFolderPaths: () => Promise<void>;
|
||||
expandFolder: (folder: TFolder) => Promise<void>;
|
||||
collapseFolder: (folder: TFolder) => Promise<void>;
|
||||
}
|
||||
|
||||
export const createToggleFolderSlice =
|
||||
|
|
@ -53,14 +53,13 @@ export const createToggleFolderSlice =
|
|||
);
|
||||
},
|
||||
changeExpandedFolderPaths: async (folderPaths: string[]) => {
|
||||
const { saveDataInLocalStorage } = get();
|
||||
set({
|
||||
expandedFolderPaths: folderPaths,
|
||||
const { setValueAndSaveInLocalStorage } = get();
|
||||
setValueAndSaveInLocalStorage({
|
||||
key: "expandedFolderPaths",
|
||||
value: folderPaths,
|
||||
localStorageKey: FFS_EXPANDED_FOLDER_PATHS_KEY,
|
||||
localStorageValue: JSON.stringify(folderPaths),
|
||||
});
|
||||
saveDataInLocalStorage(
|
||||
FFS_EXPANDED_FOLDER_PATHS_KEY,
|
||||
JSON.stringify(folderPaths)
|
||||
);
|
||||
},
|
||||
restoreExpandedFolderPaths: async () => {
|
||||
const { getDataFromLocalStorage, hasFolderChildren } = get();
|
||||
|
|
|
|||
|
|
@ -24,14 +24,13 @@ export const createToggleTagSlice =
|
|||
expandedTagPaths: [],
|
||||
|
||||
changeExpandedTagPaths: async (tagPaths: string[]) => {
|
||||
const { saveDataInLocalStorage } = get();
|
||||
set({
|
||||
expandedTagPaths: tagPaths,
|
||||
const { setValueAndSaveInLocalStorage } = get();
|
||||
setValueAndSaveInLocalStorage({
|
||||
key: "expandedTagPaths",
|
||||
value: tagPaths,
|
||||
localStorageKey: FFS_EXPANDED_TAG_PATHS_KEY,
|
||||
localStorageValue: JSON.stringify(tagPaths),
|
||||
});
|
||||
saveDataInLocalStorage(
|
||||
FFS_EXPANDED_TAG_PATHS_KEY,
|
||||
JSON.stringify(tagPaths)
|
||||
);
|
||||
},
|
||||
|
||||
expandTag: async (tag: TagNode) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue