aboutsummaryrefslogtreecommitdiffstats
path: root/renderer/src/App.tsx
diff options
context:
space:
mode:
authorbndw <ben@bdw.to>2026-02-28 21:08:40 -0800
committerbndw <ben@bdw.to>2026-02-28 21:08:40 -0800
commit04c63d4ef601876186e5d7fab980d76575c494ec (patch)
tree2620784e148957ae2ee3af0327c2b128983577e7 /renderer/src/App.tsx
parent0da42e4fa414ab3268d4f71896455097239f8590 (diff)
feat: **1. `src/main/db/schema.ts`** — add `settings` table … (+10 more)
- ✅ **1. `src/main/db/schema.ts`** — add `settings` table to `initSchema` - ✅ **2. `src/main/db/settings.ts`** — create file with `getSetting`, `getSettings`, `setSetting`, `deleteSetting` - ✅ **3. `src/main/claude/phases.ts`** — add `customSystemPrompt?` param to `getPhaseConfig`; add `getDefaultSystemPromptTemplate` export - ✅ **4. `src/main/claude/index.ts`** — import `getSetting`; load custom prompt in `sendMessage`; pass to `getPhaseConfig` - ✅ **5. `src/main/ipc/handlers.ts`** — import `settingsDb` + `getDefaultSystemPromptTemplate`; register `settings:get`, `settings:set`, `settings:delete`, `settings:getDefaultPrompts` - ✅ **6. `src/main/preload.ts`** — add `getSettings`, `setSetting`, `deleteSetting`, `getDefaultSystemPrompts` to interface + api object - ✅ **7. `renderer/src/styles/globals.css`** — append all new CSS rules - ✅ **8. `renderer/src/components/settings/SystemPromptsSettings.tsx`** — create file (new directory) - ✅ **9. `renderer/src/components/SettingsPage.tsx`** — create file - ✅ **10. `renderer/src/components/Header.tsx`** — add `onOpenSettings` prop + ⚙ button - ✅ **11. `renderer/src/App.tsx`** — add `showSettings` state; import + render `<SettingsPage>`; pass `onOpenSettings` to Header
Diffstat (limited to 'renderer/src/App.tsx')
-rw-r--r--renderer/src/App.tsx7
1 files changed, 7 insertions, 0 deletions
diff --git a/renderer/src/App.tsx b/renderer/src/App.tsx
index 74b1f91..7d75196 100644
--- a/renderer/src/App.tsx
+++ b/renderer/src/App.tsx
@@ -3,6 +3,7 @@ import { Header } from "./components/Header";
3import { DocumentPane } from "./components/DocumentPane"; 3import { DocumentPane } from "./components/DocumentPane";
4import { ChatPane } from "./components/ChatPane"; 4import { ChatPane } from "./components/ChatPane";
5import { ActionBar } from "./components/ActionBar"; 5import { ActionBar } from "./components/ActionBar";
6import { SettingsPage } from "./components/SettingsPage";
6import type { Project, Session, Message, Phase, TokenUsage } from "./types"; 7import type { Project, Session, Message, Phase, TokenUsage } from "./types";
7import "./styles/globals.css"; 8import "./styles/globals.css";
8 9
@@ -56,6 +57,7 @@ export function App() {
56 outputTokens: 0, 57 outputTokens: 0,
57 }); 58 });
58 const [error, setError] = useState<string | null>(null); 59 const [error, setError] = useState<string | null>(null);
60 const [showSettings, setShowSettings] = useState(false);
59 61
60 const [theme, setTheme] = useState<Theme>( 62 const [theme, setTheme] = useState<Theme>(
61 () => (localStorage.getItem("cf-theme") as Theme) ?? "dark" 63 () => (localStorage.getItem("cf-theme") as Theme) ?? "dark"
@@ -365,6 +367,7 @@ export function App() {
365 theme={theme} 367 theme={theme}
366 onToggleTheme={handleToggleTheme} 368 onToggleTheme={handleToggleTheme}
367 gitBranch={selectedSession?.git_branch ?? null} 369 gitBranch={selectedSession?.git_branch ?? null}
370 onOpenSettings={() => setShowSettings(true)}
368 /> 371 />
369 372
370 <div className="main-content"> 373 <div className="main-content">
@@ -413,6 +416,10 @@ export function App() {
413 }} 416 }}
414 disabled={!selectedSession} 417 disabled={!selectedSession}
415 /> 418 />
419
420 {showSettings && (
421 <SettingsPage onClose={() => setShowSettings(false)} />
422 )}
416 </div> 423 </div>
417 ); 424 );
418} 425}