(view: SheetViewMode)
| 737 | }; |
| 738 | |
| 739 | const buildViewContext = (view: SheetViewMode): ViewContext => { |
| 740 | const folderContext = getFolderContext(view); |
| 741 | return { |
| 742 | get isLoading() { |
| 743 | return useSheetContextStore.getState().viewStates[view].isLoading; |
| 744 | }, |
| 745 | get isInitialized() { |
| 746 | return useSheetContextStore.getState().viewStates[view].isInitialized; |
| 747 | }, |
| 748 | get sheetTree() { |
| 749 | return useSheetContextStore.getState().viewStates[view].sheetTree; |
| 750 | }, |
| 751 | get folderTree() { |
| 752 | const root: WorksheetFolderNode = { |
| 753 | ...rootTreeNodeFor(view), |
| 754 | key: folderContext.rootPath, |
| 755 | }; |
| 756 | return buildTree(view, root, new Map(), false); |
| 757 | }, |
| 758 | folderContext, |
| 759 | events: getEvents(view), |
| 760 | fetchSheetList: () => fetchSheetListFor(view), |
| 761 | rebuildTree: () => getRebuildTreeFn(view)(), |
| 762 | getKeyForWorksheet: (ws) => getKeyForWorksheet(view, ws), |
| 763 | getFoldersForWorksheet: (path) => getFoldersForWorksheet(view, path), |
| 764 | getPathesForWorksheet: (ws) => getPathesForWorksheet(view, ws), |
| 765 | getPwdForWorksheet: (ws) => getPwdForWorksheet(view, ws), |
| 766 | }; |
| 767 | }; |
| 768 | |
| 769 | const viewContextCache: Partial<Record<SheetViewMode, ViewContext>> = {}; |
| 770 | const getViewContext = (view: SheetViewMode): ViewContext => { |
no test coverage detected