@@ -17,6 +17,7 @@ export interface Lineage {
1717}
1818
1919interface EditorStore {
20+ storedTabsId ?: ID
2021 storedTabsIds : ID [ ]
2122 tabs : Map < ModelFile , EditorTab >
2223 tab ?: EditorTab
@@ -59,14 +60,17 @@ export interface EditorTab {
5960 preview ?: EditorPreview
6061}
6162
62- const [ getStoredTabs , setStoredTabs ] = useLocalStorage < { ids : ID [ ] } > ( 'tabs' )
63+ const [ getStoredTabs , setStoredTabs ] = useLocalStorage < { ids : ID [ ] ; id : ID } > (
64+ 'tabs' ,
65+ )
6366
6467const initialFile = createLocalFile ( )
6568const initialTab : EditorTab = createTab ( initialFile )
6669const initialTabs = new Map ( [ [ initialFile , initialTab ] ] )
6770
6871export const useStoreEditor = create < EditorStore > ( ( set , get ) => ( {
69- storedTabsIds : getStoredTabsIds ( ) ,
72+ storedTabsIds : getStoredTabs ( ) ?. ids ?? [ ] ,
73+ storedTabsId : getStoredTabs ( ) ?. id ,
7074 tab : initialTab ,
7175 tabs : initialTabs ,
7276 engine : sqlglotWorker ,
@@ -76,14 +80,20 @@ export const useStoreEditor = create<EditorStore>((set, get) => ({
7680 previewConsole : undefined ,
7781 direction : 'vertical' ,
7882 updateStoredTabsIds ( ) {
83+ const s = get ( )
84+ const id = s . tab ?. file . id
85+ const ids = Array . from ( get ( ) . tabs . values ( ) )
86+ . filter ( tab => tab . file . isRemote )
87+ . map ( tab => tab . file . id )
88+
7989 setStoredTabs ( {
80- ids : Array . from ( get ( ) . tabs . values ( ) )
81- . filter ( tab => tab . file . isRemote )
82- . map ( tab => tab . file . id ) ,
90+ id,
91+ ids,
8392 } )
8493
8594 set ( ( ) => ( {
86- storedTabsIds : getStoredTabsIds ( ) ,
95+ storedTabsId : id ,
96+ storedTabsIds : ids ,
8797 } ) )
8898 } ,
8999 refreshTab ( ) {
@@ -174,7 +184,3 @@ function createLocalFile(): ModelFile {
174184 '-- Create arbitrary SQL queries\n-- and execute them against different environments\n\n' ,
175185 } )
176186}
177-
178- function getStoredTabsIds ( ) : ID [ ] {
179- return getStoredTabs ( ) ?. ids ?? [ ]
180- }
0 commit comments