fix: SF squad never knows best

This commit is contained in:
cha0s 2022-03-20 03:14:56 -05:00
parent 097c9328ec
commit 842244e289

View File

@ -3,13 +3,15 @@ import {
useState,
} from '@flecks/react';
const useBrowserLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : () => {};
const useLocalStorage = (key, defaultValue) => {
const [value, setValue] = useState(defaultValue);
useLayoutEffect(() => {
useBrowserLayoutEffect(() => {
setValue(JSON.parse(window.localStorage.getItem(key) || JSON.stringify(defaultValue)));
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [key]);
useLayoutEffect(() => {
useBrowserLayoutEffect(() => {
window.localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue];