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 && }
-
+
)}
+
);
}