nav2/lib/store.ts
Primakov Alexandr Alexandrovich 0f211115cf a bit of types
2024-11-12 20:18:36 +03:00

17 lines
420 B
TypeScript

export const createStore = <StateType>(initialState: StateType) => {
let state: StateType = 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())
},
}
}