2023-08-30 18:05:37 +08:00
|
|
|
import { useCallback } from "react";
|
|
|
|
|
import { useSetting } from "./Setting";
|
2023-07-20 13:45:41 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 深色模式hook
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
export function useDarkMode() {
|
2023-08-30 18:05:37 +08:00
|
|
|
const {
|
|
|
|
|
setting: { darkMode },
|
|
|
|
|
updateSetting,
|
|
|
|
|
} = useSetting();
|
2023-07-20 13:45:41 +08:00
|
|
|
|
2025-09-24 23:24:00 +08:00
|
|
|
const toggleDarkMode = useCallback(() => {
|
2025-10-15 12:43:24 +08:00
|
|
|
const nextMode = {
|
|
|
|
|
light: "dark",
|
|
|
|
|
dark: "auto",
|
|
|
|
|
auto: "light",
|
|
|
|
|
};
|
|
|
|
|
updateSetting({ darkMode: nextMode[darkMode] || "light" });
|
2023-08-31 00:18:57 +08:00
|
|
|
}, [darkMode, updateSetting]);
|
2023-08-30 18:05:37 +08:00
|
|
|
|
|
|
|
|
return { darkMode, toggleDarkMode };
|
2023-07-20 13:45:41 +08:00
|
|
|
}
|