UNPKG

@broxus/tvm-connect

Version:

TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.

35 lines (34 loc) 1.53 kB
'use client'; import * as React from 'react'; import { TvmConnectDialog } from '../components'; import { useSharedParams } from '../context/SharedParamsContext'; import { useTvmConnectService } from '../context/TvmConnectServiceContext'; import { useContext } from '../hooks'; import { TvmConnectDialogStore } from '../stores'; export const TvmConnectDialogStoreContext = React.createContext(null); export function useTvmConnectDialog() { return useContext(TvmConnectDialogStoreContext); } export function TvmConnectDialogStoreProvider({ agreementsNote, children, className, popupType, qrEnabled, recentMetaStorageKey, }) { const service = useTvmConnectService(); const params = useSharedParams(); const context = React.useMemo(() => new TvmConnectDialogStore(service, { popupType: popupType ?? params.popupType, qrEnabled: qrEnabled ?? params.qrEnabled, recentMetaStorageKey: recentMetaStorageKey ?? params.recentMetaStorageKey, }), [ params.popupType, params.qrEnabled, params.recentMetaStorageKey, popupType, qrEnabled, recentMetaStorageKey, service, ]); return (React.createElement(TvmConnectDialogStoreContext.Provider, { value: context }, children, React.createElement(TvmConnectDialog, { agreementsNote: agreementsNote, className: className, onClose: context.close }))); } if (process.env.NODE_ENV !== 'production') { TvmConnectDialogStoreContext.displayName = 'TvmConnectModalStoreContext'; }