fix: hydrated for indexedDB
This commit is contained in:
parent
7b6fe66f2a
commit
886ffc0af8
|
@ -4,7 +4,12 @@ import { get, set, del, clear } from "idb-keyval";
|
||||||
class IndexedDBStorage implements StateStorage {
|
class IndexedDBStorage implements StateStorage {
|
||||||
public async getItem(name: string): Promise<string | null> {
|
public async getItem(name: string): Promise<string | null> {
|
||||||
try {
|
try {
|
||||||
return (await get(name)) || localStorage.getItem(name);
|
const value = (await get(name)) || localStorage.getItem(name);
|
||||||
|
const _value = JSON.parse(value);
|
||||||
|
if (_value?.state) {
|
||||||
|
_value.state._hasHydrated = true;
|
||||||
|
}
|
||||||
|
return JSON.stringify(_value);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return localStorage.getItem(name);
|
return localStorage.getItem(name);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +17,10 @@ class IndexedDBStorage implements StateStorage {
|
||||||
|
|
||||||
public async setItem(name: string, value: string): Promise<void> {
|
public async setItem(name: string, value: string): Promise<void> {
|
||||||
try {
|
try {
|
||||||
|
const _value = JSON.parse(value);
|
||||||
|
if (!_value?.state?._hasHydrated) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
await set(name, value);
|
await set(name, value);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
localStorage.setItem(name, value);
|
localStorage.setItem(name, value);
|
||||||
|
|
Loading…
Reference in New Issue