@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.
32 lines (31 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRouteExecutionStoreContext = exports.useRouteExecutionStore = exports.RouteExecutionStoreProvider = exports.RouteExecutionStoreContext = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const createRouteExecutionStore_1 = require("./createRouteExecutionStore");
exports.RouteExecutionStoreContext = (0, react_1.createContext)(null);
function RouteExecutionStoreProvider({ children, ...props }) {
const storeRef = (0, react_1.useRef)();
if (!storeRef.current) {
storeRef.current = (0, createRouteExecutionStore_1.createRouteExecutionStore)(props);
}
return ((0, jsx_runtime_1.jsx)(exports.RouteExecutionStoreContext.Provider, { value: storeRef.current, children: children }));
}
exports.RouteExecutionStoreProvider = RouteExecutionStoreProvider;
function useRouteExecutionStore(selector, equalityFn) {
const useStore = (0, react_1.useContext)(exports.RouteExecutionStoreContext);
if (!useStore) {
throw new Error(`You forgot to wrap your component in <${RouteExecutionStoreProvider.name}>.`);
}
return useStore(selector, equalityFn);
}
exports.useRouteExecutionStore = useRouteExecutionStore;
function useRouteExecutionStoreContext() {
const useStore = (0, react_1.useContext)(exports.RouteExecutionStoreContext);
if (!useStore) {
throw new Error(`You forgot to wrap your component in <${RouteExecutionStoreProvider.name}>.`);
}
return useStore;
}
exports.useRouteExecutionStoreContext = useRouteExecutionStoreContext;