feat: save app state to local storage and remove losing battery

This commit is contained in:
Pihkaal
2024-09-11 17:52:18 +02:00
parent f9f1fda026
commit b49d8f6762
2 changed files with 16 additions and 4 deletions

View File

@@ -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={{