UNPKG

zustand

Version:

🐻 Bear necessities for state management in React

27 lines (23 loc) 768 B
'use strict'; var ReactExports = require('react'); var vanilla = require('zustand/vanilla'); const { useDebugValue, useSyncExternalStore } = ReactExports; const identity = (arg) => arg; function useStore(api, selector = identity) { const slice = useSyncExternalStore( api.subscribe, () => selector(api.getState()), () => selector(api.getInitialState()) ); useDebugValue(slice); return slice; } const createImpl = (createState) => { const api = vanilla.createStore(createState); const useBoundStore = (selector) => useStore(api, selector); Object.assign(useBoundStore, api); return useBoundStore; }; const create = (createState) => createState ? createImpl(createState) : createImpl; exports.create = create; exports.useStore = useStore;