返回 DeepSeek-Reasonix
processFoldPreference.ts
根目录 / desktop / frontend / src / lib / processFoldPreference.ts
1 export type ProcessFoldPreference = "auto" | "expanded";
2
3 const PROCESS_FOLD_KEY = "reasonix-process-fold";
4 const PROCESS_FOLD_EVENT = "reasonix:process-fold";
5
6 export function getProcessFoldPreference(): ProcessFoldPreference {
7 if (typeof localStorage === "undefined") return "auto";
8 const stored = localStorage.getItem(PROCESS_FOLD_KEY);
9 return stored === "expanded" ? "expanded" : "auto";
10 }
11
12 export function setProcessFoldPreference(pref: ProcessFoldPreference): void {
13 localStorage.setItem(PROCESS_FOLD_KEY, pref);
14 window.dispatchEvent(new CustomEvent(PROCESS_FOLD_EVENT, { detail: pref }));
15 }
16
17 export function onProcessFoldPreferenceChange(cb: (pref: ProcessFoldPreference) => void): () => void {
18 const handler = (e: Event) => cb((e as CustomEvent).detail as ProcessFoldPreference);
19 window.addEventListener(PROCESS_FOLD_EVENT, handler);
20 return () => window.removeEventListener(PROCESS_FOLD_EVENT, handler);
21 }
22
22 lines TYPESCRIPT