From d46764ef4fdf8a8842f7ac4622cb826afa1cabad Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 26 Mar 2026 12:10:54 +0100 Subject: [PATCH] refactor(layout): extract AppNav and UserMenu sub-components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split +layout.svelte (205 lines) into: - AppNav.svelte: logo + nav links with active-state styling - UserMenu.svelte: avatar button, dropdown, click-outside handler Layout drops from 205 → 80 lines. Part of #75 Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/routes/+layout.svelte | 130 +--------------------------- frontend/src/routes/AppNav.svelte | 59 +++++++++++++ frontend/src/routes/UserMenu.svelte | 81 +++++++++++++++++ 3 files changed, 144 insertions(+), 126 deletions(-) create mode 100644 frontend/src/routes/AppNav.svelte create mode 100644 frontend/src/routes/UserMenu.svelte diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 11f31185..32d85fe3 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -1,11 +1,11 @@
@@ -59,58 +45,7 @@ function clickOutside(node: HTMLElement) {
- +
@@ -134,64 +69,7 @@ function clickOutside(node: HTMLElement) { -
{ if (e.key === 'Escape') userMenuOpen = false; }} - role="none" - > - {#if userInitials} - - {:else} - - {/if} - - {#if userMenuOpen} - - {/if} -
+
diff --git a/frontend/src/routes/AppNav.svelte b/frontend/src/routes/AppNav.svelte new file mode 100644 index 00000000..49e6888e --- /dev/null +++ b/frontend/src/routes/AppNav.svelte @@ -0,0 +1,59 @@ + + + diff --git a/frontend/src/routes/UserMenu.svelte b/frontend/src/routes/UserMenu.svelte new file mode 100644 index 00000000..cb954c84 --- /dev/null +++ b/frontend/src/routes/UserMenu.svelte @@ -0,0 +1,81 @@ + + +
{ + if (e.key === 'Escape') userMenuOpen = false; + }} + role="none" +> + {#if userInitials} + + {:else} + + {/if} + + {#if userMenuOpen} + + {/if} +