Skip to content

Commit a4ced83

Browse files
committed
refactor: improve listeners
1 parent c70cebb commit a4ced83

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

seitu/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "seitu",
33
"displayName": "Seitu",
44
"type": "module",
5-
"version": "0.5.2",
5+
"version": "0.5.3",
66
"private": false,
77
"packageManager": "pnpm@10.32.1",
88
"author": "Valerii Strilets",

seitu/src/web/web-storage.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ describe('createWebStorage', () => {
9898
expect(callback).toHaveBeenCalledTimes(1)
9999

100100
window.localStorage.setItem('count', '99')
101-
window.dispatchEvent(new Event('storage'))
101+
window.dispatchEvent(new StorageEvent('storage', { key: 'count' }))
102102
expect(callback).toHaveBeenCalledTimes(2)
103103
})
104104
})

seitu/src/web/web-storage.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,16 @@ export function createWebStorage<S extends SchemaStoreSchema>(
9999
},
100100
})
101101

102-
const listener = () => {
102+
const keys = Object.keys(options.schemas).map(key => options.keyTransform ? options.keyTransform(key) : key)
103+
104+
const listener = (e: StorageEvent) => {
103105
if (isInternalUpdate) {
104106
return
105107
}
106108

107-
store['~'].notify()
109+
if (e.key && keys.includes(e.key)) {
110+
store['~'].notify()
111+
}
108112
}
109113

110114
if (typeof window !== 'undefined') {

0 commit comments

Comments
 (0)