feat(app): add persistence of settings across sessions
This commit is contained in:
18
src/hooks/usePersistSettings.ts
Normal file
18
src/hooks/usePersistSettings.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { useRecoilValue } from "recoil";
|
||||
import useDebounce from "./useDebounce";
|
||||
import { iconWeightAtom, iconSizeAtom, iconColorAtom } from "../state/atoms";
|
||||
|
||||
export default function usePersistSettings() {
|
||||
const weight = useRecoilValue(iconWeightAtom);
|
||||
const size = useRecoilValue(iconSizeAtom);
|
||||
const color = useRecoilValue(iconColorAtom);
|
||||
|
||||
useDebounce(
|
||||
() => {
|
||||
const serializedState = JSON.stringify({ weight, size, color });
|
||||
window.localStorage.setItem("__phosphor_settings__", serializedState);
|
||||
},
|
||||
2000,
|
||||
[weight, size, color]
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user