web: keep sidebar collapse local

This commit is contained in:
2026-07-23 20:45:58 +09:00
parent fb4d3c3f1f
commit f848a96343
4 changed files with 10 additions and 20 deletions
+1 -6
View File
@@ -9,7 +9,6 @@
let { children }: LayoutProps = $props();
let sidebar = $state<SidebarSnippet | null>(null);
let sidebarCollapsed = $state(false);
setContext(SIDEBAR_CONTEXT, {
setSidebar(snippet: SidebarSnippet) {
@@ -17,17 +16,13 @@
},
clearSidebar(snippet: SidebarSnippet) {
if (sidebar === snippet) sidebar = null;
sidebarCollapsed = false;
},
setCollapsed(collapsed: boolean) {
sidebarCollapsed = collapsed;
},
});
</script>
<WorkspaceAlerts />
<div class:sidebar-collapsed={sidebarCollapsed} class="workspace-layout">
<div class="workspace-layout">
{#if sidebar}
{@render sidebar()}
{:else}
@@ -2,20 +2,14 @@
import { page } from '$app/state';
import SidebarOverride from '$lib/workspace/sidebar/SidebarOverride.svelte';
import WorkspaceSidebar from '$lib/workspace/sidebar/WorkspaceSidebar.svelte';
import { getSidebarController } from '$lib/workspace/sidebar/context';
import type { LayoutProps } from './$types';
let { data, children }: LayoutProps = $props();
let sidebarCollapsed = $state(false);
const sidebarController = getSidebarController();
function toggleSidebar() {
sidebarCollapsed = !sidebarCollapsed;
}
$effect(() => {
sidebarController.setCollapsed(sidebarCollapsed);
});
</script>
{#snippet workspaceSidebar()}