From a9319ad977fd1adf6e1fa70a139696a1661c096a Mon Sep 17 00:00:00 2001 From: Josh Theisen Date: Sun, 4 Oct 2026 10:32:06 -0500 Subject: [PATCH 1/2] feat: QoL - implement top-level settings button --- src/frontend/src/components/Header.tsx | 93 +++++++++++++++----------- 1 file changed, 55 insertions(+), 38 deletions(-) diff --git a/src/frontend/src/components/Header.tsx b/src/frontend/src/components/Header.tsx index d4e3868d8..44b25b30f 100644 --- a/src/frontend/src/components/Header.tsx +++ b/src/frontend/src/components/Header.tsx @@ -316,6 +316,57 @@ export const Header = forwardRef( // Determine if we should show icons only (both URLs configured) const showIconsOnly = Boolean(calibreWebUrl && audiobookLibraryUrl); + const renderSettingsButton = (variant: 'nav' | 'menu') => { + if (!onSettingsClick) return null; + const isNav = variant === 'nav'; + return ( + + ); + }; + // Icon buttons - reused for both states const iconButtonsNode = (
@@ -412,6 +463,9 @@ export const Header = forwardRef( )} + {/* Settings Button */} + {renderSettingsButton('nav')} + {/* User Menu Dropdown */}
- )} + {renderSettingsButton('menu')} {/* Debug Buttons */} {debug && ( From 122d12b667616e30a94e02bbe2ceb32125c84e27 Mon Sep 17 00:00:00 2001 From: Josh Theisen Date: Sun, 4 Oct 2026 12:37:02 -0500 Subject: [PATCH 2/2] Apply suggestion from @joshft91 --- src/frontend/src/components/Header.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/frontend/src/components/Header.tsx b/src/frontend/src/components/Header.tsx index 44b25b30f..dc73a462d 100644 --- a/src/frontend/src/components/Header.tsx +++ b/src/frontend/src/components/Header.tsx @@ -463,7 +463,6 @@ export const Header = forwardRef( )} - {/* Settings Button */} {renderSettingsButton('nav')} {/* User Menu Dropdown */}