@daimo/pay 1.19.10 → 1.19.11
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/package.json +2 -2
- package/build/index.d.ts +0 -619
- package/build/package.json.js +0 -118
- package/build/package.json.js.map +0 -1
- package/build/src/assets/MobileWithLogos.js +0 -329
- package/build/src/assets/MobileWithLogos.js.map +0 -1
- package/build/src/assets/ScanIconWithLogos.js +0 -243
- package/build/src/assets/ScanIconWithLogos.js.map +0 -1
- package/build/src/assets/browsers.js +0 -969
- package/build/src/assets/browsers.js.map +0 -1
- package/build/src/assets/chains.js +0 -683
- package/build/src/assets/chains.js.map +0 -1
- package/build/src/assets/icons.js +0 -273
- package/build/src/assets/icons.js.map +0 -1
- package/build/src/assets/logos.js +0 -1694
- package/build/src/assets/logos.js.map +0 -1
- package/build/src/assets/wave.js +0 -46
- package/build/src/assets/wave.js.map +0 -1
- package/build/src/components/Common/Alert/index.js +0 -13
- package/build/src/components/Common/Alert/index.js.map +0 -1
- package/build/src/components/Common/Alert/styles.js +0 -55
- package/build/src/components/Common/Alert/styles.js.map +0 -1
- package/build/src/components/Common/AmountInput/AmountInputField.js +0 -62
- package/build/src/components/Common/AmountInput/AmountInputField.js.map +0 -1
- package/build/src/components/Common/AmountInput/index.js +0 -166
- package/build/src/components/Common/AmountInput/index.js.map +0 -1
- package/build/src/components/Common/Avatar/index.js +0 -78
- package/build/src/components/Common/Avatar/index.js.map +0 -1
- package/build/src/components/Common/Avatar/styles.js +0 -54
- package/build/src/components/Common/Avatar/styles.js.map +0 -1
- package/build/src/components/Common/BrowserIcon/index.js +0 -29
- package/build/src/components/Common/BrowserIcon/index.js.map +0 -1
- package/build/src/components/Common/BrowserIcon/styles.js +0 -20
- package/build/src/components/Common/BrowserIcon/styles.js.map +0 -1
- package/build/src/components/Common/Button/index.js +0 -144
- package/build/src/components/Common/Button/index.js.map +0 -1
- package/build/src/components/Common/Button/styles.js +0 -287
- package/build/src/components/Common/Button/styles.js.map +0 -1
- package/build/src/components/Common/Chain/index.js +0 -141
- package/build/src/components/Common/Chain/index.js.map +0 -1
- package/build/src/components/Common/Chain/styles.js +0 -90
- package/build/src/components/Common/Chain/styles.js.map +0 -1
- package/build/src/components/Common/ChainSelectList/index.js +0 -250
- package/build/src/components/Common/ChainSelectList/index.js.map +0 -1
- package/build/src/components/Common/ChainSelectList/styles.js +0 -226
- package/build/src/components/Common/ChainSelectList/styles.js.map +0 -1
- package/build/src/components/Common/CircleTimer.js +0 -92
- package/build/src/components/Common/CircleTimer.js.map +0 -1
- package/build/src/components/Common/ConnectorList/index.js +0 -121
- package/build/src/components/Common/ConnectorList/index.js.map +0 -1
- package/build/src/components/Common/ConnectorList/styles.js +0 -344
- package/build/src/components/Common/ConnectorList/styles.js.map +0 -1
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +0 -78
- package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/QRCode.js +0 -132
- package/build/src/components/Common/CustomQRCode/QRCode.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/index.js +0 -89
- package/build/src/components/Common/CustomQRCode/index.js.map +0 -1
- package/build/src/components/Common/CustomQRCode/styles.js +0 -142
- package/build/src/components/Common/CustomQRCode/styles.js.map +0 -1
- package/build/src/components/Common/FitText/index.js +0 -34
- package/build/src/components/Common/FitText/index.js.map +0 -1
- package/build/src/components/Common/Modal/index.js +0 -558
- package/build/src/components/Common/Modal/index.js.map +0 -1
- package/build/src/components/Common/Modal/styles.js +0 -665
- package/build/src/components/Common/Modal/styles.js.map +0 -1
- package/build/src/components/Common/OptionsList/index.js +0 -145
- package/build/src/components/Common/OptionsList/index.js.map +0 -1
- package/build/src/components/Common/OptionsList/styles.js +0 -138
- package/build/src/components/Common/OptionsList/styles.js.map +0 -1
- package/build/src/components/Common/OrderHeader/index.js +0 -148
- package/build/src/components/Common/OrderHeader/index.js.map +0 -1
- package/build/src/components/Common/PaymentBreakdown/index.js +0 -70
- package/build/src/components/Common/PaymentBreakdown/index.js.map +0 -1
- package/build/src/components/Common/Portal/index.js +0 -30
- package/build/src/components/Common/Portal/index.js.map +0 -1
- package/build/src/components/Common/PoweredByFooter/index.js +0 -39
- package/build/src/components/Common/PoweredByFooter/index.js.map +0 -1
- package/build/src/components/Common/ScrollArea/index.js +0 -120
- package/build/src/components/Common/ScrollArea/index.js.map +0 -1
- package/build/src/components/Common/ScrollArea/styles.js +0 -169
- package/build/src/components/Common/ScrollArea/styles.js.map +0 -1
- package/build/src/components/Common/SelectAnotherMethodButton/index.js +0 -96
- package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +0 -1
- package/build/src/components/Common/Spinner/index.js +0 -64
- package/build/src/components/Common/Spinner/index.js.map +0 -1
- package/build/src/components/Common/Spinner/styles.js +0 -22
- package/build/src/components/Common/Spinner/styles.js.map +0 -1
- package/build/src/components/Common/SwitchButton/index.js +0 -43
- package/build/src/components/Common/SwitchButton/index.js.map +0 -1
- package/build/src/components/Common/ThemedButton/index.js +0 -46
- package/build/src/components/Common/ThemedButton/index.js.map +0 -1
- package/build/src/components/Common/ThemedButton/styles.js +0 -152
- package/build/src/components/Common/ThemedButton/styles.js.map +0 -1
- package/build/src/components/Common/TokenChainLogo/index.js +0 -62
- package/build/src/components/Common/TokenChainLogo/index.js.map +0 -1
- package/build/src/components/Common/Tooltip/index.js +0 -129
- package/build/src/components/Common/Tooltip/index.js.map +0 -1
- package/build/src/components/Common/Tooltip/styles.js +0 -81
- package/build/src/components/Common/Tooltip/styles.js.map +0 -1
- package/build/src/components/Common/WalletChainLogo/index.js +0 -31
- package/build/src/components/Common/WalletChainLogo/index.js.map +0 -1
- package/build/src/components/DaimoPayButton/index.js +0 -196
- package/build/src/components/DaimoPayButton/index.js.map +0 -1
- package/build/src/components/DaimoPayButton/styles.js +0 -50
- package/build/src/components/DaimoPayButton/styles.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectUsing.js +0 -70
- package/build/src/components/DaimoPayModal/ConnectUsing.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +0 -339
- package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +0 -131
- package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +0 -1
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +0 -89
- package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +0 -1
- package/build/src/components/DaimoPayModal/index.js +0 -605
- package/build/src/components/DaimoPayModal/index.js.map +0 -1
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +0 -25
- package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +0 -1
- package/build/src/components/Pages/About/graphics.js +0 -853
- package/build/src/components/Pages/About/graphics.js.map +0 -1
- package/build/src/components/Pages/About/index.js +0 -222
- package/build/src/components/Pages/About/index.js.map +0 -1
- package/build/src/components/Pages/About/styles.js +0 -140
- package/build/src/components/Pages/About/styles.js.map +0 -1
- package/build/src/components/Pages/Confirmation/index.js +0 -126
- package/build/src/components/Pages/Confirmation/index.js.map +0 -1
- package/build/src/components/Pages/Connectors/index.js +0 -26
- package/build/src/components/Pages/Connectors/index.js.map +0 -1
- package/build/src/components/Pages/Error/index.js +0 -57
- package/build/src/components/Pages/Error/index.js.map +0 -1
- package/build/src/components/Pages/MobileConnectors/index.js +0 -108
- package/build/src/components/Pages/MobileConnectors/index.js.map +0 -1
- package/build/src/components/Pages/MobileConnectors/styles.js +0 -64
- package/build/src/components/Pages/MobileConnectors/styles.js.map +0 -1
- package/build/src/components/Pages/Onboarding/index.js +0 -34
- package/build/src/components/Pages/Onboarding/index.js.map +0 -1
- package/build/src/components/Pages/Onboarding/styles.js +0 -229
- package/build/src/components/Pages/Onboarding/styles.js.map +0 -1
- package/build/src/components/Pages/PayWithToken/index.js +0 -157
- package/build/src/components/Pages/PayWithToken/index.js.map +0 -1
- package/build/src/components/Pages/SelectAmount/index.js +0 -24
- package/build/src/components/Pages/SelectAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js +0 -79
- package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectDepositAddressChain/index.js +0 -80
- package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +0 -1
- package/build/src/components/Pages/SelectExchange/index.js +0 -62
- package/build/src/components/Pages/SelectExchange/index.js.map +0 -1
- package/build/src/components/Pages/SelectExternalAmount/index.js +0 -80
- package/build/src/components/Pages/SelectExternalAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectMethod/index.js +0 -315
- package/build/src/components/Pages/SelectMethod/index.js.map +0 -1
- package/build/src/components/Pages/SelectToken/index.js +0 -99
- package/build/src/components/Pages/SelectToken/index.js.map +0 -1
- package/build/src/components/Pages/SelectWalletAmount/index.js +0 -71
- package/build/src/components/Pages/SelectWalletAmount/index.js.map +0 -1
- package/build/src/components/Pages/SelectWalletChain/index.js +0 -55
- package/build/src/components/Pages/SelectWalletChain/index.js.map +0 -1
- package/build/src/components/Pages/SelectZKP/index.js +0 -41
- package/build/src/components/Pages/SelectZKP/index.js.map +0 -1
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js +0 -94
- package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +0 -1
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +0 -92
- package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +0 -1
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +0 -24
- package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +0 -1
- package/build/src/components/Pages/SwitchNetworks/index.js +0 -45
- package/build/src/components/Pages/SwitchNetworks/index.js.map +0 -1
- package/build/src/components/Pages/WaitingDepositAddress/index.js +0 -586
- package/build/src/components/Pages/WaitingDepositAddress/index.js.map +0 -1
- package/build/src/components/Pages/WaitingExternal/index.js +0 -174
- package/build/src/components/Pages/WaitingExternal/index.js.map +0 -1
- package/build/src/components/Pages/WaitingWallet/index.js +0 -49
- package/build/src/components/Pages/WaitingWallet/index.js.map +0 -1
- package/build/src/components/Pages/Warning/index.js +0 -56
- package/build/src/components/Pages/Warning/index.js.map +0 -1
- package/build/src/components/Spinners/CircleSpinner/index.js +0 -104
- package/build/src/components/Spinners/CircleSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/CircleSpinner/styles.js +0 -117
- package/build/src/components/Spinners/CircleSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +0 -29
- package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/SquircleSpinner/index.js +0 -68
- package/build/src/components/Spinners/SquircleSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/SquircleSpinner/styles.js +0 -66
- package/build/src/components/Spinners/SquircleSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/TokenLogoSpinner/index.js +0 -24
- package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js +0 -40
- package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +0 -1
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js +0 -37
- package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +0 -1
- package/build/src/components/Spinners/styles.js +0 -32
- package/build/src/components/Spinners/styles.js.map +0 -1
- package/build/src/constants/defaultTheme.js +0 -6
- package/build/src/constants/defaultTheme.js.map +0 -1
- package/build/src/constants/limits.js +0 -4
- package/build/src/constants/limits.js.map +0 -1
- package/build/src/constants/paymentOptions.js +0 -61
- package/build/src/constants/paymentOptions.js.map +0 -1
- package/build/src/constants/routes.js +0 -31
- package/build/src/constants/routes.js.map +0 -1
- package/build/src/constants/wallets.js +0 -7
- package/build/src/constants/wallets.js.map +0 -1
- package/build/src/defaultConfig.js +0 -66
- package/build/src/defaultConfig.js.map +0 -1
- package/build/src/defaultConnectors.js +0 -37
- package/build/src/defaultConnectors.js.map +0 -1
- package/build/src/hooks/useChainIsSupported.js +0 -10
- package/build/src/hooks/useChainIsSupported.js.map +0 -1
- package/build/src/hooks/useChains.js +0 -10
- package/build/src/hooks/useChains.js.map +0 -1
- package/build/src/hooks/useConnect.js +0 -61
- package/build/src/hooks/useConnect.js.map +0 -1
- package/build/src/hooks/useConnectCallback.js +0 -21
- package/build/src/hooks/useConnectCallback.js.map +0 -1
- package/build/src/hooks/useConnectors.js +0 -20
- package/build/src/hooks/useConnectors.js.map +0 -1
- package/build/src/hooks/useDaimoPay.js +0 -131
- package/build/src/hooks/useDaimoPay.js.map +0 -1
- package/build/src/hooks/useDaimoPayStatus.js +0 -12
- package/build/src/hooks/useDaimoPayStatus.js.map +0 -1
- package/build/src/hooks/useDaimoPayUI.js +0 -15
- package/build/src/hooks/useDaimoPayUI.js.map +0 -1
- package/build/src/hooks/useEnsFallbackConfig.js +0 -16
- package/build/src/hooks/useEnsFallbackConfig.js.map +0 -1
- package/build/src/hooks/useFitText.js +0 -133
- package/build/src/hooks/useFitText.js.map +0 -1
- package/build/src/hooks/useFocusTrap.js +0 -53
- package/build/src/hooks/useFocusTrap.js.map +0 -1
- package/build/src/hooks/useIsMobile.js +0 -11
- package/build/src/hooks/useIsMobile.js.map +0 -1
- package/build/src/hooks/useIsMounted.js +0 -10
- package/build/src/hooks/useIsMounted.js.map +0 -1
- package/build/src/hooks/useLastConnector.js +0 -24
- package/build/src/hooks/useLastConnector.js.map +0 -1
- package/build/src/hooks/useLocales.js +0 -60
- package/build/src/hooks/useLocales.js.map +0 -1
- package/build/src/hooks/useLockBodyScroll.js +0 -47
- package/build/src/hooks/useLockBodyScroll.js.map +0 -1
- package/build/src/hooks/useOrderUsdLimits.js +0 -24
- package/build/src/hooks/useOrderUsdLimits.js.map +0 -1
- package/build/src/hooks/usePayContext.js +0 -11
- package/build/src/hooks/usePayContext.js.map +0 -1
- package/build/src/hooks/usePaymentOptions.js +0 -185
- package/build/src/hooks/usePaymentOptions.js.map +0 -1
- package/build/src/hooks/usePaymentState.js +0 -399
- package/build/src/hooks/usePaymentState.js.map +0 -1
- package/build/src/hooks/usePrevious.js +0 -13
- package/build/src/hooks/usePrevious.js.map +0 -1
- package/build/src/hooks/useTokenOptions.js +0 -156
- package/build/src/hooks/useTokenOptions.js.map +0 -1
- package/build/src/hooks/useUntronAvailability.js +0 -32
- package/build/src/hooks/useUntronAvailability.js.map +0 -1
- package/build/src/hooks/useWindowSize.js +0 -23
- package/build/src/hooks/useWindowSize.js.map +0 -1
- package/build/src/index.js +0 -14
- package/build/src/index.js.map +0 -1
- package/build/src/localizations/index.js +0 -48
- package/build/src/localizations/index.js.map +0 -1
- package/build/src/localizations/locales/ar-AE.js +0 -95
- package/build/src/localizations/locales/ar-AE.js.map +0 -1
- package/build/src/localizations/locales/ca-AD.js +0 -93
- package/build/src/localizations/locales/ca-AD.js.map +0 -1
- package/build/src/localizations/locales/ee-EE.js +0 -101
- package/build/src/localizations/locales/ee-EE.js.map +0 -1
- package/build/src/localizations/locales/en-US.js +0 -145
- package/build/src/localizations/locales/en-US.js.map +0 -1
- package/build/src/localizations/locales/es-ES.js +0 -138
- package/build/src/localizations/locales/es-ES.js.map +0 -1
- package/build/src/localizations/locales/fa-IR.js +0 -93
- package/build/src/localizations/locales/fa-IR.js.map +0 -1
- package/build/src/localizations/locales/fr-FR.js +0 -93
- package/build/src/localizations/locales/fr-FR.js.map +0 -1
- package/build/src/localizations/locales/ja-JP.js +0 -93
- package/build/src/localizations/locales/ja-JP.js.map +0 -1
- package/build/src/localizations/locales/pt-BR.js +0 -145
- package/build/src/localizations/locales/pt-BR.js.map +0 -1
- package/build/src/localizations/locales/ru-RU.js +0 -97
- package/build/src/localizations/locales/ru-RU.js.map +0 -1
- package/build/src/localizations/locales/tr-TR.js +0 -101
- package/build/src/localizations/locales/tr-TR.js.map +0 -1
- package/build/src/localizations/locales/vi-VN.js +0 -101
- package/build/src/localizations/locales/vi-VN.js.map +0 -1
- package/build/src/localizations/locales/zh-CN.js +0 -93
- package/build/src/localizations/locales/zh-CN.js.map +0 -1
- package/build/src/payment/paymentEffects.js +0 -270
- package/build/src/payment/paymentEffects.js.map +0 -1
- package/build/src/payment/paymentFsm.js +0 -234
- package/build/src/payment/paymentFsm.js.map +0 -1
- package/build/src/payment/paymentStore.js +0 -18
- package/build/src/payment/paymentStore.js.map +0 -1
- package/build/src/payment/paymentUtils.js +0 -10
- package/build/src/payment/paymentUtils.js.map +0 -1
- package/build/src/provider/DaimoPayProvider.js +0 -300
- package/build/src/provider/DaimoPayProvider.js.map +0 -1
- package/build/src/provider/PayContext.js +0 -6
- package/build/src/provider/PayContext.js.map +0 -1
- package/build/src/provider/PaymentProvider.js +0 -35
- package/build/src/provider/PaymentProvider.js.map +0 -1
- package/build/src/provider/SolanaContextProvider.js +0 -14
- package/build/src/provider/SolanaContextProvider.js.map +0 -1
- package/build/src/provider/Web3ContextProvider.js +0 -36
- package/build/src/provider/Web3ContextProvider.js.map +0 -1
- package/build/src/stateStore.js +0 -36
- package/build/src/stateStore.js.map +0 -1
- package/build/src/styles/defaultTheme.js +0 -80
- package/build/src/styles/defaultTheme.js.map +0 -1
- package/build/src/styles/index.js +0 -313
- package/build/src/styles/index.js.map +0 -1
- package/build/src/styles/styled/index.js +0 -6
- package/build/src/styles/styled/index.js.map +0 -1
- package/build/src/styles/themes/base.js +0 -141
- package/build/src/styles/themes/base.js.map +0 -1
- package/build/src/styles/themes/index.js +0 -13
- package/build/src/styles/themes/index.js.map +0 -1
- package/build/src/styles/themes/midnight.js +0 -76
- package/build/src/styles/themes/midnight.js.map +0 -1
- package/build/src/styles/themes/minimal.js +0 -96
- package/build/src/styles/themes/minimal.js.map +0 -1
- package/build/src/styles/themes/nouns.js +0 -81
- package/build/src/styles/themes/nouns.js.map +0 -1
- package/build/src/styles/themes/retro.js +0 -106
- package/build/src/styles/themes/retro.js.map +0 -1
- package/build/src/styles/themes/rounded.js +0 -106
- package/build/src/styles/themes/rounded.js.map +0 -1
- package/build/src/styles/themes/soft.js +0 -71
- package/build/src/styles/themes/soft.js.map +0 -1
- package/build/src/styles/themes/web95.js +0 -132
- package/build/src/styles/themes/web95.js.map +0 -1
- package/build/src/utils/exports.js +0 -6
- package/build/src/utils/exports.js.map +0 -1
- package/build/src/utils/format.js +0 -48
- package/build/src/utils/format.js.map +0 -1
- package/build/src/utils/index.js +0 -42
- package/build/src/utils/index.js.map +0 -1
- package/build/src/utils/p3.js +0 -15
- package/build/src/utils/p3.js.map +0 -1
- package/build/src/utils/platform.js +0 -11
- package/build/src/utils/platform.js.map +0 -1
- package/build/src/utils/polling.js +0 -44
- package/build/src/utils/polling.js.map +0 -1
- package/build/src/utils/supportUrl.js +0 -16
- package/build/src/utils/supportUrl.js.map +0 -1
- package/build/src/utils/trpc.js +0 -19
- package/build/src/utils/trpc.js.map +0 -1
- package/build/src/utils/validateInput.js +0 -16
- package/build/src/utils/validateInput.js.map +0 -1
- package/build/src/wallets/index.js +0 -21
- package/build/src/wallets/index.js.map +0 -1
- package/build/src/wallets/useWallets.js +0 -278
- package/build/src/wallets/useWallets.js.map +0 -1
- package/build/src/wallets/walletConfigs.js +0 -190
- package/build/src/wallets/walletConfigs.js.map +0 -1
- package/build/src/world-mini-app/WorldPayButton.js +0 -165
- package/build/src/world-mini-app/WorldPayButton.js.map +0 -1
- package/build/src/world-mini-app/promptWorldPayment.js +0 -59
- package/build/src/world-mini-app/promptWorldPayment.js.map +0 -1
- package/build/src/world-mini-app/useWithdrawToWorld.js +0 -76
- package/build/src/world-mini-app/useWithdrawToWorld.js.map +0 -1
- package/build/src/world-mini-app/useWorldSignIn.js +0 -74
- package/build/src/world-mini-app/useWorldSignIn.js.map +0 -1
- package/build/src/world.js +0 -4
- package/build/src/world.js.map +0 -1
- package/build/types-26343050.d.ts +0 -65
- package/build/world.d.ts +0 -108
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { useConnect as useConnect$1 } from 'wagmi';
|
|
2
|
-
import { usePayContext } from './usePayContext.js';
|
|
3
|
-
|
|
4
|
-
function useConnect({ ...props } = {}) {
|
|
5
|
-
const context = usePayContext();
|
|
6
|
-
const { connect, connectAsync, connectors, ...rest } = useConnect$1({
|
|
7
|
-
...props,
|
|
8
|
-
mutation: {
|
|
9
|
-
...props.mutation,
|
|
10
|
-
onError(err) {
|
|
11
|
-
if (err.message) {
|
|
12
|
-
if (err.message === "Proposal expired") {
|
|
13
|
-
context.log(
|
|
14
|
-
"[CONNECT] Connection request timed out. Please try again.",
|
|
15
|
-
err
|
|
16
|
-
);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (err.message !== "User rejected request") {
|
|
20
|
-
context.log(`[CONNECT] ${err.message}`, err);
|
|
21
|
-
}
|
|
22
|
-
} else {
|
|
23
|
-
context.log(`[CONNECT] Could not connect.`, err);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
return {
|
|
29
|
-
connect: ({
|
|
30
|
-
connector,
|
|
31
|
-
chainId,
|
|
32
|
-
mutation
|
|
33
|
-
}) => {
|
|
34
|
-
return connect(
|
|
35
|
-
{
|
|
36
|
-
connector,
|
|
37
|
-
chainId: chainId ?? context.options?.initialChainId
|
|
38
|
-
},
|
|
39
|
-
mutation
|
|
40
|
-
);
|
|
41
|
-
},
|
|
42
|
-
connectAsync: async ({
|
|
43
|
-
connector,
|
|
44
|
-
chainId,
|
|
45
|
-
mutation
|
|
46
|
-
}) => {
|
|
47
|
-
return connectAsync(
|
|
48
|
-
{
|
|
49
|
-
connector,
|
|
50
|
-
chainId: chainId ?? context.options?.initialChainId
|
|
51
|
-
},
|
|
52
|
-
mutation
|
|
53
|
-
);
|
|
54
|
-
},
|
|
55
|
-
connectors,
|
|
56
|
-
...rest
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export { useConnect };
|
|
61
|
-
//# sourceMappingURL=useConnect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConnect.js","sources":["../../../src/hooks/useConnect.tsx"],"sourcesContent":["/**\n * This is a wrapper around wagmi's useConnect hook that adds some\n * additional functionality.\n */\n\nimport {\n Connector,\n CreateConnectorFn,\n type UseConnectParameters,\n useConnect as wagmiUseConnect,\n} from \"wagmi\";\nimport { usePayContext } from \"./usePayContext\";\n\nexport function useConnect({ ...props }: UseConnectParameters = {}) {\n const context = usePayContext();\n\n const { connect, connectAsync, connectors, ...rest } = wagmiUseConnect({\n ...props,\n mutation: {\n ...props.mutation,\n onError(err) {\n if (err.message) {\n if (err.message === \"Proposal expired\") {\n context.log(\n \"[CONNECT] Connection request timed out. Please try again.\",\n err,\n );\n return;\n }\n if (err.message !== \"User rejected request\") {\n context.log(`[CONNECT] ${err.message}`, err);\n }\n } else {\n context.log(`[CONNECT] Could not connect.`, err);\n }\n },\n },\n });\n\n return {\n connect: ({\n connector,\n chainId,\n mutation,\n }: {\n connector: CreateConnectorFn | Connector;\n chainId?: number;\n mutation?: UseConnectParameters[\"mutation\"];\n }) => {\n return connect(\n {\n connector,\n chainId: chainId ?? context.options?.initialChainId,\n },\n mutation,\n );\n },\n connectAsync: async ({\n connector,\n chainId,\n mutation,\n }: {\n connector: CreateConnectorFn | Connector;\n chainId?: number;\n mutation?: UseConnectParameters[\"mutation\"];\n }) => {\n return connectAsync(\n {\n connector,\n chainId: chainId ?? context.options?.initialChainId,\n },\n mutation,\n );\n },\n connectors,\n ...rest,\n };\n}\n"],"names":["wagmiUseConnect"],"mappings":";;;AAaO,SAAS,WAAW,EAAE,GAAG,KAAM,EAAA,GAA0B,EAAI,EAAA;AAClE,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAE9B,EAAA,MAAM,EAAE,OAAS,EAAA,YAAA,EAAc,YAAY,GAAG,IAAA,KAASA,YAAgB,CAAA;AAAA,IACrE,GAAG,KAAA;AAAA,IACH,QAAU,EAAA;AAAA,MACR,GAAG,KAAM,CAAA,QAAA;AAAA,MACT,QAAQ,GAAK,EAAA;AACX,QAAA,IAAI,IAAI,OAAS,EAAA;AACf,UAAI,IAAA,GAAA,CAAI,YAAY,kBAAoB,EAAA;AACtC,YAAQ,OAAA,CAAA,GAAA;AAAA,cACN,2DAAA;AAAA,cACA,GAAA;AAAA,aACF,CAAA;AACA,YAAA,OAAA;AAAA,WACF;AACA,UAAI,IAAA,GAAA,CAAI,YAAY,uBAAyB,EAAA;AAC3C,YAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,UAAA,EAAa,GAAI,CAAA,OAAO,IAAI,GAAG,CAAA,CAAA;AAAA,WAC7C;AAAA,SACK,MAAA;AACL,UAAQ,OAAA,CAAA,GAAA,CAAI,gCAAgC,GAAG,CAAA,CAAA;AAAA,SACjD;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,SAAS,CAAC;AAAA,MACR,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,KAKI,KAAA;AACJ,MAAO,OAAA,OAAA;AAAA,QACL;AAAA,UACE,SAAA;AAAA,UACA,OAAA,EAAS,OAAW,IAAA,OAAA,CAAQ,OAAS,EAAA,cAAA;AAAA,SACvC;AAAA,QACA,QAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,cAAc,OAAO;AAAA,MACnB,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,KAKI,KAAA;AACJ,MAAO,OAAA,YAAA;AAAA,QACL;AAAA,UACE,SAAA;AAAA,UACA,OAAA,EAAS,OAAW,IAAA,OAAA,CAAQ,OAAS,EAAA,cAAA;AAAA,SACvC;AAAA,QACA,QAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,IACA,UAAA;AAAA,IACA,GAAG,IAAA;AAAA,GACL,CAAA;AACF;;;;"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { useAccountEffect } from 'wagmi';
|
|
2
|
-
|
|
3
|
-
const useConnectCallback = ({
|
|
4
|
-
onConnect,
|
|
5
|
-
onDisconnect
|
|
6
|
-
}) => {
|
|
7
|
-
useAccountEffect({
|
|
8
|
-
onConnect: ({ address, connector, isReconnected }) => {
|
|
9
|
-
if (!isReconnected) {
|
|
10
|
-
onConnect?.({
|
|
11
|
-
address,
|
|
12
|
-
connectorId: connector?.id
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
onDisconnect: () => onDisconnect?.()
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export { useConnectCallback };
|
|
21
|
-
//# sourceMappingURL=useConnectCallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectCallback.js","sources":["../../../src/hooks/useConnectCallback.ts"],"sourcesContent":["import { useAccountEffect } from \"wagmi\";\n\nexport type useConnectCallbackProps = {\n onConnect?: ({\n address,\n connectorId,\n }: {\n address?: string;\n connectorId?: string;\n }) => void;\n onDisconnect?: () => void;\n};\n\nexport const useConnectCallback = ({\n onConnect,\n onDisconnect,\n}: useConnectCallbackProps) => {\n useAccountEffect({\n onConnect: ({ address, connector, isReconnected }) => {\n if (!isReconnected) {\n onConnect?.({\n address: address,\n connectorId: connector?.id,\n });\n }\n },\n onDisconnect: () => onDisconnect?.(),\n });\n};\n"],"names":[],"mappings":";;AAaO,MAAM,qBAAqB,CAAC;AAAA,EACjC,SAAA;AAAA,EACA,YAAA;AACF,CAA+B,KAAA;AAC7B,EAAiB,gBAAA,CAAA;AAAA,IACf,WAAW,CAAC,EAAE,OAAS,EAAA,SAAA,EAAW,eAAoB,KAAA;AACpD,MAAA,IAAI,CAAC,aAAe,EAAA;AAClB,QAAY,SAAA,GAAA;AAAA,UACV,OAAA;AAAA,UACA,aAAa,SAAW,EAAA,EAAA;AAAA,SACzB,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,IACA,YAAA,EAAc,MAAM,YAAe,IAAA;AAAA,GACpC,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { useConnectors as useConnectors$1 } from 'wagmi';
|
|
2
|
-
|
|
3
|
-
function useConnectors() {
|
|
4
|
-
const connectors = useConnectors$1();
|
|
5
|
-
return connectors ?? [];
|
|
6
|
-
}
|
|
7
|
-
function useConnector(id, uuid) {
|
|
8
|
-
const connectors = useConnectors();
|
|
9
|
-
if (id === "injected" && uuid) {
|
|
10
|
-
return connectors.find((c) => c.id === id && c.name === uuid);
|
|
11
|
-
} else if (id === "injected") {
|
|
12
|
-
return connectors.find(
|
|
13
|
-
(c) => c.id === id && c.name.includes("Injected")
|
|
14
|
-
);
|
|
15
|
-
}
|
|
16
|
-
return connectors.find((c) => c.id === id);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { useConnector, useConnectors };
|
|
20
|
-
//# sourceMappingURL=useConnectors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectors.js","sources":["../../../src/hooks/useConnectors.ts"],"sourcesContent":["import { type Connector, useConnectors as useWagmiConnectors } from \"wagmi\";\n\nexport function useConnectors() {\n const connectors = useWagmiConnectors();\n return connectors ?? [];\n}\n\nexport function useConnector(id: string, uuid?: string) {\n const connectors = useConnectors();\n if (id === \"injected\" && uuid) {\n return connectors.find((c) => c.id === id && c.name === uuid) as Connector;\n } else if (id === \"injected\") {\n return connectors.find(\n (c) => c.id === id && c.name.includes(\"Injected\"),\n ) as Connector;\n }\n return connectors.find((c) => c.id === id) as Connector;\n}\n"],"names":["useWagmiConnectors"],"mappings":";;AAEO,SAAS,aAAgB,GAAA;AAC9B,EAAA,MAAM,aAAaA,eAAmB,EAAA,CAAA;AACtC,EAAA,OAAO,cAAc,EAAC,CAAA;AACxB,CAAA;AAEgB,SAAA,YAAA,CAAa,IAAY,IAAe,EAAA;AACtD,EAAA,MAAM,aAAa,aAAc,EAAA,CAAA;AACjC,EAAI,IAAA,EAAA,KAAO,cAAc,IAAM,EAAA;AAC7B,IAAO,OAAA,UAAA,CAAW,KAAK,CAAC,CAAA,KAAM,EAAE,EAAO,KAAA,EAAA,IAAM,CAAE,CAAA,IAAA,KAAS,IAAI,CAAA,CAAA;AAAA,GAC9D,MAAA,IAAW,OAAO,UAAY,EAAA;AAC5B,IAAA,OAAO,UAAW,CAAA,IAAA;AAAA,MAChB,CAAC,MAAM,CAAE,CAAA,EAAA,KAAO,MAAM,CAAE,CAAA,IAAA,CAAK,SAAS,UAAU,CAAA;AAAA,KAClD,CAAA;AAAA,GACF;AACA,EAAA,OAAO,WAAW,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,EAAE,CAAA,CAAA;AAC3C;;;;"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { useContext, useSyncExternalStore, useMemo, useCallback } from 'react';
|
|
2
|
-
import { waitForPaymentState } from '../payment/paymentStore.js';
|
|
3
|
-
import { PaymentContext } from '../provider/PaymentProvider.js';
|
|
4
|
-
|
|
5
|
-
function useDaimoPay() {
|
|
6
|
-
const store = useContext(PaymentContext);
|
|
7
|
-
if (!store) {
|
|
8
|
-
throw new Error("useDaimoPay must be used within <PaymentProvider>");
|
|
9
|
-
}
|
|
10
|
-
const paymentFsmState = useSyncExternalStore(
|
|
11
|
-
store.subscribe,
|
|
12
|
-
store.getState,
|
|
13
|
-
store.getState
|
|
14
|
-
);
|
|
15
|
-
const order = useMemo(() => {
|
|
16
|
-
if (paymentFsmState.type === "idle") return null;
|
|
17
|
-
return paymentFsmState.order ?? null;
|
|
18
|
-
}, [paymentFsmState]);
|
|
19
|
-
const paymentState = paymentFsmState.type;
|
|
20
|
-
const paymentErrorMessage = paymentFsmState.type === "error" ? paymentFsmState.message : null;
|
|
21
|
-
const paymentWarningMessage = paymentFsmState.type === "warning" ? paymentFsmState.message : null;
|
|
22
|
-
const dispatch = useCallback((e) => store.dispatch(e), [store]);
|
|
23
|
-
const createPreviewOrder = useCallback(
|
|
24
|
-
async (payParams) => {
|
|
25
|
-
dispatch({ type: "set_pay_params", payParams });
|
|
26
|
-
const previewOrderState = await waitForPaymentState(store, "preview");
|
|
27
|
-
return previewOrderState;
|
|
28
|
-
},
|
|
29
|
-
[dispatch, store]
|
|
30
|
-
);
|
|
31
|
-
const setPayId = useCallback(
|
|
32
|
-
async (payId) => {
|
|
33
|
-
dispatch({ type: "set_pay_id", payId });
|
|
34
|
-
const previewOrderState = await waitForPaymentState(
|
|
35
|
-
store,
|
|
36
|
-
"unhydrated",
|
|
37
|
-
"payment_unpaid",
|
|
38
|
-
"payment_started",
|
|
39
|
-
"payment_completed",
|
|
40
|
-
"payment_bounced"
|
|
41
|
-
);
|
|
42
|
-
return previewOrderState;
|
|
43
|
-
},
|
|
44
|
-
[dispatch, store]
|
|
45
|
-
);
|
|
46
|
-
const hydrateOrder = useCallback(
|
|
47
|
-
async (refundAddress) => {
|
|
48
|
-
dispatch({ type: "hydrate_order", refundAddress });
|
|
49
|
-
const hydratedOrderState = await waitForPaymentState(
|
|
50
|
-
store,
|
|
51
|
-
"payment_unpaid"
|
|
52
|
-
);
|
|
53
|
-
return hydratedOrderState;
|
|
54
|
-
},
|
|
55
|
-
[dispatch, store]
|
|
56
|
-
);
|
|
57
|
-
const paySource = useCallback(
|
|
58
|
-
() => dispatch({ type: "pay_source" }),
|
|
59
|
-
[dispatch]
|
|
60
|
-
);
|
|
61
|
-
const payEthSource = useCallback(
|
|
62
|
-
async (args) => {
|
|
63
|
-
dispatch({ type: "pay_ethereum_source", ...args });
|
|
64
|
-
const paidState = await waitForPaymentState(
|
|
65
|
-
store,
|
|
66
|
-
"payment_started",
|
|
67
|
-
"payment_completed",
|
|
68
|
-
"payment_bounced"
|
|
69
|
-
);
|
|
70
|
-
return paidState;
|
|
71
|
-
},
|
|
72
|
-
[dispatch, store]
|
|
73
|
-
);
|
|
74
|
-
const paySolanaSource = useCallback(
|
|
75
|
-
async (args) => {
|
|
76
|
-
dispatch({ type: "pay_solana_source", ...args });
|
|
77
|
-
const paidState = await waitForPaymentState(
|
|
78
|
-
store,
|
|
79
|
-
"payment_started",
|
|
80
|
-
"payment_completed",
|
|
81
|
-
"payment_bounced"
|
|
82
|
-
);
|
|
83
|
-
return paidState;
|
|
84
|
-
},
|
|
85
|
-
[dispatch, store]
|
|
86
|
-
);
|
|
87
|
-
const reset = useCallback(() => dispatch({ type: "reset" }), [dispatch]);
|
|
88
|
-
const setChosenUsd = useCallback(
|
|
89
|
-
(usd) => dispatch({ type: "set_chosen_usd", usd }),
|
|
90
|
-
[dispatch]
|
|
91
|
-
);
|
|
92
|
-
const setWarning = useCallback(
|
|
93
|
-
(message) => dispatch({ type: "warning", order: order ?? void 0, message }),
|
|
94
|
-
[dispatch, order]
|
|
95
|
-
);
|
|
96
|
-
const dismissWarning = useCallback(() => {
|
|
97
|
-
let priorOrder;
|
|
98
|
-
switch (paymentFsmState.type) {
|
|
99
|
-
case "preview":
|
|
100
|
-
case "unhydrated":
|
|
101
|
-
case "payment_unpaid":
|
|
102
|
-
case "payment_started":
|
|
103
|
-
case "payment_completed":
|
|
104
|
-
case "payment_bounced":
|
|
105
|
-
priorOrder = paymentFsmState.order;
|
|
106
|
-
break;
|
|
107
|
-
default:
|
|
108
|
-
priorOrder = void 0;
|
|
109
|
-
}
|
|
110
|
-
dispatch({ type: "dismiss_warning", order: priorOrder });
|
|
111
|
-
}, [dispatch, paymentFsmState]);
|
|
112
|
-
return {
|
|
113
|
-
order,
|
|
114
|
-
paymentState,
|
|
115
|
-
paymentErrorMessage,
|
|
116
|
-
paymentWarningMessage,
|
|
117
|
-
createPreviewOrder,
|
|
118
|
-
hydrateOrder,
|
|
119
|
-
setPayId,
|
|
120
|
-
paySource,
|
|
121
|
-
payEthSource,
|
|
122
|
-
paySolanaSource,
|
|
123
|
-
reset,
|
|
124
|
-
setChosenUsd,
|
|
125
|
-
setWarning,
|
|
126
|
-
dismissWarning
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
export { useDaimoPay };
|
|
131
|
-
//# sourceMappingURL=useDaimoPay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPay.js","sources":["../../../src/hooks/useDaimoPay.tsx"],"sourcesContent":["// hooks/useDaimoPay.ts\nimport { DaimoPayOrderID, SolanaPublicKey } from \"@daimo/pay-common\";\nimport { useCallback, useContext, useMemo, useSyncExternalStore } from \"react\";\nimport { Address, Hex } from \"viem\";\nimport { PaymentEvent, PaymentState, PayParams } from \"../payment/paymentFsm\";\nimport { waitForPaymentState } from \"../payment/paymentStore\";\nimport { PaymentContext } from \"../provider/PaymentProvider\";\n\ntype DaimoPayFunctions = {\n /**\n * Create a new Daimo Pay order preview with the given parameters.\n * Call this to start a new payment flow.\n *\n * @param params - Parameters describing the payment to be created.\n */\n createPreviewOrder: (\n params: PayParams,\n ) => Promise<Extract<PaymentState, { type: \"preview\" }>>;\n\n /**\n * Set the order ID to fetch and manage an existing Daimo Pay order.\n * Useful for resuming or referencing a previously created order.\n *\n * @param id - The Daimo Pay order ID to set.\n */\n setPayId: (id: DaimoPayOrderID) => Promise<\n Extract<\n PaymentState,\n {\n type:\n | \"unhydrated\"\n | \"payment_unpaid\"\n | \"payment_started\"\n | \"payment_completed\"\n | \"payment_bounced\";\n }\n >\n >;\n\n /**\n * Hydrate the current order, locking in the payment intent details and\n * token swap prices.\n */\n hydrateOrder: (\n refundAddress?: Address,\n ) => Promise<Extract<PaymentState, { type: \"payment_unpaid\" }>>;\n\n /** Trigger search for payment on the current order. */\n paySource: () => void;\n\n /**\n * Register an Ethereum payment source for the current order.\n * Call this after the user has submitted an Ethereum payment transaction.\n *\n * @param args - Details about the Ethereum payment transaction.\n */\n payEthSource: (args: {\n paymentTxHash: Hex;\n sourceChainId: number;\n payerAddress: Address;\n sourceToken: Address;\n sourceAmount: bigint;\n }) => Promise<\n Extract<\n PaymentState,\n { type: \"payment_started\" | \"payment_completed\" | \"payment_bounced\" }\n >\n >;\n\n /**\n * Register a Solana payment source for the current order.\n * Call this after the user has submitted a Solana payment transaction.\n *\n * @param args - Details about the Solana payment transaction.\n */\n paySolanaSource: (args: {\n paymentTxHash: string;\n sourceToken: SolanaPublicKey;\n }) => Promise<\n Extract<\n PaymentState,\n { type: \"payment_started\" | \"payment_completed\" | \"payment_bounced\" }\n >\n >;\n\n /**\n * Reset the current payment state and clear the active order.\n * Call this to start a new payment flow.\n */\n reset: () => void;\n\n /**\n * Update the user's chosen amount in USD. Applies only to deposit flow.\n *\n * @deprecated\n */\n setChosenUsd: (usd: number) => void;\n /** Set a non-fatal warning state with a message. */\n setWarning: (message: string) => void;\n /** Dismiss a warning and return to previous state. */\n dismissWarning: () => void;\n};\n\n// Enforce that order is typed correctly based on paymentState.\n// E.g. if paymentState is \"payment_completed\", then order must be hydrated.\ntype DaimoPayState = {\n [S in PaymentState as S[\"type\"]]: {\n paymentState: S[\"type\"];\n order: S extends { order: infer O } ? O : null;\n paymentErrorMessage: S extends { message: infer M } ? M : null;\n };\n}[PaymentState[\"type\"]];\n\nexport type UseDaimoPay = DaimoPayFunctions &\n DaimoPayState & { paymentWarningMessage: string | null };\n\n/**\n * React hook for interacting with Daimo Pay orders and payments. Use this hook\n * to manage the lifecycle of a Daimo Pay payment in your application.\n *\n * This hook provides a simple interface to create, hydrate, pay, and reset\n * Daimo Pay orders.\n *\n * @returns {UseDaimoPay} An object with current payment state and methods to\n * manage Daimo Pay orders and payments.\n */\nexport function useDaimoPay(): UseDaimoPay {\n const store = useContext(PaymentContext);\n if (!store) {\n throw new Error(\"useDaimoPay must be used within <PaymentProvider>\");\n }\n\n /* --------------------------------------------------\n Order state\n ---------------------------------------------------*/\n\n // Subscribe to the store and keep an up-to-date copy of the payment.\n const paymentFsmState = useSyncExternalStore(\n store.subscribe,\n store.getState,\n store.getState,\n );\n\n // Wrap `order` in `useMemo` for reference stability. This allows downstream\n // components to use `order` as a dependency to avoid unnecessary re-renders.\n const order = useMemo(() => {\n if (paymentFsmState.type === \"idle\") return null;\n return paymentFsmState.order ?? null;\n }, [paymentFsmState]);\n\n const paymentState = paymentFsmState.type;\n const paymentErrorMessage =\n paymentFsmState.type === \"error\" ? paymentFsmState.message : null;\n const paymentWarningMessage =\n paymentFsmState.type === \"warning\" ? paymentFsmState.message : null;\n\n /* --------------------------------------------------\n Order event dispatch helpers\n ---------------------------------------------------*/\n\n // Internal helper to dispatch events to the store.\n const dispatch = useCallback((e: PaymentEvent) => store.dispatch(e), [store]);\n\n const createPreviewOrder = useCallback(\n async (payParams: PayParams) => {\n dispatch({ type: \"set_pay_params\", payParams });\n\n // Wait for the order to enter the \"preview\" state, which means it\n // has been successfully created.\n const previewOrderState = await waitForPaymentState(store, \"preview\");\n\n return previewOrderState;\n },\n [dispatch, store],\n );\n\n const setPayId = useCallback(\n async (payId: DaimoPayOrderID) => {\n dispatch({ type: \"set_pay_id\", payId });\n\n // Wait for the order to be queried from the API. Using payId could\n // result in the order being in any state.\n const previewOrderState = await waitForPaymentState(\n store,\n \"unhydrated\",\n \"payment_unpaid\",\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return previewOrderState;\n },\n [dispatch, store],\n );\n\n const hydrateOrder = useCallback(\n async (refundAddress?: Address) => {\n dispatch({ type: \"hydrate_order\", refundAddress });\n\n // Wait for the order to enter the \"payment_unpaid\" state, which means it\n // has been successfully hydrated.\n const hydratedOrderState = await waitForPaymentState(\n store,\n \"payment_unpaid\",\n );\n\n return hydratedOrderState;\n },\n [dispatch, store],\n );\n\n const paySource = useCallback(\n () => dispatch({ type: \"pay_source\" }),\n [dispatch],\n );\n\n const payEthSource = useCallback(\n async (args: {\n paymentTxHash: Hex;\n sourceChainId: number;\n payerAddress: Address;\n sourceToken: Address;\n sourceAmount: bigint;\n }) => {\n dispatch({ type: \"pay_ethereum_source\", ...args });\n\n // Will throw if the payment is not verified by the server.\n const paidState = await waitForPaymentState(\n store,\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return paidState;\n },\n [dispatch, store],\n );\n\n const paySolanaSource = useCallback(\n async (args: { paymentTxHash: string; sourceToken: SolanaPublicKey }) => {\n dispatch({ type: \"pay_solana_source\", ...args });\n\n // Will throw if the payment is not verified by the server.\n const paidState = await waitForPaymentState(\n store,\n \"payment_started\",\n \"payment_completed\",\n \"payment_bounced\",\n );\n\n return paidState;\n },\n [dispatch, store],\n );\n\n const reset = useCallback(() => dispatch({ type: \"reset\" }), [dispatch]);\n\n const setChosenUsd = useCallback(\n (usd: number) => dispatch({ type: \"set_chosen_usd\", usd }),\n [dispatch],\n );\n\n const setWarning = useCallback(\n (message: string) =>\n dispatch({ type: \"warning\", order: order ?? undefined, message }),\n [dispatch, order],\n );\n\n const dismissWarning = useCallback(() => {\n // Narrow to a prior state that definitely includes an order with org\n let priorOrder:\n | Extract<\n PaymentState,\n {\n type:\n | \"preview\"\n | \"unhydrated\"\n | \"payment_unpaid\"\n | \"payment_started\"\n | \"payment_completed\"\n | \"payment_bounced\";\n }\n >[\"order\"]\n | undefined;\n switch (paymentFsmState.type) {\n case \"preview\":\n case \"unhydrated\":\n case \"payment_unpaid\":\n case \"payment_started\":\n case \"payment_completed\":\n case \"payment_bounced\":\n priorOrder = paymentFsmState.order;\n break;\n default:\n priorOrder = undefined;\n }\n dispatch({ type: \"dismiss_warning\", order: priorOrder });\n }, [dispatch, paymentFsmState]);\n\n return {\n order,\n paymentState,\n paymentErrorMessage,\n paymentWarningMessage,\n createPreviewOrder,\n hydrateOrder,\n setPayId,\n paySource,\n payEthSource,\n paySolanaSource,\n reset,\n setChosenUsd,\n setWarning,\n dismissWarning,\n } as UseDaimoPay;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { writeDaimoPayOrderID } from '@daimo/pay-common';
|
|
2
|
-
import { useDaimoPay } from './useDaimoPay.js';
|
|
3
|
-
|
|
4
|
-
function useDaimoPayStatus() {
|
|
5
|
-
const { order } = useDaimoPay();
|
|
6
|
-
if (order == null) return void 0;
|
|
7
|
-
const paymentId = writeDaimoPayOrderID(order.id);
|
|
8
|
-
return { paymentId, status: order.intentStatus };
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export { useDaimoPayStatus };
|
|
12
|
-
//# sourceMappingURL=useDaimoPayStatus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPayStatus.js","sources":["../../../src/hooks/useDaimoPayStatus.ts"],"sourcesContent":["import { DaimoPayIntentStatus, writeDaimoPayOrderID } from \"@daimo/pay-common\";\nimport { useDaimoPay } from \"./useDaimoPay\";\n\n/** Returns the current payment, or undefined if there is none.\n *\n * Status values:\n * - `payment_unpaid` - the user has not paid yet\n * - `payment_started` - the user has paid & payment is in progress. This status\n * typically lasts a few seconds.\n * - `payment_completed` - the final call or transfer succeeded\n * - `payment_bounced` - the final call or transfer reverted. Funds were sent\n * to the payment's configured refund address on the destination chain.\n */\nexport function useDaimoPayStatus():\n | { paymentId: string; status: DaimoPayIntentStatus }\n | undefined {\n const { order } = useDaimoPay();\n if (order == null) return undefined;\n\n const paymentId = writeDaimoPayOrderID(order.id);\n\n return { paymentId, status: order.intentStatus };\n}\n"],"names":[],"mappings":";;;AAaO,SAAS,iBAEF,GAAA;AACZ,EAAM,MAAA,EAAE,KAAM,EAAA,GAAI,WAAY,EAAA,CAAA;AAC9B,EAAI,IAAA,KAAA,IAAS,MAAa,OAAA,KAAA,CAAA,CAAA;AAE1B,EAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAE/C,EAAA,OAAO,EAAE,SAAA,EAAW,MAAQ,EAAA,KAAA,CAAM,YAAa,EAAA,CAAA;AACjD;;;;"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useContext } from 'react';
|
|
2
|
-
import { PayContext } from '../provider/PayContext.js';
|
|
3
|
-
|
|
4
|
-
function useDaimoPayUI() {
|
|
5
|
-
const context = useContext(PayContext);
|
|
6
|
-
if (!context) {
|
|
7
|
-
throw new Error("useDaimoPayUI must be used within a DaimoPayUIProvider");
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
resetPayment: context.paymentState.resetOrder
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export { useDaimoPayUI };
|
|
15
|
-
//# sourceMappingURL=useDaimoPayUI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDaimoPayUI.js","sources":["../../../src/hooks/useDaimoPayUI.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { PayParams } from \"../payment/paymentFsm\";\nimport { PayContext } from \"../provider/PayContext\";\n\ntype UseDaimoPayUI = {\n resetPayment: (payParams?: Partial<PayParams>) => Promise<void>;\n};\n\nexport function useDaimoPayUI(): UseDaimoPayUI {\n const context = useContext(PayContext);\n if (!context) {\n throw new Error(\"useDaimoPayUI must be used within a DaimoPayUIProvider\");\n }\n\n return {\n resetPayment: context.paymentState.resetOrder,\n };\n}\n"],"names":[],"mappings":";;;AAQO,SAAS,aAA+B,GAAA;AAC7C,EAAM,MAAA,OAAA,GAAU,WAAW,UAAU,CAAA,CAAA;AACrC,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,wDAAwD,CAAA,CAAA;AAAA,GAC1E;AAEA,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,QAAQ,YAAa,CAAA,UAAA;AAAA,GACrC,CAAA;AACF;;;;"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createConfig, http } from 'wagmi';
|
|
2
|
-
import { mainnet } from 'wagmi/chains';
|
|
3
|
-
import { useChainIsSupported } from './useChainIsSupported.js';
|
|
4
|
-
|
|
5
|
-
const ensFallbackConfig = createConfig({
|
|
6
|
-
chains: [mainnet],
|
|
7
|
-
transports: {
|
|
8
|
-
[mainnet.id]: http()
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function useEnsFallbackConfig() {
|
|
12
|
-
return !useChainIsSupported(1) ? ensFallbackConfig : void 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export { useEnsFallbackConfig };
|
|
16
|
-
//# sourceMappingURL=useEnsFallbackConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useEnsFallbackConfig.js","sources":["../../../src/hooks/useEnsFallbackConfig.ts"],"sourcesContent":["import type { Config } from \"@wagmi/core\";\nimport { createConfig, http } from \"wagmi\";\nimport { mainnet } from \"wagmi/chains\";\nimport { useChainIsSupported } from \"../hooks/useChainIsSupported\";\n\nconst ensFallbackConfig = createConfig({\n chains: [mainnet],\n transports: {\n [mainnet.id]: http(),\n },\n});\n\nexport function useEnsFallbackConfig(): Config | undefined {\n return !useChainIsSupported(1) ? ensFallbackConfig : undefined;\n}\n"],"names":[],"mappings":";;;;AAKA,MAAM,oBAAoB,YAAa,CAAA;AAAA,EACrC,MAAA,EAAQ,CAAC,OAAO,CAAA;AAAA,EAChB,UAAY,EAAA;AAAA,IACV,CAAC,OAAA,CAAQ,EAAE,GAAG,IAAK,EAAA;AAAA,GACrB;AACF,CAAC,CAAA,CAAA;AAEM,SAAS,oBAA2C,GAAA;AACzD,EAAA,OAAO,CAAC,mBAAA,CAAoB,CAAC,CAAA,GAAI,iBAAoB,GAAA,KAAA,CAAA,CAAA;AACvD;;;;"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { useCallback, useRef, useState, useEffect, useLayoutEffect } from 'react';
|
|
2
|
-
import ResizeObserver from 'resize-observer-polyfill';
|
|
3
|
-
|
|
4
|
-
const LOG_LEVEL = {
|
|
5
|
-
debug: 10,
|
|
6
|
-
info: 20,
|
|
7
|
-
warn: 30,
|
|
8
|
-
error: 40,
|
|
9
|
-
none: 100
|
|
10
|
-
};
|
|
11
|
-
const useIsoLayoutEffect = typeof window !== "undefined" && window.document && window.document.createElement !== void 0 ? useLayoutEffect : useEffect;
|
|
12
|
-
const useFitText = ({
|
|
13
|
-
logLevel: logLevelOption = "info",
|
|
14
|
-
maxFontSize = 100,
|
|
15
|
-
minFontSize = 20,
|
|
16
|
-
onFinish,
|
|
17
|
-
onStart,
|
|
18
|
-
resolution = 5
|
|
19
|
-
} = {}) => {
|
|
20
|
-
const logLevel = LOG_LEVEL[logLevelOption];
|
|
21
|
-
const initState = useCallback(() => {
|
|
22
|
-
return {
|
|
23
|
-
calcKey: 0,
|
|
24
|
-
fontSize: maxFontSize,
|
|
25
|
-
fontSizePrev: minFontSize,
|
|
26
|
-
fontSizeMax: maxFontSize,
|
|
27
|
-
fontSizeMin: minFontSize
|
|
28
|
-
};
|
|
29
|
-
}, [maxFontSize, minFontSize]);
|
|
30
|
-
const ref = useRef(null);
|
|
31
|
-
const innerHtmlPrevRef = useRef();
|
|
32
|
-
const isCalculatingRef = useRef(false);
|
|
33
|
-
const [state, setState] = useState(initState);
|
|
34
|
-
const { calcKey, fontSize, fontSizeMax, fontSizeMin, fontSizePrev } = state;
|
|
35
|
-
let animationFrameId = null;
|
|
36
|
-
const [ro] = useState(
|
|
37
|
-
() => new ResizeObserver(() => {
|
|
38
|
-
animationFrameId = window.requestAnimationFrame(() => {
|
|
39
|
-
if (isCalculatingRef.current) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
onStart && onStart();
|
|
43
|
-
isCalculatingRef.current = true;
|
|
44
|
-
setState({
|
|
45
|
-
...initState(),
|
|
46
|
-
calcKey: calcKey + 1
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
})
|
|
50
|
-
);
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
if (ref.current) {
|
|
53
|
-
ro.observe(ref.current);
|
|
54
|
-
}
|
|
55
|
-
return () => {
|
|
56
|
-
animationFrameId && window.cancelAnimationFrame(animationFrameId);
|
|
57
|
-
ro.disconnect();
|
|
58
|
-
};
|
|
59
|
-
}, [animationFrameId, ro]);
|
|
60
|
-
const innerHtml = ref.current && ref.current.innerHTML;
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
if (calcKey === 0 || isCalculatingRef.current) return;
|
|
63
|
-
if (innerHtml !== innerHtmlPrevRef.current) {
|
|
64
|
-
onStart && onStart();
|
|
65
|
-
setState({
|
|
66
|
-
...initState(),
|
|
67
|
-
calcKey: calcKey + 1
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
innerHtmlPrevRef.current = innerHtml;
|
|
71
|
-
}, [calcKey, initState, innerHtml, onStart]);
|
|
72
|
-
useIsoLayoutEffect(() => {
|
|
73
|
-
if (calcKey === 0) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const isWithinResolution = Math.abs(fontSize - fontSizePrev) <= resolution;
|
|
77
|
-
const isOverflow = !!ref.current && (ref.current.scrollHeight > ref.current.offsetHeight || ref.current.scrollWidth > ref.current.offsetWidth);
|
|
78
|
-
const isFailed = isOverflow && fontSize === fontSizePrev;
|
|
79
|
-
const isAsc = fontSize > fontSizePrev;
|
|
80
|
-
if (isWithinResolution) {
|
|
81
|
-
if (isFailed) {
|
|
82
|
-
isCalculatingRef.current = false;
|
|
83
|
-
if (logLevel <= LOG_LEVEL.info) {
|
|
84
|
-
console.info(
|
|
85
|
-
`[use-fit-text] reached \`minFontSize = ${minFontSize}\` without fitting text`
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
} else if (isOverflow) {
|
|
89
|
-
setState({
|
|
90
|
-
fontSize: isAsc ? fontSizePrev : fontSizeMin,
|
|
91
|
-
fontSizeMax,
|
|
92
|
-
fontSizeMin,
|
|
93
|
-
fontSizePrev,
|
|
94
|
-
calcKey
|
|
95
|
-
});
|
|
96
|
-
} else {
|
|
97
|
-
isCalculatingRef.current = false;
|
|
98
|
-
onFinish && onFinish(fontSize);
|
|
99
|
-
}
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
let delta;
|
|
103
|
-
let newMax = fontSizeMax;
|
|
104
|
-
let newMin = fontSizeMin;
|
|
105
|
-
if (isOverflow) {
|
|
106
|
-
delta = isAsc ? fontSizePrev - fontSize : fontSizeMin - fontSize;
|
|
107
|
-
newMax = Math.min(fontSizeMax, fontSize);
|
|
108
|
-
} else {
|
|
109
|
-
delta = isAsc ? fontSizeMax - fontSize : fontSizePrev - fontSize;
|
|
110
|
-
newMin = Math.max(fontSizeMin, fontSize);
|
|
111
|
-
}
|
|
112
|
-
setState({
|
|
113
|
-
calcKey,
|
|
114
|
-
fontSize: fontSize + delta / 2,
|
|
115
|
-
fontSizeMax: newMax,
|
|
116
|
-
fontSizeMin: newMin,
|
|
117
|
-
fontSizePrev: fontSize
|
|
118
|
-
});
|
|
119
|
-
}, [
|
|
120
|
-
calcKey,
|
|
121
|
-
fontSize,
|
|
122
|
-
fontSizeMax,
|
|
123
|
-
fontSizeMin,
|
|
124
|
-
fontSizePrev,
|
|
125
|
-
onFinish,
|
|
126
|
-
ref,
|
|
127
|
-
resolution
|
|
128
|
-
]);
|
|
129
|
-
return { fontSize, ref };
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
export { useFitText as default };
|
|
133
|
-
//# sourceMappingURL=useFitText.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFitText.js","sources":["../../../src/hooks/useFitText.tsx"],"sourcesContent":["// https://github.com/saltycrane/use-fit-text\n\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport type TLogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"none\";\n\nexport type TOptions = {\n logLevel?: TLogLevel;\n maxFontSize?: number;\n minFontSize?: number;\n onFinish?: (fontSize: number) => void;\n onStart?: () => void;\n resolution?: number;\n};\n\nconst LOG_LEVEL: Record<TLogLevel, number> = {\n debug: 10,\n info: 20,\n warn: 30,\n error: 40,\n none: 100,\n};\n\n// Suppress `useLayoutEffect` warning when rendering on the server\n// https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsoLayoutEffect =\n typeof window !== \"undefined\" &&\n window.document &&\n window.document.createElement !== undefined\n ? useLayoutEffect\n : useEffect;\n\nconst useFitText = ({\n logLevel: logLevelOption = \"info\",\n maxFontSize = 100,\n minFontSize = 20,\n onFinish,\n onStart,\n resolution = 5,\n}: TOptions = {}) => {\n const logLevel = LOG_LEVEL[logLevelOption];\n\n const initState = useCallback(() => {\n return {\n calcKey: 0,\n fontSize: maxFontSize,\n fontSizePrev: minFontSize,\n fontSizeMax: maxFontSize,\n fontSizeMin: minFontSize,\n };\n }, [maxFontSize, minFontSize]);\n\n const ref = useRef<HTMLDivElement>(null);\n const innerHtmlPrevRef = useRef<string | null>();\n const isCalculatingRef = useRef(false);\n const [state, setState] = useState(initState);\n const { calcKey, fontSize, fontSizeMax, fontSizeMin, fontSizePrev } = state;\n\n // Montior div size changes and recalculate on resize\n let animationFrameId: number | null = null;\n const [ro] = useState(\n () =>\n new ResizeObserver(() => {\n animationFrameId = window.requestAnimationFrame(() => {\n if (isCalculatingRef.current) {\n return;\n }\n onStart && onStart();\n isCalculatingRef.current = true;\n // `calcKey` is used in the dependencies array of\n // `useIsoLayoutEffect` below. It is incremented so that the font size\n // will be recalculated even if the previous state didn't change (e.g.\n // when the text fit initially).\n setState({\n ...initState(),\n calcKey: calcKey + 1,\n });\n });\n }),\n );\n\n useEffect(() => {\n if (ref.current) {\n ro.observe(ref.current);\n }\n return () => {\n animationFrameId && window.cancelAnimationFrame(animationFrameId);\n ro.disconnect();\n };\n }, [animationFrameId, ro]);\n\n // Recalculate when the div contents change\n const innerHtml = ref.current && ref.current.innerHTML;\n useEffect(() => {\n if (calcKey === 0 || isCalculatingRef.current) return;\n\n if (innerHtml !== innerHtmlPrevRef.current) {\n onStart && onStart();\n setState({\n ...initState(),\n calcKey: calcKey + 1,\n });\n }\n innerHtmlPrevRef.current = innerHtml;\n }, [calcKey, initState, innerHtml, onStart]);\n\n // Check overflow and resize font\n useIsoLayoutEffect(() => {\n // Don't start calculating font size until the `resizeKey` is incremented\n // above in the `ResizeObserver` callback. This avoids an extra resize\n // on initialization.\n if (calcKey === 0) {\n return;\n }\n\n const isWithinResolution = Math.abs(fontSize - fontSizePrev) <= resolution;\n const isOverflow =\n !!ref.current &&\n (ref.current.scrollHeight > ref.current.offsetHeight ||\n ref.current.scrollWidth > ref.current.offsetWidth);\n const isFailed = isOverflow && fontSize === fontSizePrev;\n const isAsc = fontSize > fontSizePrev;\n\n // Return if the font size has been adjusted \"enough\" (change within `resolution`)\n // reduce font size by one increment if it's overflowing.\n if (isWithinResolution) {\n if (isFailed) {\n isCalculatingRef.current = false;\n if (logLevel <= LOG_LEVEL.info) {\n console.info(\n `[use-fit-text] reached \\`minFontSize = ${minFontSize}\\` without fitting text`,\n );\n }\n } else if (isOverflow) {\n setState({\n fontSize: isAsc ? fontSizePrev : fontSizeMin,\n fontSizeMax,\n fontSizeMin,\n fontSizePrev,\n calcKey,\n });\n } else {\n isCalculatingRef.current = false;\n onFinish && onFinish(fontSize);\n }\n return;\n }\n\n // Binary search to adjust font size\n let delta: number;\n let newMax = fontSizeMax;\n let newMin = fontSizeMin;\n if (isOverflow) {\n delta = isAsc ? fontSizePrev - fontSize : fontSizeMin - fontSize;\n newMax = Math.min(fontSizeMax, fontSize);\n } else {\n delta = isAsc ? fontSizeMax - fontSize : fontSizePrev - fontSize;\n newMin = Math.max(fontSizeMin, fontSize);\n }\n setState({\n calcKey,\n fontSize: fontSize + delta / 2,\n fontSizeMax: newMax,\n fontSizeMin: newMin,\n fontSizePrev: fontSize,\n });\n }, [\n calcKey,\n fontSize,\n fontSizeMax,\n fontSizeMin,\n fontSizePrev,\n onFinish,\n ref,\n resolution,\n ]);\n\n return { fontSize, ref };\n};\n\nexport default useFitText;\n"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useEffect, useRef } from 'react';
|
|
3
|
-
|
|
4
|
-
const KEYCODE_TAB = 9;
|
|
5
|
-
function useFocusTrap() {
|
|
6
|
-
const elRef = useRef(null);
|
|
7
|
-
function handleFocus(e) {
|
|
8
|
-
if (!elRef.current) return;
|
|
9
|
-
var focusableEls = elRef.current.querySelectorAll(`
|
|
10
|
-
a[href]:not(:disabled),
|
|
11
|
-
button:not(:disabled),
|
|
12
|
-
textarea:not(:disabled),
|
|
13
|
-
input[type="text"]:not(:disabled),
|
|
14
|
-
input[type="radio"]:not(:disabled),
|
|
15
|
-
input[type="checkbox"]:not(:disabled),
|
|
16
|
-
select:not(:disabled)
|
|
17
|
-
`), firstFocusableEl = focusableEls[0], lastFocusableEl = focusableEls[focusableEls.length - 1];
|
|
18
|
-
var isTabPressed = e.key === "Tab" || e.keyCode === KEYCODE_TAB;
|
|
19
|
-
if (!isTabPressed) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (e.shiftKey) {
|
|
23
|
-
if (document.activeElement === firstFocusableEl) {
|
|
24
|
-
lastFocusableEl.focus();
|
|
25
|
-
e.preventDefault();
|
|
26
|
-
}
|
|
27
|
-
} else {
|
|
28
|
-
if (document.activeElement === lastFocusableEl) {
|
|
29
|
-
firstFocusableEl.focus();
|
|
30
|
-
e.preventDefault();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
const el = elRef.current;
|
|
36
|
-
if (el == null) return;
|
|
37
|
-
el.addEventListener("keydown", handleFocus);
|
|
38
|
-
el.focus({ preventScroll: true });
|
|
39
|
-
return () => el.removeEventListener("keydown", handleFocus);
|
|
40
|
-
}, []);
|
|
41
|
-
return elRef;
|
|
42
|
-
}
|
|
43
|
-
function FocusTrap(props) {
|
|
44
|
-
const elRef = useFocusTrap();
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (!elRef.current) return;
|
|
47
|
-
elRef.current.focus({ preventScroll: true });
|
|
48
|
-
}, []);
|
|
49
|
-
return /* @__PURE__ */ jsx("div", { ref: elRef, tabIndex: 0, children: props.children });
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export { FocusTrap as default };
|
|
53
|
-
//# sourceMappingURL=useFocusTrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusTrap.js","sources":["../../../src/hooks/useFocusTrap.tsx"],"sourcesContent":["// Based on https://hiddedevries.nl/en/blog/2017-01-29-using-javascript-to-trap-focus-in-an-element\n\nimport { useEffect, useRef } from \"react\";\n\nconst KEYCODE_TAB = 9;\n\nfunction useFocusTrap() {\n const elRef = useRef<any>(null);\n\n function handleFocus(e: any) {\n if (!elRef.current) return;\n var focusableEls = elRef.current.querySelectorAll(`\n a[href]:not(:disabled),\n button:not(:disabled),\n textarea:not(:disabled),\n input[type=\"text\"]:not(:disabled),\n input[type=\"radio\"]:not(:disabled),\n input[type=\"checkbox\"]:not(:disabled),\n select:not(:disabled)\n `),\n firstFocusableEl = focusableEls[0],\n lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n var isTabPressed = e.key === \"Tab\" || e.keyCode === KEYCODE_TAB;\n\n if (!isTabPressed) {\n return;\n }\n\n if (e.shiftKey) {\n /* shift + tab */ if (document.activeElement === firstFocusableEl) {\n lastFocusableEl.focus();\n e.preventDefault();\n }\n } /* tab */ else {\n if (document.activeElement === lastFocusableEl) {\n firstFocusableEl.focus();\n e.preventDefault();\n }\n }\n }\n\n useEffect(() => {\n const el = elRef.current;\n if (el == null) return;\n el.addEventListener(\"keydown\", handleFocus);\n el.focus({ preventScroll: true });\n return () => el.removeEventListener(\"keydown\", handleFocus);\n }, []);\n\n return elRef;\n}\n\nexport default function FocusTrap(props: any) {\n const elRef = useFocusTrap();\n\n useEffect(() => {\n if (!elRef.current) return;\n elRef.current.focus({ preventScroll: true });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div ref={elRef} tabIndex={0}>\n {props.children}\n </div>\n );\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,WAAc,GAAA,CAAA,CAAA;AAEpB,SAAS,YAAe,GAAA;AACtB,EAAM,MAAA,KAAA,GAAQ,OAAY,IAAI,CAAA,CAAA;AAE9B,EAAA,SAAS,YAAY,CAAQ,EAAA;AAC3B,IAAI,IAAA,CAAC,MAAM,OAAS,EAAA,OAAA;AACpB,IAAI,IAAA,YAAA,GAAe,KAAM,CAAA,OAAA,CAAQ,gBAAiB,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQ/C,CAAA,CAAA,EACD,mBAAmB,YAAa,CAAA,CAAC,GACjC,eAAkB,GAAA,YAAA,CAAa,YAAa,CAAA,MAAA,GAAS,CAAC,CAAA,CAAA;AAExD,IAAA,IAAI,YAAe,GAAA,CAAA,CAAE,GAAQ,KAAA,KAAA,IAAS,EAAE,OAAY,KAAA,WAAA,CAAA;AAEpD,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,EAAE,QAAU,EAAA;AACI,MAAI,IAAA,QAAA,CAAS,kBAAkB,gBAAkB,EAAA;AACjE,QAAA,eAAA,CAAgB,KAAM,EAAA,CAAA;AACtB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,OACnB;AAAA,KACe,MAAA;AACf,MAAI,IAAA,QAAA,CAAS,kBAAkB,eAAiB,EAAA;AAC9C,QAAA,gBAAA,CAAiB,KAAM,EAAA,CAAA;AACvB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,OACnB;AAAA,KACF;AAAA,GACF;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAK,KAAM,CAAA,OAAA,CAAA;AACjB,IAAA,IAAI,MAAM,IAAM,EAAA,OAAA;AAChB,IAAG,EAAA,CAAA,gBAAA,CAAiB,WAAW,WAAW,CAAA,CAAA;AAC1C,IAAA,EAAA,CAAG,KAAM,CAAA,EAAE,aAAe,EAAA,IAAA,EAAM,CAAA,CAAA;AAChC,IAAA,OAAO,MAAM,EAAA,CAAG,mBAAoB,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAAA,GAC5D,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AAEA,SAAwB,UAAU,KAAY,EAAA;AAC5C,EAAA,MAAM,QAAQ,YAAa,EAAA,CAAA;AAE3B,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,MAAM,OAAS,EAAA,OAAA;AACpB,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,EAAE,aAAA,EAAe,MAAM,CAAA,CAAA;AAAA,GAC7C,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,2BACG,KAAI,EAAA,EAAA,GAAA,EAAK,OAAO,QAAU,EAAA,CAAA,EACxB,gBAAM,QACT,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import { isIOS, isAndroid } from '../utils/index.js';
|
|
3
|
-
|
|
4
|
-
function useIsMobile() {
|
|
5
|
-
const isI = useMemo(isIOS, []);
|
|
6
|
-
const isA = useMemo(isAndroid, []);
|
|
7
|
-
return { isMobile: isI || isA, isIOS: isI, isAndroid: isA };
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export { useIsMobile as default };
|
|
11
|
-
//# sourceMappingURL=useIsMobile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMobile.js","sources":["../../../src/hooks/useIsMobile.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { isAndroid, isIOS } from \"../utils\";\n\nexport default function useIsMobile() {\n const isI = useMemo(isIOS, []);\n const isA = useMemo(isAndroid, []);\n return { isMobile: isI || isA, isIOS: isI, isAndroid: isA };\n}\n"],"names":[],"mappings":";;;AAGA,SAAwB,WAAc,GAAA;AACpC,EAAA,MAAM,GAAM,GAAA,OAAA,CAAQ,KAAO,EAAA,EAAE,CAAA,CAAA;AAC7B,EAAA,MAAM,GAAM,GAAA,OAAA,CAAQ,SAAW,EAAA,EAAE,CAAA,CAAA;AACjC,EAAA,OAAO,EAAE,QAAU,EAAA,GAAA,IAAO,KAAK,KAAO,EAAA,GAAA,EAAK,WAAW,GAAI,EAAA,CAAA;AAC5D;;;;"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
function useIsMounted() {
|
|
4
|
-
const [mounted, setMounted] = useState(false);
|
|
5
|
-
useEffect(() => setMounted(true), []);
|
|
6
|
-
return mounted;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export { useIsMounted as default };
|
|
10
|
-
//# sourceMappingURL=useIsMounted.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMounted.js","sources":["../../../src/hooks/useIsMounted.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\n/** Utility. Returns false on first render, true after.\n * Useful for apps with SSR, for example. */\nexport default function useIsMounted() {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n return mounted;\n}\n"],"names":[],"mappings":";;AAIA,SAAwB,YAAe,GAAA;AACrC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAC5C,EAAA,SAAA,CAAU,MAAM,UAAA,CAAW,IAAI,CAAA,EAAG,EAAE,CAAA,CAAA;AACpC,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
import { useConfig } from 'wagmi';
|
|
3
|
-
|
|
4
|
-
const useLastConnector = () => {
|
|
5
|
-
const { storage } = useConfig();
|
|
6
|
-
const [lastConnectorId, setLastConnectorId] = useState(null);
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
const init = async () => {
|
|
9
|
-
const id = await storage?.getItem("recentConnectorId");
|
|
10
|
-
setLastConnectorId(id ?? "");
|
|
11
|
-
};
|
|
12
|
-
init();
|
|
13
|
-
}, []);
|
|
14
|
-
const update = (id) => {
|
|
15
|
-
storage?.setItem("recentConnectorId", id);
|
|
16
|
-
};
|
|
17
|
-
return {
|
|
18
|
-
lastConnectorId,
|
|
19
|
-
updateLastConnectorId: update
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export { useLastConnector };
|
|
24
|
-
//# sourceMappingURL=useLastConnector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLastConnector.js","sources":["../../../src/hooks/useLastConnector.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useConfig } from \"wagmi\";\n\nexport const useLastConnector = () => {\n const { storage } = useConfig();\n const [lastConnectorId, setLastConnectorId] = useState<string | null>(null);\n\n useEffect(() => {\n const init = async () => {\n const id = await storage?.getItem(\"recentConnectorId\");\n setLastConnectorId(id ?? \"\");\n };\n init();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const update = (id: string) => {\n storage?.setItem(\"recentConnectorId\", id);\n };\n\n return {\n lastConnectorId,\n updateLastConnectorId: update,\n };\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,SAAU,EAAA,CAAA;AAC9B,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAwB,IAAI,CAAA,CAAA;AAE1E,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAO,YAAY;AACvB,MAAA,MAAM,EAAK,GAAA,MAAM,OAAS,EAAA,OAAA,CAAQ,mBAAmB,CAAA,CAAA;AACrD,MAAA,kBAAA,CAAmB,MAAM,EAAE,CAAA,CAAA;AAAA,KAC7B,CAAA;AACA,IAAK,IAAA,EAAA,CAAA;AAAA,GACP,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,MAAA,GAAS,CAAC,EAAe,KAAA;AAC7B,IAAS,OAAA,EAAA,OAAA,CAAQ,qBAAqB,EAAE,CAAA,CAAA;AAAA,GAC1C,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,eAAA;AAAA,IACA,qBAAuB,EAAA,MAAA;AAAA,GACzB,CAAA;AACF;;;;"}
|