UNPKG

zustand-di

Version:

dependency injection for zustand with react context

32 lines 847 B
// src/index.ts import { createElement, createContext as reactCreateContext, useContext, useRef } from "react"; import { useStoreWithEqualityFn } from "zustand/traditional"; var createContext = () => { const StoreContext = reactCreateContext(void 0); const Provider = ({ createStore, ...rest }) => { const storeRef = useRef(); return createElement(StoreContext.Provider, { value: storeRef.current ||= createStore(), ...rest }); }; const useStore = (selector, equalityFn) => { const store = useContext(StoreContext); if (store) { return useStoreWithEqualityFn(store, selector, equalityFn); } throw new Error( "Seems like you have not used zustand provider as an ancestor." ); }; return [Provider, useStore]; }; export { createContext }; //# sourceMappingURL=index.js.map