@@ -109,7 +109,7 @@ export default function Layout(props: ParentProps) {
109109 const command = useCommand ( )
110110 const theme = useTheme ( )
111111 const language = useLanguage ( )
112- const initialDir = params . dir
112+ const initialDirectory = decode64 ( params . dir )
113113 const availableThemeEntries = createMemo ( ( ) => Object . entries ( theme . themes ( ) ) )
114114 const colorSchemeOrder : ColorScheme [ ] = [ "system" , "light" , "dark" ]
115115 const colorSchemeKey : Record < ColorScheme , "theme.scheme.system" | "theme.scheme.light" | "theme.scheme.dark" > = {
@@ -120,7 +120,7 @@ export default function Layout(props: ParentProps) {
120120 const colorSchemeLabel = ( scheme : ColorScheme ) => language . t ( colorSchemeKey [ scheme ] )
121121
122122 const [ state , setState ] = createStore ( {
123- autoselect : ! params . dir ,
123+ autoselect : ! initialDirectory ,
124124 busyWorkspaces : new Set < string > ( ) ,
125125 hoverSession : undefined as string | undefined ,
126126 hoverProject : undefined as string | undefined ,
@@ -180,13 +180,21 @@ export default function Layout(props: ParentProps) {
180180
181181 const autoselecting = createMemo ( ( ) => {
182182 if ( params . dir ) return false
183- if ( initialDir ) return false
184183 if ( ! state . autoselect ) return false
185184 if ( ! pageReady ( ) ) return true
186185 if ( ! layoutReady ( ) ) return true
187186 const list = layout . projects . list ( )
188- if ( list . length === 0 ) return false
189- return true
187+ if ( list . length > 0 ) return true
188+ return ! ! server . projects . last ( )
189+ } )
190+
191+ createEffect ( ( ) => {
192+ if ( ! state . autoselect ) return
193+ const dir = params . dir
194+ if ( ! dir ) return
195+ const directory = decode64 ( dir )
196+ if ( ! directory ) return
197+ setState ( "autoselect" , false )
190198 } )
191199
192200 const editorOpen = ( id : string ) => editor . active === id
@@ -566,11 +574,18 @@ export default function Layout(props: ParentProps) {
566574 if ( ! value . ready ) return
567575 if ( ! value . layoutReady ) return
568576 if ( ! state . autoselect ) return
569- if ( initialDir ) return
570577 if ( value . dir ) return
571- if ( value . list . length === 0 ) return
572578
573579 const last = server . projects . last ( )
580+
581+ if ( value . list . length === 0 ) {
582+ if ( ! last ) return
583+ setState ( "autoselect" , false )
584+ openProject ( last , false )
585+ navigateToProject ( last )
586+ return
587+ }
588+
574589 const next = value . list . find ( ( project ) => project . worktree === last ) ?? value . list [ 0 ]
575590 if ( ! next ) return
576591 setState ( "autoselect" , false )
0 commit comments