fix: default theme

This commit is contained in:
hamster1963 2024-11-23 19:55:15 +08:00
parent 82a7e0f34d
commit b6b9eae76d
3 changed files with 16 additions and 3 deletions

View File

@ -4,6 +4,20 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script>
(function() {
const storageKey = 'vite-ui-theme';
const theme = localStorage.getItem(storageKey) || 'system';
const root = document.documentElement;
if (theme === 'system') {
const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
root.classList.add(systemTheme);
} else {
root.classList.add(theme);
}
})();
</script>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.0.0/css/flag-icons.min.css"

View File

@ -22,11 +22,10 @@ const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
export function ThemeProvider({
children,
defaultTheme = "system",
storageKey = "vite-ui-theme",
}: ThemeProviderProps) {
const [theme, setTheme] = useState<Theme>(
() => (localStorage.getItem(storageKey) as Theme) || defaultTheme,
() => (localStorage.getItem(storageKey) as Theme) || "system",
);
useEffect(() => {

View File

@ -11,7 +11,7 @@ const queryClient = new QueryClient();
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<ThemeProvider defaultTheme="light" storageKey="vite-ui-theme">
<ThemeProvider storageKey="vite-ui-theme">
<QueryClientProvider client={queryClient}>
<App />
<Toaster duration={1000}