|
2 | 2 | batch, |
3 | 3 | createEffect, |
4 | 4 | createMemo, |
| 5 | + createResource, |
5 | 6 | For, |
6 | 7 | on, |
7 | 8 | onCleanup, |
@@ -277,16 +278,6 @@ export default function Layout(props: ParentProps) { |
277 | 278 | setHoverProject(undefined) |
278 | 279 | }) |
279 | 280 |
|
280 | | - const autoselecting = createMemo(() => { |
281 | | - if (params.dir) return false |
282 | | - if (!state.autoselect) return false |
283 | | - if (!pageReady()) return true |
284 | | - if (!layoutReady()) return true |
285 | | - const list = layout.projects.list() |
286 | | - if (list.length > 0) return true |
287 | | - return !!server.projects.last() |
288 | | - }) |
289 | | - |
290 | 281 | createEffect(() => { |
291 | 282 | if (!state.autoselect) return |
292 | 283 | const dir = params.dir |
@@ -572,33 +563,22 @@ export default function Layout(props: ParentProps) { |
572 | 563 | return projects.find((p) => p.worktree === root) |
573 | 564 | }) |
574 | 565 |
|
575 | | - createEffect( |
576 | | - on( |
577 | | - () => ({ ready: pageReady(), layoutReady: layoutReady(), dir: params.dir, list: layout.projects.list() }), |
578 | | - (value) => { |
579 | | - if (!value.ready) return |
580 | | - if (!value.layoutReady) return |
581 | | - if (!state.autoselect) return |
582 | | - if (value.dir) return |
583 | | - |
584 | | - const last = server.projects.last() |
585 | | - |
586 | | - if (value.list.length === 0) { |
587 | | - if (!last) return |
588 | | - setState("autoselect", false) |
589 | | - openProject(last, false) |
590 | | - navigateToProject(last) |
591 | | - return |
592 | | - } |
| 566 | + const [autoselecting] = createResource(async () => { |
| 567 | + await ready.promise |
| 568 | + await layout.ready.promise |
593 | 569 |
|
594 | | - const next = value.list.find((project) => project.worktree === last) ?? value.list[0] |
595 | | - if (!next) return |
596 | | - setState("autoselect", false) |
597 | | - openProject(next.worktree, false) |
598 | | - navigateToProject(next.worktree) |
599 | | - }, |
600 | | - ), |
601 | | - ) |
| 570 | + const list = layout.projects.list() |
| 571 | + const last = server.projects.last() |
| 572 | + |
| 573 | + if (list.length === 0) { |
| 574 | + if (!last) return |
| 575 | + await openProject(last, true) |
| 576 | + } else { |
| 577 | + const next = list.find((project) => project.worktree === last) ?? list[0] |
| 578 | + if (!next) return |
| 579 | + await openProject(next.worktree, true) |
| 580 | + } |
| 581 | + }) |
602 | 582 |
|
603 | 583 | const workspaceName = (directory: string, projectId?: string, branch?: string) => { |
604 | 584 | const key = workspaceKey(directory) |
@@ -1311,7 +1291,7 @@ export default function Layout(props: ParentProps) { |
1311 | 1291 |
|
1312 | 1292 | function openProject(directory: string, navigate = true) { |
1313 | 1293 | layout.projects.open(directory) |
1314 | | - if (navigate) navigateToProject(directory) |
| 1294 | + if (navigate) return navigateToProject(directory) |
1315 | 1295 | } |
1316 | 1296 |
|
1317 | 1297 | const handleDeepLinks = (urls: string[]) => { |
@@ -2381,7 +2361,8 @@ export default function Layout(props: ParentProps) { |
2381 | 2361 | "size-full overflow-x-hidden flex flex-col items-start contain-strict border-t border-border-weak-base bg-background-base xl:border-l xl:rounded-tl-[12px]": true, |
2382 | 2362 | }} |
2383 | 2363 | > |
2384 | | - <Show when={!autoselecting()} fallback={<div class="size-full" />}> |
| 2364 | + <Show when={!autoselecting.loading} fallback={<div class="size-full" />}> |
| 2365 | + slkdjflkj |
2385 | 2366 | {props.children} |
2386 | 2367 | </Show> |
2387 | 2368 | </main> |
|
0 commit comments