fix: theme switching always defaults to dark mode

Root causes:
1. ThemeProvider was imported but never used in App.tsx and showSetupDialog
2. setThemeConfigCallbacks was never called to inject persistence callbacks
3. Preview/save/cancel theme lifecycle had no provider to coordinate

Changes:
- Export setThemeConfigCallbacks from @anthropic/ink
- Wrap App.tsx children with ThemeProvider (initialState from config, onThemeSave persists)
- Wrap showSetupDialog with ThemeProvider for onboarding/trust dialogs
- Call setThemeConfigCallbacks in init.ts to register load/save callbacks
- Update SnapshotUpdateDialog test to account for new ThemeProvider wrapper

Fixes #theme-switching
This commit is contained in:
Bonerush
2026-04-30 16:15:27 +08:00
parent 632f3e199e
commit 71c89e9de4
5 changed files with 168 additions and 202 deletions

View File

@@ -154,6 +154,7 @@ export { TerminalWriteProvider, useTerminalNotification, type TerminalNotificati
// ============================================================
export {
ThemeProvider,
setThemeConfigCallbacks,
usePreviewTheme,
useTheme,
useThemeSetting,