修复lint errors
This commit is contained in:
@@ -29,26 +29,20 @@ type ColorModeContextProviderProps = {
|
||||
export const ColorModeContextProvider: React.FC<
|
||||
PropsWithChildren<ColorModeContextProviderProps>
|
||||
> = ({ children, defaultMode }) => {
|
||||
const [isMounted, setIsMounted] = useState(false);
|
||||
const [mode, setMode] = useState(defaultMode || "light");
|
||||
|
||||
useEffect(() => {
|
||||
setIsMounted(true);
|
||||
}, []);
|
||||
|
||||
const systemTheme = useMediaQuery(`(prefers-color-scheme: dark)`);
|
||||
|
||||
useEffect(() => {
|
||||
if (isMounted) {
|
||||
const theme = Cookies.get("theme") || (systemTheme ? "dark" : "light");
|
||||
setMode(theme);
|
||||
const [storedMode, setStoredMode] = useState<string | null>(() => {
|
||||
if (typeof window === "undefined") {
|
||||
return defaultMode ?? null;
|
||||
}
|
||||
}, [isMounted, systemTheme]);
|
||||
|
||||
return Cookies.get("theme") || defaultMode || null;
|
||||
});
|
||||
const mode = storedMode || (systemTheme ? "dark" : "light");
|
||||
|
||||
const toggleTheme = () => {
|
||||
const nextTheme = mode === "light" ? "dark" : "light";
|
||||
|
||||
setMode(nextTheme);
|
||||
setStoredMode(nextTheme);
|
||||
Cookies.set("theme", nextTheme);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user