mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2026-08-02 07:25:21 -04:00
reduce theme context's unnecessary crap even more
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
export const useLocalStorage = (key: string) => {
|
||||
const [value, setValue] = useState(() => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let currentValue: any;
|
||||
try {
|
||||
currentValue = window.localStorage.getItem(key);
|
||||
} catch (e) {} // eslint-disable-line no-empty
|
||||
|
||||
return currentValue;
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (value !== null) {
|
||||
window.localStorage?.setItem(key, value);
|
||||
}
|
||||
}, [key, value]);
|
||||
|
||||
return [value, setValue];
|
||||
};
|
||||
Reference in New Issue
Block a user