Skip to content

Commit 76d4bf5

Browse files
committed
fix(storage listener): listen key remove
1 parent 826ca90 commit 76d4bf5

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@ export default function createPersistedState(
5959

6060
useEffect(() => {
6161
const handleStorage = (event: StorageEvent): void => {
62+
if (event.key === safeStorageKey && event.newValue === null && event.oldValue !== null) {
63+
let oldState = null
64+
65+
try {
66+
oldState = JSON.parse(event.oldValue)
67+
} catch (e) {
68+
console.error('use-persisted-state: Can\'t parse old value from storage', e)
69+
}
70+
71+
const oldValue = oldState && key in oldState ? oldState[key] as T : null
72+
73+
if (oldValue !== initialValue) setState(initialValue)
74+
}
75+
6276
if (event.key === safeStorageKey && event.newValue !== null) {
6377
let newState = null
6478

0 commit comments

Comments
 (0)