@b3dotfun/sdk 0.0.65-test.5 → 0.0.66-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/anyspend/react/components/AnySpend.js +69 -97
- package/dist/cjs/anyspend/react/components/AnySpendCustom.js +23 -10
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
- package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
- package/dist/cjs/anyspend/react/components/AnySpendDepositUpside.js +41 -0
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +14 -251
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
- package/dist/cjs/anyspend/react/components/common/FeeDetailPanel.js +1 -1
- package/dist/cjs/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
- package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/cjs/anyspend/react/components/common/OrderHistory.js +3 -7
- package/dist/cjs/anyspend/react/components/common/OrderTokenAmount.js +2 -10
- package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
- package/dist/cjs/anyspend/react/components/common/PointsDetailPanel.js +1 -1
- package/dist/cjs/anyspend/react/components/common/RecipientSelection.js +1 -1
- package/dist/cjs/anyspend/react/components/index.d.ts +1 -0
- package/dist/cjs/anyspend/react/components/index.js +4 -1
- package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
- package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +16 -10
- package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
- package/dist/cjs/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
- package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
- package/dist/cjs/anyspend/react/hooks/useCryptoPaymentMethodState.js +51 -0
- package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +35 -251
- package/dist/cjs/global-account/react/components/B3DynamicModal.js +15 -23
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +279 -113
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
- package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +193 -24
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +141 -0
- package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +1 -3
- package/dist/cjs/global-account/react/components/index.d.ts +4 -5
- package/dist/cjs/global-account/react/components/index.js +9 -14
- package/dist/cjs/global-account/react/components/ui/Tabs.js +2 -2
- package/dist/cjs/global-account/react/components/ui/dialog.js +2 -2
- package/dist/cjs/global-account/react/components/ui/drawer.js +1 -1
- package/dist/cjs/global-account/react/hooks/index.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/index.js +1 -3
- package/dist/cjs/global-account/react/hooks/useAccountWallet.d.ts +0 -1
- package/dist/cjs/global-account/react/hooks/useAccountWallet.js +0 -18
- package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +2 -2
- package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
- package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
- package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +2 -2
- package/dist/cjs/global-account/react/stores/index.d.ts +0 -1
- package/dist/cjs/global-account/react/stores/index.js +1 -3
- package/dist/cjs/global-account/react/stores/useModalStore.d.ts +26 -31
- package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +0 -2
- package/dist/cjs/global-account/react/utils/profileDisplay.js +2 -2
- package/dist/cjs/shared/constants/chains/supported.d.ts +3 -3
- package/dist/cjs/shared/utils/ipfs.js +3 -10
- package/dist/esm/anyspend/react/components/AnySpend.js +70 -98
- package/dist/esm/anyspend/react/components/AnySpendCustom.js +23 -10
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +45 -14
- package/dist/esm/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
- package/dist/esm/anyspend/react/components/AnySpendDepositUpside.js +38 -0
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +15 -249
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +3 -5
- package/dist/esm/anyspend/react/components/common/FeeDetailPanel.js +1 -1
- package/dist/esm/anyspend/react/components/common/FiatPaymentMethod.js +2 -2
- package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/esm/anyspend/react/components/common/OrderHistory.js +5 -6
- package/dist/esm/anyspend/react/components/common/OrderTokenAmount.js +2 -10
- package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +1 -1
- package/dist/esm/anyspend/react/components/common/PointsDetailPanel.js +1 -1
- package/dist/esm/anyspend/react/components/common/RecipientSelection.js +1 -1
- package/dist/esm/anyspend/react/components/index.d.ts +1 -0
- package/dist/esm/anyspend/react/components/index.js +1 -0
- package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
- package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +16 -10
- package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
- package/dist/esm/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.js +13 -9
- package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
- package/dist/esm/anyspend/react/hooks/useCryptoPaymentMethodState.js +48 -0
- package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +2 -38
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +38 -254
- package/dist/esm/global-account/react/components/B3DynamicModal.js +15 -23
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +280 -113
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +5 -6
- package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +195 -26
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +135 -0
- package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +2 -4
- package/dist/esm/global-account/react/components/index.d.ts +4 -5
- package/dist/esm/global-account/react/components/index.js +5 -9
- package/dist/esm/global-account/react/components/ui/Tabs.js +2 -2
- package/dist/esm/global-account/react/components/ui/dialog.js +2 -2
- package/dist/esm/global-account/react/components/ui/drawer.js +1 -1
- package/dist/esm/global-account/react/hooks/index.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/index.js +1 -1
- package/dist/esm/global-account/react/hooks/useAccountWallet.d.ts +0 -1
- package/dist/esm/global-account/react/hooks/useAccountWallet.js +0 -17
- package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +2 -2
- package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +0 -1
- package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +6 -14
- package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +2 -2
- package/dist/esm/global-account/react/stores/index.d.ts +0 -1
- package/dist/esm/global-account/react/stores/index.js +0 -1
- package/dist/esm/global-account/react/stores/useModalStore.d.ts +26 -31
- package/dist/esm/global-account/react/utils/profileDisplay.d.ts +0 -2
- package/dist/esm/global-account/react/utils/profileDisplay.js +2 -2
- package/dist/esm/shared/constants/chains/supported.d.ts +3 -3
- package/dist/esm/shared/utils/ipfs.js +3 -10
- package/dist/styles/index.css +1 -1
- package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +3 -1
- package/dist/types/anyspend/react/components/AnySpendDepositUpside.d.ts +11 -0
- package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +1 -1
- package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +6 -0
- package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/types/anyspend/react/components/index.d.ts +1 -0
- package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +5 -1
- package/dist/types/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.d.ts +7 -5
- package/dist/types/anyspend/react/hooks/useCryptoPaymentMethodState.d.ts +42 -0
- package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +0 -1
- package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +4 -6
- package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +6 -0
- package/dist/types/global-account/react/components/index.d.ts +4 -5
- package/dist/types/global-account/react/hooks/index.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +0 -1
- package/dist/types/global-account/react/hooks/useAuthentication.d.ts +2 -2
- package/dist/types/global-account/react/hooks/useUserQuery.d.ts +2 -2
- package/dist/types/global-account/react/stores/index.d.ts +0 -1
- package/dist/types/global-account/react/stores/useModalStore.d.ts +26 -31
- package/dist/types/global-account/react/utils/profileDisplay.d.ts +0 -2
- package/dist/types/shared/constants/chains/supported.d.ts +3 -3
- package/package.json +1 -2
- package/src/anyspend/react/components/AnySpend.tsx +218 -256
- package/src/anyspend/react/components/AnySpendCustom.tsx +31 -16
- package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +56 -13
- package/src/anyspend/react/components/AnySpendDepositUpside.tsx +81 -0
- package/src/anyspend/react/components/AnyspendDepositHype.tsx +36 -524
- package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +14 -7
- package/src/anyspend/react/components/common/FeeDetailPanel.tsx +1 -1
- package/src/anyspend/react/components/common/FiatPaymentMethod.tsx +2 -2
- package/src/anyspend/react/components/common/OrderHistory.tsx +13 -8
- package/src/anyspend/react/components/common/OrderTokenAmount.tsx +2 -13
- package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +1 -1
- package/src/anyspend/react/components/common/PointsDetailPanel.tsx +1 -1
- package/src/anyspend/react/components/common/RecipientSelection.tsx +1 -1
- package/src/anyspend/react/components/index.ts +1 -0
- package/src/anyspend/react/hooks/useAnyspendFlow.ts +24 -12
- package/src/anyspend/react/hooks/useAutoSelectCryptoPaymentMethod.ts +20 -12
- package/src/anyspend/react/hooks/useCryptoPaymentMethodState.ts +71 -0
- package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +25 -115
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +128 -477
- package/src/global-account/react/components/B3DynamicModal.tsx +17 -28
- package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +433 -332
- package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +10 -6
- package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +589 -73
- package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +265 -0
- package/src/global-account/react/components/SignInWithB3/SignIn.tsx +7 -11
- package/src/global-account/react/components/index.ts +5 -11
- package/src/global-account/react/components/ui/Tabs.tsx +13 -5
- package/src/global-account/react/components/ui/dialog.tsx +14 -32
- package/src/global-account/react/components/ui/drawer.tsx +1 -1
- package/src/global-account/react/hooks/index.ts +0 -3
- package/src/global-account/react/hooks/useAccountWallet.tsx +0 -26
- package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +0 -1
- package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +6 -12
- package/src/global-account/react/stores/index.ts +0 -1
- package/src/global-account/react/stores/useModalStore.ts +28 -35
- package/src/global-account/react/utils/profileDisplay.ts +2 -4
- package/src/shared/utils/ipfs.ts +3 -10
- package/src/styles/index.css +9 -6
- package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +0 -1
- package/dist/cjs/global-account/react/components/Deposit/Deposit.js +0 -65
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -37
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -331
- package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
- package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.js +0 -34
- package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
- package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +0 -23
- package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +0 -3
- package/dist/cjs/global-account/react/components/ManageAccount/Header.js +0 -120
- package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
- package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +0 -43
- package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
- package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +0 -16
- package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
- package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +0 -15
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +0 -47
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +0 -50
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -8
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -106
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +0 -22
- package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
- package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +0 -12
- package/dist/cjs/global-account/react/components/Send/Send.d.ts +0 -5
- package/dist/cjs/global-account/react/components/Send/Send.js +0 -187
- package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +0 -3
- package/dist/cjs/global-account/react/components/icons/BellIcon.js +0 -5
- package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
- package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +0 -7
- package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +0 -2
- package/dist/cjs/global-account/react/components/icons/CopyIcon.js +0 -7
- package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +0 -3
- package/dist/cjs/global-account/react/components/icons/LinkIcon.js +0 -5
- package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +0 -3
- package/dist/cjs/global-account/react/components/icons/LockIcon.js +0 -5
- package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +0 -2
- package/dist/cjs/global-account/react/components/icons/WalletIcon.js +0 -7
- package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
- package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +0 -36
- package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +0 -1
- package/dist/esm/global-account/react/components/Deposit/Deposit.js +0 -59
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +0 -34
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +0 -325
- package/dist/esm/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
- package/dist/esm/global-account/react/components/ManageAccount/AppsContent.js +0 -32
- package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
- package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +0 -21
- package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +0 -3
- package/dist/esm/global-account/react/components/ManageAccount/Header.js +0 -81
- package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
- package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +0 -41
- package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
- package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +0 -10
- package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
- package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +0 -13
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +0 -45
- package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
- package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +0 -45
- package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
- package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +0 -6
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +0 -101
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +0 -20
- package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
- package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +0 -10
- package/dist/esm/global-account/react/components/Send/Send.d.ts +0 -5
- package/dist/esm/global-account/react/components/Send/Send.js +0 -181
- package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +0 -3
- package/dist/esm/global-account/react/components/icons/BellIcon.js +0 -3
- package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
- package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +0 -4
- package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +0 -2
- package/dist/esm/global-account/react/components/icons/CopyIcon.js +0 -4
- package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +0 -3
- package/dist/esm/global-account/react/components/icons/LinkIcon.js +0 -3
- package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +0 -3
- package/dist/esm/global-account/react/components/icons/LockIcon.js +0 -3
- package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +0 -2
- package/dist/esm/global-account/react/components/icons/WalletIcon.js +0 -4
- package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
- package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +0 -33
- package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +0 -1
- package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +0 -39
- package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +0 -4
- package/dist/types/global-account/react/components/ManageAccount/AppsContent.d.ts +0 -6
- package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +0 -2
- package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +0 -3
- package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +0 -5
- package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +0 -6
- package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +0 -2
- package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +0 -2
- package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +0 -7
- package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +0 -9
- package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +0 -2
- package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +0 -2
- package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +0 -11
- package/dist/types/global-account/react/components/Send/Send.d.ts +0 -5
- package/dist/types/global-account/react/components/icons/BellIcon.d.ts +0 -3
- package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +0 -2
- package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +0 -2
- package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +0 -3
- package/dist/types/global-account/react/components/icons/LockIcon.d.ts +0 -3
- package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +0 -2
- package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +0 -25
- package/src/global-account/react/components/Deposit/Deposit.tsx +0 -211
- package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +0 -84
- package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +0 -490
- package/src/global-account/react/components/ManageAccount/AppsContent.tsx +0 -79
- package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +0 -83
- package/src/global-account/react/components/ManageAccount/Header.tsx +0 -230
- package/src/global-account/react/components/ManageAccount/HomeActions.tsx +0 -118
- package/src/global-account/react/components/ManageAccount/HomeContent.tsx +0 -42
- package/src/global-account/react/components/ManageAccount/NFTContent.tsx +0 -24
- package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +0 -79
- package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +0 -87
- package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +0 -31
- package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +0 -182
- package/src/global-account/react/components/ManageAccount/TokenContent.tsx +0 -41
- package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +0 -61
- package/src/global-account/react/components/Send/Send.tsx +0 -585
- package/src/global-account/react/components/icons/BellIcon.tsx +0 -15
- package/src/global-account/react/components/icons/ChevronDownIcon.tsx +0 -17
- package/src/global-account/react/components/icons/CopyIcon.tsx +0 -22
- package/src/global-account/react/components/icons/LinkIcon.tsx +0 -15
- package/src/global-account/react/components/icons/LockIcon.tsx +0 -15
- package/src/global-account/react/components/icons/WalletIcon.tsx +0 -21
- package/src/global-account/react/stores/useRecentAddressesStore.ts +0 -55
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface OrderHistoryProps {
|
|
2
2
|
mode: "modal" | "page";
|
|
3
|
-
onBack
|
|
3
|
+
onBack: () => void;
|
|
4
4
|
onSelectOrder?: (orderId: string) => void;
|
|
5
5
|
}
|
|
6
6
|
export declare function OrderHistory({ mode, onBack, onSelectOrder }: OrderHistoryProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx,
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useAnyspendOrderHistory } from "../../../../anyspend/react/index.js";
|
|
4
4
|
import { Button, Skeleton, useAccountWallet } from "../../../../global-account/react/index.js";
|
|
5
|
-
import
|
|
6
|
-
import { RefreshCcw } from "lucide-react";
|
|
5
|
+
import { ArrowLeft, RefreshCcw } from "lucide-react";
|
|
7
6
|
import { OrderHistoryItem } from "./OrderHistoryItem.js";
|
|
8
7
|
export function OrderHistory({ mode, onBack, onSelectOrder }) {
|
|
9
8
|
const { address } = useAccountWallet();
|
|
10
9
|
const { orderHistory, isLoadingOrderHistory, refetchOrderHistory } = useAnyspendOrderHistory(address);
|
|
11
|
-
return (_jsxs(_Fragment, { children: [
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "mb-8 flex w-full items-center gap-3", children: [_jsx(Button, { onClick: onBack, variant: "ghost", size: "icon", className: "hover:bg-as-surface-secondary", children: _jsx(ArrowLeft, { className: "h-5 w-5" }) }), _jsx("div", { className: "flex-1", children: _jsx("h3", { className: "text-as-primary text-2xl font-bold", children: "Order History" }) }), _jsx(Button, { variant: "ghost", size: "icon", className: "hover:bg-as-surface-secondary", onClick: () => {
|
|
11
|
+
refetchOrderHistory();
|
|
12
|
+
}, children: _jsx(RefreshCcw, { className: "text-as-secondary hover:text-as-primary h-5 w-5 cursor-pointer transition-all hover:rotate-180" }) })] }), isLoadingOrderHistory ? (_jsx("div", { className: "w-full space-y-3", children: [1, 2, 3].map(i => (_jsx(Skeleton, { className: "h-[180px] w-full rounded-2xl" }, i))) })) : !orderHistory?.length ? (_jsx("div", { className: "bg-as-surface-secondary w-full rounded-2xl p-12 text-center", children: _jsx("p", { className: "text-as-secondary text-sm", children: "No order history found" }) })) : (_jsx("div", { className: "mb-12 w-full space-y-3", children: [...orderHistory]
|
|
14
13
|
.sort((a, b) => b.createdAt - a.createdAt)
|
|
15
14
|
.map(order => (_jsx(OrderHistoryItem, { order: order, onSelectOrder: onSelectOrder, mode: mode }, order.id))) }))] }));
|
|
16
15
|
}
|
|
@@ -14,26 +14,19 @@ import { ChainTokenIcon } from "./ChainTokenIcon.js";
|
|
|
14
14
|
export function OrderTokenAmount({ disabled, inputValue, onChangeInput, context, address, chainId, setChainId, token, setToken, hideTokenSelect = false, canEditAmount = true, className, innerClassName, amountClassName, tokenSelectClassName, onTokenSelect, walletAddress, }) {
|
|
15
15
|
// Track previous token to detect changes
|
|
16
16
|
const prevTokenRef = useRef(token.address);
|
|
17
|
-
// Track if initial balance has been set
|
|
18
|
-
const initialBalanceSetRef = useRef(false);
|
|
19
17
|
// Only get token balance when context is "from" (for setting max amount)
|
|
20
18
|
const { rawBalance } = useTokenBalance({
|
|
21
19
|
token,
|
|
22
20
|
address: context === "from" && walletAddress ? walletAddress : undefined,
|
|
23
21
|
});
|
|
24
|
-
// Reset balance ref when token address or chain changes
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
initialBalanceSetRef.current = false;
|
|
27
|
-
}, [token.address, token.chainId]);
|
|
28
22
|
useEffect(() => {
|
|
29
23
|
// Only handle "from" context
|
|
30
24
|
if (context !== "from")
|
|
31
25
|
return;
|
|
32
26
|
// Check if token changed or if this is the initial load with balance
|
|
33
27
|
const isTokenChanged = prevTokenRef.current !== token.address;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
console.log(`Setting max balance - Token: ${token.address}, Changed: ${isTokenChanged}, Initial: ${isInitialLoad}`);
|
|
28
|
+
if (isTokenChanged && rawBalance) {
|
|
29
|
+
console.log(`Setting max balance - Token: ${token.address}, Changed: ${isTokenChanged}`);
|
|
37
30
|
// Calculate max amount with gas reserve for native tokens
|
|
38
31
|
let maxAmount;
|
|
39
32
|
if (isNativeToken(token.address)) {
|
|
@@ -49,7 +42,6 @@ export function OrderTokenAmount({ disabled, inputValue, onChangeInput, context,
|
|
|
49
42
|
onChangeInput(formatUnits(maxAmount, token.decimals));
|
|
50
43
|
// Update refs
|
|
51
44
|
prevTokenRef.current = token.address;
|
|
52
|
-
initialBalanceSetRef.current = true;
|
|
53
45
|
}
|
|
54
46
|
}, [token.address, token.chainId, token.decimals, chainId, context, onChangeInput, rawBalance]);
|
|
55
47
|
const handleTokenSelect = (newToken) => {
|
|
@@ -82,7 +82,7 @@ function PanelOnrampPaymentInner(props) {
|
|
|
82
82
|
toast.error("Failed to create order: " + err.message);
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
|
-
return (_jsxs("div", { className: "mx-auto flex w-full max-w-[460px] flex-col gap-6
|
|
85
|
+
return (_jsxs("div", { className: "mx-auto flex w-full max-w-[460px] flex-col gap-6", children: [_jsxs(_Fragment, { children: [_jsx("h2", { className: "-mb-3 text-lg font-semibold", children: "Order summary" }), _jsxs("div", { className: "bg-b3-react-background border-b3-react-border flex flex-col gap-3 rounded-lg border p-4", children: [recipientAddress && (_jsxs(motion.div, { initial: false, animate: {
|
|
86
86
|
opacity: 1,
|
|
87
87
|
y: 0,
|
|
88
88
|
filter: "blur(0px)",
|
|
@@ -3,5 +3,5 @@ import { ShinyButton } from "../../../../global-account/react/index.js";
|
|
|
3
3
|
import { cn } from "../../../../shared/utils/cn.js";
|
|
4
4
|
import Link from "next/link";
|
|
5
5
|
export function PointsDetailPanel({ pointsAmount = 0, onBack }) {
|
|
6
|
-
return (_jsx("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-4
|
|
6
|
+
return (_jsx("div", { className: "mx-auto flex w-[460px] max-w-full flex-col items-center gap-4", children: _jsxs("div", { className: "flex flex-col items-center gap-4 text-center", children: [_jsx("h3", { className: "text-as-primary text-xl font-bold", children: "Earn Points with Every Swap" }), _jsxs("p", { className: "text-as-primary/70 text-balance text-sm leading-relaxed", children: ["You'll earn ", _jsxs("span", { className: "text-as-brand font-semibold", children: ["+", pointsAmount.toLocaleString(), " points"] }), " ", "towards the", " ", _jsx(Link, { href: "https://anyspend.com/points", target: "_blank", className: "text-as-brand underline", children: "next AnySpend airdrop" }), " ", "when you complete this transaction."] }), _jsxs("div", { className: "bg-as-surface-primary border-as-border-secondary mt-2 w-full rounded-lg border p-4 text-left", children: [_jsx("h4", { className: "text-as-primary mb-2 font-semibold", children: "How it works:" }), _jsxs("ul", { className: "text-as-primary/70 space-y-1 text-sm", children: [_jsx("li", { children: "\u2022 Points are earned based on transaction volume" }), _jsx("li", { children: "\u2022 Higher volume = more points" }), _jsx("li", { children: "\u2022 Points contribute to future airdrops" }), _jsx("li", { children: "\u2022 Keep swapping to maximize your rewards" })] })] }), _jsx(ShinyButton, { accentColor: "hsl(var(--as-brand))", onClick: onBack, className: cn("as-main-button !bg-as-brand relative w-full"), textClassName: cn("text-white"), children: "Back to Swap" })] }) }));
|
|
7
7
|
}
|
|
@@ -29,5 +29,5 @@ export function RecipientSelection({ initialValue = "", placeholder = "Enter rec
|
|
|
29
29
|
};
|
|
30
30
|
const isAddressValid = !validateAddress || !recipientAddress || validateAddress(recipientAddress);
|
|
31
31
|
const canConfirm = recipientAddress && isAddressValid;
|
|
32
|
-
return (_jsx("div", { className: "recipient-selection mx-auto w-[460px] max-w-full
|
|
32
|
+
return (_jsx("div", { className: "recipient-selection mx-auto w-[460px] max-w-full", children: _jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("div", { className: "flex justify-around", children: [_jsx("button", { onClick: onBack, className: "text-as-quaternary hover:text-as-primary flex h-8 w-8 items-center justify-center rounded-lg transition-colors", children: _jsx(ChevronLeft, { className: "h-6 w-6" }) }), _jsxs("div", { className: "flex-1 text-center", children: [_jsx("h2", { className: "text-as-primary text-lg font-semibold", children: title }), _jsx("p", { className: "text-as-primary/60 text-sm", children: description })] })] }), _jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "bg-as-surface-secondary border-as-border-secondary flex h-12 w-full overflow-hidden rounded-xl border", children: [_jsx("input", { type: "text", placeholder: placeholder, value: recipientAddress, onChange: e => setRecipientAddress(e.target.value), onKeyDown: handleKeyDown, className: "text-as-primary placeholder:text-as-primary/50 flex-1 bg-transparent px-4 text-base focus:outline-none", autoFocus: autoFocus }), _jsx("div", { className: "border-as-border-secondary border-l", children: _jsx("button", { onClick: handlePaste, className: "text-as-primary/70 hover:text-as-primary hover:bg-as-surface-primary h-full px-4 font-semibold transition-colors", children: "Paste" }) })] }), recipientAddress && !isAddressValid && (_jsx("div", { className: "text-as-red text-sm", children: "Please enter a valid address" })), _jsx("button", { onClick: handleConfirm, disabled: !canConfirm, className: "bg-as-brand hover:bg-as-brand/90 disabled:bg-as-on-surface-2 disabled:text-as-secondary h-12 w-full rounded-xl font-medium text-white transition-colors disabled:cursor-not-allowed", children: confirmText })] })] }) }));
|
|
33
33
|
}
|
|
@@ -3,6 +3,7 @@ export { AnySpendBondKit } from "./AnySpendBondKit";
|
|
|
3
3
|
export { AnySpendBuySpin } from "./AnySpendBuySpin";
|
|
4
4
|
export { AnySpendCustom } from "./AnySpendCustom";
|
|
5
5
|
export { AnySpendCustomExactIn } from "./AnySpendCustomExactIn";
|
|
6
|
+
export { AnySpendDepositHype, HYPE_TOKEN_DETAILS } from "./AnyspendDepositHype";
|
|
6
7
|
export * from "./AnySpendFingerprintWrapper";
|
|
7
8
|
export { AnySpendNFT } from "./AnySpendNFT";
|
|
8
9
|
export { AnyspendSignatureMint } from "./AnyspendSignatureMint";
|
|
@@ -4,6 +4,7 @@ export { AnySpendBondKit } from "./AnySpendBondKit.js";
|
|
|
4
4
|
export { AnySpendBuySpin } from "./AnySpendBuySpin.js";
|
|
5
5
|
export { AnySpendCustom } from "./AnySpendCustom.js";
|
|
6
6
|
export { AnySpendCustomExactIn } from "./AnySpendCustomExactIn.js";
|
|
7
|
+
export { AnySpendDepositHype, HYPE_TOKEN_DETAILS } from "./AnyspendDepositHype.js";
|
|
7
8
|
export * from "./AnySpendFingerprintWrapper.js";
|
|
8
9
|
export { AnySpendNFT } from "./AnySpendNFT.js";
|
|
9
10
|
export { AnyspendSignatureMint } from "./AnyspendSignatureMint.js";
|
|
@@ -93,8 +93,12 @@ export declare function useAnyspendFlow({ paymentType, recipientAddress, loadOrd
|
|
|
93
93
|
setDstAmount: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
94
94
|
isSrcInputDirty: boolean;
|
|
95
95
|
setIsSrcInputDirty: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
96
|
+
cryptoPaymentMethod: CryptoPaymentMethodType;
|
|
97
|
+
setCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
96
98
|
selectedCryptoPaymentMethod: CryptoPaymentMethodType;
|
|
97
|
-
setSelectedCryptoPaymentMethod:
|
|
99
|
+
setSelectedCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
100
|
+
effectiveCryptoPaymentMethod: CryptoPaymentMethodType;
|
|
101
|
+
resetPaymentMethods: () => void;
|
|
98
102
|
selectedFiatPaymentMethod: FiatPaymentMethod;
|
|
99
103
|
setSelectedFiatPaymentMethod: import("react").Dispatch<import("react").SetStateAction<FiatPaymentMethod>>;
|
|
100
104
|
selectedRecipientAddress: string | undefined;
|
|
@@ -7,11 +7,12 @@ import { useEffect, useMemo, useState } from "react";
|
|
|
7
7
|
import { toast } from "sonner";
|
|
8
8
|
import { parseUnits } from "viem";
|
|
9
9
|
import { base, mainnet } from "viem/chains";
|
|
10
|
-
import { useAccount } from "wagmi";
|
|
11
10
|
import { CryptoPaymentMethodType } from "../components/common/CryptoPaymentMethod.js";
|
|
12
11
|
import { FiatPaymentMethod } from "../components/common/FiatPaymentMethod.js";
|
|
13
12
|
import { useAutoSelectCryptoPaymentMethod } from "./useAutoSelectCryptoPaymentMethod.js";
|
|
14
13
|
import { useAutoSetActiveWalletFromWagmi } from "./useAutoSetActiveWalletFromWagmi.js";
|
|
14
|
+
import { useConnectedWalletDisplay } from "./useConnectedWalletDisplay.js";
|
|
15
|
+
import { useCryptoPaymentMethodState } from "./useCryptoPaymentMethodState.js";
|
|
15
16
|
export var PanelView;
|
|
16
17
|
(function (PanelView) {
|
|
17
18
|
PanelView[PanelView["MAIN"] = 0] = "MAIN";
|
|
@@ -37,17 +38,17 @@ export function useAnyspendFlow({ paymentType = "crypto", recipientAddress, load
|
|
|
37
38
|
const defaultDstToken = B3_TOKEN; // Default destination token
|
|
38
39
|
const [selectedSrcToken, setSelectedSrcToken] = useState(defaultSrcToken);
|
|
39
40
|
const [selectedDstToken, setSelectedDstToken] = useState(defaultDstToken);
|
|
40
|
-
const [srcAmount, setSrcAmount] = useState(paymentType === "fiat" ? "5" : "0
|
|
41
|
+
const [srcAmount, setSrcAmount] = useState(paymentType === "fiat" ? "5" : "0");
|
|
41
42
|
const [dstAmount, setDstAmount] = useState("");
|
|
42
43
|
const [isSrcInputDirty, setIsSrcInputDirty] = useState(true);
|
|
43
44
|
// Derive destination chain ID from token or prop (cannot change)
|
|
44
45
|
const selectedDstChainId = destinationTokenChainId || selectedDstToken.chainId;
|
|
45
|
-
// Payment method state
|
|
46
|
-
const
|
|
46
|
+
// Payment method state with dual-state system (auto + explicit user selection)
|
|
47
|
+
const { cryptoPaymentMethod, setCryptoPaymentMethod, selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod, effectiveCryptoPaymentMethod, resetPaymentMethods, } = useCryptoPaymentMethodState();
|
|
47
48
|
const [selectedFiatPaymentMethod, setSelectedFiatPaymentMethod] = useState(FiatPaymentMethod.NONE);
|
|
48
49
|
// Recipient state
|
|
49
50
|
const { address: globalAddress } = useAccountWallet();
|
|
50
|
-
const {
|
|
51
|
+
const { walletAddress } = useConnectedWalletDisplay(effectiveCryptoPaymentMethod);
|
|
51
52
|
const [selectedRecipientAddress, setSelectedRecipientAddress] = useState(recipientAddress);
|
|
52
53
|
const recipientProfile = useProfile({ address: selectedRecipientAddress, fresh: true });
|
|
53
54
|
const recipientName = recipientProfile.data?.name;
|
|
@@ -62,7 +63,7 @@ export function useAnyspendFlow({ paymentType = "crypto", recipientAddress, load
|
|
|
62
63
|
// Check token balance for crypto payments
|
|
63
64
|
const { rawBalance, isLoading: isBalanceLoading } = useTokenBalance({
|
|
64
65
|
token: selectedSrcToken,
|
|
65
|
-
address:
|
|
66
|
+
address: walletAddress,
|
|
66
67
|
});
|
|
67
68
|
// Check if user has enough balance
|
|
68
69
|
const hasEnoughBalance = useMemo(() => {
|
|
@@ -79,8 +80,9 @@ export function useAnyspendFlow({ paymentType = "crypto", recipientAddress, load
|
|
|
79
80
|
// Auto-select crypto payment method based on available wallets and balance
|
|
80
81
|
useAutoSelectCryptoPaymentMethod({
|
|
81
82
|
paymentType,
|
|
83
|
+
cryptoPaymentMethod,
|
|
84
|
+
setCryptoPaymentMethod,
|
|
82
85
|
selectedCryptoPaymentMethod,
|
|
83
|
-
setSelectedCryptoPaymentMethod,
|
|
84
86
|
hasEnoughBalance,
|
|
85
87
|
isBalanceLoading,
|
|
86
88
|
});
|
|
@@ -180,9 +182,9 @@ export function useAnyspendFlow({ paymentType = "crypto", recipientAddress, load
|
|
|
180
182
|
if (!disableUrlParamManagement) {
|
|
181
183
|
const params = new URLSearchParams(searchParams.toString()); // Preserve existing params
|
|
182
184
|
params.set("orderId", newOrderId);
|
|
183
|
-
if (
|
|
184
|
-
console.log("Setting cryptoPaymentMethod in URL:",
|
|
185
|
-
params.set("cryptoPaymentMethod",
|
|
185
|
+
if (effectiveCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
|
|
186
|
+
console.log("Setting cryptoPaymentMethod in URL:", effectiveCryptoPaymentMethod);
|
|
187
|
+
params.set("cryptoPaymentMethod", effectiveCryptoPaymentMethod);
|
|
186
188
|
}
|
|
187
189
|
else {
|
|
188
190
|
console.log("Payment method is NONE, not setting in URL");
|
|
@@ -246,8 +248,12 @@ export function useAnyspendFlow({ paymentType = "crypto", recipientAddress, load
|
|
|
246
248
|
isSrcInputDirty,
|
|
247
249
|
setIsSrcInputDirty,
|
|
248
250
|
// Payment methods
|
|
251
|
+
cryptoPaymentMethod,
|
|
252
|
+
setCryptoPaymentMethod,
|
|
249
253
|
selectedCryptoPaymentMethod,
|
|
250
254
|
setSelectedCryptoPaymentMethod,
|
|
255
|
+
effectiveCryptoPaymentMethod,
|
|
256
|
+
resetPaymentMethods,
|
|
251
257
|
selectedFiatPaymentMethod,
|
|
252
258
|
setSelectedFiatPaymentMethod,
|
|
253
259
|
// Recipient
|
|
@@ -2,10 +2,12 @@ import { CryptoPaymentMethodType } from "../components/common/CryptoPaymentMetho
|
|
|
2
2
|
interface UseAutoSelectCryptoPaymentMethodParams {
|
|
3
3
|
/** Current payment type (crypto or fiat) */
|
|
4
4
|
paymentType?: "crypto" | "fiat";
|
|
5
|
-
/**
|
|
5
|
+
/** Auto-selected payment method based on balance (not used in hook logic, but part of state management) */
|
|
6
|
+
cryptoPaymentMethod: CryptoPaymentMethodType;
|
|
7
|
+
/** Function to update the auto-selected payment method */
|
|
8
|
+
setCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
9
|
+
/** User explicitly selected payment method (NONE means no explicit selection) */
|
|
6
10
|
selectedCryptoPaymentMethod: CryptoPaymentMethodType;
|
|
7
|
-
/** Function to update the selected payment method */
|
|
8
|
-
setSelectedCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
9
11
|
/** Whether user has enough balance to pay */
|
|
10
12
|
hasEnoughBalance: boolean;
|
|
11
13
|
/** Whether balance is still loading */
|
|
@@ -16,11 +18,11 @@ interface UseAutoSelectCryptoPaymentMethodParams {
|
|
|
16
18
|
* based on available wallets and balance.
|
|
17
19
|
*
|
|
18
20
|
* Auto-selection logic:
|
|
19
|
-
* - Only auto-selects when
|
|
21
|
+
* - Only auto-selects when selectedCryptoPaymentMethod is NONE (user hasn't explicitly chosen)
|
|
20
22
|
* - If EOA/Wagmi wallet connected + has balance → CONNECT_WALLET
|
|
21
23
|
* - If EOA/Wagmi wallet connected + insufficient balance → TRANSFER_CRYPTO
|
|
22
24
|
* - If only Global wallet available → GLOBAL_WALLET
|
|
23
25
|
* - If no wallets → remains NONE
|
|
24
26
|
*/
|
|
25
|
-
export declare function useAutoSelectCryptoPaymentMethod({ paymentType,
|
|
27
|
+
export declare function useAutoSelectCryptoPaymentMethod({ paymentType, cryptoPaymentMethod: _cryptoPaymentMethod, setCryptoPaymentMethod, selectedCryptoPaymentMethod, hasEnoughBalance, isBalanceLoading, }: UseAutoSelectCryptoPaymentMethodParams): void;
|
|
26
28
|
export {};
|
|
@@ -6,18 +6,22 @@ import { useConnectedWalletDisplay } from "./useConnectedWalletDisplay.js";
|
|
|
6
6
|
* based on available wallets and balance.
|
|
7
7
|
*
|
|
8
8
|
* Auto-selection logic:
|
|
9
|
-
* - Only auto-selects when
|
|
9
|
+
* - Only auto-selects when selectedCryptoPaymentMethod is NONE (user hasn't explicitly chosen)
|
|
10
10
|
* - If EOA/Wagmi wallet connected + has balance → CONNECT_WALLET
|
|
11
11
|
* - If EOA/Wagmi wallet connected + insufficient balance → TRANSFER_CRYPTO
|
|
12
12
|
* - If only Global wallet available → GLOBAL_WALLET
|
|
13
13
|
* - If no wallets → remains NONE
|
|
14
14
|
*/
|
|
15
|
-
export function useAutoSelectCryptoPaymentMethod({ paymentType = "crypto",
|
|
15
|
+
export function useAutoSelectCryptoPaymentMethod({ paymentType = "crypto", cryptoPaymentMethod: _cryptoPaymentMethod, setCryptoPaymentMethod, selectedCryptoPaymentMethod, hasEnoughBalance, isBalanceLoading, }) {
|
|
16
16
|
// Get suggested payment method based on available wallets
|
|
17
17
|
const { suggestedPaymentMethod } = useConnectedWalletDisplay(selectedCryptoPaymentMethod);
|
|
18
18
|
useEffect(() => {
|
|
19
|
-
// Only auto-select when on crypto payment type
|
|
20
|
-
if (paymentType !== "crypto"
|
|
19
|
+
// Only auto-select when on crypto payment type
|
|
20
|
+
if (paymentType !== "crypto") {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Only auto-switch if user hasn't explicitly selected a payment method
|
|
24
|
+
if (selectedCryptoPaymentMethod !== CryptoPaymentMethodType.NONE) {
|
|
21
25
|
return;
|
|
22
26
|
}
|
|
23
27
|
// If we have a suggested payment method (wallet is connected), use it
|
|
@@ -26,28 +30,28 @@ export function useAutoSelectCryptoPaymentMethod({ paymentType = "crypto", selec
|
|
|
26
30
|
// Otherwise, default to TRANSFER_CRYPTO if balance is insufficient
|
|
27
31
|
if (!isBalanceLoading) {
|
|
28
32
|
if (hasEnoughBalance && suggestedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET) {
|
|
29
|
-
|
|
33
|
+
setCryptoPaymentMethod(CryptoPaymentMethodType.CONNECT_WALLET);
|
|
30
34
|
}
|
|
31
35
|
else if (!hasEnoughBalance && suggestedPaymentMethod === CryptoPaymentMethodType.CONNECT_WALLET) {
|
|
32
36
|
// Wallet connected but insufficient balance - suggest transfer
|
|
33
|
-
|
|
37
|
+
setCryptoPaymentMethod(CryptoPaymentMethodType.TRANSFER_CRYPTO);
|
|
34
38
|
}
|
|
35
39
|
else {
|
|
36
40
|
// Use suggested method (e.g., GLOBAL_WALLET)
|
|
37
|
-
|
|
41
|
+
setCryptoPaymentMethod(suggestedPaymentMethod);
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
else {
|
|
41
45
|
// Balance still loading, use suggested method
|
|
42
|
-
|
|
46
|
+
setCryptoPaymentMethod(suggestedPaymentMethod);
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
}, [
|
|
46
50
|
paymentType,
|
|
51
|
+
setCryptoPaymentMethod,
|
|
47
52
|
selectedCryptoPaymentMethod,
|
|
48
53
|
suggestedPaymentMethod,
|
|
49
54
|
hasEnoughBalance,
|
|
50
55
|
isBalanceLoading,
|
|
51
|
-
setSelectedCryptoPaymentMethod,
|
|
52
56
|
]);
|
|
53
57
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CryptoPaymentMethodType } from "../components/common/CryptoPaymentMethod";
|
|
2
|
+
interface UseCryptoPaymentMethodStateResult {
|
|
3
|
+
/** Auto-selected payment method based on balance */
|
|
4
|
+
cryptoPaymentMethod: CryptoPaymentMethodType;
|
|
5
|
+
/** Function to update the auto-selected payment method */
|
|
6
|
+
setCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
7
|
+
/** User explicitly selected payment method (NONE means no explicit selection) */
|
|
8
|
+
selectedCryptoPaymentMethod: CryptoPaymentMethodType;
|
|
9
|
+
/** Function to update the user-selected payment method */
|
|
10
|
+
setSelectedCryptoPaymentMethod: (method: CryptoPaymentMethodType) => void;
|
|
11
|
+
/** Effective payment method (user selection takes priority over auto-selection) */
|
|
12
|
+
effectiveCryptoPaymentMethod: CryptoPaymentMethodType;
|
|
13
|
+
/** Reset both payment method states to NONE */
|
|
14
|
+
resetPaymentMethods: () => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Custom hook to manage crypto payment method state with dual-state system:
|
|
18
|
+
*
|
|
19
|
+
* - `cryptoPaymentMethod`: Auto-selected based on wallet availability and balance
|
|
20
|
+
* - `selectedCryptoPaymentMethod`: Explicitly selected by user
|
|
21
|
+
* - `effectiveCryptoPaymentMethod`: User selection takes priority over auto-selection
|
|
22
|
+
*
|
|
23
|
+
* This allows automatic payment method suggestions while respecting explicit user choices.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* const {
|
|
28
|
+
* cryptoPaymentMethod,
|
|
29
|
+
* setCryptoPaymentMethod,
|
|
30
|
+
* selectedCryptoPaymentMethod,
|
|
31
|
+
* setSelectedCryptoPaymentMethod,
|
|
32
|
+
* effectiveCryptoPaymentMethod,
|
|
33
|
+
* resetPaymentMethods
|
|
34
|
+
* } = useCryptoPaymentMethodState();
|
|
35
|
+
*
|
|
36
|
+
* // Use effectiveCryptoPaymentMethod for display
|
|
37
|
+
* // Use setSelectedCryptoPaymentMethod when user explicitly selects
|
|
38
|
+
* // Call resetPaymentMethods when switching tabs or going back
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function useCryptoPaymentMethodState(): UseCryptoPaymentMethodStateResult;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
import { CryptoPaymentMethodType } from "../components/common/CryptoPaymentMethod.js";
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook to manage crypto payment method state with dual-state system:
|
|
5
|
+
*
|
|
6
|
+
* - `cryptoPaymentMethod`: Auto-selected based on wallet availability and balance
|
|
7
|
+
* - `selectedCryptoPaymentMethod`: Explicitly selected by user
|
|
8
|
+
* - `effectiveCryptoPaymentMethod`: User selection takes priority over auto-selection
|
|
9
|
+
*
|
|
10
|
+
* This allows automatic payment method suggestions while respecting explicit user choices.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const {
|
|
15
|
+
* cryptoPaymentMethod,
|
|
16
|
+
* setCryptoPaymentMethod,
|
|
17
|
+
* selectedCryptoPaymentMethod,
|
|
18
|
+
* setSelectedCryptoPaymentMethod,
|
|
19
|
+
* effectiveCryptoPaymentMethod,
|
|
20
|
+
* resetPaymentMethods
|
|
21
|
+
* } = useCryptoPaymentMethodState();
|
|
22
|
+
*
|
|
23
|
+
* // Use effectiveCryptoPaymentMethod for display
|
|
24
|
+
* // Use setSelectedCryptoPaymentMethod when user explicitly selects
|
|
25
|
+
* // Call resetPaymentMethods when switching tabs or going back
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useCryptoPaymentMethodState() {
|
|
29
|
+
// cryptoPaymentMethod: auto-selected based on balance
|
|
30
|
+
const [cryptoPaymentMethod, setCryptoPaymentMethod] = useState(CryptoPaymentMethodType.NONE);
|
|
31
|
+
// selectedCryptoPaymentMethod: explicitly selected by user (NONE means no explicit selection)
|
|
32
|
+
const [selectedCryptoPaymentMethod, setSelectedCryptoPaymentMethod] = useState(CryptoPaymentMethodType.NONE);
|
|
33
|
+
// The effective payment method (user selection takes priority over auto-selection)
|
|
34
|
+
const effectiveCryptoPaymentMethod = selectedCryptoPaymentMethod !== CryptoPaymentMethodType.NONE ? selectedCryptoPaymentMethod : cryptoPaymentMethod;
|
|
35
|
+
// Helper function to reset both states
|
|
36
|
+
const resetPaymentMethods = () => {
|
|
37
|
+
setCryptoPaymentMethod(CryptoPaymentMethodType.NONE);
|
|
38
|
+
setSelectedCryptoPaymentMethod(CryptoPaymentMethodType.NONE);
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
cryptoPaymentMethod,
|
|
42
|
+
setCryptoPaymentMethod,
|
|
43
|
+
selectedCryptoPaymentMethod,
|
|
44
|
+
setSelectedCryptoPaymentMethod,
|
|
45
|
+
effectiveCryptoPaymentMethod,
|
|
46
|
+
resetPaymentMethods,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -1,46 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from "react";
|
|
3
2
|
export function AccountAssets({ nfts, isLoading }) {
|
|
4
|
-
// Initialize with all collections expanded
|
|
5
|
-
const [expandedCollections, setExpandedCollections] = useState(() => new Set(collections.map(c => c.collection_id)));
|
|
6
3
|
if (isLoading) {
|
|
7
|
-
return (_jsx("div", { className: "
|
|
4
|
+
return (_jsx("div", { className: "grid animate-pulse grid-cols-2 gap-4", children: [...Array(4)].map((_, i) => (_jsx("div", { className: "bg-b3-react-muted aspect-square rounded-lg" }, i))) }));
|
|
8
5
|
}
|
|
9
6
|
if (!nfts?.nfts?.length) {
|
|
10
7
|
return _jsx("div", { className: "text-b3-react-muted-foreground py-8 text-center", children: "No NFTs found" });
|
|
11
8
|
}
|
|
12
|
-
|
|
13
|
-
const groupedNFTs = nfts.nfts.reduce((acc, nft) => {
|
|
14
|
-
const collectionId = nft.collection?.collection_id || "unknown";
|
|
15
|
-
if (!acc[collectionId]) {
|
|
16
|
-
acc[collectionId] = {
|
|
17
|
-
collection_id: collectionId,
|
|
18
|
-
collection_name: nft.collection?.name || "Unknown Collection",
|
|
19
|
-
collection_image: nft.collection?.image_url || nft.previews?.image_small_url || "",
|
|
20
|
-
nfts: [],
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
acc[collectionId].nfts.push(nft);
|
|
24
|
-
return acc;
|
|
25
|
-
}, {});
|
|
26
|
-
const collections = Object.values(groupedNFTs);
|
|
27
|
-
const toggleCollection = (collectionId) => {
|
|
28
|
-
setExpandedCollections(prev => {
|
|
29
|
-
const next = new Set(prev);
|
|
30
|
-
if (next.has(collectionId)) {
|
|
31
|
-
next.delete(collectionId);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
next.add(collectionId);
|
|
35
|
-
}
|
|
36
|
-
return next;
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
return (_jsx("div", { className: "flex flex-col gap-3 px-4", children: collections.map(collection => {
|
|
40
|
-
const isExpanded = expandedCollections.has(collection.collection_id);
|
|
41
|
-
return (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("button", { onClick: () => toggleCollection(collection.collection_id), className: "flex w-full items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-1", children: [collection.collection_image && (_jsx("img", { src: collection.collection_image, alt: collection.collection_name, className: "h-5 w-5 shrink-0 rounded object-cover" })), _jsxs("p", { className: "font-neue-montreal-medium text-[14px] text-[#3f3f46]", children: [collection.collection_name, " (", collection.nfts.length, ")"] })] }), _jsx("svg", { className: `h-[18px] w-[18px] shrink-0 transition-transform ${isExpanded ? "rotate-180" : ""}`, viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M4.5 6.75L9 11.25L13.5 6.75", stroke: "#51525C", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })] }), isExpanded && (_jsx("div", { className: "flex gap-3 overflow-x-auto", children: collection.nfts.map(nft => (_jsx("div", { className: "relative h-[98px] w-[98px] shrink-0 overflow-hidden rounded-lg", children: _jsx("img", { src: nft.previews?.image_medium_url ||
|
|
42
|
-
nft.extra_metadata?.image_original_url ||
|
|
43
|
-
nft.collection?.image_url ||
|
|
44
|
-
"", alt: nft.name || "NFT", className: "h-full w-full object-cover" }) }, nft.nft_id))) }))] }, collection.collection_id));
|
|
45
|
-
}) }));
|
|
9
|
+
return (_jsx("div", { className: "grid grid-cols-2 gap-4", children: nfts.nfts.map(nft => (_jsx("div", { className: "group relative aspect-square overflow-hidden", children: _jsxs("div", { className: "relative h-full w-full overflow-hidden rounded-xl", children: [_jsx("img", { src: nft.previews?.image_medium_url || nft.extra_metadata?.image_original_url || nft.collection?.image_url, alt: nft.name || "NFT", className: "h-full w-full rounded-xl object-cover" }), _jsxs("div", { className: "absolute inset-0 flex flex-col justify-end bg-gradient-to-t from-black from-35% via-black/70 to-transparent p-3 opacity-0 transition-all duration-200 ease-in-out group-hover:opacity-100", children: [_jsx("p", { className: "font-neue-montreal-bold text-[16px] text-white drop-shadow-[0_1px_2px_rgba(0,0,0,1)]", children: nft.name || `#${nft.token_id}` }), _jsx("p", { className: "font-neue-montreal-bold text-sm text-white/95 drop-shadow-[0_1px_2px_rgba(0,0,0,1)]", children: nft.collection?.name })] })] }) }, nft.nft_id))) }));
|
|
46
10
|
}
|