@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.
26 lines (25 loc) • 1.11 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useRef } from 'react';
import { createRouteExecutionStore } from './createRouteExecutionStore';
export const RouteExecutionStoreContext = createContext(null);
export function RouteExecutionStoreProvider({ children, ...props }) {
const storeRef = useRef();
if (!storeRef.current) {
storeRef.current = createRouteExecutionStore(props);
}
return (_jsx(RouteExecutionStoreContext.Provider, { value: storeRef.current, children: children }));
}
export function useRouteExecutionStore(selector, equalityFn) {
const useStore = useContext(RouteExecutionStoreContext);
if (!useStore) {
throw new Error(`You forgot to wrap your component in <${RouteExecutionStoreProvider.name}>.`);
}
return useStore(selector, equalityFn);
}
export function useRouteExecutionStoreContext() {
const useStore = useContext(RouteExecutionStoreContext);
if (!useStore) {
throw new Error(`You forgot to wrap your component in <${RouteExecutionStoreProvider.name}>.`);
}
return useStore;
}