@hashport/react-client
Version:
React Context for hashport bridging operations
41 lines • 2.56 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { createContext } from 'react';
import { HashportClient } from '@hashport/sdk';
import { BridgeParamsProvider } from './bridgeParams';
import { useRainbowKitSigner } from '../hooks/useRainbowKitSigner';
import { RainbowKitBoilerPlate } from './rainbowKitProvider';
import { HashportApiProvider } from './hashportApi';
import { ConnectButton } from '@rainbow-me/rainbowkit';
export const HashportClientContext = createContext(undefined);
export const HashportClientProvider = ({ children, evmSigner, hederaSigner, customMirrorNodeCredentials, customMirrorNodeUrl, debug, persistOptions, mode = 'mainnet', disconnectedAccountsFallback = _jsx("p", { children: "Please connect signers for both EVM and Hedera networks" }), }) => {
const hashportClient = evmSigner &&
hederaSigner &&
new HashportClient({
evmSigner,
hederaSigner,
customMirrorNodeCredentials,
customMirrorNodeUrl,
debug,
mode,
persistOptions,
});
return (_jsx(HashportApiProvider, { mode: mode, children: _jsx(HashportClientContext.Provider, { value: hashportClient, children: _jsx(BridgeParamsProvider, { children: hashportClient ? children : disconnectedAccountsFallback }) }) }));
};
const HashportClientForRainbowKit = ({ children, renderConnectButton = (children, RainbowKitConnectButton) => {
return (_jsxs(_Fragment, { children: [_jsx(RainbowKitConnectButton, {}), children] }));
}, hederaSigner, mode = 'mainnet', disconnectedAccountsFallback = _jsx("p", { children: "Please connect signers for both EVM and Hedera networks" }), ...rest }) => {
const evmSigner = useRainbowKitSigner();
const hashportClient = evmSigner &&
hederaSigner &&
new HashportClient({
evmSigner,
hederaSigner,
mode,
...rest,
});
return (_jsx(HashportClientContext.Provider, { value: hashportClient, children: _jsx(BridgeParamsProvider, { children: renderConnectButton(hashportClient ? children : disconnectedAccountsFallback, ConnectButton) }) }));
};
export const HashportClientProviderWithRainbowKit = ({ children, rainbowKitProviderProps = {}, ...props }) => {
return (_jsx(HashportApiProvider, { mode: props.mode, children: _jsx(RainbowKitBoilerPlate, { ...rainbowKitProviderProps, children: _jsx(HashportClientForRainbowKit, { ...props, children: children }) }) }));
};
//# sourceMappingURL=hashportClient.js.map