feat: save app state to local storage and remove losing battery
This commit is contained in:
@@ -3,9 +3,15 @@ import { AppContext, type AppContextProps } from "~/context/AppContext";
|
||||
|
||||
export const AppProvider = (props: { children?: ReactNode }) => {
|
||||
const [activeKitty, setActiveKitty] = useState(":r0:");
|
||||
const [brightness, setBrightness] = useState(100);
|
||||
const [volume, setVolume] = useState(100);
|
||||
const [state, setState] = useState<AppContextProps["state"]>("off");
|
||||
const [brightness, setBrightness] = useState(
|
||||
parseInt(localStorage.getItem("brightness") ?? "100"),
|
||||
);
|
||||
const [volume, setVolume] = useState(
|
||||
parseInt(localStorage.getItem("volume") ?? "100"),
|
||||
);
|
||||
const [state, setState] = useState<AppContextProps["state"]>(
|
||||
(localStorage.getItem("state") as AppContextProps["state"]) ?? "off",
|
||||
);
|
||||
|
||||
const [screenWidth, setScreenWidth] = useState(window.innerWidth);
|
||||
|
||||
@@ -19,6 +25,12 @@ export const AppProvider = (props: { children?: ReactNode }) => {
|
||||
return () => window.removeEventListener("resize", handleResize);
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem("state", state);
|
||||
localStorage.setItem("brightness", brightness.toString());
|
||||
localStorage.setItem("volume", volume.toString());
|
||||
}, [state, brightness, volume]);
|
||||
|
||||
return (
|
||||
<AppContext.Provider
|
||||
value={{
|
||||
|
||||
Reference in New Issue
Block a user