-
- {/* API Keys Section */}
-
-
- {/* Claude CLI Status Section */}
- {claudeCliStatus && (
-
- )}
-
- {/* Appearance Section */}
-
-
-
- {/* Keyboard Shortcuts Section */}
-
setShowKeyboardMapDialog(true)}
- />
-
- {/* Audio Section */}
-
-
-
-
- Configure audio and notification settings.
-
-
-
- {/* Mute Done Sound Setting */}
-
-
- setMuteDoneSound(checked === true)
- }
- className="mt-1"
- data-testid="mute-done-sound-checkbox"
- />
-
-
-
- Mute notification sound when agents complete
-
-
- When enabled, disables the "ding" sound that
- plays when an agent completes a feature. The feature
- will still move to the completed column, but without
- audio notification.
-
-
-
-
-
-
- {/* Feature Defaults Section */}
-
-
- {/* Danger Zone Section - Only show when a project is selected */}
- setShowDeleteDialog(true)}
- />
-
+ {/* Content Panel - Shows only the active section */}
+
+
{renderActiveSection()}
diff --git a/apps/app/src/components/views/settings-view/api-keys/api-keys-section.tsx b/apps/app/src/components/views/settings-view/api-keys/api-keys-section.tsx
index 527cbf22..874911a2 100644
--- a/apps/app/src/components/views/settings-view/api-keys/api-keys-section.tsx
+++ b/apps/app/src/components/views/settings-view/api-keys/api-keys-section.tsx
@@ -58,9 +58,8 @@ export function ApiKeysSection() {
return (
void;
+}
+
+export function AudioSection({
+ muteDoneSound,
+ onMuteDoneSoundChange,
+}: AudioSectionProps) {
+ return (
+
+
+
+
+ Configure audio and notification settings.
+
+
+
+
+
onMuteDoneSoundChange(checked === true)}
+ className="mt-1"
+ data-testid="mute-done-sound-checkbox"
+ />
+
+
+
+ Mute notification sound when agents complete
+
+
+ When enabled, disables the "ding" sound that plays when
+ an agent completes a feature. The feature will still move to the
+ completed column, but without audio notification.
+
+
+
+
+
+ );
+}
diff --git a/apps/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx b/apps/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx
index e0283130..8df5b836 100644
--- a/apps/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx
+++ b/apps/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx
@@ -23,9 +23,8 @@ export function ClaudeCliStatus({
return (
(initialView);
+
+ const navigateTo = useCallback((viewId: SettingsViewId) => {
+ setActiveView(viewId);
+ }, []);
+
+ return {
+ activeView,
+ navigateTo,
+ };
+}
diff --git a/apps/app/src/components/views/settings-view/keyboard-shortcuts/keyboard-shortcuts-section.tsx b/apps/app/src/components/views/settings-view/keyboard-shortcuts/keyboard-shortcuts-section.tsx
index a62bd3ac..10c25bc6 100644
--- a/apps/app/src/components/views/settings-view/keyboard-shortcuts/keyboard-shortcuts-section.tsx
+++ b/apps/app/src/components/views/settings-view/keyboard-shortcuts/keyboard-shortcuts-section.tsx
@@ -11,9 +11,8 @@ export function KeyboardShortcutsSection({
}: KeyboardShortcutsSectionProps) {
return (