UNPKG

zustand

Version:

🐻 Bear necessities for state management in React

23 lines (20 loc) 665 B
import React from 'react'; import { createStore } from '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 = createStore(createState); const useBoundStore = (selector) => useStore(api, selector); Object.assign(useBoundStore, api); return useBoundStore; }; const create = (createState) => createState ? createImpl(createState) : createImpl; export { create, useStore };