@tonconnect/ui-react 2.4.0-beta.5 → 2.4.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { ActionConfiguration, Locales, TonConnectUI, UIPreferences, WalletsListConfiguration, ITonConnect, RequiredFeatures } from '@tonconnect/ui';
|
|
2
|
+
import { ActionConfiguration, Locales, TonConnectUI, UIPreferences, WalletsListConfiguration, ITonConnect, RequiredFeatures, AnalyticsSettings } from '@tonconnect/ui';
|
|
3
3
|
export declare const TonConnectUIContext: import('react').Context<TonConnectUI | null>;
|
|
4
4
|
export type TonConnectUIProviderProps = {
|
|
5
5
|
children: ReactNode;
|
|
@@ -68,6 +68,10 @@ export interface TonConnectUIProviderPropsBase {
|
|
|
68
68
|
* @default true
|
|
69
69
|
*/
|
|
70
70
|
enableAndroidBackHandler?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Analytics configuration forwarded to the underlying TonConnect SDK instance.
|
|
73
|
+
*/
|
|
74
|
+
analytics?: AnalyticsSettings;
|
|
71
75
|
}
|
|
72
76
|
declare const _default: import('react').NamedExoticComponent<TonConnectUIProviderProps>;
|
|
73
77
|
export default _default;
|
package/lib/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/utils/web.ts","../src/components/TonConnectUIProvider.tsx","../src/errors/ton-connect-ui-react.error.ts","../src/errors/ton-connect-provider-not-set.error.ts","../src/utils/errors.ts","../src/hooks/useTonConnectUI.ts","../src/components/TonConnectButton.tsx","../src/hooks/useTonWallet.ts","../src/hooks/useTonAddress.ts","../src/hooks/useTonConnectModal.ts","../src/hooks/useIsConnectionRestored.ts"],"sourcesContent":["export function isClientSide(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isServerSide(): boolean {\n return !isClientSide();\n}\n","import { createContext, FunctionComponent, memo, ReactNode, useState } from 'react';\nimport {\n ActionConfiguration,\n Locales,\n TonConnectUI,\n UIPreferences,\n WalletsListConfiguration\n} from '@tonconnect/ui';\nimport type { ITonConnect, RequiredFeatures } from '@tonconnect/ui';\nimport { isClientSide } from '../utils/web';\n\nexport const TonConnectUIContext = createContext<TonConnectUI | null>(null);\n\nexport type TonConnectUIProviderProps = {\n children: ReactNode;\n} & (\n | Partial<\n TonConnectUIProviderPropsBase &\n (TonConnectUIProviderPropsWithManifest | TonConnectUIProviderPropsWithConnector)\n >\n | TonConnectUIProviderPropsWithInstance\n);\n\nexport interface TonConnectUIProviderPropsWithManifest {\n /**\n * Url to the [manifest]{@link https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest} with the Dapp metadata that will be displayed in the user's wallet.\n * If not passed, manifest from `${window.location.origin}/tonconnect-manifest.json` will be taken.\n */\n manifestUrl: string;\n}\n\nexport interface TonConnectUIProviderPropsWithConnector {\n /**\n * TonConnect instance. Can be helpful if you use custom ITonConnect implementation, or use both of @tonconnect/sdk and @tonconnect/ui in your app.\n */\n connector: ITonConnect;\n}\n\nexport interface TonConnectUIProviderPropsWithInstance {\n /**\n * TonConnectUI instance. Can be helpful if TonConnectUI instance is used outside of React context.\n *\n * Note: TonConnect UI works as a singleton.\n * If you pass a custom instance, it will be stored in the global singleton\n * and reused by the library.\n */\n instance: TonConnectUI;\n}\n\nexport interface TonConnectUIProviderPropsBase {\n /**\n * Try to restore existing session and reconnect to the corresponding wallet.\n * @default true.\n */\n restoreConnection: boolean;\n\n /**\n * Language for the phrases it the UI elements.\n * @default system\n */\n language: Locales;\n\n /**\n * HTML element id to attach the modal window element. If not passed, `div#tc-widget-root` in the end of the <body> will be added and used.\n * @default `div#tc-widget-root`.\n */\n widgetRootId: string;\n\n /**\n * UI elements configuration.\n */\n uiPreferences?: UIPreferences;\n\n /**\n * Configuration for the wallets list in the connect wallet modal.\n */\n walletsListConfiguration?: WalletsListConfiguration;\n\n /**\n * Required features for wallets to be displayed in the connect wallet modal.\n */\n walletsRequiredFeatures?: RequiredFeatures;\n\n /**\n * Preferred features for wallets to be displayed in the connect wallet modal.\n */\n walletsPreferredFeatures?: RequiredFeatures;\n\n /**\n * Configuration for action-period (e.g. sendTransaction) UI elements: modals and notifications and wallet behaviour (return strategy).\n */\n actionsConfiguration?: ActionConfiguration;\n\n /**\n * Specifies whether the Android back button should be used to close modals and notifications on Android devices.\n * @default true\n */\n enableAndroidBackHandler?: boolean;\n}\n\nlet tonConnectUI: TonConnectUI | null = null;\n\n/**\n * Add TonConnectUIProvider to the root of the app. You can specify UI options using props.\n * All TonConnect UI hooks calls and `<TonConnectButton />` component must be placed inside `<TonConnectUIProvider>`.\n * @param children JSX to insert.\n * @param [options] additional options.\n * @constructor\n */\nconst TonConnectUIProvider: FunctionComponent<TonConnectUIProviderProps> = ({\n children,\n ...options\n}) => {\n const [uiInstance] = useState<TonConnectUI | null>(() => {\n if (!isClientSide()) {\n return null;\n }\n\n if (tonConnectUI !== null) {\n return tonConnectUI;\n }\n\n if ('instance' in options) {\n tonConnectUI = options.instance;\n } else {\n tonConnectUI = new TonConnectUI(options);\n }\n\n return tonConnectUI;\n });\n\n return (\n <TonConnectUIContext.Provider value={uiInstance}>{children}</TonConnectUIContext.Provider>\n );\n};\n\nexport default memo(TonConnectUIProvider);\n","import { TonConnectUIError } from '@tonconnect/ui';\n\n/**\n * Base class for TonConnectUIReact errors. You can check if the error was triggered by the @tonconnect/ui-react using `err instanceof TonConnectUIReactError`.\n */\nexport class TonConnectUIReactError extends TonConnectUIError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectUIReactError.prototype);\n }\n}\n","import { TonConnectUIReactError } from './ton-connect-ui-react.error';\n\n/**\n * Thrown when either <TonConnectProvider> not added to the top of the tags tree,\n * either there is an attempt using TonConnect UI hook or <TonConnectButton> inside <TonConnectProvider>\n */\nexport class TonConnectProviderNotSetError extends TonConnectUIReactError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectProviderNotSetError.prototype);\n }\n}\n","import { TonConnectUI } from '@tonconnect/ui';\nimport { TonConnectProviderNotSetError } from '../errors/ton-connect-provider-not-set.error';\n\nexport function checkProvider(provider: TonConnectUI | null): provider is TonConnectUI {\n if (!provider) {\n throw new TonConnectProviderNotSetError(\n 'You should add <TonConnectUIProvider> on the top of the app to use TonConnect'\n );\n }\n\n return true;\n}\n","import { useCallback, useContext } from 'react';\nimport { TonConnectUIContext } from '../components/TonConnectUIProvider';\nimport { TonConnectUI, TonConnectUiOptions } from '@tonconnect/ui';\nimport { checkProvider } from '../utils/errors';\nimport { isServerSide } from '../utils/web';\n\n/**\n * Use it to get access to the `TonConnectUI` instance and UI options updating function.\n */\nexport function useTonConnectUI(): [TonConnectUI, (options: TonConnectUiOptions) => void] {\n const tonConnectUI = useContext(TonConnectUIContext);\n const setOptions = useCallback(\n (options: TonConnectUiOptions) => {\n if (tonConnectUI) {\n tonConnectUI!.uiOptions = options;\n }\n },\n [tonConnectUI]\n );\n\n if (isServerSide()) {\n return [null as unknown as TonConnectUI, () => {}];\n }\n\n checkProvider(tonConnectUI);\n return [tonConnectUI!, setOptions];\n}\n","import { CSSProperties, FunctionComponent, memo, useEffect } from 'react';\nimport { useTonConnectUI } from '../hooks/useTonConnectUI';\n\nconst buttonRootId = 'ton-connect-button';\n\nexport interface TonConnectButtonProps {\n className?: string;\n\n style?: CSSProperties;\n}\n\n/**\n * TonConnect Button is universal UI component for initializing connection. After wallet is connected it transforms to a wallet menu.\n * It is recommended to place it in the top right corner of your app.\n * @param [className] css class to add to the button container.\n * @param [style] style to add to the button container.\n * @constructor\n */\nconst TonConnectButton: FunctionComponent<TonConnectButtonProps> = ({ className, style }) => {\n const [_, setOptions] = useTonConnectUI();\n\n useEffect(() => {\n setOptions({ buttonRootId });\n return () => setOptions({ buttonRootId: null });\n }, [setOptions]);\n\n return (\n <div\n id={buttonRootId}\n className={className}\n style={{ width: 'fit-content', ...style }}\n ></div>\n );\n};\n\nexport default memo(TonConnectButton);\n","import { useEffect, useState } from 'react';\nimport { ConnectedWallet, Wallet, WalletInfoWithOpenMethod } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Use it to get user's current ton wallet. If wallet is not connected hook will return null.\n */\nexport function useTonWallet(): Wallet | (Wallet & WalletInfoWithOpenMethod) | null {\n const [tonConnectUI] = useTonConnectUI();\n const [wallet, setWallet] = useState<Wallet | (Wallet & WalletInfoWithOpenMethod) | null>(\n tonConnectUI?.wallet || null\n );\n\n useEffect(() => {\n if (tonConnectUI) {\n setWallet(tonConnectUI.wallet);\n return tonConnectUI.onStatusChange((value: ConnectedWallet | null) => {\n setWallet(value);\n });\n }\n }, [tonConnectUI]);\n\n return wallet;\n}\n","import { CHAIN, toUserFriendlyAddress } from '@tonconnect/ui';\nimport { useTonWallet } from './useTonWallet';\nimport { useMemo } from 'react';\n\n/**\n * Use it to get user's current ton wallet address. If wallet is not connected hook will return empty string.\n * @param [userFriendly=true] allows to choose format of the address.\n */\nexport function useTonAddress(userFriendly = true): string {\n const wallet = useTonWallet();\n return useMemo(() => {\n if (wallet) {\n return userFriendly\n ? toUserFriendlyAddress(\n wallet.account.address,\n wallet.account.chain === CHAIN.TESTNET\n )\n : wallet.account.address;\n } else {\n return '';\n }\n }, [wallet, userFriendly, wallet?.account.address, wallet?.account.chain]);\n}\n","import { WalletsModal, WalletsModalState } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\nimport { useEffect, useState } from 'react';\n\n/**\n * Use it to get access to the open/close modal functions.\n */\nexport function useTonConnectModal(): Omit<WalletsModal, 'onStateChange'> {\n const [tonConnectUI] = useTonConnectUI();\n const [state, setState] = useState(tonConnectUI?.modal.state || null);\n\n useEffect(() => {\n if (tonConnectUI) {\n setState(tonConnectUI.modal.state);\n return tonConnectUI.onModalStateChange((value: WalletsModalState) => {\n setState(value);\n });\n }\n }, [tonConnectUI]);\n\n return {\n state: state,\n open: () => tonConnectUI?.modal.open(),\n close: () => tonConnectUI?.modal.close()\n };\n}\n","import { useEffect, useState } from 'react';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Indicates current status of the connection restoring process.\n */\nexport function useIsConnectionRestored(): boolean {\n const [restored, setRestored] = useState(false);\n const [tonConnectUI] = useTonConnectUI();\n\n useEffect(() => {\n if (tonConnectUI) {\n tonConnectUI.connectionRestored.then(() => setRestored(true));\n }\n }, [tonConnectUI]);\n\n return restored;\n}\n"],"names":["createContext","useState","TonConnectUI","memo","TonConnectUIError","tonConnectUI","useContext","useCallback","useEffect","jsx","useMemo","toUserFriendlyAddress","CHAIN"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/utils/web.ts","../src/components/TonConnectUIProvider.tsx","../src/errors/ton-connect-ui-react.error.ts","../src/errors/ton-connect-provider-not-set.error.ts","../src/utils/errors.ts","../src/hooks/useTonConnectUI.ts","../src/components/TonConnectButton.tsx","../src/hooks/useTonWallet.ts","../src/hooks/useTonAddress.ts","../src/hooks/useTonConnectModal.ts","../src/hooks/useIsConnectionRestored.ts"],"sourcesContent":["export function isClientSide(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isServerSide(): boolean {\n return !isClientSide();\n}\n","import { createContext, FunctionComponent, memo, ReactNode, useState } from 'react';\nimport {\n ActionConfiguration,\n Locales,\n TonConnectUI,\n UIPreferences,\n WalletsListConfiguration\n} from '@tonconnect/ui';\nimport type { ITonConnect, RequiredFeatures, AnalyticsSettings } from '@tonconnect/ui';\nimport { isClientSide } from '../utils/web';\n\nexport const TonConnectUIContext = createContext<TonConnectUI | null>(null);\n\nexport type TonConnectUIProviderProps = {\n children: ReactNode;\n} & (\n | Partial<\n TonConnectUIProviderPropsBase &\n (TonConnectUIProviderPropsWithManifest | TonConnectUIProviderPropsWithConnector)\n >\n | TonConnectUIProviderPropsWithInstance\n);\n\nexport interface TonConnectUIProviderPropsWithManifest {\n /**\n * Url to the [manifest]{@link https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest} with the Dapp metadata that will be displayed in the user's wallet.\n * If not passed, manifest from `${window.location.origin}/tonconnect-manifest.json` will be taken.\n */\n manifestUrl: string;\n}\n\nexport interface TonConnectUIProviderPropsWithConnector {\n /**\n * TonConnect instance. Can be helpful if you use custom ITonConnect implementation, or use both of @tonconnect/sdk and @tonconnect/ui in your app.\n */\n connector: ITonConnect;\n}\n\nexport interface TonConnectUIProviderPropsWithInstance {\n /**\n * TonConnectUI instance. Can be helpful if TonConnectUI instance is used outside of React context.\n *\n * Note: TonConnect UI works as a singleton.\n * If you pass a custom instance, it will be stored in the global singleton\n * and reused by the library.\n */\n instance: TonConnectUI;\n}\n\nexport interface TonConnectUIProviderPropsBase {\n /**\n * Try to restore existing session and reconnect to the corresponding wallet.\n * @default true.\n */\n restoreConnection: boolean;\n\n /**\n * Language for the phrases it the UI elements.\n * @default system\n */\n language: Locales;\n\n /**\n * HTML element id to attach the modal window element. If not passed, `div#tc-widget-root` in the end of the <body> will be added and used.\n * @default `div#tc-widget-root`.\n */\n widgetRootId: string;\n\n /**\n * UI elements configuration.\n */\n uiPreferences?: UIPreferences;\n\n /**\n * Configuration for the wallets list in the connect wallet modal.\n */\n walletsListConfiguration?: WalletsListConfiguration;\n\n /**\n * Required features for wallets to be displayed in the connect wallet modal.\n */\n walletsRequiredFeatures?: RequiredFeatures;\n\n /**\n * Preferred features for wallets to be displayed in the connect wallet modal.\n */\n walletsPreferredFeatures?: RequiredFeatures;\n\n /**\n * Configuration for action-period (e.g. sendTransaction) UI elements: modals and notifications and wallet behaviour (return strategy).\n */\n actionsConfiguration?: ActionConfiguration;\n\n /**\n * Specifies whether the Android back button should be used to close modals and notifications on Android devices.\n * @default true\n */\n enableAndroidBackHandler?: boolean;\n\n /**\n * Analytics configuration forwarded to the underlying TonConnect SDK instance.\n */\n analytics?: AnalyticsSettings;\n}\n\nlet tonConnectUI: TonConnectUI | null = null;\n\n/**\n * Add TonConnectUIProvider to the root of the app. You can specify UI options using props.\n * All TonConnect UI hooks calls and `<TonConnectButton />` component must be placed inside `<TonConnectUIProvider>`.\n * @param children JSX to insert.\n * @param [options] additional options.\n * @constructor\n */\nconst TonConnectUIProvider: FunctionComponent<TonConnectUIProviderProps> = ({\n children,\n ...options\n}) => {\n const [uiInstance] = useState<TonConnectUI | null>(() => {\n if (!isClientSide()) {\n return null;\n }\n\n if (tonConnectUI !== null) {\n return tonConnectUI;\n }\n\n if ('instance' in options) {\n tonConnectUI = options.instance;\n } else {\n tonConnectUI = new TonConnectUI(options);\n }\n\n return tonConnectUI;\n });\n\n return (\n <TonConnectUIContext.Provider value={uiInstance}>{children}</TonConnectUIContext.Provider>\n );\n};\n\nexport default memo(TonConnectUIProvider);\n","import { TonConnectUIError } from '@tonconnect/ui';\n\n/**\n * Base class for TonConnectUIReact errors. You can check if the error was triggered by the @tonconnect/ui-react using `err instanceof TonConnectUIReactError`.\n */\nexport class TonConnectUIReactError extends TonConnectUIError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectUIReactError.prototype);\n }\n}\n","import { TonConnectUIReactError } from './ton-connect-ui-react.error';\n\n/**\n * Thrown when either <TonConnectProvider> not added to the top of the tags tree,\n * either there is an attempt using TonConnect UI hook or <TonConnectButton> inside <TonConnectProvider>\n */\nexport class TonConnectProviderNotSetError extends TonConnectUIReactError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectProviderNotSetError.prototype);\n }\n}\n","import { TonConnectUI } from '@tonconnect/ui';\nimport { TonConnectProviderNotSetError } from '../errors/ton-connect-provider-not-set.error';\n\nexport function checkProvider(provider: TonConnectUI | null): provider is TonConnectUI {\n if (!provider) {\n throw new TonConnectProviderNotSetError(\n 'You should add <TonConnectUIProvider> on the top of the app to use TonConnect'\n );\n }\n\n return true;\n}\n","import { useCallback, useContext } from 'react';\nimport { TonConnectUIContext } from '../components/TonConnectUIProvider';\nimport { TonConnectUI, TonConnectUiOptions } from '@tonconnect/ui';\nimport { checkProvider } from '../utils/errors';\nimport { isServerSide } from '../utils/web';\n\n/**\n * Use it to get access to the `TonConnectUI` instance and UI options updating function.\n */\nexport function useTonConnectUI(): [TonConnectUI, (options: TonConnectUiOptions) => void] {\n const tonConnectUI = useContext(TonConnectUIContext);\n const setOptions = useCallback(\n (options: TonConnectUiOptions) => {\n if (tonConnectUI) {\n tonConnectUI!.uiOptions = options;\n }\n },\n [tonConnectUI]\n );\n\n if (isServerSide()) {\n return [null as unknown as TonConnectUI, () => {}];\n }\n\n checkProvider(tonConnectUI);\n return [tonConnectUI!, setOptions];\n}\n","import { CSSProperties, FunctionComponent, memo, useEffect } from 'react';\nimport { useTonConnectUI } from '../hooks/useTonConnectUI';\n\nconst buttonRootId = 'ton-connect-button';\n\nexport interface TonConnectButtonProps {\n className?: string;\n\n style?: CSSProperties;\n}\n\n/**\n * TonConnect Button is universal UI component for initializing connection. After wallet is connected it transforms to a wallet menu.\n * It is recommended to place it in the top right corner of your app.\n * @param [className] css class to add to the button container.\n * @param [style] style to add to the button container.\n * @constructor\n */\nconst TonConnectButton: FunctionComponent<TonConnectButtonProps> = ({ className, style }) => {\n const [_, setOptions] = useTonConnectUI();\n\n useEffect(() => {\n setOptions({ buttonRootId });\n return () => setOptions({ buttonRootId: null });\n }, [setOptions]);\n\n return (\n <div\n id={buttonRootId}\n className={className}\n style={{ width: 'fit-content', ...style }}\n ></div>\n );\n};\n\nexport default memo(TonConnectButton);\n","import { useEffect, useState } from 'react';\nimport { ConnectedWallet, Wallet, WalletInfoWithOpenMethod } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Use it to get user's current ton wallet. If wallet is not connected hook will return null.\n */\nexport function useTonWallet(): Wallet | (Wallet & WalletInfoWithOpenMethod) | null {\n const [tonConnectUI] = useTonConnectUI();\n const [wallet, setWallet] = useState<Wallet | (Wallet & WalletInfoWithOpenMethod) | null>(\n tonConnectUI?.wallet || null\n );\n\n useEffect(() => {\n if (tonConnectUI) {\n setWallet(tonConnectUI.wallet);\n return tonConnectUI.onStatusChange((value: ConnectedWallet | null) => {\n setWallet(value);\n });\n }\n }, [tonConnectUI]);\n\n return wallet;\n}\n","import { CHAIN, toUserFriendlyAddress } from '@tonconnect/ui';\nimport { useTonWallet } from './useTonWallet';\nimport { useMemo } from 'react';\n\n/**\n * Use it to get user's current ton wallet address. If wallet is not connected hook will return empty string.\n * @param [userFriendly=true] allows to choose format of the address.\n */\nexport function useTonAddress(userFriendly = true): string {\n const wallet = useTonWallet();\n return useMemo(() => {\n if (wallet) {\n return userFriendly\n ? toUserFriendlyAddress(\n wallet.account.address,\n wallet.account.chain === CHAIN.TESTNET\n )\n : wallet.account.address;\n } else {\n return '';\n }\n }, [wallet, userFriendly, wallet?.account.address, wallet?.account.chain]);\n}\n","import { WalletsModal, WalletsModalState } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\nimport { useEffect, useState } from 'react';\n\n/**\n * Use it to get access to the open/close modal functions.\n */\nexport function useTonConnectModal(): Omit<WalletsModal, 'onStateChange'> {\n const [tonConnectUI] = useTonConnectUI();\n const [state, setState] = useState(tonConnectUI?.modal.state || null);\n\n useEffect(() => {\n if (tonConnectUI) {\n setState(tonConnectUI.modal.state);\n return tonConnectUI.onModalStateChange((value: WalletsModalState) => {\n setState(value);\n });\n }\n }, [tonConnectUI]);\n\n return {\n state: state,\n open: () => tonConnectUI?.modal.open(),\n close: () => tonConnectUI?.modal.close()\n };\n}\n","import { useEffect, useState } from 'react';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Indicates current status of the connection restoring process.\n */\nexport function useIsConnectionRestored(): boolean {\n const [restored, setRestored] = useState(false);\n const [tonConnectUI] = useTonConnectUI();\n\n useEffect(() => {\n if (tonConnectUI) {\n tonConnectUI.connectionRestored.then(() => setRestored(true));\n }\n }, [tonConnectUI]);\n\n return restored;\n}\n"],"names":["createContext","useState","TonConnectUI","memo","TonConnectUIError","tonConnectUI","useContext","useCallback","useEffect","jsx","useMemo","toUserFriendlyAddress","CHAIN"],"mappings":"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"}
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/utils/web.ts","../src/components/TonConnectUIProvider.tsx","../src/errors/ton-connect-ui-react.error.ts","../src/errors/ton-connect-provider-not-set.error.ts","../src/utils/errors.ts","../src/hooks/useTonConnectUI.ts","../src/components/TonConnectButton.tsx","../src/hooks/useTonWallet.ts","../src/hooks/useTonAddress.ts","../src/hooks/useTonConnectModal.ts","../src/hooks/useIsConnectionRestored.ts"],"sourcesContent":["export function isClientSide(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isServerSide(): boolean {\n return !isClientSide();\n}\n","import { createContext, FunctionComponent, memo, ReactNode, useState } from 'react';\nimport {\n ActionConfiguration,\n Locales,\n TonConnectUI,\n UIPreferences,\n WalletsListConfiguration\n} from '@tonconnect/ui';\nimport type { ITonConnect, RequiredFeatures } from '@tonconnect/ui';\nimport { isClientSide } from '../utils/web';\n\nexport const TonConnectUIContext = createContext<TonConnectUI | null>(null);\n\nexport type TonConnectUIProviderProps = {\n children: ReactNode;\n} & (\n | Partial<\n TonConnectUIProviderPropsBase &\n (TonConnectUIProviderPropsWithManifest | TonConnectUIProviderPropsWithConnector)\n >\n | TonConnectUIProviderPropsWithInstance\n);\n\nexport interface TonConnectUIProviderPropsWithManifest {\n /**\n * Url to the [manifest]{@link https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest} with the Dapp metadata that will be displayed in the user's wallet.\n * If not passed, manifest from `${window.location.origin}/tonconnect-manifest.json` will be taken.\n */\n manifestUrl: string;\n}\n\nexport interface TonConnectUIProviderPropsWithConnector {\n /**\n * TonConnect instance. Can be helpful if you use custom ITonConnect implementation, or use both of @tonconnect/sdk and @tonconnect/ui in your app.\n */\n connector: ITonConnect;\n}\n\nexport interface TonConnectUIProviderPropsWithInstance {\n /**\n * TonConnectUI instance. Can be helpful if TonConnectUI instance is used outside of React context.\n *\n * Note: TonConnect UI works as a singleton.\n * If you pass a custom instance, it will be stored in the global singleton\n * and reused by the library.\n */\n instance: TonConnectUI;\n}\n\nexport interface TonConnectUIProviderPropsBase {\n /**\n * Try to restore existing session and reconnect to the corresponding wallet.\n * @default true.\n */\n restoreConnection: boolean;\n\n /**\n * Language for the phrases it the UI elements.\n * @default system\n */\n language: Locales;\n\n /**\n * HTML element id to attach the modal window element. If not passed, `div#tc-widget-root` in the end of the <body> will be added and used.\n * @default `div#tc-widget-root`.\n */\n widgetRootId: string;\n\n /**\n * UI elements configuration.\n */\n uiPreferences?: UIPreferences;\n\n /**\n * Configuration for the wallets list in the connect wallet modal.\n */\n walletsListConfiguration?: WalletsListConfiguration;\n\n /**\n * Required features for wallets to be displayed in the connect wallet modal.\n */\n walletsRequiredFeatures?: RequiredFeatures;\n\n /**\n * Preferred features for wallets to be displayed in the connect wallet modal.\n */\n walletsPreferredFeatures?: RequiredFeatures;\n\n /**\n * Configuration for action-period (e.g. sendTransaction) UI elements: modals and notifications and wallet behaviour (return strategy).\n */\n actionsConfiguration?: ActionConfiguration;\n\n /**\n * Specifies whether the Android back button should be used to close modals and notifications on Android devices.\n * @default true\n */\n enableAndroidBackHandler?: boolean;\n}\n\nlet tonConnectUI: TonConnectUI | null = null;\n\n/**\n * Add TonConnectUIProvider to the root of the app. You can specify UI options using props.\n * All TonConnect UI hooks calls and `<TonConnectButton />` component must be placed inside `<TonConnectUIProvider>`.\n * @param children JSX to insert.\n * @param [options] additional options.\n * @constructor\n */\nconst TonConnectUIProvider: FunctionComponent<TonConnectUIProviderProps> = ({\n children,\n ...options\n}) => {\n const [uiInstance] = useState<TonConnectUI | null>(() => {\n if (!isClientSide()) {\n return null;\n }\n\n if (tonConnectUI !== null) {\n return tonConnectUI;\n }\n\n if ('instance' in options) {\n tonConnectUI = options.instance;\n } else {\n tonConnectUI = new TonConnectUI(options);\n }\n\n return tonConnectUI;\n });\n\n return (\n <TonConnectUIContext.Provider value={uiInstance}>{children}</TonConnectUIContext.Provider>\n );\n};\n\nexport default memo(TonConnectUIProvider);\n","import { TonConnectUIError } from '@tonconnect/ui';\n\n/**\n * Base class for TonConnectUIReact errors. You can check if the error was triggered by the @tonconnect/ui-react using `err instanceof TonConnectUIReactError`.\n */\nexport class TonConnectUIReactError extends TonConnectUIError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectUIReactError.prototype);\n }\n}\n","import { TonConnectUIReactError } from './ton-connect-ui-react.error';\n\n/**\n * Thrown when either <TonConnectProvider> not added to the top of the tags tree,\n * either there is an attempt using TonConnect UI hook or <TonConnectButton> inside <TonConnectProvider>\n */\nexport class TonConnectProviderNotSetError extends TonConnectUIReactError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectProviderNotSetError.prototype);\n }\n}\n","import { TonConnectUI } from '@tonconnect/ui';\nimport { TonConnectProviderNotSetError } from '../errors/ton-connect-provider-not-set.error';\n\nexport function checkProvider(provider: TonConnectUI | null): provider is TonConnectUI {\n if (!provider) {\n throw new TonConnectProviderNotSetError(\n 'You should add <TonConnectUIProvider> on the top of the app to use TonConnect'\n );\n }\n\n return true;\n}\n","import { useCallback, useContext } from 'react';\nimport { TonConnectUIContext } from '../components/TonConnectUIProvider';\nimport { TonConnectUI, TonConnectUiOptions } from '@tonconnect/ui';\nimport { checkProvider } from '../utils/errors';\nimport { isServerSide } from '../utils/web';\n\n/**\n * Use it to get access to the `TonConnectUI` instance and UI options updating function.\n */\nexport function useTonConnectUI(): [TonConnectUI, (options: TonConnectUiOptions) => void] {\n const tonConnectUI = useContext(TonConnectUIContext);\n const setOptions = useCallback(\n (options: TonConnectUiOptions) => {\n if (tonConnectUI) {\n tonConnectUI!.uiOptions = options;\n }\n },\n [tonConnectUI]\n );\n\n if (isServerSide()) {\n return [null as unknown as TonConnectUI, () => {}];\n }\n\n checkProvider(tonConnectUI);\n return [tonConnectUI!, setOptions];\n}\n","import { CSSProperties, FunctionComponent, memo, useEffect } from 'react';\nimport { useTonConnectUI } from '../hooks/useTonConnectUI';\n\nconst buttonRootId = 'ton-connect-button';\n\nexport interface TonConnectButtonProps {\n className?: string;\n\n style?: CSSProperties;\n}\n\n/**\n * TonConnect Button is universal UI component for initializing connection. After wallet is connected it transforms to a wallet menu.\n * It is recommended to place it in the top right corner of your app.\n * @param [className] css class to add to the button container.\n * @param [style] style to add to the button container.\n * @constructor\n */\nconst TonConnectButton: FunctionComponent<TonConnectButtonProps> = ({ className, style }) => {\n const [_, setOptions] = useTonConnectUI();\n\n useEffect(() => {\n setOptions({ buttonRootId });\n return () => setOptions({ buttonRootId: null });\n }, [setOptions]);\n\n return (\n <div\n id={buttonRootId}\n className={className}\n style={{ width: 'fit-content', ...style }}\n ></div>\n );\n};\n\nexport default memo(TonConnectButton);\n","import { useEffect, useState } from 'react';\nimport { ConnectedWallet, Wallet, WalletInfoWithOpenMethod } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Use it to get user's current ton wallet. If wallet is not connected hook will return null.\n */\nexport function useTonWallet(): Wallet | (Wallet & WalletInfoWithOpenMethod) | null {\n const [tonConnectUI] = useTonConnectUI();\n const [wallet, setWallet] = useState<Wallet | (Wallet & WalletInfoWithOpenMethod) | null>(\n tonConnectUI?.wallet || null\n );\n\n useEffect(() => {\n if (tonConnectUI) {\n setWallet(tonConnectUI.wallet);\n return tonConnectUI.onStatusChange((value: ConnectedWallet | null) => {\n setWallet(value);\n });\n }\n }, [tonConnectUI]);\n\n return wallet;\n}\n","import { CHAIN, toUserFriendlyAddress } from '@tonconnect/ui';\nimport { useTonWallet } from './useTonWallet';\nimport { useMemo } from 'react';\n\n/**\n * Use it to get user's current ton wallet address. If wallet is not connected hook will return empty string.\n * @param [userFriendly=true] allows to choose format of the address.\n */\nexport function useTonAddress(userFriendly = true): string {\n const wallet = useTonWallet();\n return useMemo(() => {\n if (wallet) {\n return userFriendly\n ? toUserFriendlyAddress(\n wallet.account.address,\n wallet.account.chain === CHAIN.TESTNET\n )\n : wallet.account.address;\n } else {\n return '';\n }\n }, [wallet, userFriendly, wallet?.account.address, wallet?.account.chain]);\n}\n","import { WalletsModal, WalletsModalState } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\nimport { useEffect, useState } from 'react';\n\n/**\n * Use it to get access to the open/close modal functions.\n */\nexport function useTonConnectModal(): Omit<WalletsModal, 'onStateChange'> {\n const [tonConnectUI] = useTonConnectUI();\n const [state, setState] = useState(tonConnectUI?.modal.state || null);\n\n useEffect(() => {\n if (tonConnectUI) {\n setState(tonConnectUI.modal.state);\n return tonConnectUI.onModalStateChange((value: WalletsModalState) => {\n setState(value);\n });\n }\n }, [tonConnectUI]);\n\n return {\n state: state,\n open: () => tonConnectUI?.modal.open(),\n close: () => tonConnectUI?.modal.close()\n };\n}\n","import { useEffect, useState } from 'react';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Indicates current status of the connection restoring process.\n */\nexport function useIsConnectionRestored(): boolean {\n const [restored, setRestored] = useState(false);\n const [tonConnectUI] = useTonConnectUI();\n\n useEffect(() => {\n if (tonConnectUI) {\n tonConnectUI.connectionRestored.then(() => setRestored(true));\n }\n }, [tonConnectUI]);\n\n return restored;\n}\n"],"names":["tonConnectUI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,eAAwB;AACpC,SAAO,OAAO,WAAW;AAC7B;AAEO,SAAS,eAAwB;AACpC,SAAO,CAAC,aAAA;AACZ;ACKO,MAAM,sBAAsB,cAAmC,IAAI;AAyF1E,IAAI,eAAoC;AASxC,MAAM,uBAAqE,CAAC,OAGtE;AAHsE,eACxE;AAAA;AAAA,MADwE,IAErE,oBAFqE,IAErE;AAAA,IADH;AAAA;AAGA,QAAM,CAAC,UAAU,IAAI,SAA8B,MAAM;AACrD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,MAAM;AACvB,aAAO;AAAA,IACX;AAEA,QAAI,cAAc,SAAS;AACvB,qBAAe,QAAQ;AAAA,IAC3B,OAAO;AACH,qBAAe,IAAI,aAAa,OAAO;AAAA,IAC3C;AAEA,WAAO;AAAA,EACX,CAAC;AAED,6BACK,oBAAoB,UAApB,EAA6B,OAAO,YAAa,UAAS;AAEnE;AAEA,MAAA,yBAAe,KAAK,oBAAoB;ACnIjC,MAAM,+BAA+B,kBAAkB;AAAA,EAC1D,eAAe,MAA2C;AACtD,UAAM,GAAG,IAAI;AAEb,WAAO,eAAe,MAAM,uBAAuB,SAAS;AAAA,EAChE;AACJ;ACLO,MAAM,sCAAsC,uBAAuB;AAAA,EACtE,eAAe,MAA2C;AACtD,UAAM,GAAG,IAAI;AAEb,WAAO,eAAe,MAAM,8BAA8B,SAAS;AAAA,EACvE;AACJ;ACTO,SAAS,cAAc,UAAyD;AACnF,MAAI,CAAC,UAAU;AACX,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAER;AAEA,SAAO;AACX;ACFO,SAAS,kBAA0E;AACtF,QAAMA,gBAAe,WAAW,mBAAmB;AACnD,QAAM,aAAa;AAAA,IACf,CAAC,YAAiC;AAC9B,UAAIA,eAAc;AACd,QAAAA,cAAc,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,CAACA,aAAY;AAAA,EAAA;AAGjB,MAAI,gBAAgB;AAChB,WAAO,CAAC,MAAiC,MAAM;AAAA,IAAC,CAAC;AAAA,EACrD;AAEA,gBAAcA,aAAY;AAC1B,SAAO,CAACA,eAAe,UAAU;AACrC;ACvBA,MAAM,eAAe;AAerB,MAAM,mBAA6D,CAAC,EAAE,WAAW,YAAY;AACzF,QAAM,CAAC,GAAG,UAAU,IAAI,gBAAA;AAExB,YAAU,MAAM;AACZ,eAAW,EAAE,cAAc;AAC3B,WAAO,MAAM,WAAW,EAAE,cAAc,MAAM;AAAA,EAClD,GAAG,CAAC,UAAU,CAAC;AAEf,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,IAAI;AAAA,MACJ;AAAA,MACA,OAAO,iBAAE,OAAO,iBAAkB;AAAA,IAAM;AAAA,EAAA;AAGpD;AAEA,MAAA,qBAAe,KAAK,gBAAgB;AC5B7B,SAAS,eAAoE;AAChF,QAAM,CAACA,aAAY,IAAI,gBAAA;AACvB,QAAM,CAAC,QAAQ,SAAS,IAAI;AAAA,KACxBA,iBAAA,gBAAAA,cAAc,WAAU;AAAA,EAAA;AAG5B,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,gBAAUA,cAAa,MAAM;AAC7B,aAAOA,cAAa,eAAe,CAAC,UAAkC;AAClE,kBAAU,KAAK;AAAA,MACnB,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AACX;ACfO,SAAS,cAAc,eAAe,MAAc;AACvD,QAAM,SAAS,aAAA;AACf,SAAO,QAAQ,MAAM;AACjB,QAAI,QAAQ;AACR,aAAO,eACD;AAAA,QACI,OAAO,QAAQ;AAAA,QACf,OAAO,QAAQ,UAAU,MAAM;AAAA,MAAA,IAEnC,OAAO,QAAQ;AAAA,IACzB,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ,GAAG,CAAC,QAAQ,cAAc,iCAAQ,QAAQ,SAAS,iCAAQ,QAAQ,KAAK,CAAC;AAC7E;ACfO,SAAS,qBAA0D;AACtE,QAAM,CAACA,aAAY,IAAI,gBAAA;AACvB,QAAM,CAAC,OAAO,QAAQ,IAAI,UAASA,iBAAA,gBAAAA,cAAc,MAAM,UAAS,IAAI;AAEpE,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,eAASA,cAAa,MAAM,KAAK;AACjC,aAAOA,cAAa,mBAAmB,CAAC,UAA6B;AACjE,iBAAS,KAAK;AAAA,MAClB,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AAAA,IACH;AAAA,IACA,MAAM,MAAMA,iBAAA,gBAAAA,cAAc,MAAM;AAAA,IAChC,OAAO,MAAMA,iBAAA,gBAAAA,cAAc,MAAM;AAAA,EAAM;AAE/C;ACnBO,SAAS,0BAAmC;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,CAACA,aAAY,IAAI,gBAAA;AAEvB,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,MAAAA,cAAa,mBAAmB,KAAK,MAAM,YAAY,IAAI,CAAC;AAAA,IAChE;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AACX;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/utils/web.ts","../src/components/TonConnectUIProvider.tsx","../src/errors/ton-connect-ui-react.error.ts","../src/errors/ton-connect-provider-not-set.error.ts","../src/utils/errors.ts","../src/hooks/useTonConnectUI.ts","../src/components/TonConnectButton.tsx","../src/hooks/useTonWallet.ts","../src/hooks/useTonAddress.ts","../src/hooks/useTonConnectModal.ts","../src/hooks/useIsConnectionRestored.ts"],"sourcesContent":["export function isClientSide(): boolean {\n return typeof window !== 'undefined';\n}\n\nexport function isServerSide(): boolean {\n return !isClientSide();\n}\n","import { createContext, FunctionComponent, memo, ReactNode, useState } from 'react';\nimport {\n ActionConfiguration,\n Locales,\n TonConnectUI,\n UIPreferences,\n WalletsListConfiguration\n} from '@tonconnect/ui';\nimport type { ITonConnect, RequiredFeatures, AnalyticsSettings } from '@tonconnect/ui';\nimport { isClientSide } from '../utils/web';\n\nexport const TonConnectUIContext = createContext<TonConnectUI | null>(null);\n\nexport type TonConnectUIProviderProps = {\n children: ReactNode;\n} & (\n | Partial<\n TonConnectUIProviderPropsBase &\n (TonConnectUIProviderPropsWithManifest | TonConnectUIProviderPropsWithConnector)\n >\n | TonConnectUIProviderPropsWithInstance\n);\n\nexport interface TonConnectUIProviderPropsWithManifest {\n /**\n * Url to the [manifest]{@link https://github.com/ton-connect/docs/blob/main/requests-responses.md#app-manifest} with the Dapp metadata that will be displayed in the user's wallet.\n * If not passed, manifest from `${window.location.origin}/tonconnect-manifest.json` will be taken.\n */\n manifestUrl: string;\n}\n\nexport interface TonConnectUIProviderPropsWithConnector {\n /**\n * TonConnect instance. Can be helpful if you use custom ITonConnect implementation, or use both of @tonconnect/sdk and @tonconnect/ui in your app.\n */\n connector: ITonConnect;\n}\n\nexport interface TonConnectUIProviderPropsWithInstance {\n /**\n * TonConnectUI instance. Can be helpful if TonConnectUI instance is used outside of React context.\n *\n * Note: TonConnect UI works as a singleton.\n * If you pass a custom instance, it will be stored in the global singleton\n * and reused by the library.\n */\n instance: TonConnectUI;\n}\n\nexport interface TonConnectUIProviderPropsBase {\n /**\n * Try to restore existing session and reconnect to the corresponding wallet.\n * @default true.\n */\n restoreConnection: boolean;\n\n /**\n * Language for the phrases it the UI elements.\n * @default system\n */\n language: Locales;\n\n /**\n * HTML element id to attach the modal window element. If not passed, `div#tc-widget-root` in the end of the <body> will be added and used.\n * @default `div#tc-widget-root`.\n */\n widgetRootId: string;\n\n /**\n * UI elements configuration.\n */\n uiPreferences?: UIPreferences;\n\n /**\n * Configuration for the wallets list in the connect wallet modal.\n */\n walletsListConfiguration?: WalletsListConfiguration;\n\n /**\n * Required features for wallets to be displayed in the connect wallet modal.\n */\n walletsRequiredFeatures?: RequiredFeatures;\n\n /**\n * Preferred features for wallets to be displayed in the connect wallet modal.\n */\n walletsPreferredFeatures?: RequiredFeatures;\n\n /**\n * Configuration for action-period (e.g. sendTransaction) UI elements: modals and notifications and wallet behaviour (return strategy).\n */\n actionsConfiguration?: ActionConfiguration;\n\n /**\n * Specifies whether the Android back button should be used to close modals and notifications on Android devices.\n * @default true\n */\n enableAndroidBackHandler?: boolean;\n\n /**\n * Analytics configuration forwarded to the underlying TonConnect SDK instance.\n */\n analytics?: AnalyticsSettings;\n}\n\nlet tonConnectUI: TonConnectUI | null = null;\n\n/**\n * Add TonConnectUIProvider to the root of the app. You can specify UI options using props.\n * All TonConnect UI hooks calls and `<TonConnectButton />` component must be placed inside `<TonConnectUIProvider>`.\n * @param children JSX to insert.\n * @param [options] additional options.\n * @constructor\n */\nconst TonConnectUIProvider: FunctionComponent<TonConnectUIProviderProps> = ({\n children,\n ...options\n}) => {\n const [uiInstance] = useState<TonConnectUI | null>(() => {\n if (!isClientSide()) {\n return null;\n }\n\n if (tonConnectUI !== null) {\n return tonConnectUI;\n }\n\n if ('instance' in options) {\n tonConnectUI = options.instance;\n } else {\n tonConnectUI = new TonConnectUI(options);\n }\n\n return tonConnectUI;\n });\n\n return (\n <TonConnectUIContext.Provider value={uiInstance}>{children}</TonConnectUIContext.Provider>\n );\n};\n\nexport default memo(TonConnectUIProvider);\n","import { TonConnectUIError } from '@tonconnect/ui';\n\n/**\n * Base class for TonConnectUIReact errors. You can check if the error was triggered by the @tonconnect/ui-react using `err instanceof TonConnectUIReactError`.\n */\nexport class TonConnectUIReactError extends TonConnectUIError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectUIReactError.prototype);\n }\n}\n","import { TonConnectUIReactError } from './ton-connect-ui-react.error';\n\n/**\n * Thrown when either <TonConnectProvider> not added to the top of the tags tree,\n * either there is an attempt using TonConnect UI hook or <TonConnectButton> inside <TonConnectProvider>\n */\nexport class TonConnectProviderNotSetError extends TonConnectUIReactError {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectProviderNotSetError.prototype);\n }\n}\n","import { TonConnectUI } from '@tonconnect/ui';\nimport { TonConnectProviderNotSetError } from '../errors/ton-connect-provider-not-set.error';\n\nexport function checkProvider(provider: TonConnectUI | null): provider is TonConnectUI {\n if (!provider) {\n throw new TonConnectProviderNotSetError(\n 'You should add <TonConnectUIProvider> on the top of the app to use TonConnect'\n );\n }\n\n return true;\n}\n","import { useCallback, useContext } from 'react';\nimport { TonConnectUIContext } from '../components/TonConnectUIProvider';\nimport { TonConnectUI, TonConnectUiOptions } from '@tonconnect/ui';\nimport { checkProvider } from '../utils/errors';\nimport { isServerSide } from '../utils/web';\n\n/**\n * Use it to get access to the `TonConnectUI` instance and UI options updating function.\n */\nexport function useTonConnectUI(): [TonConnectUI, (options: TonConnectUiOptions) => void] {\n const tonConnectUI = useContext(TonConnectUIContext);\n const setOptions = useCallback(\n (options: TonConnectUiOptions) => {\n if (tonConnectUI) {\n tonConnectUI!.uiOptions = options;\n }\n },\n [tonConnectUI]\n );\n\n if (isServerSide()) {\n return [null as unknown as TonConnectUI, () => {}];\n }\n\n checkProvider(tonConnectUI);\n return [tonConnectUI!, setOptions];\n}\n","import { CSSProperties, FunctionComponent, memo, useEffect } from 'react';\nimport { useTonConnectUI } from '../hooks/useTonConnectUI';\n\nconst buttonRootId = 'ton-connect-button';\n\nexport interface TonConnectButtonProps {\n className?: string;\n\n style?: CSSProperties;\n}\n\n/**\n * TonConnect Button is universal UI component for initializing connection. After wallet is connected it transforms to a wallet menu.\n * It is recommended to place it in the top right corner of your app.\n * @param [className] css class to add to the button container.\n * @param [style] style to add to the button container.\n * @constructor\n */\nconst TonConnectButton: FunctionComponent<TonConnectButtonProps> = ({ className, style }) => {\n const [_, setOptions] = useTonConnectUI();\n\n useEffect(() => {\n setOptions({ buttonRootId });\n return () => setOptions({ buttonRootId: null });\n }, [setOptions]);\n\n return (\n <div\n id={buttonRootId}\n className={className}\n style={{ width: 'fit-content', ...style }}\n ></div>\n );\n};\n\nexport default memo(TonConnectButton);\n","import { useEffect, useState } from 'react';\nimport { ConnectedWallet, Wallet, WalletInfoWithOpenMethod } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Use it to get user's current ton wallet. If wallet is not connected hook will return null.\n */\nexport function useTonWallet(): Wallet | (Wallet & WalletInfoWithOpenMethod) | null {\n const [tonConnectUI] = useTonConnectUI();\n const [wallet, setWallet] = useState<Wallet | (Wallet & WalletInfoWithOpenMethod) | null>(\n tonConnectUI?.wallet || null\n );\n\n useEffect(() => {\n if (tonConnectUI) {\n setWallet(tonConnectUI.wallet);\n return tonConnectUI.onStatusChange((value: ConnectedWallet | null) => {\n setWallet(value);\n });\n }\n }, [tonConnectUI]);\n\n return wallet;\n}\n","import { CHAIN, toUserFriendlyAddress } from '@tonconnect/ui';\nimport { useTonWallet } from './useTonWallet';\nimport { useMemo } from 'react';\n\n/**\n * Use it to get user's current ton wallet address. If wallet is not connected hook will return empty string.\n * @param [userFriendly=true] allows to choose format of the address.\n */\nexport function useTonAddress(userFriendly = true): string {\n const wallet = useTonWallet();\n return useMemo(() => {\n if (wallet) {\n return userFriendly\n ? toUserFriendlyAddress(\n wallet.account.address,\n wallet.account.chain === CHAIN.TESTNET\n )\n : wallet.account.address;\n } else {\n return '';\n }\n }, [wallet, userFriendly, wallet?.account.address, wallet?.account.chain]);\n}\n","import { WalletsModal, WalletsModalState } from '@tonconnect/ui';\nimport { useTonConnectUI } from './useTonConnectUI';\nimport { useEffect, useState } from 'react';\n\n/**\n * Use it to get access to the open/close modal functions.\n */\nexport function useTonConnectModal(): Omit<WalletsModal, 'onStateChange'> {\n const [tonConnectUI] = useTonConnectUI();\n const [state, setState] = useState(tonConnectUI?.modal.state || null);\n\n useEffect(() => {\n if (tonConnectUI) {\n setState(tonConnectUI.modal.state);\n return tonConnectUI.onModalStateChange((value: WalletsModalState) => {\n setState(value);\n });\n }\n }, [tonConnectUI]);\n\n return {\n state: state,\n open: () => tonConnectUI?.modal.open(),\n close: () => tonConnectUI?.modal.close()\n };\n}\n","import { useEffect, useState } from 'react';\nimport { useTonConnectUI } from './useTonConnectUI';\n\n/**\n * Indicates current status of the connection restoring process.\n */\nexport function useIsConnectionRestored(): boolean {\n const [restored, setRestored] = useState(false);\n const [tonConnectUI] = useTonConnectUI();\n\n useEffect(() => {\n if (tonConnectUI) {\n tonConnectUI.connectionRestored.then(() => setRestored(true));\n }\n }, [tonConnectUI]);\n\n return restored;\n}\n"],"names":["tonConnectUI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,eAAwB;AACpC,SAAO,OAAO,WAAW;AAC7B;AAEO,SAAS,eAAwB;AACpC,SAAO,CAAC,aAAA;AACZ;ACKO,MAAM,sBAAsB,cAAmC,IAAI;AA8F1E,IAAI,eAAoC;AASxC,MAAM,uBAAqE,CAAC,OAGtE;AAHsE,eACxE;AAAA;AAAA,MADwE,IAErE,oBAFqE,IAErE;AAAA,IADH;AAAA;AAGA,QAAM,CAAC,UAAU,IAAI,SAA8B,MAAM;AACrD,QAAI,CAAC,gBAAgB;AACjB,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,MAAM;AACvB,aAAO;AAAA,IACX;AAEA,QAAI,cAAc,SAAS;AACvB,qBAAe,QAAQ;AAAA,IAC3B,OAAO;AACH,qBAAe,IAAI,aAAa,OAAO;AAAA,IAC3C;AAEA,WAAO;AAAA,EACX,CAAC;AAED,6BACK,oBAAoB,UAApB,EAA6B,OAAO,YAAa,UAAS;AAEnE;AAEA,MAAA,yBAAe,KAAK,oBAAoB;ACxIjC,MAAM,+BAA+B,kBAAkB;AAAA,EAC1D,eAAe,MAA2C;AACtD,UAAM,GAAG,IAAI;AAEb,WAAO,eAAe,MAAM,uBAAuB,SAAS;AAAA,EAChE;AACJ;ACLO,MAAM,sCAAsC,uBAAuB;AAAA,EACtE,eAAe,MAA2C;AACtD,UAAM,GAAG,IAAI;AAEb,WAAO,eAAe,MAAM,8BAA8B,SAAS;AAAA,EACvE;AACJ;ACTO,SAAS,cAAc,UAAyD;AACnF,MAAI,CAAC,UAAU;AACX,UAAM,IAAI;AAAA,MACN;AAAA,IAAA;AAAA,EAER;AAEA,SAAO;AACX;ACFO,SAAS,kBAA0E;AACtF,QAAMA,gBAAe,WAAW,mBAAmB;AACnD,QAAM,aAAa;AAAA,IACf,CAAC,YAAiC;AAC9B,UAAIA,eAAc;AACd,QAAAA,cAAc,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,IACA,CAACA,aAAY;AAAA,EAAA;AAGjB,MAAI,gBAAgB;AAChB,WAAO,CAAC,MAAiC,MAAM;AAAA,IAAC,CAAC;AAAA,EACrD;AAEA,gBAAcA,aAAY;AAC1B,SAAO,CAACA,eAAe,UAAU;AACrC;ACvBA,MAAM,eAAe;AAerB,MAAM,mBAA6D,CAAC,EAAE,WAAW,YAAY;AACzF,QAAM,CAAC,GAAG,UAAU,IAAI,gBAAA;AAExB,YAAU,MAAM;AACZ,eAAW,EAAE,cAAc;AAC3B,WAAO,MAAM,WAAW,EAAE,cAAc,MAAM;AAAA,EAClD,GAAG,CAAC,UAAU,CAAC;AAEf,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,IAAI;AAAA,MACJ;AAAA,MACA,OAAO,iBAAE,OAAO,iBAAkB;AAAA,IAAM;AAAA,EAAA;AAGpD;AAEA,MAAA,qBAAe,KAAK,gBAAgB;AC5B7B,SAAS,eAAoE;AAChF,QAAM,CAACA,aAAY,IAAI,gBAAA;AACvB,QAAM,CAAC,QAAQ,SAAS,IAAI;AAAA,KACxBA,iBAAA,gBAAAA,cAAc,WAAU;AAAA,EAAA;AAG5B,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,gBAAUA,cAAa,MAAM;AAC7B,aAAOA,cAAa,eAAe,CAAC,UAAkC;AAClE,kBAAU,KAAK;AAAA,MACnB,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AACX;ACfO,SAAS,cAAc,eAAe,MAAc;AACvD,QAAM,SAAS,aAAA;AACf,SAAO,QAAQ,MAAM;AACjB,QAAI,QAAQ;AACR,aAAO,eACD;AAAA,QACI,OAAO,QAAQ;AAAA,QACf,OAAO,QAAQ,UAAU,MAAM;AAAA,MAAA,IAEnC,OAAO,QAAQ;AAAA,IACzB,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ,GAAG,CAAC,QAAQ,cAAc,iCAAQ,QAAQ,SAAS,iCAAQ,QAAQ,KAAK,CAAC;AAC7E;ACfO,SAAS,qBAA0D;AACtE,QAAM,CAACA,aAAY,IAAI,gBAAA;AACvB,QAAM,CAAC,OAAO,QAAQ,IAAI,UAASA,iBAAA,gBAAAA,cAAc,MAAM,UAAS,IAAI;AAEpE,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,eAASA,cAAa,MAAM,KAAK;AACjC,aAAOA,cAAa,mBAAmB,CAAC,UAA6B;AACjE,iBAAS,KAAK;AAAA,MAClB,CAAC;AAAA,IACL;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AAAA,IACH;AAAA,IACA,MAAM,MAAMA,iBAAA,gBAAAA,cAAc,MAAM;AAAA,IAChC,OAAO,MAAMA,iBAAA,gBAAAA,cAAc,MAAM;AAAA,EAAM;AAE/C;ACnBO,SAAS,0BAAmC;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,CAACA,aAAY,IAAI,gBAAA;AAEvB,YAAU,MAAM;AACZ,QAAIA,eAAc;AACd,MAAAA,cAAa,mBAAmB,KAAK,MAAM,YAAY,IAAI,CAAC;AAAA,IAChE;AAAA,EACJ,GAAG,CAACA,aAAY,CAAC;AAEjB,SAAO;AACX;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonconnect/ui-react",
|
|
3
|
-
"version": "2.4.0-beta.
|
|
3
|
+
"version": "2.4.0-beta.6",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/ton-connect/sdk.git"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"vite-plugin-dts": "^4.5.4"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@tonconnect/ui": "2.4.0-beta.
|
|
51
|
+
"@tonconnect/ui": "2.4.0-beta.6"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"react": ">=17.0.0",
|