feat: možnost vypnout motýlky v nastavení
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 26s
CI / Build server (push) Successful in 29s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 2s
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 26s
CI / Build server (push) Successful in 29s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m53s
CI / Build and push Docker image (push) Successful in 46s
CI / Notify (push) Successful in 2s
This commit is contained in:
4 files changed
+53
-2
No files matched your search
@@ -7,6 +7,7 @@ const THEME_KEY = 'theme_preference';
|
||||
const ACCENT_HUE_KEY = 'accent_hue';
|
||||
const LEGACY_COLOR_THEME_KEY = 'color_theme';
|
||||
const STYLE_THEME_KEY = 'style_theme';
|
||||
const SHOW_BUTTERFLIES_KEY = 'show_butterflies';
|
||||
|
||||
export type ThemePreference = 'system' | 'light' | 'dark';
|
||||
|
||||
@@ -28,12 +29,14 @@ export type SettingsContextProps = {
|
||||
accentHue: number,
|
||||
effectiveDark: boolean,
|
||||
styleTheme: StyleTheme,
|
||||
showButterflies: boolean,
|
||||
setBankAccountNumber: (accountNumber?: string) => void,
|
||||
setBankAccountHolderName: (holderName?: string) => void,
|
||||
setHideSoupsOption: (hideSoups?: boolean) => void,
|
||||
setThemePreference: (theme: ThemePreference) => void,
|
||||
setAccentHue: (hue: number) => void,
|
||||
setStyleTheme: (theme: StyleTheme) => void,
|
||||
setShowButterflies: (show: boolean) => void,
|
||||
}
|
||||
|
||||
type ContextProps = {
|
||||
@@ -76,6 +79,15 @@ function getInitialStyleTheme(): StyleTheme {
|
||||
return 'simple';
|
||||
}
|
||||
|
||||
function getInitialShowButterflies(): boolean {
|
||||
try {
|
||||
return localStorage.getItem(SHOW_BUTTERFLIES_KEY) !== 'false';
|
||||
} catch {
|
||||
// localStorage nedostupný
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getInitialAccentHue(): number {
|
||||
try {
|
||||
const saved = localStorage.getItem(ACCENT_HUE_KEY);
|
||||
@@ -143,6 +155,7 @@ function useProvideSettings(): SettingsContextProps {
|
||||
const [themePreference, setTheme] = useState<ThemePreference>(getInitialTheme);
|
||||
const [accentHue, setHue] = useState<number>(getInitialAccentHue);
|
||||
const [styleTheme, setStyle] = useState<StyleTheme>(getInitialStyleTheme);
|
||||
const [showButterflies, setShowButterfliesState] = useState<boolean>(getInitialShowButterflies);
|
||||
const [effectiveDark, setEffectiveDark] = useState<boolean>(() => {
|
||||
try {
|
||||
const pref = localStorage.getItem(THEME_KEY) as ThemePreference | null;
|
||||
@@ -216,6 +229,10 @@ function useProvideSettings(): SettingsContextProps {
|
||||
document.documentElement.setAttribute('data-luncher-theme', styleTheme);
|
||||
}, [styleTheme]);
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem(SHOW_BUTTERFLIES_KEY, showButterflies ? 'true' : 'false');
|
||||
}, [showButterflies]);
|
||||
|
||||
// Aplikuje accent barvy při změně hue nebo přepnutí světlý/tmavý.
|
||||
// Tematické styly (Umamusume, My Little Pony, Hell Girl) mají vlastní pevnou paletu, accent barvu proto uplatňuje jen jednoduchý styl.
|
||||
useEffect(() => {
|
||||
@@ -251,6 +268,10 @@ function useProvideSettings(): SettingsContextProps {
|
||||
setStyle(theme);
|
||||
}
|
||||
|
||||
function setShowButterflies(show: boolean) {
|
||||
setShowButterfliesState(show);
|
||||
}
|
||||
|
||||
return {
|
||||
bankAccount,
|
||||
holderName,
|
||||
@@ -265,5 +286,7 @@ function useProvideSettings(): SettingsContextProps {
|
||||
setAccentHue,
|
||||
styleTheme,
|
||||
setStyleTheme,
|
||||
showButterflies,
|
||||
setShowButterflies,
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user