From f94958354a6a43f38b7964f3695bf58e4a87a66c Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Sun, 22 Mar 2026 03:18:28 +0100 Subject: [PATCH] feat: integrate section sub-links into UserSettings sidebar --- .../src/components/modals/UserSettings.tsx | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/web/src/components/modals/UserSettings.tsx b/packages/web/src/components/modals/UserSettings.tsx index dcdcdd75..51c8623c 100644 --- a/packages/web/src/components/modals/UserSettings.tsx +++ b/packages/web/src/components/modals/UserSettings.tsx @@ -8,9 +8,43 @@ import { VoicePanel } from './settingsPanels/VoicePanel'; import { PrivacyPanel } from './settingsPanels/PrivacyPanel'; import { ConnectionsPanel } from './settingsPanels/ConnectionsPanel'; import { InstancePanel } from './settingsPanels/InstancePanel'; +import { SettingsSectionsProvider, useSettingsSectionsContext } from './SettingsSectionsContext'; type SettingsTab = 'account' | 'voice' | 'privacy' | 'connections' | 'instance'; +function SidebarSubLinks() { + const ctx = useSettingsSectionsContext(); + if (!ctx || ctx.sections.length === 0) return null; + + return ( +
+ {ctx.sections.map((section) => ( + + ))} +
+ ); +} + +function SettingsScrollContainer({ children }: { children: React.ReactNode }) { + const ctx = useSettingsSectionsContext(); + return ( +
+ {children} +
+ ); +} + export function UserSettingsModal() { const activeModal = useUIStore((s) => s.activeModal); const modalData = useUIStore((s) => s.modalData); @@ -61,6 +95,7 @@ export function UserSettingsModal() { return ( +
{/* Desktop Sidebar */}
@@ -94,6 +129,7 @@ export function UserSettingsModal() {
Administration
+ {tab === 'instance' && } )} @@ -157,7 +193,7 @@ export function UserSettingsModal() { {/* Content area (desktop always, mobile only when viewing content) */} {(!isMobile || mobileView === 'content') && ( -
+
{/* Mobile back button */} {isMobile && ( @@ -178,9 +214,10 @@ export function UserSettingsModal() { {tab === 'connections' && } {tab === 'instance' && isAdmin && }
-
+ )}
+ ); }