From c45f6450bfa8f610c1d0e2ca401006e750d6e5f6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 25 Jun 2026 03:09:17 +0000 Subject: [PATCH] UI overhaul Phase 7a: extract InputSettingsForm from App.tsx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Begin the App.tsx cleanup (the third "all three" target) with the safe, self-contained piece: extract the analysis-settings controls — the ANALYSIS MODE selector plus the pitch/note, MT3, and AI-interpretation toggles — into a stateless InputSettingsForm component. - New components/InputSettingsForm.tsx renders the four sibling controls verbatim. It's fully controlled: every value and change handler is owned by App and passed in (isAnalyzing, analysisMode, the three requested flags + their setters, the config-enabled flags, phase2StatusBadge, phase2HelperCopy). The native / setAnalysisMode(e.target.value as 'full' | 'standard')} - disabled={isAnalyzing} - className="appearance-none bg-bg-card border border-border text-text-primary text-meta font-mono py-1.5 pl-2 pr-6 rounded-sm focus:outline-none focus:border-accent cursor-pointer disabled:opacity-50" - > - - - - - - - {mt3ConfigEnabled && ( - - )} - +