From 74795c583c90d7a6f7fa15f42ca625e0e5523569 Mon Sep 17 00:00:00 2001 From: juancwu Date: Wed, 22 Apr 2026 22:56:14 +0000 Subject: [PATCH] feat: swap theme switcher and account dropdown menu positions --- internal/ui/layouts/app.templ | 56 +++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/internal/ui/layouts/app.templ b/internal/ui/layouts/app.templ index 95c5173..7a88a74 100644 --- a/internal/ui/layouts/app.templ +++ b/internal/ui/layouts/app.templ @@ -4,9 +4,9 @@ import ( "git.juancwu.dev/juancwu/budgit/internal/ctxkeys" "git.juancwu.dev/juancwu/budgit/internal/model" "git.juancwu.dev/juancwu/budgit/internal/routeurl" - "git.juancwu.dev/juancwu/budgit/internal/ui/blocks" "git.juancwu.dev/juancwu/budgit/internal/ui/components/avatar" "git.juancwu.dev/juancwu/budgit/internal/ui/components/breadcrumb" + "git.juancwu.dev/juancwu/budgit/internal/ui/components/button" "git.juancwu.dev/juancwu/budgit/internal/ui/components/csrf" "git.juancwu.dev/juancwu/budgit/internal/ui/components/dropdown" "git.juancwu.dev/juancwu/budgit/internal/ui/components/icon" @@ -47,6 +47,18 @@ templ App(title string, sidebarContent ...templ.Component) { } @sidebar.Footer() { @sidebar.Menu() { + @sidebar.MenuItem() { + @sidebar.MenuButton(sidebar.MenuButtonProps{ + Size: sidebar.MenuButtonSizeSm, + Attributes: templ.Attributes{ + "data-theme-switcher": "true", + "aria-label": "Toggle theme", + }, + }) { + @icon.Eclipse(icon.Props{Class: "size-4"}) + Theme + } + } @sidebar.MenuItem() { @sidebar.MenuButton(sidebar.MenuButtonProps{ Href: "mailto:" + cfg.SupportEmail, @@ -60,15 +72,6 @@ templ App(title string, sidebarContent ...templ.Component) {
App version: { cfg.Version }
- @sidebar.Separator() - @sidebar.Menu() { - @sidebar.MenuItem() { - {{ user := ctxkeys.User(ctx) }} - if user != nil { - @AppSidebarDropdown(user) - } - } - } } } @sidebar.Inset() { @@ -88,7 +91,10 @@ templ App(title string, sidebarContent ...templ.Component) { }
- @blocks.ThemeSwitcher() + {{ user := ctxkeys.User(ctx) }} + if user != nil { + @AppAccountDropdown(user) + }
@@ -101,7 +107,7 @@ templ App(title string, sidebarContent ...templ.Component) { } } -templ AppSidebarDropdown(user *model.User) { +templ AppAccountDropdown(user *model.User) { {{ displayName := user.Email }} {{ if user.Name != nil && *user.Name != "" { @@ -110,28 +116,28 @@ templ AppSidebarDropdown(user *model.User) { }} @dropdown.Dropdown() { @dropdown.Trigger() { - @sidebar.MenuButton(sidebar.MenuButtonProps{ - Size: sidebar.MenuButtonSizeLg, + @button.Button(button.Props{ + Variant: button.VariantGhost, + Size: button.SizeIcon, + Class: "rounded-full", + Attributes: templ.Attributes{ + "aria-label": "Account menu", + }, }) { -