From b49d8f6762cbcfa65da433850add6b65de64901f Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Wed, 11 Sep 2024 17:52:18 +0200 Subject: [PATCH] feat: save app state to local storage and remove losing battery --- .../Waybar/Widgets/WaybarBatteryWidget.tsx | 2 +- src/providers/AppProvider.tsx | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/Waybar/Widgets/WaybarBatteryWidget.tsx b/src/components/Waybar/Widgets/WaybarBatteryWidget.tsx index 3fd4393..6b7cfd0 100644 --- a/src/components/Waybar/Widgets/WaybarBatteryWidget.tsx +++ b/src/components/Waybar/Widgets/WaybarBatteryWidget.tsx @@ -9,7 +9,7 @@ export const WaybarBatteryWidget = (props: { frequency: number }) => { useEffect(() => { const interval = setInterval(() => { - setBattery((x) => x - 1); + // setBattery((x) => x - 1); if (battery - 1 === 0) { // TODO: do something diff --git a/src/providers/AppProvider.tsx b/src/providers/AppProvider.tsx index 4cee683..e862907 100644 --- a/src/providers/AppProvider.tsx +++ b/src/providers/AppProvider.tsx @@ -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("off"); + const [brightness, setBrightness] = useState( + parseInt(localStorage.getItem("brightness") ?? "100"), + ); + const [volume, setVolume] = useState( + parseInt(localStorage.getItem("volume") ?? "100"), + ); + const [state, setState] = useState( + (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 (