web: keep sidebar collapse local
This commit is contained in:
@@ -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()}
|
||||
|
||||
Reference in New Issue
Block a user