useSyncExternalStore

This commit is contained in:
Primakov Alexandr Alexandrovich committed 2024-11-12 20:06:45 +03:00
1 parent bbcfef6e23
commit fd0eb66563
9 files changed
+172 -53

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
export const createStore = (initialState) => {
let state = initialState
const listeners = new Set<() => void>()
return {
getState: () => state,
subscribe: (listener) => {
listeners.add(listener)
return () => {listeners.delete(listener)}
},
setState: (newState) => {
state = newState
listeners.forEach((listener) => listener())
},
}
}