fix: palette changes now propagate immediately via ThemeContext
Replace useSetting()-based useTheme() with a React context (ThemeProvider + useTheme/usePaletteControl). The context holds palette key in state so pressing a palette button in Settings re-renders all screens instantly. Persists to SQLite and reloads the stored value on mount.
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import { useSetting } from '@/db/queries';
|
||||
|
||||
export type PaletteKey = 'auto' | 'default' | 'giro' | 'tour' | 'vuelta';
|
||||
|
||||
export const PALETTES = {
|
||||
@@ -29,8 +27,3 @@ export function autoKey(): Exclude<PaletteKey, 'auto'> {
|
||||
return 'default';
|
||||
}
|
||||
|
||||
export function useTheme(): Theme {
|
||||
const override = (useSetting('palette_override') ?? 'auto') as PaletteKey;
|
||||
const key = override === 'auto' ? autoKey() : override;
|
||||
return PALETTES[key as keyof typeof PALETTES] ?? PALETTES.default;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user