UNPKG

@lifi/widget

Version:

LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.

36 lines 1.36 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useContext, useRef } from 'react'; import { create } from 'zustand'; import { useShallow } from 'zustand/shallow'; const SplitSubvariantStoreContext = createContext(null); const shouldRecreateStore = (store, props) => { const { state } = store.getState(); return state !== props.state; }; export function SplitSubvariantStoreProvider({ children, ...props }) { const storeRef = useRef(null); if (!storeRef.current || shouldRecreateStore(storeRef.current, props)) { storeRef.current = createSplitSubvariantStore(props); } return (_jsx(SplitSubvariantStoreContext.Provider, { value: storeRef.current, children: children })); } function useSplitSubvariantStoreContext() { const useStore = useContext(SplitSubvariantStoreContext); if (!useStore) { throw new Error(`You forgot to wrap your component in <${SplitSubvariantStoreProvider.name}>.`); } return useStore; } export function useSplitSubvariantStore(selector) { const useStore = useSplitSubvariantStoreContext(); return useStore(useShallow(selector)); } const createSplitSubvariantStore = ({ state }) => create((set) => ({ state, setState(state) { set(() => ({ state, })); }, })); //# sourceMappingURL=useSplitSubvariantStore.js.map