@daimo/pay 0.3.21 → 1.0.0
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.
- package/build/index.d.ts +132 -301
- package/build/package.json.js +103 -0
- package/build/package.json.js.map +1 -0
- package/build/src/assets/ScanIconWithLogos.js +34 -0
- package/build/src/assets/ScanIconWithLogos.js.map +1 -0
- package/build/src/assets/browsers.js +13 -0
- package/build/src/assets/browsers.js.map +1 -0
- package/build/src/assets/chains.js +152 -0
- package/build/src/assets/chains.js.map +1 -0
- package/build/src/assets/coins.js +6 -0
- package/build/src/assets/coins.js.map +1 -0
- package/build/src/assets/crepe.js +8 -0
- package/build/src/assets/crepe.js.map +1 -0
- package/build/src/assets/icons.js +28 -0
- package/build/src/assets/icons.js.map +1 -0
- package/build/src/assets/logos.js +131 -0
- package/build/src/assets/logos.js.map +1 -0
- package/build/src/assets/wallet.js +8 -0
- package/build/src/assets/wallet.js.map +1 -0
- package/build/src/assets/wave.js +6 -0
- package/build/src/assets/wave.js.map +1 -0
- package/build/src/components/Common/Alert/index.js +10 -0
- package/build/src/components/Common/Alert/index.js.map +1 -0
- package/build/src/components/Common/Alert/styles.js +55 -0
- package/build/src/components/Common/Alert/styles.js.map +1 -0
- package/build/src/components/Common/Avatar/index.js +66 -0
- package/build/src/components/Common/Avatar/index.js.map +1 -0
- package/build/src/components/Common/Avatar/styles.js +59 -0
- package/build/src/components/Common/Avatar/styles.js.map +1 -0
- package/build/src/components/Common/BrowserIcon/index.js +28 -0
- package/build/src/components/Common/BrowserIcon/index.js.map +1 -0
- package/build/src/components/Common/BrowserIcon/styles.js +20 -0
- package/build/src/components/Common/BrowserIcon/styles.js.map +1 -0
- package/build/src/components/Common/Button/index.js +38 -0
- package/build/src/components/Common/Button/index.js.map +1 -0
- package/build/src/components/Common/Button/styles.js +291 -0
- package/build/src/components/Common/Button/styles.js.map +1 -0
- package/build/src/components/Common/Chain/index.js +25 -0
- package/build/src/components/Common/Chain/index.js.map +1 -0
- package/build/src/components/Common/Chain/styles.js +94 -0
- package/build/src/components/Common/Chain/styles.js.map +1 -0
- package/build/src/components/Common/ChainSelectList/index.js +107 -0
- package/build/src/components/Common/ChainSelectList/index.js.map +1 -0
- package/build/src/components/Common/ChainSelectList/styles.js +228 -0
- package/build/src/components/Common/ChainSelectList/styles.js.map +1 -0
- package/build/src/components/Common/ConnectorList/index.js +70 -0
- package/build/src/components/Common/ConnectorList/index.js.map +1 -0
- package/build/src/components/Common/ConnectorList/styles.js +314 -0
- package/build/src/components/Common/ConnectorList/styles.js.map +1 -0
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +71 -0
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
- package/build/src/components/Common/CopyToClipboard/index.js +51 -0
- package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
- package/build/src/components/Common/CustomQRCode/QRCode.js +69 -0
- package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
- package/build/src/components/Common/CustomQRCode/index.js +22 -0
- package/build/src/components/Common/CustomQRCode/index.js.map +1 -0
- package/build/src/components/Common/CustomQRCode/styles.js +155 -0
- package/build/src/components/Common/CustomQRCode/styles.js.map +1 -0
- package/build/src/components/Common/FitText/index.js +27 -0
- package/build/src/components/Common/FitText/index.js.map +1 -0
- package/build/src/components/Common/Modal/index.js +297 -0
- package/build/src/components/Common/Modal/index.js.map +1 -0
- package/build/src/components/Common/Modal/styles.js +660 -0
- package/build/src/components/Common/Modal/styles.js.map +1 -0
- package/build/src/components/Common/OptionsList/index.js +106 -0
- package/build/src/components/Common/OptionsList/index.js.map +1 -0
- package/build/src/components/Common/OptionsList/styles.js +165 -0
- package/build/src/components/Common/OptionsList/styles.js.map +1 -0
- package/build/src/components/Common/OrderHeader/index.js +215 -0
- package/build/src/components/Common/OrderHeader/index.js.map +1 -0
- package/build/src/components/Common/Portal/index.js +31 -0
- package/build/src/components/Common/Portal/index.js.map +1 -0
- package/build/src/components/Common/PoweredByFooter/index.js +44 -0
- package/build/src/components/Common/PoweredByFooter/index.js.map +1 -0
- package/build/src/components/Common/ScrollArea/index.js +62 -0
- package/build/src/components/Common/ScrollArea/index.js.map +1 -0
- package/build/src/components/Common/ScrollArea/styles.js +168 -0
- package/build/src/components/Common/ScrollArea/styles.js.map +1 -0
- package/build/src/components/Common/Spinner/index.js +24 -0
- package/build/src/components/Common/Spinner/index.js.map +1 -0
- package/build/src/components/Common/Spinner/styles.js +22 -0
- package/build/src/components/Common/Spinner/styles.js.map +1 -0
- package/build/src/components/Common/ThemedButton/index.js +25 -0
- package/build/src/components/Common/ThemedButton/index.js.map +1 -0
- package/build/src/components/Common/ThemedButton/styles.js +152 -0
- package/build/src/components/Common/ThemedButton/styles.js.map +1 -0
- package/build/src/components/Common/Tooltip/index.js +97 -0
- package/build/src/components/Common/Tooltip/index.js.map +1 -0
- package/build/src/components/Common/Tooltip/styles.js +81 -0
- package/build/src/components/Common/Tooltip/styles.js.map +1 -0
- package/build/src/components/DaimoPay.js +232 -0
- package/build/src/components/DaimoPay.js.map +1 -0
- package/build/src/components/DaimoPayButton/index.js +133 -0
- package/build/src/components/DaimoPayButton/index.js.map +1 -0
- package/build/src/components/DaimoPayButton/styles.js +50 -0
- package/build/src/components/DaimoPayButton/styles.js.map +1 -0
- package/build/src/components/DaimoPayModal/ConnectUsing.js +45 -0
- package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +202 -0
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +133 -0
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +75 -0
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
- package/build/src/components/DaimoPayModal/index.js +140 -0
- package/build/src/components/DaimoPayModal/index.js.map +1 -0
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +21 -0
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
- package/build/src/components/Pages/About/graphics.js +187 -0
- package/build/src/components/Pages/About/graphics.js.map +1 -0
- package/build/src/components/Pages/About/index.js +131 -0
- package/build/src/components/Pages/About/index.js.map +1 -0
- package/build/src/components/Pages/About/styles.js +144 -0
- package/build/src/components/Pages/About/styles.js.map +1 -0
- package/build/src/components/Pages/Confirmation/index.js +105 -0
- package/build/src/components/Pages/Confirmation/index.js.map +1 -0
- package/build/src/components/Pages/Connectors/index.js +20 -0
- package/build/src/components/Pages/Connectors/index.js.map +1 -0
- package/build/src/components/Pages/Connectors/styles.js +267 -0
- package/build/src/components/Pages/Connectors/styles.js.map +1 -0
- package/build/src/components/Pages/DownloadApp/index.js +30 -0
- package/build/src/components/Pages/DownloadApp/index.js.map +1 -0
- package/build/src/components/Pages/MobileConnectors/index.js +73 -0
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -0
- package/build/src/components/Pages/MobileConnectors/styles.js +65 -0
- package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -0
- package/build/src/components/Pages/Onboarding/index.js +18 -0
- package/build/src/components/Pages/Onboarding/index.js.map +1 -0
- package/build/src/components/Pages/Onboarding/styles.js +229 -0
- package/build/src/components/Pages/Onboarding/styles.js.map +1 -0
- package/build/src/components/Pages/PayWithToken/index.js +204 -0
- package/build/src/components/Pages/PayWithToken/index.js.map +1 -0
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +32 -0
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
- package/build/src/components/Pages/SelectMethod/index.js +113 -0
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -0
- package/build/src/components/Pages/SelectToken/index.js +62 -0
- package/build/src/components/Pages/SelectToken/index.js.map +1 -0
- package/build/src/components/Pages/Solana/ConnectSolana/index.js +37 -0
- package/build/src/components/Pages/Solana/ConnectSolana/index.js.map +1 -0
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js +45 -0
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +85 -0
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
- package/build/src/components/Pages/Solana/SelectSolanaToken/index.js +38 -0
- package/build/src/components/Pages/Solana/SelectSolanaToken/index.js.map +1 -0
- package/build/src/components/Pages/SwitchNetworks/index.js +26 -0
- package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -0
- package/build/src/components/Pages/WaitingDepositAddress/index.js +51 -0
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
- package/build/src/components/Pages/WaitingOther/index.js +91 -0
- package/build/src/components/Pages/WaitingOther/index.js.map +1 -0
- package/build/src/components/Spinners/CircleSpinner/index.js +15 -0
- package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -0
- package/build/src/components/Spinners/CircleSpinner/styles.js +118 -0
- package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
- package/build/src/components/Spinners/SquircleSpinner/index.js +15 -0
- package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
- package/build/src/components/Spinners/SquircleSpinner/styles.js +66 -0
- package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
- package/build/src/components/contexts/solana/index.js +11 -0
- package/build/src/components/contexts/solana/index.js.map +1 -0
- package/build/src/components/contexts/web3/index.js +46 -0
- package/build/src/components/contexts/web3/index.js.map +1 -0
- package/build/src/constants/chainConfigs.js +306 -0
- package/build/src/constants/chainConfigs.js.map +1 -0
- package/build/src/constants/defaultTheme.js +6 -0
- package/build/src/constants/defaultTheme.js.map +1 -0
- package/build/src/defaultConfig.js +59 -0
- package/build/src/defaultConfig.js.map +1 -0
- package/build/src/defaultConnectors.js +43 -0
- package/build/src/defaultConnectors.js.map +1 -0
- package/build/src/hooks/connectors/useWalletConnectUri.js +93 -0
- package/build/src/hooks/connectors/useWalletConnectUri.js.map +1 -0
- package/build/src/hooks/useChainIsSupported.js +12 -0
- package/build/src/hooks/useChainIsSupported.js.map +1 -0
- package/build/src/hooks/useChains.js +11 -0
- package/build/src/hooks/useChains.js.map +1 -0
- package/build/src/hooks/useConnect.js +45 -0
- package/build/src/hooks/useConnect.js.map +1 -0
- package/build/src/hooks/useConnectCallback.js +18 -0
- package/build/src/hooks/useConnectCallback.js.map +1 -0
- package/build/src/hooks/useConnectors.js +29 -0
- package/build/src/hooks/useConnectors.js.map +1 -0
- package/build/src/hooks/useDaimoPayStatus.js +37 -0
- package/build/src/hooks/useDaimoPayStatus.js.map +1 -0
- package/build/src/hooks/useDepositAddressOptions.js +28 -0
- package/build/src/hooks/useDepositAddressOptions.js.map +1 -0
- package/build/src/hooks/useEnsFallbackConfig.js +16 -0
- package/build/src/hooks/useEnsFallbackConfig.js.map +1 -0
- package/build/src/hooks/useExternalPaymentOptions.js +46 -0
- package/build/src/hooks/useExternalPaymentOptions.js.map +1 -0
- package/build/src/hooks/useFitText.js +148 -0
- package/build/src/hooks/useFitText.js.map +1 -0
- package/build/src/hooks/useFocusTrap.js +60 -0
- package/build/src/hooks/useFocusTrap.js.map +1 -0
- package/build/src/hooks/useGoogleFont.js +45 -0
- package/build/src/hooks/useGoogleFont.js.map +1 -0
- package/build/src/hooks/useIsMobile.js +17 -0
- package/build/src/hooks/useIsMobile.js.map +1 -0
- package/build/src/hooks/useIsMounted.js +12 -0
- package/build/src/hooks/useIsMounted.js.map +1 -0
- package/build/src/hooks/useLastConnector.js +24 -0
- package/build/src/hooks/useLastConnector.js.map +1 -0
- package/build/src/hooks/useLocales.js +67 -0
- package/build/src/hooks/useLocales.js.map +1 -0
- package/build/src/hooks/useLockBodyScroll.js +53 -0
- package/build/src/hooks/useLockBodyScroll.js.map +1 -0
- package/build/src/hooks/useModal.js +35 -0
- package/build/src/hooks/useModal.js.map +1 -0
- package/build/src/hooks/usePayWithSolanaToken.js +50 -0
- package/build/src/hooks/usePayWithSolanaToken.js.map +1 -0
- package/build/src/hooks/usePayWithToken.js +57 -0
- package/build/src/hooks/usePayWithToken.js.map +1 -0
- package/build/src/hooks/usePaymentState.js +243 -0
- package/build/src/hooks/usePaymentState.js.map +1 -0
- package/build/src/hooks/usePrevious.js +14 -0
- package/build/src/hooks/usePrevious.js.map +1 -0
- package/build/src/hooks/useSolanaPaymentOptions.js +37 -0
- package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -0
- package/build/src/hooks/useWalletConnectModal.js +52 -0
- package/build/src/hooks/useWalletConnectModal.js.map +1 -0
- package/build/src/hooks/useWalletPaymentOptions.js +40 -0
- package/build/src/hooks/useWalletPaymentOptions.js.map +1 -0
- package/build/src/hooks/useWindowSize.js +23 -0
- package/build/src/hooks/useWindowSize.js.map +1 -0
- package/build/src/index.js +10 -0
- package/build/src/index.js.map +1 -0
- package/build/src/localizations/index.js +57 -0
- package/build/src/localizations/index.js.map +1 -0
- package/build/src/localizations/locales/ar-AE.js +97 -0
- package/build/src/localizations/locales/ar-AE.js.map +1 -0
- package/build/src/localizations/locales/ca-AD.js +95 -0
- package/build/src/localizations/locales/ca-AD.js.map +1 -0
- package/build/src/localizations/locales/ee-EE.js +95 -0
- package/build/src/localizations/locales/ee-EE.js.map +1 -0
- package/build/src/localizations/locales/en-US.js +95 -0
- package/build/src/localizations/locales/en-US.js.map +1 -0
- package/build/src/localizations/locales/es-ES.js +95 -0
- package/build/src/localizations/locales/es-ES.js.map +1 -0
- package/build/src/localizations/locales/fa-IR.js +95 -0
- package/build/src/localizations/locales/fa-IR.js.map +1 -0
- package/build/src/localizations/locales/fr-FR.js +95 -0
- package/build/src/localizations/locales/fr-FR.js.map +1 -0
- package/build/src/localizations/locales/ja-JP.js +95 -0
- package/build/src/localizations/locales/ja-JP.js.map +1 -0
- package/build/src/localizations/locales/pt-BR.js +95 -0
- package/build/src/localizations/locales/pt-BR.js.map +1 -0
- package/build/src/localizations/locales/ru-RU.js +95 -0
- package/build/src/localizations/locales/ru-RU.js.map +1 -0
- package/build/src/localizations/locales/tr-TR.js +95 -0
- package/build/src/localizations/locales/tr-TR.js.map +1 -0
- package/build/src/localizations/locales/vi-VN.js +95 -0
- package/build/src/localizations/locales/vi-VN.js.map +1 -0
- package/build/src/localizations/locales/zh-CN.js +95 -0
- package/build/src/localizations/locales/zh-CN.js.map +1 -0
- package/build/src/styles/defaultTheme.js +89 -0
- package/build/src/styles/defaultTheme.js.map +1 -0
- package/build/src/styles/index.js +329 -0
- package/build/src/styles/index.js.map +1 -0
- package/build/src/styles/styled/index.js +16 -0
- package/build/src/styles/styled/index.js.map +1 -0
- package/build/src/styles/themes/base.js +141 -0
- package/build/src/styles/themes/base.js.map +1 -0
- package/build/src/styles/themes/index.js +13 -0
- package/build/src/styles/themes/index.js.map +1 -0
- package/build/src/styles/themes/midnight.js +76 -0
- package/build/src/styles/themes/midnight.js.map +1 -0
- package/build/src/styles/themes/minimal.js +96 -0
- package/build/src/styles/themes/minimal.js.map +1 -0
- package/build/src/styles/themes/nouns.js +81 -0
- package/build/src/styles/themes/nouns.js.map +1 -0
- package/build/src/styles/themes/retro.js +106 -0
- package/build/src/styles/themes/retro.js.map +1 -0
- package/build/src/styles/themes/rounded.js +106 -0
- package/build/src/styles/themes/rounded.js.map +1 -0
- package/build/src/styles/themes/soft.js +71 -0
- package/build/src/styles/themes/soft.js.map +1 -0
- package/build/src/styles/themes/web95.js +132 -0
- package/build/src/styles/themes/web95.js.map +1 -0
- package/build/src/utils/exports.js +12 -0
- package/build/src/utils/exports.js.map +1 -0
- package/build/src/utils/index.js +39 -0
- package/build/src/utils/index.js.map +1 -0
- package/build/src/utils/p3.js +16 -0
- package/build/src/utils/p3.js.map +1 -0
- package/build/src/utils/platform.js +13 -0
- package/build/src/utils/platform.js.map +1 -0
- package/build/src/utils/trpc.js +14 -0
- package/build/src/utils/trpc.js.map +1 -0
- package/build/src/utils/wallets.js +14 -0
- package/build/src/utils/wallets.js.map +1 -0
- package/build/src/wallets/index.js +32 -0
- package/build/src/wallets/index.js.map +1 -0
- package/build/src/wallets/useWallets.js +86 -0
- package/build/src/wallets/useWallets.js.map +1 -0
- package/build/src/wallets/walletConfigs.js +362 -0
- package/build/src/wallets/walletConfigs.js.map +1 -0
- package/package.json +5 -5
- package/build/index.es.js +0 -11565
- package/build/index.es.js.map +0 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { DaimoPayOrderMode, DaimoPayOrderStatusSource, DaimoPayIntentStatus, retryBackoff, debugJson } from '@daimo/common';
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
import React, { createContext, useState, useEffect, useMemo, createElement } from 'react';
|
|
5
|
+
import { ThemeProvider } from 'styled-components';
|
|
6
|
+
import { WagmiContext, useAccount } from 'wagmi';
|
|
7
|
+
import { REQUIRED_CHAINS } from '../defaultConfig.js';
|
|
8
|
+
import { useChainIsSupported } from '../hooks/useChainIsSupported.js';
|
|
9
|
+
import { useChains } from '../hooks/useChains.js';
|
|
10
|
+
import { useConnectCallback } from '../hooks/useConnectCallback.js';
|
|
11
|
+
import { useThemeFont } from '../hooks/useGoogleFont.js';
|
|
12
|
+
import { usePaymentState } from '../hooks/usePaymentState.js';
|
|
13
|
+
import defaultTheme from '../styles/defaultTheme.js';
|
|
14
|
+
import { createTrpcClient } from '../utils/trpc.js';
|
|
15
|
+
import { DaimoPayModal } from './DaimoPayModal/index.js';
|
|
16
|
+
import { SolanaContextProvider } from './contexts/solana/index.js';
|
|
17
|
+
import { Web3ContextProvider } from './contexts/web3/index.js';
|
|
18
|
+
|
|
19
|
+
var ROUTES;
|
|
20
|
+
(function (ROUTES) {
|
|
21
|
+
ROUTES["SELECT_METHOD"] = "daimoPaySelectMethod";
|
|
22
|
+
ROUTES["SELECT_TOKEN"] = "daimoPaySelectToken";
|
|
23
|
+
ROUTES["WAITING_OTHER"] = "daimoPayWaitingOther";
|
|
24
|
+
ROUTES["SELECT_DEPOSIT_ADDRESS_CHAIN"] = "daimoPaySelectDepositAddressChain";
|
|
25
|
+
ROUTES["WAITING_DEPOSIT_ADDRESS"] = "daimoPayWaitingDepositAddress";
|
|
26
|
+
ROUTES["PAY_WITH_TOKEN"] = "daimoPayPayWithToken";
|
|
27
|
+
ROUTES["CONFIRMATION"] = "daimoPayConfirmation";
|
|
28
|
+
ROUTES["SOLANA_CONNECT"] = "daimoPaySolanaConnect";
|
|
29
|
+
ROUTES["SOLANA_CONNECTOR"] = "daimoPaySolanaConnector";
|
|
30
|
+
ROUTES["SOLANA_SELECT_TOKEN"] = "daimoPaySolanaSelectToken";
|
|
31
|
+
ROUTES["SOLANA_PAY_WITH_TOKEN"] = "daimoPaySolanaPayWithToken";
|
|
32
|
+
// Unused routes. Kept to minimize connectkit merge conflicts.
|
|
33
|
+
ROUTES["ONBOARDING"] = "onboarding";
|
|
34
|
+
ROUTES["ABOUT"] = "about";
|
|
35
|
+
ROUTES["CONNECTORS"] = "connectors";
|
|
36
|
+
ROUTES["MOBILECONNECTORS"] = "mobileConnectors";
|
|
37
|
+
ROUTES["CONNECT"] = "connect";
|
|
38
|
+
ROUTES["DOWNLOAD"] = "download";
|
|
39
|
+
ROUTES["SWITCHNETWORKS"] = "switchNetworks";
|
|
40
|
+
})(ROUTES || (ROUTES = {}));
|
|
41
|
+
/** Meant for internal use. This will be non-exported in a future SDK version. */
|
|
42
|
+
const Context = createContext(null);
|
|
43
|
+
const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto", customTheme, options, onConnect, onDisconnect, debugMode = false, payApiUrl = "https://pay-api.daimo.xyz", }) => {
|
|
44
|
+
// DaimoPayProvider must be within a WagmiProvider
|
|
45
|
+
if (!React.useContext(WagmiContext)) {
|
|
46
|
+
throw Error("DaimoPayProvider must be within a WagmiProvider");
|
|
47
|
+
}
|
|
48
|
+
// Only allow for mounting DaimoPayProvider once, so we avoid weird global
|
|
49
|
+
// state collisions.
|
|
50
|
+
if (React.useContext(Context)) {
|
|
51
|
+
throw new Error("Multiple, nested usages of DaimoPayProvider detected. Please use only one.");
|
|
52
|
+
}
|
|
53
|
+
useConnectCallback({
|
|
54
|
+
onConnect,
|
|
55
|
+
onDisconnect,
|
|
56
|
+
});
|
|
57
|
+
const chains = useChains();
|
|
58
|
+
for (const requiredChain of REQUIRED_CHAINS) {
|
|
59
|
+
if (!chains.some((c) => c.id === requiredChain.id)) {
|
|
60
|
+
throw new Error(`Daimo Pay requires chains ${REQUIRED_CHAINS.map((c) => c.name).join(", ")}. Use \`getDefaultConfig\` to automatically configure required chains.`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Default config options
|
|
64
|
+
const defaultOptions = {
|
|
65
|
+
language: "en-US",
|
|
66
|
+
hideBalance: false,
|
|
67
|
+
hideTooltips: false,
|
|
68
|
+
hideQuestionMarkCTA: false,
|
|
69
|
+
hideNoWalletCTA: false,
|
|
70
|
+
walletConnectCTA: "link",
|
|
71
|
+
hideRecentBadge: false,
|
|
72
|
+
avoidLayoutShift: true,
|
|
73
|
+
embedGoogleFonts: false,
|
|
74
|
+
truncateLongENSAddress: true,
|
|
75
|
+
walletConnectName: undefined,
|
|
76
|
+
reducedMotion: false,
|
|
77
|
+
disclaimer: null,
|
|
78
|
+
bufferPolyfill: true,
|
|
79
|
+
customAvatar: undefined,
|
|
80
|
+
initialChainId: undefined,
|
|
81
|
+
enforceSupportedChains: false,
|
|
82
|
+
ethereumOnboardingUrl: undefined,
|
|
83
|
+
walletOnboardingUrl: undefined,
|
|
84
|
+
overlayBlur: undefined,
|
|
85
|
+
};
|
|
86
|
+
const opts = Object.assign({}, defaultOptions, options);
|
|
87
|
+
if (typeof window !== "undefined") {
|
|
88
|
+
// Buffer Polyfill, needed for bundlers that don't provide Node polyfills (e.g CRA, Vite, etc.)
|
|
89
|
+
if (opts.bufferPolyfill)
|
|
90
|
+
window.Buffer = window.Buffer ?? Buffer;
|
|
91
|
+
// Some bundlers may need `global` and `process.env` polyfills as well
|
|
92
|
+
// Not implemented here to avoid unexpected behaviors, but leaving example here for future reference
|
|
93
|
+
/*
|
|
94
|
+
* window.global = window.global ?? window;
|
|
95
|
+
* window.process = window.process ?? { env: {} };
|
|
96
|
+
*/
|
|
97
|
+
}
|
|
98
|
+
const [ckTheme, setTheme] = useState(theme);
|
|
99
|
+
const [ckMode, setMode] = useState(mode);
|
|
100
|
+
const [ckCustomTheme, setCustomTheme] = useState(customTheme ?? {});
|
|
101
|
+
const [ckLang, setLang] = useState("en-US");
|
|
102
|
+
const [open, setOpen] = useState(false);
|
|
103
|
+
const [connector, setConnector] = useState({
|
|
104
|
+
id: "",
|
|
105
|
+
});
|
|
106
|
+
const [solanaConnector, setSolanaConnector] = useState();
|
|
107
|
+
const [route, setRoute] = useState(ROUTES.SELECT_METHOD);
|
|
108
|
+
const [errorMessage, setErrorMessage] = useState("");
|
|
109
|
+
const [resize, onResize] = useState(0);
|
|
110
|
+
// Include Google Font that is needed for a themes
|
|
111
|
+
if (opts.embedGoogleFonts)
|
|
112
|
+
useThemeFont(theme);
|
|
113
|
+
// Other Configuration
|
|
114
|
+
useEffect(() => setTheme(theme), [theme]);
|
|
115
|
+
useEffect(() => setLang(opts.language || "en-US"), [opts.language]);
|
|
116
|
+
useEffect(() => setErrorMessage(null), [route, open]);
|
|
117
|
+
// Check if chain is supported, elsewise redirect to switches page
|
|
118
|
+
const { chain, isConnected } = useAccount();
|
|
119
|
+
const isChainSupported = useChainIsSupported(chain?.id);
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
if (isConnected && opts.enforceSupportedChains && !isChainSupported) {
|
|
122
|
+
setOpen(true);
|
|
123
|
+
setRoute(ROUTES.SWITCHNETWORKS);
|
|
124
|
+
}
|
|
125
|
+
}, [isConnected, isChainSupported, chain, route, open]);
|
|
126
|
+
const log = debugMode ? console.log : () => { };
|
|
127
|
+
// Connect to the Daimo Pay TRPC API
|
|
128
|
+
const trpc = useMemo(() => createTrpcClient(payApiUrl), [payApiUrl]);
|
|
129
|
+
// PaymentInfo is a second, inner context object containing a DaimoPayOrder
|
|
130
|
+
// plus all associated status and callbacks. In order for useContext() and
|
|
131
|
+
// downstream hooks like useDaimoPayStatus() to work correctly, we must set
|
|
132
|
+
// set refresh context when payment status changes; done via setDaimoPayOrder.
|
|
133
|
+
const [daimoPayOrder, setDaimoPayOrder] = useState();
|
|
134
|
+
const paymentState = usePaymentState({
|
|
135
|
+
trpc,
|
|
136
|
+
daimoPayOrder,
|
|
137
|
+
setDaimoPayOrder,
|
|
138
|
+
setOpen,
|
|
139
|
+
log,
|
|
140
|
+
});
|
|
141
|
+
// When a payment is in progress, poll for status updates. Do this regardless
|
|
142
|
+
// of whether the modal is still being displayed for useDaimoPayStatus().
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
// Order just updated...
|
|
145
|
+
if (daimoPayOrder?.mode !== DaimoPayOrderMode.HYDRATED)
|
|
146
|
+
return;
|
|
147
|
+
const { sourceStatus, intentStatus } = daimoPayOrder;
|
|
148
|
+
let intervalMs = 0;
|
|
149
|
+
if (sourceStatus === DaimoPayOrderStatusSource.WAITING_PAYMENT) {
|
|
150
|
+
intervalMs = 2500; // additional, faster polling in WaitingOther
|
|
151
|
+
}
|
|
152
|
+
else if (intentStatus === DaimoPayIntentStatus.PENDING) {
|
|
153
|
+
intervalMs = 300; // poll fast from (payment initiated) to (finished)
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
log(`[PAY] polling in ${intervalMs}ms`);
|
|
159
|
+
setTimeout(() => retryBackoff("refreshOrder", () => paymentState.refreshOrder()), intervalMs);
|
|
160
|
+
}, [daimoPayOrder]);
|
|
161
|
+
const showPayment = async (modalOptions) => {
|
|
162
|
+
const { daimoPayOrder, payParams } = paymentState;
|
|
163
|
+
const id = daimoPayOrder?.id;
|
|
164
|
+
log(`[PAY] showing payment ${debugJson({ id, payParams, modalOptions })}`);
|
|
165
|
+
paymentState.setModalOptions(modalOptions);
|
|
166
|
+
if (daimoPayOrder &&
|
|
167
|
+
daimoPayOrder.mode === DaimoPayOrderMode.HYDRATED &&
|
|
168
|
+
(daimoPayOrder.destFastFinishTxHash || daimoPayOrder.destClaimTxHash)) {
|
|
169
|
+
setRoute(ROUTES.CONFIRMATION);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
setRoute(ROUTES.SELECT_METHOD);
|
|
173
|
+
}
|
|
174
|
+
setOpen(true);
|
|
175
|
+
};
|
|
176
|
+
const value = {
|
|
177
|
+
theme: ckTheme,
|
|
178
|
+
setTheme,
|
|
179
|
+
mode: ckMode,
|
|
180
|
+
setMode,
|
|
181
|
+
customTheme,
|
|
182
|
+
setCustomTheme,
|
|
183
|
+
lang: ckLang,
|
|
184
|
+
setLang,
|
|
185
|
+
open,
|
|
186
|
+
setOpen,
|
|
187
|
+
route,
|
|
188
|
+
setRoute,
|
|
189
|
+
connector,
|
|
190
|
+
setConnector,
|
|
191
|
+
solanaConnector,
|
|
192
|
+
setSolanaConnector,
|
|
193
|
+
onConnect,
|
|
194
|
+
// Other configuration
|
|
195
|
+
options: opts,
|
|
196
|
+
errorMessage,
|
|
197
|
+
debugMode,
|
|
198
|
+
log,
|
|
199
|
+
displayError: (message, code) => {
|
|
200
|
+
setErrorMessage(message);
|
|
201
|
+
console.log("---------DAIMOPAY DEBUG---------");
|
|
202
|
+
console.log(message);
|
|
203
|
+
if (code)
|
|
204
|
+
console.table(code);
|
|
205
|
+
console.log("---------/DAIMOPAY DEBUG---------");
|
|
206
|
+
},
|
|
207
|
+
resize,
|
|
208
|
+
triggerResize: () => onResize((prev) => prev + 1),
|
|
209
|
+
// Above: generic ConnectKit context
|
|
210
|
+
// Below: Daimo Pay context
|
|
211
|
+
showPayment,
|
|
212
|
+
paymentState,
|
|
213
|
+
trpc,
|
|
214
|
+
};
|
|
215
|
+
return createElement(Context.Provider, { value }, jsx(Web3ContextProvider, { enabled: open, children: jsxs(ThemeProvider, { theme: defaultTheme, children: [children, jsx(DaimoPayModal, { lang: ckLang, theme: ckTheme, mode: mode, customTheme: ckCustomTheme })] }) }));
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Provides context for DaimoPayButton and hooks. Place in app root or layout.
|
|
219
|
+
*/
|
|
220
|
+
const DaimoPayProvider = (props) => {
|
|
221
|
+
return (jsx(SolanaContextProvider, { solanaRpcUrl: props.solanaRpcUrl, children: jsx(DaimoPayProviderWithoutSolana, { ...props }) }));
|
|
222
|
+
};
|
|
223
|
+
/** Daimo Pay internal context. */
|
|
224
|
+
const usePayContext = () => {
|
|
225
|
+
const context = React.useContext(Context);
|
|
226
|
+
if (!context)
|
|
227
|
+
throw Error("DaimoPay Hook must be inside a Provider.");
|
|
228
|
+
return context;
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
export { Context, DaimoPayProvider, ROUTES, usePayContext };
|
|
232
|
+
//# sourceMappingURL=DaimoPay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaimoPay.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import useIsMounted from '../../hooks/useIsMounted.js';
|
|
4
|
+
import { usePayContext } from '../DaimoPay.js';
|
|
5
|
+
import { TextContainer } from './styles.js';
|
|
6
|
+
import { DaimoPayOrderMode, DaimoPayOrderStatusSource, writeDaimoPayOrderID, assertNotNull, DaimoPayIntentStatus } from '@daimo/common';
|
|
7
|
+
import { AnimatePresence } from 'framer-motion';
|
|
8
|
+
import { ResetContainer } from '../../styles/index.js';
|
|
9
|
+
import ThemedButton from '../Common/ThemedButton/index.js';
|
|
10
|
+
import { ThemeContainer } from '../Common/ThemedButton/styles.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A button that shows the Daimo Pay checkout. Replaces the traditional
|
|
14
|
+
* Connect Wallet » approve » execute sequence with a single action.
|
|
15
|
+
*/
|
|
16
|
+
function DaimoPayButton(props) {
|
|
17
|
+
const { theme, mode, customTheme } = props;
|
|
18
|
+
const context = usePayContext();
|
|
19
|
+
return (jsx(DaimoPayButtonCustom, { ...props, children: ({ show }) => (jsx(ResetContainer, { "$useTheme": theme ?? context.theme, "$useMode": mode ?? context.mode, "$customTheme": customTheme ?? context.customTheme, children: jsx(ThemeContainer, { onClick: !props.disabled && show, children: jsx(ThemedButton, { theme: theme ?? context.theme, mode: mode ?? context.mode, customTheme: customTheme ?? context.customTheme, children: jsx(DaimoPayButtonInner, { disabled: props.disabled }) }) }) })) }));
|
|
20
|
+
}
|
|
21
|
+
/** Like DaimoPayButton, but with custom styling. */
|
|
22
|
+
function DaimoPayButtonCustom(props) {
|
|
23
|
+
const isMounted = useIsMounted();
|
|
24
|
+
const context = usePayContext();
|
|
25
|
+
// Pre-load payment info in background.
|
|
26
|
+
// Reload when any of the info changes.
|
|
27
|
+
let payParams = "appId" in props
|
|
28
|
+
? {
|
|
29
|
+
appId: props.appId,
|
|
30
|
+
toChain: props.toChain,
|
|
31
|
+
toAddress: props.toAddress,
|
|
32
|
+
toToken: props.toToken,
|
|
33
|
+
toUnits: props.toUnits,
|
|
34
|
+
toCallData: props.toCallData,
|
|
35
|
+
isAmountEditable: props.amountEditable ?? false,
|
|
36
|
+
intent: props.intent,
|
|
37
|
+
paymentOptions: props.paymentOptions,
|
|
38
|
+
preferredChains: props.preferredChains,
|
|
39
|
+
preferredTokens: props.preferredTokens,
|
|
40
|
+
}
|
|
41
|
+
: null;
|
|
42
|
+
let payId = "payId" in props ? props.payId : null;
|
|
43
|
+
const { paymentState } = context;
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (payId != null) {
|
|
46
|
+
paymentState.setPayId(payId);
|
|
47
|
+
}
|
|
48
|
+
else if (payParams != null) {
|
|
49
|
+
paymentState.setPayParams(payParams);
|
|
50
|
+
}
|
|
51
|
+
}, [payId, ...Object.values(payParams || {})]);
|
|
52
|
+
// Payment events: call these three event handlers.
|
|
53
|
+
const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;
|
|
54
|
+
const order = paymentState.daimoPayOrder;
|
|
55
|
+
const hydOrder = order?.mode === DaimoPayOrderMode.HYDRATED ? order : null;
|
|
56
|
+
const isStarted = hydOrder?.sourceStatus !== DaimoPayOrderStatusSource.WAITING_PAYMENT;
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (hydOrder == null || !isStarted)
|
|
59
|
+
return;
|
|
60
|
+
onPaymentStarted?.({
|
|
61
|
+
paymentId: writeDaimoPayOrderID(hydOrder.id),
|
|
62
|
+
type: "payment_started",
|
|
63
|
+
chainId: assertNotNull(hydOrder.sourceTokenAmount).token.chainId,
|
|
64
|
+
txHash: assertNotNull(hydOrder.sourceInitiateTxHash),
|
|
65
|
+
});
|
|
66
|
+
}, [isStarted]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (hydOrder == null)
|
|
69
|
+
return;
|
|
70
|
+
if (hydOrder.intentStatus === DaimoPayIntentStatus.PENDING)
|
|
71
|
+
return;
|
|
72
|
+
const commonFields = {
|
|
73
|
+
paymentId: writeDaimoPayOrderID(hydOrder.id),
|
|
74
|
+
chainId: assertNotNull(hydOrder.destFinalCallTokenAmount).token.chainId,
|
|
75
|
+
txHash: assertNotNull(hydOrder.destFastFinishTxHash ?? hydOrder.destClaimTxHash),
|
|
76
|
+
};
|
|
77
|
+
if (hydOrder.intentStatus === DaimoPayIntentStatus.SUCCESSFUL) {
|
|
78
|
+
onPaymentCompleted?.({ type: "payment_completed", ...commonFields });
|
|
79
|
+
}
|
|
80
|
+
else if (hydOrder.intentStatus === DaimoPayIntentStatus.REFUNDED) {
|
|
81
|
+
onPaymentBounced?.({ type: "payment_bounced", ...commonFields });
|
|
82
|
+
}
|
|
83
|
+
}, [hydOrder?.intentStatus]);
|
|
84
|
+
// Validation
|
|
85
|
+
if ((payId == null) == (payParams == null)) {
|
|
86
|
+
throw new Error("Must specify either payId or appId, not both");
|
|
87
|
+
}
|
|
88
|
+
const { children, closeOnSuccess } = props;
|
|
89
|
+
const modalOptions = { closeOnSuccess };
|
|
90
|
+
const show = () => context.showPayment(modalOptions);
|
|
91
|
+
const hide = () => context.setOpen(false);
|
|
92
|
+
if (!isMounted)
|
|
93
|
+
return null;
|
|
94
|
+
return jsx(Fragment, { children: children({ show, hide }) });
|
|
95
|
+
}
|
|
96
|
+
DaimoPayButtonCustom.displayName = "DaimoPayButton.Custom";
|
|
97
|
+
DaimoPayButton.Custom = DaimoPayButtonCustom;
|
|
98
|
+
const contentVariants = {
|
|
99
|
+
initial: {
|
|
100
|
+
zIndex: 2,
|
|
101
|
+
opacity: 0,
|
|
102
|
+
x: "-100%",
|
|
103
|
+
},
|
|
104
|
+
animate: {
|
|
105
|
+
opacity: 1,
|
|
106
|
+
x: 0.1,
|
|
107
|
+
transition: {
|
|
108
|
+
duration: 0.4,
|
|
109
|
+
ease: [0.25, 1, 0.5, 1],
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
exit: {
|
|
113
|
+
zIndex: 1,
|
|
114
|
+
opacity: 0,
|
|
115
|
+
x: "-100%",
|
|
116
|
+
pointerEvents: "none",
|
|
117
|
+
position: "absolute",
|
|
118
|
+
transition: {
|
|
119
|
+
duration: 0.4,
|
|
120
|
+
ease: [0.25, 1, 0.5, 1],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
function DaimoPayButtonInner({ disabled }) {
|
|
125
|
+
const { paymentState } = usePayContext();
|
|
126
|
+
const label = paymentState?.daimoPayOrder?.metadata?.intent ?? "Pay";
|
|
127
|
+
return (jsx(AnimatePresence, { initial: false, children: jsx(TextContainer, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, style: {
|
|
128
|
+
height: 40,
|
|
129
|
+
}, children: label }) }));
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { DaimoPayButton };
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { motion } from 'framer-motion';
|
|
2
|
+
import styled from '../../styles/styled/index.js';
|
|
3
|
+
|
|
4
|
+
const TextContainer = styled(motion.div) `
|
|
5
|
+
top: 0;
|
|
6
|
+
bottom: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
white-space: nowrap;
|
|
12
|
+
`;
|
|
13
|
+
styled(motion.div) `
|
|
14
|
+
position: relative;
|
|
15
|
+
width: 24px;
|
|
16
|
+
height: 24px;
|
|
17
|
+
border-radius: 12px;
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
svg {
|
|
20
|
+
display: block;
|
|
21
|
+
}
|
|
22
|
+
`;
|
|
23
|
+
styled(motion.div) `
|
|
24
|
+
pointer-events: none;
|
|
25
|
+
user-select: none;
|
|
26
|
+
position: relative;
|
|
27
|
+
width: 24px;
|
|
28
|
+
height: 24px;
|
|
29
|
+
margin-right: 8px;
|
|
30
|
+
`;
|
|
31
|
+
styled(motion.div) `
|
|
32
|
+
z-index: 1;
|
|
33
|
+
position: absolute;
|
|
34
|
+
inset: 0;
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
justify-content: center;
|
|
38
|
+
border-radius: 100%;
|
|
39
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.02);
|
|
40
|
+
background: var(--ck-body-color-danger, red);
|
|
41
|
+
color: #fff;
|
|
42
|
+
svg {
|
|
43
|
+
display: block;
|
|
44
|
+
position: relative;
|
|
45
|
+
top: -1px;
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
|
|
49
|
+
export { TextContainer };
|
|
50
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
import { useWallet } from '../../wallets/useWallets.js';
|
|
5
|
+
import { usePayContext } from '../DaimoPay.js';
|
|
6
|
+
import ConnectWithInjector from './ConnectWithInjector/index.js';
|
|
7
|
+
import ConnectWithQRCode from './ConnectWithQRCode.js';
|
|
8
|
+
import Alert from '../Common/Alert/index.js';
|
|
9
|
+
import { contentVariants } from '../Common/Modal/index.js';
|
|
10
|
+
|
|
11
|
+
const states = {
|
|
12
|
+
QRCODE: "qrcode",
|
|
13
|
+
INJECTOR: "injector",
|
|
14
|
+
};
|
|
15
|
+
const ConnectUsing = () => {
|
|
16
|
+
const context = usePayContext();
|
|
17
|
+
const wallet = useWallet(context.connector.id);
|
|
18
|
+
// If cannot be scanned, display injector flow, which if extension is not installed will show CTA to install it
|
|
19
|
+
const isQrCode = !wallet?.isInstalled && wallet?.getWalletConnectDeeplink;
|
|
20
|
+
const [status, setStatus] = useState(isQrCode ? states.QRCODE : states.INJECTOR);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
// if no provider, change to qrcode
|
|
23
|
+
const checkProvider = async () => {
|
|
24
|
+
const res = await wallet?.connector.getProvider();
|
|
25
|
+
if (!res) {
|
|
26
|
+
setStatus(states.QRCODE);
|
|
27
|
+
setTimeout(context.triggerResize, 10); // delay required here for modal to resize
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
if (status === states.INJECTOR)
|
|
31
|
+
checkProvider();
|
|
32
|
+
}, []);
|
|
33
|
+
if (!wallet)
|
|
34
|
+
return jsxs(Alert, { children: ["Connector not found ", context.connector.id] });
|
|
35
|
+
return (jsxs(AnimatePresence, { children: [status === states.QRCODE && (jsx(motion.div, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsx(ConnectWithQRCode, { switchConnectMethod: (id) => {
|
|
36
|
+
//if (id) setId(id);
|
|
37
|
+
setStatus(states.INJECTOR);
|
|
38
|
+
} }) }, states.QRCODE)), status === states.INJECTOR && (jsx(motion.div, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsx(ConnectWithInjector, { switchConnectMethod: (id) => {
|
|
39
|
+
//if (id) setId(id);
|
|
40
|
+
setStatus(states.QRCODE);
|
|
41
|
+
} }) }, states.INJECTOR))] }));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export { ConnectUsing as default };
|
|
45
|
+
//# sourceMappingURL=ConnectUsing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectUsing.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|