From d99682295731e8ae6dfbe72f2b4c995c5baebe16 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 2 Sep 2026 19:22:45 +0900 Subject: [PATCH] feat: list accessible workspaces in global sidebar --- .../console/worker-console.ui.test.ts | 31 ++++++-- .../sidebar/GlobalNavSections.svelte | 70 +++++++++++++++++++ .../workspace/sidebar/GlobalSidebar.svelte | 21 +----- web/workspace/src/routes/+page.svelte | 12 ++++ 4 files changed, 108 insertions(+), 26 deletions(-) create mode 100644 web/workspace/src/lib/workspace/sidebar/GlobalNavSections.svelte diff --git a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts index 9959e841..497361fd 100644 --- a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts +++ b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts @@ -812,6 +812,12 @@ Deno.test("Account UI owns browser passkey session state without workspace autho const globalSidebar = await Deno.readTextFile( new URL("../sidebar/GlobalSidebar.svelte", import.meta.url), ); + const globalNavSections = await Deno.readTextFile( + new URL("../sidebar/GlobalNavSections.svelte", import.meta.url), + ); + const workspaceCatalogPage = await Deno.readTextFile( + new URL("./../../../routes/+page.svelte", import.meta.url), + ); const sidebarFrame = await Deno.readTextFile( new URL("../sidebar/SidebarFrame.svelte", import.meta.url), ); @@ -874,13 +880,24 @@ Deno.test("Account UI owns browser passkey session state without workspace autho "Root layout chrome should keep GlobalSidebar as the root slot owner while account navigation stays in the header", ); assert( - globalSidebar.includes('aria-label="Global pages"') && - !globalSidebar.includes(' diff --git a/web/workspace/src/lib/workspace/sidebar/GlobalSidebar.svelte b/web/workspace/src/lib/workspace/sidebar/GlobalSidebar.svelte index 2a704ed8..08430a63 100644 --- a/web/workspace/src/lib/workspace/sidebar/GlobalSidebar.svelte +++ b/web/workspace/src/lib/workspace/sidebar/GlobalSidebar.svelte @@ -1,5 +1,6 @@ {#if content} @@ -22,18 +16,7 @@ {:else} {/if} diff --git a/web/workspace/src/routes/+page.svelte b/web/workspace/src/routes/+page.svelte index 75bf8187..541624c6 100644 --- a/web/workspace/src/routes/+page.svelte +++ b/web/workspace/src/routes/+page.svelte @@ -8,6 +8,8 @@ type CreateWorkspaceRequest, type WorkspaceCatalogItem, } from "$lib/workspace/api/workspace-catalog"; + import GlobalNavSections from "$lib/workspace/sidebar/GlobalNavSections.svelte"; + import SidebarOverride from "$lib/workspace/sidebar/SidebarOverride.svelte"; import "$lib/workspace/styles/workspace-catalog.css"; let { data } = $props(); @@ -87,6 +89,16 @@ } +{#snippet homeSidebar()} + +{/snippet} + + + Workspaces ยท Yoi