Mobile App design
Run Tests on Branches / Detect Changes (push) Successful in 10s
Run Tests on Branches / Backend Tests (push) Successful in 2m12s
Run Tests on Branches / Frontend Tests (push) Has been skipped
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m47s

This commit is contained in:
Ichitux
2026-07-09 13:33:54 +02:00
parent 5f604b11ba
commit 2f36ef685d
32 changed files with 1793 additions and 926 deletions
@@ -0,0 +1,43 @@
import React, { createContext, useContext, useEffect, useMemo } from 'react';
import { useColorScheme } from 'react-native';
import { useThemeStore } from '../store/themeStore';
import { colors, darkColors } from '../constants/theme';
import type { AppColors } from '../hooks/useThemeColor';
interface ThemeContextValue {
colors: AppColors;
isDark: boolean;
}
const ThemeContext = createContext<ThemeContextValue>({
colors,
isDark: false,
});
export function useThemeContext() {
return useContext(ThemeContext);
}
export function ThemeProvider({ children }: { children: React.ReactNode }) {
const systemScheme = useColorScheme();
const mode = useThemeStore((s) => s.mode);
const init = useThemeStore((s) => s.init);
useEffect(() => {
init();
}, []);
const value = useMemo(() => {
const isDark = mode === 'dark' || (mode === 'system' && systemScheme === 'dark');
return {
colors: isDark ? darkColors : colors,
isDark,
};
}, [mode, systemScheme]);
return (
<ThemeContext.Provider value={value}>
{children}
</ThemeContext.Provider>
);
}