UNPKG

zustand

Version:

🐻 Bear necessities for state management in React

26 lines (22 loc) 711 B
'use strict'; var React = require('react'); var vanilla = require('zustand/vanilla'); const identity = (arg) => arg; function useStore(api, selector = identity) { const slice = React.useSyncExternalStore( api.subscribe, () => selector(api.getState()), () => selector(api.getInitialState()) ); React.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;