sync then reload setting

This commit is contained in:
Gabe Yuan
2023-09-01 10:15:57 +08:00
parent 732a526a8e
commit b14a38e4fb
4 changed files with 26 additions and 17 deletions

View File

@@ -25,16 +25,20 @@ export function useStorage(key, defaultVal = null) {
await storage.del(key);
}, [key]);
useEffect(() => {
(async () => {
const val = await storage.getObj(key);
if (val) {
setData(val);
} else if (defaultVal) {
await storage.setObj(key, defaultVal);
}
})();
const reload = useCallback(async () => {
const val = await storage.getObj(key);
if (val) {
setData(val);
} else if (defaultVal) {
await storage.setObj(key, defaultVal);
}
}, [key, defaultVal]);
return { data, save, update, remove };
useEffect(() => {
(async () => {
await reload();
})();
}, [reload]);
return { data, save, update, remove, reload };
}