Skip to content

Commit e7da311

Browse files
committed
Implement persistent sidebar on non-mobile clients
1 parent f8484ba commit e7da311

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

src/routes/+layout.svelte

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import Header from './Header.svelte';
1111
import Sidebar from './Sidebar.svelte';
1212
import '../app.css';
13+
import { browser } from '$app/environment';
1314
import { initializeApp } from '$lib/init';
15+
import { isMobile } from '$lib/utils/compatibility';
1416
1517
interface Props {
1618
children?: Snippet;
@@ -20,11 +22,14 @@
2022
2123
let meta = $derived(buildMetaData(page.url));
2224
23-
let isOpen = $state(false);
24-
25-
onMount(async () => {
26-
await initializeApp(!page.url.pathname.startsWith('/logout'));
25+
let isOpen = $state(
26+
!browser || isMobile ? false : localStorage.getItem('sidebarOpen') === 'true'
27+
);
28+
$effect(() => {
29+
if (!isMobile) localStorage.setItem('sidebarOpen', isOpen ? 'true' : 'false');
2730
});
31+
32+
onMount(() => initializeApp(!page.url.pathname.startsWith('/logout')));
2833
</script>
2934

3035
<BasicTags {...meta} />

0 commit comments

Comments
 (0)