/ shared / components / src / stores / navigation-folders-open.ts
navigation-folders-open.ts
 1  import { type Writable, writable } from 'svelte/store';
 2  
 3  type FolderState = Writable<boolean>;
 4  const folderStates = new Map<string, FolderState>();
 5  
 6  export function subscribeFolderOpenState(
 7      id: string,
 8      defaultState?: boolean,
 9  ): FolderState {
10      let stateById = folderStates.get(id);
11      if (!stateById) {
12          folderStates.set(id, writable(defaultState ?? false));
13          stateById = folderStates.get(id);
14      }
15  
16      return stateById;
17  }
18  
19  export function resetFoldersOpenState() {
20      folderStates.clear();
21  }