@daimo/pay 1.19.9 → 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 -661
- 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 -65
- 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 -183
- 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,60 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React, { useMemo } from 'react';
|
|
3
|
-
import { usePayContext } from './usePayContext.js';
|
|
4
|
-
import { getLocale } from '../localizations/index.js';
|
|
5
|
-
|
|
6
|
-
function useLocales(replacements) {
|
|
7
|
-
const context = usePayContext();
|
|
8
|
-
const language = context.options?.language ?? "en-US";
|
|
9
|
-
const translations = useMemo(() => {
|
|
10
|
-
return getLocale(language);
|
|
11
|
-
}, [language]);
|
|
12
|
-
if (!translations) {
|
|
13
|
-
console.error(`Missing translations for: ${language}`);
|
|
14
|
-
throw new Error(`Missing translations for: ${language}`);
|
|
15
|
-
}
|
|
16
|
-
const translated = {};
|
|
17
|
-
Object.keys(translations).map((key) => {
|
|
18
|
-
const string = translations[key];
|
|
19
|
-
return translated[key] = localize(string, replacements);
|
|
20
|
-
});
|
|
21
|
-
return translated;
|
|
22
|
-
}
|
|
23
|
-
const localize = (text, replacements) => {
|
|
24
|
-
let parsedText = text;
|
|
25
|
-
if (replacements) {
|
|
26
|
-
Object.keys(replacements).forEach((key) => {
|
|
27
|
-
parsedText = parsedText.replace(
|
|
28
|
-
new RegExp(`({{ ${key} }})`, "g"),
|
|
29
|
-
replacements[key]
|
|
30
|
-
);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
return replaceMarkdown(parsedText);
|
|
34
|
-
};
|
|
35
|
-
const replaceMarkdown = (markdownText) => {
|
|
36
|
-
let text = markdownText;
|
|
37
|
-
text = text.split("\n");
|
|
38
|
-
text = text.map((t, i) => {
|
|
39
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
40
|
-
wrapTags(t),
|
|
41
|
-
i < text.length - 1 && /* @__PURE__ */ jsx("br", {})
|
|
42
|
-
] }, i);
|
|
43
|
-
});
|
|
44
|
-
return text;
|
|
45
|
-
};
|
|
46
|
-
const wrapTags = (text) => {
|
|
47
|
-
const textArray = text.split(/(\*\*[^\*]*\*\*)/g);
|
|
48
|
-
let result = textArray.map((str, i) => {
|
|
49
|
-
if (/(\*\*.*\*\*)/g.test(str)) {
|
|
50
|
-
return /* @__PURE__ */ jsx("strong", { children: str.replace(/\*\*/g, "") }, i);
|
|
51
|
-
}
|
|
52
|
-
return `${str}`;
|
|
53
|
-
});
|
|
54
|
-
return result.map((r) => {
|
|
55
|
-
return r;
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export { useLocales as default };
|
|
60
|
-
//# sourceMappingURL=useLocales.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLocales.js","sources":["../../../src/hooks/useLocales.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { usePayContext } from \"./usePayContext\";\n\nimport { LocaleFull } from \"../localizations/locales\";\nimport { getLocale } from \"./../localizations\";\n\nexport default function useLocales(replacements?: any): LocaleFull {\n const context = usePayContext();\n const language = context.options?.language ?? \"en-US\";\n\n const translations = useMemo(() => {\n return getLocale(language);\n }, [language]);\n\n if (!translations) {\n console.error(`Missing translations for: ${language}`);\n throw new Error(`Missing translations for: ${language}`);\n }\n\n const translated: any = {};\n Object.keys(translations).map((key) => {\n const string = translations[key];\n return (translated[key] = localize(string, replacements));\n });\n\n return translated;\n}\n\nconst localize = (text: string, replacements?: any[string]) => {\n let parsedText: string = text;\n if (replacements) {\n Object.keys(replacements).forEach((key) => {\n // use `replace` instead of `replaceAll` to support Node 14\n parsedText = parsedText.replace(\n new RegExp(`({{ ${key} }})`, \"g\"),\n replacements[key as keyof typeof replacements],\n );\n });\n }\n return replaceMarkdown(parsedText);\n};\n\nconst replaceMarkdown = (markdownText: string) => {\n let text: any = markdownText;\n text = text.split(\"\\n\");\n text = text.map((t: string, i: number) => {\n return (\n <React.Fragment key={i}>\n {wrapTags(t)}\n {i < text.length - 1 && <br />}\n </React.Fragment>\n );\n });\n return text;\n};\n\nconst wrapTags = (text: string) => {\n // Bold markdown handling\n const textArray = text.split(/(\\*\\*[^\\*]*\\*\\*)/g);\n let result = textArray.map((str, i) => {\n if (/(\\*\\*.*\\*\\*)/g.test(str)) {\n // use `replace` instead of `replaceAll` to support Node 14\n return <strong key={i}>{str.replace(/\\*\\*/g, \"\")}</strong>;\n }\n return `${str}`;\n });\n\n // Replace text with logo\n return result.map((r) => {\n return r;\n });\n};\n"],"names":[],"mappings":";;;;;AAOA,SAAwB,WAAW,YAAgC,EAAA;AACjE,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EAAM,MAAA,QAAA,GAAW,OAAQ,CAAA,OAAA,EAAS,QAAY,IAAA,OAAA,CAAA;AAE9C,EAAM,MAAA,YAAA,GAAe,QAAQ,MAAM;AACjC,IAAA,OAAO,UAAU,QAAQ,CAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAQ,OAAA,CAAA,KAAA,CAAM,CAA6B,0BAAA,EAAA,QAAQ,CAAE,CAAA,CAAA,CAAA;AACrD,IAAA,MAAM,IAAI,KAAA,CAAM,CAA6B,0BAAA,EAAA,QAAQ,CAAE,CAAA,CAAA,CAAA;AAAA,GACzD;AAEA,EAAA,MAAM,aAAkB,EAAC,CAAA;AACzB,EAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACrC,IAAM,MAAA,MAAA,GAAS,aAAa,GAAG,CAAA,CAAA;AAC/B,IAAA,OAAQ,UAAW,CAAA,GAAG,CAAI,GAAA,QAAA,CAAS,QAAQ,YAAY,CAAA,CAAA;AAAA,GACxD,CAAA,CAAA;AAED,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAEA,MAAM,QAAA,GAAW,CAAC,IAAA,EAAc,YAA+B,KAAA;AAC7D,EAAA,IAAI,UAAqB,GAAA,IAAA,CAAA;AACzB,EAAA,IAAI,YAAc,EAAA;AAChB,IAAA,MAAA,CAAO,IAAK,CAAA,YAAY,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAEzC,MAAA,UAAA,GAAa,UAAW,CAAA,OAAA;AAAA,QACtB,IAAI,MAAA,CAAO,CAAO,IAAA,EAAA,GAAG,QAAQ,GAAG,CAAA;AAAA,QAChC,aAAa,GAAgC,CAAA;AAAA,OAC/C,CAAA;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACA,EAAA,OAAO,gBAAgB,UAAU,CAAA,CAAA;AACnC,CAAA,CAAA;AAEA,MAAM,eAAA,GAAkB,CAAC,YAAyB,KAAA;AAChD,EAAA,IAAI,IAAY,GAAA,YAAA,CAAA;AAChB,EAAO,IAAA,GAAA,IAAA,CAAK,MAAM,IAAI,CAAA,CAAA;AACtB,EAAA,IAAA,GAAO,IAAK,CAAA,GAAA,CAAI,CAAC,CAAA,EAAW,CAAc,KAAA;AACxC,IACE,uBAAA,IAAA,CAAC,KAAM,CAAA,QAAA,EAAN,EACE,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,CAAC,CAAA;AAAA,MACV,CAAI,GAAA,IAAA,CAAK,MAAS,GAAA,CAAA,wBAAM,IAAG,EAAA,EAAA,CAAA;AAAA,KAAA,EAAA,EAFT,CAGrB,CAAA,CAAA;AAAA,GAEH,CAAA,CAAA;AACD,EAAO,OAAA,IAAA,CAAA;AACT,CAAA,CAAA;AAEA,MAAM,QAAA,GAAW,CAAC,IAAiB,KAAA;AAEjC,EAAM,MAAA,SAAA,GAAY,IAAK,CAAA,KAAA,CAAM,mBAAmB,CAAA,CAAA;AAChD,EAAA,IAAI,MAAS,GAAA,SAAA,CAAU,GAAI,CAAA,CAAC,KAAK,CAAM,KAAA;AACrC,IAAI,IAAA,eAAA,CAAgB,IAAK,CAAA,GAAG,CAAG,EAAA;AAE7B,MAAA,2BAAQ,QAAgB,EAAA,EAAA,QAAA,EAAA,GAAA,CAAI,QAAQ,OAAS,EAAA,EAAE,KAA3B,CAA6B,CAAA,CAAA;AAAA,KACnD;AACA,IAAA,OAAO,GAAG,GAAG,CAAA,CAAA,CAAA;AAAA,GACd,CAAA,CAAA;AAGD,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,CAAM,KAAA;AACvB,IAAO,OAAA,CAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACH,CAAA;;;;"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect, useLayoutEffect } from 'react';
|
|
2
|
-
import { usePayContext } from './usePayContext.js';
|
|
3
|
-
|
|
4
|
-
const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
5
|
-
function useLockBodyScroll(initialLocked) {
|
|
6
|
-
const [locked, setLocked] = useState(initialLocked);
|
|
7
|
-
const context = usePayContext();
|
|
8
|
-
useIsomorphicLayoutEffect(() => {
|
|
9
|
-
if (!locked) return;
|
|
10
|
-
const original = {
|
|
11
|
-
overflow: document.body.style.overflow,
|
|
12
|
-
position: document.body.style.position,
|
|
13
|
-
touchAction: document.body.style.touchAction,
|
|
14
|
-
paddingRight: document.body.style.paddingRight
|
|
15
|
-
//htmlOverflow: document.documentElement.style.overflow,
|
|
16
|
-
};
|
|
17
|
-
const style = getComputedStyle(document.body);
|
|
18
|
-
const offsetX = parseInt(style.marginRight) + parseInt(style.paddingRight) + parseInt(style.borderRight) + parseInt(style.marginLeft) + parseInt(style.paddingLeft) + parseInt(style.borderLeft);
|
|
19
|
-
const scrollBarWidth = window.innerWidth - document.body.offsetWidth - offsetX;
|
|
20
|
-
document.documentElement.style.setProperty(
|
|
21
|
-
"--ck-scrollbar-width",
|
|
22
|
-
`${scrollBarWidth}px`
|
|
23
|
-
);
|
|
24
|
-
document.body.style.overflow = "hidden";
|
|
25
|
-
document.body.style.position = "relative";
|
|
26
|
-
document.body.style.touchAction = "none";
|
|
27
|
-
if (context.options?.avoidLayoutShift) {
|
|
28
|
-
document.body.style.paddingRight = `${scrollBarWidth}px`;
|
|
29
|
-
}
|
|
30
|
-
return () => {
|
|
31
|
-
document.documentElement.style.removeProperty("--ck-scrollbar-width");
|
|
32
|
-
document.body.style.overflow = original.overflow;
|
|
33
|
-
document.body.style.position = original.position;
|
|
34
|
-
document.body.style.touchAction = original.touchAction;
|
|
35
|
-
if (context.options?.avoidLayoutShift) {
|
|
36
|
-
document.body.style.paddingRight = original.paddingRight;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
}, [locked]);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
if (locked !== initialLocked) setLocked(initialLocked);
|
|
42
|
-
}, [initialLocked]);
|
|
43
|
-
return [locked, setLocked];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export { useLockBodyScroll as default };
|
|
47
|
-
//# sourceMappingURL=useLockBodyScroll.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useLockBodyScroll.js","sources":["../../../src/hooks/useLockBodyScroll.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useState } from \"react\";\nimport { usePayContext } from \"./usePayContext\";\n\nconst useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport default function useLockBodyScroll(initialLocked: boolean) {\n const [locked, setLocked] = useState(initialLocked);\n\n const context = usePayContext();\n\n useIsomorphicLayoutEffect(() => {\n if (!locked) return;\n\n const original = {\n overflow: document.body.style.overflow,\n position: document.body.style.position,\n touchAction: document.body.style.touchAction,\n paddingRight: document.body.style.paddingRight,\n //htmlOverflow: document.documentElement.style.overflow,\n };\n\n const style = getComputedStyle(document.body);\n const offsetX =\n parseInt(style.marginRight) +\n parseInt(style.paddingRight) +\n parseInt(style.borderRight) +\n parseInt(style.marginLeft) +\n parseInt(style.paddingLeft) +\n parseInt(style.borderLeft);\n\n const scrollBarWidth =\n window.innerWidth - document.body.offsetWidth - offsetX;\n document.documentElement.style.setProperty(\n \"--ck-scrollbar-width\",\n `${scrollBarWidth}px`,\n );\n\n document.body.style.overflow = \"hidden\";\n document.body.style.position = \"relative\";\n document.body.style.touchAction = \"none\";\n //document.documentElement.style.overflow = 'hidden'; // overflow:hidden; on <html> breaks position:sticky;\n if (context.options?.avoidLayoutShift) {\n document.body.style.paddingRight = `${scrollBarWidth}px`;\n }\n\n return () => {\n document.documentElement.style.removeProperty(\"--ck-scrollbar-width\");\n\n document.body.style.overflow = original.overflow;\n document.body.style.position = original.position;\n document.body.style.touchAction = original.touchAction;\n //document.documentElement.style.overflow = original.htmlOverflow;\n if (context.options?.avoidLayoutShift) {\n document.body.style.paddingRight = original.paddingRight;\n }\n };\n }, [locked]);\n\n useEffect(() => {\n if (locked !== initialLocked) setLocked(initialLocked);\n }, [initialLocked]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return [locked, setLocked];\n}\n"],"names":[],"mappings":";;;AAGA,MAAM,yBACJ,GAAA,OAAO,MAAW,KAAA,WAAA,GAAc,eAAkB,GAAA,SAAA,CAAA;AAEpD,SAAwB,kBAAkB,aAAwB,EAAA;AAChE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,aAAa,CAAA,CAAA;AAElD,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAE9B,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,CAAC,MAAQ,EAAA,OAAA;AAEb,IAAA,MAAM,QAAW,GAAA;AAAA,MACf,QAAA,EAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA;AAAA,MAC9B,QAAA,EAAU,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA;AAAA,MAC9B,WAAA,EAAa,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA;AAAA,MACjC,YAAA,EAAc,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA;AAAA;AAAA,KAEpC,CAAA;AAEA,IAAM,MAAA,KAAA,GAAQ,gBAAiB,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAC5C,IAAM,MAAA,OAAA,GACJ,SAAS,KAAM,CAAA,WAAW,IAC1B,QAAS,CAAA,KAAA,CAAM,YAAY,CAAA,GAC3B,QAAS,CAAA,KAAA,CAAM,WAAW,CAC1B,GAAA,QAAA,CAAS,KAAM,CAAA,UAAU,CACzB,GAAA,QAAA,CAAS,MAAM,WAAW,CAAA,GAC1B,QAAS,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAE3B,IAAA,MAAM,cACJ,GAAA,MAAA,CAAO,UAAa,GAAA,QAAA,CAAS,KAAK,WAAc,GAAA,OAAA,CAAA;AAClD,IAAA,QAAA,CAAS,gBAAgB,KAAM,CAAA,WAAA;AAAA,MAC7B,sBAAA;AAAA,MACA,GAAG,cAAc,CAAA,EAAA,CAAA;AAAA,KACnB,CAAA;AAEA,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,QAAA,CAAA;AAC/B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,UAAA,CAAA;AAC/B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,WAAc,GAAA,MAAA,CAAA;AAElC,IAAI,IAAA,OAAA,CAAQ,SAAS,gBAAkB,EAAA;AACrC,MAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,YAAe,GAAA,CAAA,EAAG,cAAc,CAAA,EAAA,CAAA,CAAA;AAAA,KACtD;AAEA,IAAA,OAAO,MAAM;AACX,MAAS,QAAA,CAAA,eAAA,CAAgB,KAAM,CAAA,cAAA,CAAe,sBAAsB,CAAA,CAAA;AAEpE,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,GAAW,QAAS,CAAA,QAAA,CAAA;AACxC,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,GAAW,QAAS,CAAA,QAAA,CAAA;AACxC,MAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA,GAAc,QAAS,CAAA,WAAA,CAAA;AAE3C,MAAI,IAAA,OAAA,CAAQ,SAAS,gBAAkB,EAAA;AACrC,QAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,QAAS,CAAA,YAAA,CAAA;AAAA,OAC9C;AAAA,KACF,CAAA;AAAA,GACF,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,MAAA,KAAW,aAAe,EAAA,SAAA,CAAU,aAAa,CAAA,CAAA;AAAA,GACvD,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAElB,EAAO,OAAA,CAAC,QAAQ,SAAS,CAAA,CAAA;AAC3B;;;;"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
function useOrderUsdLimits({ trpc }) {
|
|
4
|
-
const [limits, setLimits] = useState({});
|
|
5
|
-
const [loading, setLoading] = useState(false);
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
const refreshOrderUsdLimits = async () => {
|
|
8
|
-
setLoading(true);
|
|
9
|
-
try {
|
|
10
|
-
const { limits: newLimits } = await trpc.getOrderUsdLimits.query();
|
|
11
|
-
setLimits(newLimits);
|
|
12
|
-
} catch (e) {
|
|
13
|
-
console.error(e);
|
|
14
|
-
} finally {
|
|
15
|
-
setLoading(false);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
refreshOrderUsdLimits();
|
|
19
|
-
}, []);
|
|
20
|
-
return { limits, loading };
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export { useOrderUsdLimits };
|
|
24
|
-
//# sourceMappingURL=useOrderUsdLimits.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useOrderUsdLimits.js","sources":["../../../src/hooks/useOrderUsdLimits.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { TrpcClient } from \"../utils/trpc\";\n\nexport function useOrderUsdLimits({ trpc }: { trpc: TrpcClient }) {\n const [limits, setLimits] = useState<Record<string, number>>({});\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const refreshOrderUsdLimits = async () => {\n setLoading(true);\n try {\n const { limits: newLimits } = await trpc.getOrderUsdLimits.query();\n setLimits(newLimits);\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n refreshOrderUsdLimits();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return { limits, loading };\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,iBAAA,CAAkB,EAAE,IAAA,EAA8B,EAAA;AAChE,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,CAAI,GAAA,QAAA,CAAiC,EAAE,CAAA,CAAA;AAC/D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,wBAAwB,YAAY;AACxC,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AACf,MAAI,IAAA;AACF,QAAA,MAAM,EAAE,MAAQ,EAAA,SAAA,KAAc,MAAM,IAAA,CAAK,kBAAkB,KAAM,EAAA,CAAA;AACjE,QAAA,SAAA,CAAU,SAAS,CAAA,CAAA;AAAA,eACZ,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA;AAAA,OACf,SAAA;AACA,QAAA,UAAA,CAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF,CAAA;AAEA,IAAsB,qBAAA,EAAA,CAAA;AAAA,GACxB,EAAG,EAAE,CAAA,CAAA;AAEL,EAAO,OAAA,EAAE,QAAQ,OAAQ,EAAA,CAAA;AAC3B;;;;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { PayContext } from '../provider/PayContext.js';
|
|
3
|
-
|
|
4
|
-
const usePayContext = () => {
|
|
5
|
-
const context = React.useContext(PayContext);
|
|
6
|
-
if (!context) throw Error("DaimoPay Hook must be inside a Provider.");
|
|
7
|
-
return context;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export { usePayContext };
|
|
11
|
-
//# sourceMappingURL=usePayContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePayContext.js","sources":["../../../src/hooks/usePayContext.ts"],"sourcesContent":["import React from \"react\";\nimport { PayContext } from \"../provider/PayContext\";\n\n/** Daimo Pay internal context. */\nexport const usePayContext = () => {\n const context = React.useContext(PayContext);\n if (!context) throw Error(\"DaimoPay Hook must be inside a Provider.\");\n return context;\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,gBAAgB,MAAM;AACjC,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAC3C,EAAA,IAAI,CAAC,OAAA,EAAe,MAAA,KAAA,CAAM,0CAA0C,CAAA,CAAA;AACpE,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { ExternalPaymentOptions, supportedChains } from '@daimo/pay-common';
|
|
2
|
-
import { useState, useMemo, useEffect } from 'react';
|
|
3
|
-
import { inferTopLevelFromArray } from '../constants/paymentOptions.js';
|
|
4
|
-
|
|
5
|
-
const DEFAULT_EXTERNAL_PAYMENT_OPTIONS = Object.values(
|
|
6
|
-
ExternalPaymentOptions
|
|
7
|
-
).filter(
|
|
8
|
-
(opt) => opt !== ExternalPaymentOptions.AllAddresses && opt !== ExternalPaymentOptions.AllPaymentApps
|
|
9
|
-
);
|
|
10
|
-
function usePaymentOptions({
|
|
11
|
-
trpc,
|
|
12
|
-
appId,
|
|
13
|
-
orderId,
|
|
14
|
-
isDepositFlow,
|
|
15
|
-
usdRequired,
|
|
16
|
-
solanaPubKey,
|
|
17
|
-
ethWalletAddress,
|
|
18
|
-
platform,
|
|
19
|
-
// For filtering/preferences from order metadata
|
|
20
|
-
filterIds,
|
|
21
|
-
preferredChains,
|
|
22
|
-
preferredTokens,
|
|
23
|
-
evmChains,
|
|
24
|
-
destChainId,
|
|
25
|
-
passthroughTokens,
|
|
26
|
-
destAddress,
|
|
27
|
-
log
|
|
28
|
-
}) {
|
|
29
|
-
const [externalOptions, setExternalOptions] = useState(/* @__PURE__ */ new Map());
|
|
30
|
-
const [walletOptions, setWalletOptions] = useState(null);
|
|
31
|
-
const [solanaOptions, setSolanaOptions] = useState(null);
|
|
32
|
-
const [depositOptions, setDepositOptions] = useState([]);
|
|
33
|
-
const [parsedConfig, setParsedConfig] = useState({
|
|
34
|
-
walletOrder: []
|
|
35
|
-
});
|
|
36
|
-
const [loading, setLoading] = useState(false);
|
|
37
|
-
const memoizedPreferredChains = useMemo(
|
|
38
|
-
() => preferredChains,
|
|
39
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
-
[JSON.stringify(preferredChains)]
|
|
41
|
-
);
|
|
42
|
-
const memoizedPreferredTokens = useMemo(
|
|
43
|
-
() => preferredTokens,
|
|
44
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
|
-
[JSON.stringify(preferredTokens)]
|
|
46
|
-
);
|
|
47
|
-
const memoizedEvmChains = useMemo(
|
|
48
|
-
() => evmChains,
|
|
49
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
50
|
-
[JSON.stringify(evmChains)]
|
|
51
|
-
);
|
|
52
|
-
const memoizedFilterIds = useMemo(
|
|
53
|
-
() => filterIds,
|
|
54
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
|
-
[JSON.stringify(filterIds)]
|
|
56
|
-
);
|
|
57
|
-
useEffect(() => {
|
|
58
|
-
const fetchPaymentOptions = async () => {
|
|
59
|
-
if (!platform || !appId && !orderId) return;
|
|
60
|
-
setLoading(true);
|
|
61
|
-
try {
|
|
62
|
-
const result = await trpc.getPaymentOptionsV1.query({
|
|
63
|
-
appId,
|
|
64
|
-
orderId: orderId?.toString(),
|
|
65
|
-
platform,
|
|
66
|
-
ethWalletAddress,
|
|
67
|
-
preferredChains: memoizedPreferredChains,
|
|
68
|
-
preferredTokens: memoizedPreferredTokens,
|
|
69
|
-
evmChains: memoizedEvmChains,
|
|
70
|
-
destChainId,
|
|
71
|
-
solanaPubKey,
|
|
72
|
-
usdRequired,
|
|
73
|
-
isDepositFlow
|
|
74
|
-
});
|
|
75
|
-
let walletOrder = [];
|
|
76
|
-
if (memoizedFilterIds) {
|
|
77
|
-
const nestedArray = memoizedFilterIds.find(
|
|
78
|
-
(opt) => Array.isArray(opt)
|
|
79
|
-
);
|
|
80
|
-
if (nestedArray && Array.isArray(nestedArray)) {
|
|
81
|
-
walletOrder = nestedArray;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
setParsedConfig({ walletOrder });
|
|
85
|
-
const flatFilterIds = memoizedFilterIds ? memoizedFilterIds.flatMap(
|
|
86
|
-
(opt) => Array.isArray(opt) ? inferTopLevelFromArray(opt) ?? "AllWallets" : opt
|
|
87
|
-
) : null;
|
|
88
|
-
const enabledExtPaymentOptions = flatFilterIds || DEFAULT_EXTERNAL_PAYMENT_OPTIONS;
|
|
89
|
-
const hasAllPaymentApps = enabledExtPaymentOptions.includes(
|
|
90
|
-
ExternalPaymentOptions.AllPaymentApps
|
|
91
|
-
);
|
|
92
|
-
const hasAllExchanges = enabledExtPaymentOptions.includes(
|
|
93
|
-
ExternalPaymentOptions.AllExchanges
|
|
94
|
-
);
|
|
95
|
-
const filteredExternal = result.externalOptions.filter(
|
|
96
|
-
(option) => enabledExtPaymentOptions.includes(option.id) || hasAllPaymentApps && option.optionType === "zkp2p" || hasAllExchanges && option.optionType === "exchange"
|
|
97
|
-
);
|
|
98
|
-
const optionsByType = /* @__PURE__ */ new Map();
|
|
99
|
-
filteredExternal.forEach((option) => {
|
|
100
|
-
const { optionType } = option;
|
|
101
|
-
if (!optionsByType.has(optionType)) {
|
|
102
|
-
optionsByType.set(optionType, []);
|
|
103
|
-
}
|
|
104
|
-
optionsByType.get(optionType).push(option);
|
|
105
|
-
});
|
|
106
|
-
setExternalOptions(optionsByType);
|
|
107
|
-
if (result.walletOptions.length > 0) {
|
|
108
|
-
const isSupported = (o) => supportedChains.some((c) => c.chainId === o.balance.token.chainId);
|
|
109
|
-
const filtered = result.walletOptions.filter(isSupported);
|
|
110
|
-
if (filtered.length < result.walletOptions.length) {
|
|
111
|
-
log(
|
|
112
|
-
`[WALLET]: skipping ${result.walletOptions.length - filtered.length} unsupported-chain balances`
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
if (destAddress) {
|
|
116
|
-
addPassthroughTokens(filtered, passthroughTokens, destAddress);
|
|
117
|
-
}
|
|
118
|
-
setWalletOptions(filtered);
|
|
119
|
-
} else {
|
|
120
|
-
setWalletOptions(ethWalletAddress ? [] : null);
|
|
121
|
-
}
|
|
122
|
-
setSolanaOptions(solanaPubKey ? result.solanaOptions : null);
|
|
123
|
-
setDepositOptions(result.depositAddressOptions);
|
|
124
|
-
} catch (error) {
|
|
125
|
-
console.error("[usePaymentOptions] error:", error);
|
|
126
|
-
} finally {
|
|
127
|
-
setLoading(false);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
fetchPaymentOptions();
|
|
131
|
-
}, [
|
|
132
|
-
trpc,
|
|
133
|
-
appId,
|
|
134
|
-
orderId,
|
|
135
|
-
isDepositFlow,
|
|
136
|
-
usdRequired,
|
|
137
|
-
solanaPubKey,
|
|
138
|
-
ethWalletAddress,
|
|
139
|
-
platform,
|
|
140
|
-
memoizedPreferredChains,
|
|
141
|
-
memoizedPreferredTokens,
|
|
142
|
-
memoizedEvmChains,
|
|
143
|
-
memoizedFilterIds,
|
|
144
|
-
destChainId,
|
|
145
|
-
destAddress,
|
|
146
|
-
passthroughTokens,
|
|
147
|
-
log
|
|
148
|
-
]);
|
|
149
|
-
return {
|
|
150
|
-
externalPaymentOptions: {
|
|
151
|
-
options: externalOptions,
|
|
152
|
-
loading,
|
|
153
|
-
parsedConfig
|
|
154
|
-
},
|
|
155
|
-
walletPaymentOptions: {
|
|
156
|
-
options: walletOptions,
|
|
157
|
-
isLoading: loading
|
|
158
|
-
},
|
|
159
|
-
solanaPaymentOptions: {
|
|
160
|
-
options: solanaOptions,
|
|
161
|
-
isLoading: loading
|
|
162
|
-
},
|
|
163
|
-
depositAddressOptions: {
|
|
164
|
-
options: depositOptions,
|
|
165
|
-
loading
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
function addPassthroughTokens(options, passthroughTokens, passthroughAddress) {
|
|
170
|
-
if (passthroughTokens == null) return;
|
|
171
|
-
for (const option of options) {
|
|
172
|
-
const tok = option.balance.token;
|
|
173
|
-
if (option.disabledReason != null) continue;
|
|
174
|
-
const found = passthroughTokens.find(
|
|
175
|
-
(t) => t.address === tok.token && t.chain == tok.chainId
|
|
176
|
-
);
|
|
177
|
-
if (found == null) continue;
|
|
178
|
-
option.passthroughAddress = passthroughAddress;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export { addPassthroughTokens, usePaymentOptions };
|
|
183
|
-
//# sourceMappingURL=usePaymentOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePaymentOptions.js","sources":["../../../src/hooks/usePaymentOptions.ts"],"sourcesContent":["import {\n DepositAddressPaymentOptionMetadata,\n ExternalPaymentOptionMetadata,\n ExternalPaymentOptions,\n PlatformType,\n supportedChains,\n WalletPaymentOption,\n} from \"@daimo/pay-common\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Address } from \"viem\";\nimport { inferTopLevelFromArray } from \"../constants/paymentOptions\";\nimport { TrpcClient } from \"../utils/trpc\";\n\nconst DEFAULT_EXTERNAL_PAYMENT_OPTIONS = Object.values(\n ExternalPaymentOptions,\n).filter(\n (opt) =>\n opt !== ExternalPaymentOptions.AllAddresses &&\n opt !== ExternalPaymentOptions.AllPaymentApps,\n);\n\nexport type PaymentOptionsResult = {\n externalPaymentOptions: {\n options: Map<\n \"external\" | \"zkp2p\" | \"exchange\",\n ExternalPaymentOptionMetadata[]\n >;\n loading: boolean;\n parsedConfig: { walletOrder: string[] };\n };\n walletPaymentOptions: {\n options: WalletPaymentOption[] | null;\n isLoading: boolean;\n };\n solanaPaymentOptions: {\n options: WalletPaymentOption[] | null;\n isLoading: boolean;\n };\n depositAddressOptions: {\n options: DepositAddressPaymentOptionMetadata[];\n loading: boolean;\n };\n};\n\nexport function usePaymentOptions({\n trpc,\n appId,\n orderId,\n isDepositFlow,\n usdRequired,\n solanaPubKey,\n ethWalletAddress,\n platform,\n // For filtering/preferences from order metadata\n filterIds,\n preferredChains,\n preferredTokens,\n evmChains,\n destChainId,\n passthroughTokens,\n destAddress,\n log,\n}: {\n trpc: TrpcClient;\n appId: string | undefined;\n orderId: bigint | undefined;\n isDepositFlow: boolean;\n usdRequired: number | undefined;\n solanaPubKey: string | undefined;\n ethWalletAddress: string | undefined;\n platform: PlatformType | undefined;\n filterIds: (string | string[])[] | undefined;\n preferredChains: number[] | undefined;\n preferredTokens: { chain: number; address: string }[] | undefined;\n evmChains: number[] | undefined;\n destChainId: number | undefined;\n passthroughTokens: { chain: number; address: string }[] | undefined;\n destAddress: Address | undefined;\n log: (msg: string) => void;\n}): PaymentOptionsResult {\n // State for each option type\n const [externalOptions, setExternalOptions] = useState<\n Map<\"external\" | \"zkp2p\" | \"exchange\", ExternalPaymentOptionMetadata[]>\n >(new Map());\n const [walletOptions, setWalletOptions] = useState<\n WalletPaymentOption[] | null\n >(null);\n const [solanaOptions, setSolanaOptions] = useState<\n WalletPaymentOption[] | null\n >(null);\n const [depositOptions, setDepositOptions] = useState<\n DepositAddressPaymentOptionMetadata[]\n >([]);\n const [parsedConfig, setParsedConfig] = useState<{ walletOrder: string[] }>({\n walletOrder: [],\n });\n const [loading, setLoading] = useState(false);\n\n // Memoize array dependencies\n const memoizedPreferredChains = useMemo(\n () => preferredChains,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(preferredChains)],\n );\n const memoizedPreferredTokens = useMemo(\n () => preferredTokens,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(preferredTokens)],\n );\n const memoizedEvmChains = useMemo(\n () => evmChains,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(evmChains)],\n );\n const memoizedFilterIds = useMemo(\n () => filterIds,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(filterIds)],\n );\n\n useEffect(() => {\n const fetchPaymentOptions = async () => {\n // Must have platform and at least one of appId or orderId\n if (!platform || (!appId && !orderId)) return;\n\n setLoading(true);\n try {\n const result = await trpc.getPaymentOptionsV1.query({\n appId,\n orderId: orderId?.toString(),\n platform,\n ethWalletAddress: ethWalletAddress as Address | undefined,\n preferredChains: memoizedPreferredChains,\n preferredTokens: memoizedPreferredTokens,\n evmChains: memoizedEvmChains,\n destChainId,\n solanaPubKey,\n usdRequired,\n isDepositFlow,\n });\n\n // Process external options (filter and group by type)\n let walletOrder: string[] = [];\n if (memoizedFilterIds) {\n const nestedArray = memoizedFilterIds.find((opt) =>\n Array.isArray(opt),\n );\n if (nestedArray && Array.isArray(nestedArray)) {\n walletOrder = nestedArray as string[];\n }\n }\n setParsedConfig({ walletOrder });\n\n const flatFilterIds = memoizedFilterIds\n ? memoizedFilterIds.flatMap((opt) =>\n Array.isArray(opt)\n ? (inferTopLevelFromArray(opt as string[]) ?? \"AllWallets\")\n : opt,\n )\n : null;\n const enabledExtPaymentOptions =\n flatFilterIds || DEFAULT_EXTERNAL_PAYMENT_OPTIONS;\n const hasAllPaymentApps = enabledExtPaymentOptions.includes(\n ExternalPaymentOptions.AllPaymentApps,\n );\n const hasAllExchanges = enabledExtPaymentOptions.includes(\n ExternalPaymentOptions.AllExchanges,\n );\n\n const filteredExternal = result.externalOptions.filter(\n (option: ExternalPaymentOptionMetadata) =>\n enabledExtPaymentOptions.includes(option.id) ||\n (hasAllPaymentApps && option.optionType === \"zkp2p\") ||\n (hasAllExchanges && option.optionType === \"exchange\"),\n );\n const optionsByType = new Map<\n \"external\" | \"zkp2p\" | \"exchange\",\n ExternalPaymentOptionMetadata[]\n >();\n filteredExternal.forEach((option: ExternalPaymentOptionMetadata) => {\n const { optionType } = option;\n if (!optionsByType.has(optionType)) {\n optionsByType.set(optionType, []);\n }\n optionsByType.get(optionType)!.push(option);\n });\n setExternalOptions(optionsByType);\n\n // Process wallet options (filter unsupported chains, add passthrough)\n if (result.walletOptions.length > 0) {\n const isSupported = (o: WalletPaymentOption) =>\n supportedChains.some((c) => c.chainId === o.balance.token.chainId);\n const filtered = result.walletOptions.filter(isSupported);\n if (filtered.length < result.walletOptions.length) {\n log(\n `[WALLET]: skipping ${result.walletOptions.length - filtered.length} unsupported-chain balances`,\n );\n }\n if (destAddress) {\n addPassthroughTokens(filtered, passthroughTokens, destAddress);\n }\n setWalletOptions(filtered);\n } else {\n setWalletOptions(ethWalletAddress ? [] : null);\n }\n\n // Solana options\n setSolanaOptions(solanaPubKey ? result.solanaOptions : null);\n\n // Deposit address options\n setDepositOptions(result.depositAddressOptions);\n } catch (error) {\n console.error(\"[usePaymentOptions] error:\", error);\n } finally {\n setLoading(false);\n }\n };\n\n fetchPaymentOptions();\n }, [\n trpc,\n appId,\n orderId,\n isDepositFlow,\n usdRequired,\n solanaPubKey,\n ethWalletAddress,\n platform,\n memoizedPreferredChains,\n memoizedPreferredTokens,\n memoizedEvmChains,\n memoizedFilterIds,\n destChainId,\n destAddress,\n passthroughTokens,\n log,\n ]);\n\n return {\n externalPaymentOptions: {\n options: externalOptions,\n loading,\n parsedConfig,\n },\n walletPaymentOptions: {\n options: walletOptions,\n isLoading: loading,\n },\n solanaPaymentOptions: {\n options: solanaOptions,\n isLoading: loading,\n },\n depositAddressOptions: {\n options: depositOptions,\n loading,\n },\n };\n}\n\n/** Updates and sorts `options`, marking the relevant oneas as pass-through. */\nexport function addPassthroughTokens(\n options: WalletPaymentOption[],\n passthroughTokens: { chain: number; address: string }[] | undefined,\n passthroughAddress: Address,\n) {\n if (passthroughTokens == null) return;\n\n for (const option of options) {\n const tok = option.balance.token;\n if (option.disabledReason != null) continue;\n const found = passthroughTokens.find(\n (t) => t.address === tok.token && t.chain == tok.chainId,\n );\n if (found == null) continue;\n\n option.passthroughAddress = passthroughAddress;\n }\n}\n"],"names":[],"mappings":"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"}
|