@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,230 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CopyToClipboard,
|
|
3
|
-
ManageAccountModalProps,
|
|
4
|
-
useAuthentication,
|
|
5
|
-
useModalStore,
|
|
6
|
-
} from "@b3dotfun/sdk/global-account/react";
|
|
7
|
-
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
8
|
-
import { AnimatePresence, motion } from "framer-motion";
|
|
9
|
-
import { Loader2 } from "lucide-react";
|
|
10
|
-
import { useState } from "react";
|
|
11
|
-
import { useActiveWallet, useConnectedWallets, useSetActiveWallet, useWalletImage } from "thirdweb/react";
|
|
12
|
-
import { Wallet } from "thirdweb/wallets";
|
|
13
|
-
import { ChevronDownIcon } from "../icons/ChevronDownIcon";
|
|
14
|
-
import LinkIcon from "../icons/LinkIcon";
|
|
15
|
-
import SignOutIcon from "../icons/SignOutIcon";
|
|
16
|
-
import { WalletIcon } from "../icons/WalletIcon";
|
|
17
|
-
|
|
18
|
-
function centerTruncate(str: string, length = 4) {
|
|
19
|
-
if (!str) return "";
|
|
20
|
-
if (str.length <= length * 2) return str;
|
|
21
|
-
return `${str.slice(0, length)}...${str.slice(-length)}`;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Check icon component
|
|
25
|
-
const CheckIcon = ({ className }: { className?: string }) => (
|
|
26
|
-
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
|
|
27
|
-
<path
|
|
28
|
-
d="M16.6668 5L7.50016 14.1667L3.3335 10"
|
|
29
|
-
stroke="#0C68E9"
|
|
30
|
-
strokeWidth="1.66667"
|
|
31
|
-
strokeLinecap="round"
|
|
32
|
-
strokeLinejoin="round"
|
|
33
|
-
/>
|
|
34
|
-
</svg>
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
// Wallet item component
|
|
38
|
-
function WalletItem({ wallet, isActive, onClick }: { wallet: Wallet; isActive: boolean; onClick: () => void }) {
|
|
39
|
-
const account = wallet.getAccount();
|
|
40
|
-
const address = account?.address || "";
|
|
41
|
-
const { data: walletImage } = useWalletImage(wallet.id);
|
|
42
|
-
|
|
43
|
-
// Check if this is a global account (ecosystem wallet)
|
|
44
|
-
const isGlobalAccount = wallet.id.includes("ecosystem");
|
|
45
|
-
|
|
46
|
-
// Get wallet name from wallet metadata
|
|
47
|
-
const walletName = wallet.id.includes("coinbase")
|
|
48
|
-
? "Coinbase Wallet"
|
|
49
|
-
: wallet.id.includes("metamask")
|
|
50
|
-
? "MetaMask Wallet"
|
|
51
|
-
: wallet.id.includes("phantom")
|
|
52
|
-
? "Phantom Wallet"
|
|
53
|
-
: wallet.id.includes("walletConnect")
|
|
54
|
-
? "WalletConnect"
|
|
55
|
-
: isGlobalAccount
|
|
56
|
-
? "Smart Wallet"
|
|
57
|
-
: "Wallet";
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<div
|
|
61
|
-
className={`b3-modal-wallet-item ${
|
|
62
|
-
isActive ? "b3-modal-wallet-item-active bg-[#F4F4F5]" : "hover:bg-b3-line/50"
|
|
63
|
-
} box-border flex cursor-pointer items-center gap-2 rounded-xl px-3 py-2 transition-colors`}
|
|
64
|
-
onClick={onClick}
|
|
65
|
-
>
|
|
66
|
-
<div className="relative size-10 shrink-0 overflow-clip rounded-full">
|
|
67
|
-
{isGlobalAccount ? (
|
|
68
|
-
<div className="flex size-full items-center justify-center p-1">
|
|
69
|
-
<img src="https://cdn.b3.fun/b3_logo.svg" alt="B3" className="size-full object-contain" />
|
|
70
|
-
</div>
|
|
71
|
-
) : walletImage ? (
|
|
72
|
-
<img src={walletImage} alt={walletName} className="size-full object-contain p-1" />
|
|
73
|
-
) : (
|
|
74
|
-
<div className="flex size-full items-center justify-center">
|
|
75
|
-
<WalletIcon />
|
|
76
|
-
</div>
|
|
77
|
-
)}
|
|
78
|
-
</div>
|
|
79
|
-
<div className="flex min-w-0 flex-1 flex-col gap-1">
|
|
80
|
-
<p className="text-b3-grey font-neue-montreal-semibold truncate text-sm">{walletName}</p>
|
|
81
|
-
<p className="text-b3-foreground-muted font-neue-montreal-medium text-sm">{centerTruncate(address, 4)}</p>
|
|
82
|
-
</div>
|
|
83
|
-
{isActive && (
|
|
84
|
-
<div className="shrink-0">
|
|
85
|
-
<CheckIcon />
|
|
86
|
-
</div>
|
|
87
|
-
)}
|
|
88
|
-
</div>
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function Header({ onLogout }: { onLogout?: () => void }) {
|
|
93
|
-
const activeWallet = useActiveWallet();
|
|
94
|
-
|
|
95
|
-
const connectedWallets = useConnectedWallets();
|
|
96
|
-
const setActiveWallet = useSetActiveWallet();
|
|
97
|
-
const contentType = useModalStore(state => state.contentType) as ManageAccountModalProps;
|
|
98
|
-
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
99
|
-
const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
|
|
100
|
-
const partnerId = contentType?.partnerId;
|
|
101
|
-
|
|
102
|
-
const { logout } = useAuthentication(partnerId);
|
|
103
|
-
const [logoutLoading, setLogoutLoading] = useState(false);
|
|
104
|
-
const [isExpanded, setIsExpanded] = useState(false);
|
|
105
|
-
|
|
106
|
-
const account = activeWallet?.getAccount();
|
|
107
|
-
const address = account?.address || "";
|
|
108
|
-
const { data: activeWalletImage } = useWalletImage(activeWallet?.id);
|
|
109
|
-
const isActiveGlobalAccount = activeWallet?.id.includes("ecosystem");
|
|
110
|
-
|
|
111
|
-
const onLogoutEnhanced = async () => {
|
|
112
|
-
setLogoutLoading(true);
|
|
113
|
-
await logout();
|
|
114
|
-
onLogout?.();
|
|
115
|
-
setB3ModalOpen(false);
|
|
116
|
-
setLogoutLoading(false);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const handleWalletSwitch = (wallet: Wallet) => {
|
|
120
|
-
setActiveWallet(wallet);
|
|
121
|
-
setIsExpanded(false);
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
const handleLinkWallet = () => {
|
|
125
|
-
setB3ModalContentType({
|
|
126
|
-
type: "linkNewAccount",
|
|
127
|
-
partnerId,
|
|
128
|
-
chain: contentType?.chain,
|
|
129
|
-
onSuccess: async () => {
|
|
130
|
-
// Success handled by LinkAccount component
|
|
131
|
-
},
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
return (
|
|
136
|
-
<AccordionPrimitive.Root
|
|
137
|
-
type="single"
|
|
138
|
-
collapsible
|
|
139
|
-
value={isExpanded ? "wallet-switcher" : ""}
|
|
140
|
-
className="b3-modal-wallet-switcher bg-b3-background border-b3-line relative border-b"
|
|
141
|
-
onValueChange={(value: string) => setIsExpanded(value === "wallet-switcher")}
|
|
142
|
-
>
|
|
143
|
-
<AccordionPrimitive.Item value="wallet-switcher" className="border-none">
|
|
144
|
-
<AccordionPrimitive.Trigger className="b3-modal-wallet-switcher-trigger group flex w-full items-center justify-between border-none bg-transparent px-5 py-3 outline-none">
|
|
145
|
-
<div className="flex items-center gap-2">
|
|
146
|
-
<div className="relative size-10 shrink-0 overflow-clip rounded-full">
|
|
147
|
-
{isActiveGlobalAccount ? (
|
|
148
|
-
<div className="flex size-full items-center justify-center p-1">
|
|
149
|
-
<img src="https://cdn.b3.fun/b3_logo.svg" alt="B3" className="size-full object-contain" />
|
|
150
|
-
</div>
|
|
151
|
-
) : activeWalletImage ? (
|
|
152
|
-
<img src={activeWalletImage} alt="Active Wallet" className="size-full object-contain p-1" />
|
|
153
|
-
) : (
|
|
154
|
-
<div className="flex size-full items-center justify-center">
|
|
155
|
-
<WalletIcon />
|
|
156
|
-
</div>
|
|
157
|
-
)}
|
|
158
|
-
</div>
|
|
159
|
-
<div className="flex flex-col gap-0.5">
|
|
160
|
-
<p className="text-b3-grey font-neue-montreal-semibold text-sm">Active Wallet</p>
|
|
161
|
-
<div className="flex items-center gap-1">
|
|
162
|
-
<p className="text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
163
|
-
{centerTruncate(address, 4)}
|
|
164
|
-
</p>
|
|
165
|
-
<CopyToClipboard text={address} />
|
|
166
|
-
</div>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
<ChevronDownIcon className="b3-modal-wallet-switcher-chevron text-b3-grey transition-transform duration-200 group-data-[state=open]:rotate-180" />
|
|
170
|
-
</AccordionPrimitive.Trigger>
|
|
171
|
-
|
|
172
|
-
<AnimatePresence>
|
|
173
|
-
{isExpanded && (
|
|
174
|
-
<AccordionPrimitive.Content forceMount className="absolute left-0 right-0 top-full z-50 overflow-visible">
|
|
175
|
-
<motion.div
|
|
176
|
-
initial={{ opacity: 0, y: -10 }}
|
|
177
|
-
animate={{ opacity: 1, y: 0 }}
|
|
178
|
-
exit={{ opacity: 0, y: -10 }}
|
|
179
|
-
transition={{ duration: 0.2, ease: "easeInOut" }}
|
|
180
|
-
className="b3-modal-wallet-switcher-content flex flex-col gap-3 rounded-bl-3xl rounded-br-3xl bg-white px-2 pb-5 pt-3 shadow-[0px_32px_64px_-12px_rgba(10,13,18,0.14),0px_5px_5px_-2.5px_rgba(10,13,18,0.04)]"
|
|
181
|
-
>
|
|
182
|
-
{/* Connected Wallets */}
|
|
183
|
-
<div className="flex flex-col gap-3">
|
|
184
|
-
{connectedWallets.map(wallet => (
|
|
185
|
-
<WalletItem
|
|
186
|
-
key={wallet.id}
|
|
187
|
-
wallet={wallet}
|
|
188
|
-
isActive={activeWallet?.id === wallet.id}
|
|
189
|
-
onClick={() => handleWalletSwitch(wallet)}
|
|
190
|
-
/>
|
|
191
|
-
))}
|
|
192
|
-
|
|
193
|
-
{/* Link Another Wallet */}
|
|
194
|
-
<div
|
|
195
|
-
className="b3-modal-link-another-wallet hover:bg-b3-line/50 box-border flex cursor-pointer items-center gap-2 rounded-xl px-3 py-2 transition-colors"
|
|
196
|
-
onClick={handleLinkWallet}
|
|
197
|
-
>
|
|
198
|
-
<div className="bg-b3-line flex size-10 shrink-0 items-center justify-center rounded-full">
|
|
199
|
-
<LinkIcon className="text-b3-grey" />
|
|
200
|
-
</div>
|
|
201
|
-
<div className="flex flex-1 flex-col">
|
|
202
|
-
<p className="text-b3-grey font-neue-montreal-semibold text-sm">Link another wallet</p>
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
|
-
|
|
207
|
-
{/* Sign Out Button */}
|
|
208
|
-
<button
|
|
209
|
-
className="b3-modal-sign-out-button border-b3-line hover:bg-b3-line bg-b3-background flex items-center justify-center gap-1.5 rounded-xl border border-solid p-2.5 transition-colors"
|
|
210
|
-
onClick={onLogoutEnhanced}
|
|
211
|
-
disabled={logoutLoading}
|
|
212
|
-
style={{
|
|
213
|
-
boxShadow: "inset 0px 0px 0px 1px rgba(10,13,18,0.18), inset 0px -2px 0px 0px rgba(10,13,18,0.05)",
|
|
214
|
-
}}
|
|
215
|
-
>
|
|
216
|
-
{logoutLoading ? (
|
|
217
|
-
<Loader2 className="animate-spin" size={20} />
|
|
218
|
-
) : (
|
|
219
|
-
<SignOutIcon size={20} className="text-b3-grey" />
|
|
220
|
-
)}
|
|
221
|
-
<p className="text-b3-grey font-neue-montreal-semibold text-base">Sign out</p>
|
|
222
|
-
</button>
|
|
223
|
-
</motion.div>
|
|
224
|
-
</AccordionPrimitive.Content>
|
|
225
|
-
)}
|
|
226
|
-
</AnimatePresence>
|
|
227
|
-
</AccordionPrimitive.Item>
|
|
228
|
-
</AccordionPrimitive.Root>
|
|
229
|
-
);
|
|
230
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Button, useModalStore } from "@b3dotfun/sdk/global-account/react";
|
|
2
|
-
import { BankIcon } from "@b3dotfun/sdk/global-account/react/components/icons/BankIcon";
|
|
3
|
-
import { SwapIcon } from "@b3dotfun/sdk/global-account/react/components/icons/SwapIcon";
|
|
4
|
-
import { cn } from "@b3dotfun/sdk/shared/utils";
|
|
5
|
-
|
|
6
|
-
const SendIcon = () => (
|
|
7
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
8
|
-
<path
|
|
9
|
-
d="M17.9958 1.21467C17.666 1.10449 17.359 1.18417 17.2063 1.22851C17.04 1.27683 16.8417 1.35425 16.6428 1.43191L2.51187 6.94641C2.28951 7.03315 2.07413 7.11717 1.9079 7.19936C1.76427 7.27038 1.45899 7.42845 1.28859 7.75646C1.10067 8.11818 1.10092 8.54881 1.28927 8.9103C1.46006 9.23811 1.76552 9.39582 1.90924 9.46667C2.07556 9.54867 2.29099 9.63241 2.51345 9.71889L6.4468 11.2485C6.74023 11.3626 6.88695 11.4197 7.03291 11.4232C7.16193 11.4263 7.2899 11.3994 7.40674 11.3446C7.53893 11.2826 7.65024 11.1713 7.87287 10.9487L11.9107 6.91083C12.2361 6.58539 12.7638 6.58539 13.0892 6.91083C13.4147 7.23626 13.4147 7.7639 13.0892 8.08934L9.05138 12.1272C8.82875 12.3498 8.71744 12.4611 8.65545 12.5933C8.60065 12.7101 8.57374 12.8381 8.57684 12.9671C8.58035 13.1131 8.6374 13.2598 8.75152 13.5532L10.2811 17.4865C10.3676 17.709 10.4514 17.9245 10.5334 18.0908C10.6042 18.2345 10.7619 18.54 11.0897 18.7108C11.4512 18.8991 11.8819 18.8994 12.2436 18.7115C12.5716 18.541 12.7297 18.2358 12.8007 18.0921C12.8829 17.9259 12.9669 17.7106 13.0536 17.4882L18.5681 3.35726C18.6458 3.15833 18.7232 2.96007 18.7715 2.79371C18.8159 2.64105 18.8955 2.334 18.7854 2.00419C18.6609 1.63157 18.3685 1.33915 17.9958 1.21467Z"
|
|
10
|
-
fill="#0C68E9"
|
|
11
|
-
/>
|
|
12
|
-
</svg>
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
const BuyIcon = () => (
|
|
16
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
17
|
-
<path
|
|
18
|
-
d="M9.99998 8.75C9.30962 8.75 8.74998 9.30964 8.74998 10C8.74998 10.6904 9.30962 11.25 9.99998 11.25C10.6903 11.25 11.25 10.6904 11.25 10C11.25 9.30964 10.6903 8.75 9.99998 8.75Z"
|
|
19
|
-
fill="#0C68E9"
|
|
20
|
-
/>
|
|
21
|
-
<path
|
|
22
|
-
fill-rule="evenodd"
|
|
23
|
-
clip-rule="evenodd"
|
|
24
|
-
d="M14.1666 2.5C12.3642 2.5 10.8013 2.95205 9.44241 3.37018L9.18862 3.44844C7.90485 3.84476 6.86213 4.16667 5.83332 4.16667C5.09512 4.16667 4.43564 4.08819 3.88041 3.98151L3.85421 3.97647C3.44746 3.89831 3.10585 3.83267 2.84038 3.79758C2.60748 3.76679 2.26236 3.7302 1.94675 3.84126C1.78134 3.89947 1.60242 3.98249 1.43327 4.12224C1.26411 4.26199 1.14882 4.42202 1.06045 4.57348C0.898119 4.85168 0.864329 5.167 0.849347 5.3925C0.833297 5.63407 0.833306 5.94132 0.833317 6.29588L0.833315 15.2922C0.833263 15.4565 0.833201 15.6516 0.932434 15.9263C0.981719 16.0628 1.06288 16.1945 1.10974 16.2664C1.15659 16.3383 1.24436 16.4657 1.34932 16.5659C1.41718 16.6306 1.49456 16.6992 1.58722 16.76C1.67809 16.8196 1.76087 16.8559 1.79699 16.8717L1.80356 16.8746C2.48669 17.1759 3.71203 17.5 5.83332 17.5C7.63579 17.5 9.19862 17.0479 10.5576 16.6298L10.8113 16.5516C12.0951 16.1552 13.1378 15.8333 14.1666 15.8333C14.9048 15.8333 15.5643 15.9118 16.1196 16.0185L16.1458 16.0235C16.5525 16.1017 16.8941 16.1673 17.1596 16.2024C17.3925 16.2332 17.7376 16.2698 18.0532 16.1587C18.2186 16.1005 18.3975 16.0175 18.5667 15.8778C18.7359 15.738 18.8511 15.578 18.9395 15.4265C19.1018 15.1483 19.1356 14.833 19.1506 14.6075C19.1667 14.3659 19.1667 14.0587 19.1666 13.7041L19.1667 4.70776C19.1667 4.54347 19.1668 4.34839 19.0675 4.07365C19.0182 3.9372 18.9371 3.80547 18.8902 3.73359C18.8434 3.6617 18.7556 3.53428 18.6507 3.43412C18.5828 3.36935 18.5054 3.30084 18.4127 3.24003C18.3219 3.1804 18.2391 3.14413 18.203 3.1283L18.1964 3.12542C17.5133 2.82409 16.2879 2.5 14.1666 2.5ZM15.8333 7.5C15.8333 7.03976 15.4602 6.66667 15 6.66667C14.5397 6.66667 14.1666 7.03976 14.1666 7.5V10.8333C14.1666 11.2936 14.5397 11.6667 15 11.6667C15.4602 11.6667 15.8333 11.2936 15.8333 10.8333V7.5ZM7.08331 10C7.08331 8.38917 8.38915 7.08333 9.99998 7.08333C11.6108 7.08333 12.9166 8.38917 12.9166 10C12.9166 11.6108 11.6108 12.9167 9.99998 12.9167C8.38915 12.9167 7.08331 11.6108 7.08331 10ZM4.99998 8.33333C5.46022 8.33333 5.83331 8.70643 5.83331 9.16667V12.5C5.83331 12.9602 5.46022 13.3333 4.99998 13.3333C4.53974 13.3333 4.16665 12.9602 4.16665 12.5V9.16667C4.16665 8.70643 4.53974 8.33333 4.99998 8.33333Z"
|
|
25
|
-
fill="#0C68E9"
|
|
26
|
-
/>
|
|
27
|
-
</svg>
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
const HomeActionButton = ({
|
|
31
|
-
customClass,
|
|
32
|
-
icon,
|
|
33
|
-
label,
|
|
34
|
-
onClick,
|
|
35
|
-
}: {
|
|
36
|
-
customClass: string;
|
|
37
|
-
icon: React.ReactNode;
|
|
38
|
-
label: string;
|
|
39
|
-
onClick: () => void;
|
|
40
|
-
}) => {
|
|
41
|
-
return (
|
|
42
|
-
<Button
|
|
43
|
-
className={cn(
|
|
44
|
-
"border-b3-line hover:border-b3-primary-blue flex h-[84px] w-full flex-col items-center justify-center gap-2 rounded-2xl border-[1.5px] bg-[#FAFAFA] shadow-[0_0_0_1px_rgba(10,13,18,0.18)_inset,0_-2px_0_0_rgba(10,13,18,0.05)_inset,0_1px_2px_0_rgba(10,13,18,0.05)] hover:bg-[#FAFAFA]",
|
|
45
|
-
customClass,
|
|
46
|
-
)}
|
|
47
|
-
onClick={onClick}
|
|
48
|
-
>
|
|
49
|
-
{icon}
|
|
50
|
-
<div className="text-b3-grey font-neue-montreal-semibold">{label}</div>
|
|
51
|
-
</Button>
|
|
52
|
-
);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const HomeActions = ({ showDeposit, showSwap }: { showDeposit: boolean; showSwap: boolean }) => {
|
|
56
|
-
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
57
|
-
const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<div className="b3-modal-home-actions border-b3-line grid grid-cols-4 gap-3 border-b px-5 pb-6">
|
|
61
|
-
{showDeposit && (
|
|
62
|
-
<HomeActionButton
|
|
63
|
-
customClass="manage-account-deposit"
|
|
64
|
-
icon={<BankIcon size={24} className="text-b3-primary-blue shrink-0" />}
|
|
65
|
-
label="Deposit"
|
|
66
|
-
onClick={() => {
|
|
67
|
-
setB3ModalOpen(true);
|
|
68
|
-
setB3ModalContentType({
|
|
69
|
-
type: "deposit",
|
|
70
|
-
showBackButton: true,
|
|
71
|
-
});
|
|
72
|
-
}}
|
|
73
|
-
/>
|
|
74
|
-
)}
|
|
75
|
-
<HomeActionButton
|
|
76
|
-
customClass="manage-account-send"
|
|
77
|
-
icon={<SendIcon />}
|
|
78
|
-
label="Send"
|
|
79
|
-
onClick={() => {
|
|
80
|
-
setB3ModalOpen(true);
|
|
81
|
-
setB3ModalContentType({
|
|
82
|
-
type: "send",
|
|
83
|
-
showBackButton: true,
|
|
84
|
-
});
|
|
85
|
-
}}
|
|
86
|
-
/>
|
|
87
|
-
{showSwap && (
|
|
88
|
-
<HomeActionButton
|
|
89
|
-
customClass="manage-account-swap"
|
|
90
|
-
icon={<SwapIcon size={24} className="text-b3-primary-blue" />}
|
|
91
|
-
label="Swap"
|
|
92
|
-
onClick={() => {
|
|
93
|
-
setB3ModalOpen(true);
|
|
94
|
-
setB3ModalContentType({
|
|
95
|
-
type: "anySpend",
|
|
96
|
-
showBackButton: true,
|
|
97
|
-
});
|
|
98
|
-
}}
|
|
99
|
-
/>
|
|
100
|
-
)}
|
|
101
|
-
<HomeActionButton
|
|
102
|
-
customClass="manage-account-buy "
|
|
103
|
-
icon={<BuyIcon />}
|
|
104
|
-
label="Buy"
|
|
105
|
-
onClick={() => {
|
|
106
|
-
setB3ModalOpen(true);
|
|
107
|
-
setB3ModalContentType({
|
|
108
|
-
type: "anySpend",
|
|
109
|
-
defaultActiveTab: "fiat",
|
|
110
|
-
showBackButton: true,
|
|
111
|
-
});
|
|
112
|
-
}}
|
|
113
|
-
/>
|
|
114
|
-
</div>
|
|
115
|
-
);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export default HomeActions;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Tabs, TabsContent, TabsList, TabTrigger } from "../ui/Tabs";
|
|
2
|
-
import { Header } from "./Header";
|
|
3
|
-
import HomeActions from "./HomeActions";
|
|
4
|
-
import NFTContent from "./NFTContent";
|
|
5
|
-
import ProfileSection from "./ProfileSection";
|
|
6
|
-
import TokenContent from "./TokenContent";
|
|
7
|
-
|
|
8
|
-
interface HomeContentProps {
|
|
9
|
-
showDeposit?: boolean;
|
|
10
|
-
showSwap?: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function HomeContent({ showDeposit = false, showSwap = true }: HomeContentProps) {
|
|
14
|
-
return (
|
|
15
|
-
<div className="flex flex-col">
|
|
16
|
-
<Header />
|
|
17
|
-
<div className="flex flex-col">
|
|
18
|
-
<ProfileSection />
|
|
19
|
-
|
|
20
|
-
<HomeActions showDeposit={showDeposit} showSwap={showSwap} />
|
|
21
|
-
<div className="b3-modal-balance-content space-y-2 p-5">
|
|
22
|
-
<Tabs defaultValue={"balance"}>
|
|
23
|
-
<TabsList className="b3-modal-balance-tabs-list">
|
|
24
|
-
<TabTrigger value="balance" className="font-neue-montreal-semibold p-0 pr-3">
|
|
25
|
-
Balance
|
|
26
|
-
</TabTrigger>
|
|
27
|
-
<TabTrigger value="nfts" className="font-neue-montreal-semibold p-0 pr-3">
|
|
28
|
-
NFTs
|
|
29
|
-
</TabTrigger>
|
|
30
|
-
</TabsList>
|
|
31
|
-
<TabsContent value="balance" className="px-0 pb-4 pt-2">
|
|
32
|
-
<TokenContent />
|
|
33
|
-
</TabsContent>
|
|
34
|
-
<TabsContent value="nfts" className="px-0 pb-4 pt-2">
|
|
35
|
-
<NFTContent />
|
|
36
|
-
</TabsContent>
|
|
37
|
-
</Tabs>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
);
|
|
42
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { useActiveWallet } from "thirdweb/react";
|
|
2
|
-
import { AccountAssets } from "..";
|
|
3
|
-
import { useAccountAssets } from "../../hooks";
|
|
4
|
-
|
|
5
|
-
const NFTContent = () => {
|
|
6
|
-
// Get active wallet state
|
|
7
|
-
const activeWallet = useActiveWallet();
|
|
8
|
-
const activeAccount = activeWallet?.getAccount();
|
|
9
|
-
const activeAddress = activeAccount?.address;
|
|
10
|
-
|
|
11
|
-
const { data: nfts, isLoading } = useAccountAssets(activeAddress);
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<div style={{ minHeight: "100px" }}>
|
|
15
|
-
{nfts?.nftResponse ? (
|
|
16
|
-
<AccountAssets nfts={nfts.nftResponse} isLoading={isLoading} />
|
|
17
|
-
) : (
|
|
18
|
-
<div className="py-12 text-center text-gray-500">No NFTs found</div>
|
|
19
|
-
)}
|
|
20
|
-
</div>
|
|
21
|
-
);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default NFTContent;
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { useAccountWallet, useB3, useModalStore, useProfile, useSimBalance } from "@b3dotfun/sdk/global-account/react";
|
|
2
|
-
import { formatUsername } from "@b3dotfun/sdk/shared/utils";
|
|
3
|
-
import { formatDisplayNumber } from "@b3dotfun/sdk/shared/utils/number";
|
|
4
|
-
import { Pencil } from "lucide-react";
|
|
5
|
-
import { useMemo } from "react";
|
|
6
|
-
import { useActiveAccount } from "thirdweb/react";
|
|
7
|
-
import { useFirstEOA } from "../../hooks/useFirstEOA";
|
|
8
|
-
import { IPFSMediaRenderer } from "../IPFSMediaRenderer/IPFSMediaRenderer";
|
|
9
|
-
|
|
10
|
-
const ProfileSection = () => {
|
|
11
|
-
const account = useActiveAccount();
|
|
12
|
-
const { address: eoaAddress } = useFirstEOA();
|
|
13
|
-
const { address: smartWalletAddress } = useAccountWallet();
|
|
14
|
-
const { data: profile } = useProfile({
|
|
15
|
-
address: eoaAddress || account?.address,
|
|
16
|
-
fresh: true,
|
|
17
|
-
});
|
|
18
|
-
const { user } = useB3();
|
|
19
|
-
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
20
|
-
const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
|
|
21
|
-
const navigateBack = useModalStore(state => state.navigateBack);
|
|
22
|
-
|
|
23
|
-
const { data: simBalance } = useSimBalance(smartWalletAddress);
|
|
24
|
-
|
|
25
|
-
// Calculate total balance in USD
|
|
26
|
-
const totalBalanceUsd = useMemo(() => {
|
|
27
|
-
if (!simBalance?.balances) return 0;
|
|
28
|
-
return simBalance.balances.reduce((sum, token) => sum + (token.value_usd || 0), 0);
|
|
29
|
-
}, [simBalance]);
|
|
30
|
-
|
|
31
|
-
const handleEditAvatar = () => {
|
|
32
|
-
setB3ModalOpen(true);
|
|
33
|
-
setB3ModalContentType({
|
|
34
|
-
type: "avatarEditor",
|
|
35
|
-
onSuccess: () => {
|
|
36
|
-
// navigate back on success
|
|
37
|
-
navigateBack();
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// IPFSMediaRenderer will handle IPFS URL conversion and validation
|
|
43
|
-
const avatarSrc = user?.avatar || profile?.avatar;
|
|
44
|
-
|
|
45
|
-
// Get current username - prioritize user.username, fallback to profile data
|
|
46
|
-
const currentUsername = user?.username || profile?.displayName || formatUsername(profile?.name || "");
|
|
47
|
-
|
|
48
|
-
return (
|
|
49
|
-
<div className="flex items-center justify-between px-5 py-6">
|
|
50
|
-
<div className="global-account-profile flex items-center gap-4">
|
|
51
|
-
<div className="global-account-profile-avatar relative">
|
|
52
|
-
<IPFSMediaRenderer
|
|
53
|
-
src={avatarSrc}
|
|
54
|
-
alt="Profile Avatar"
|
|
55
|
-
className="border-b3-line border-1 bg-b3-primary-wash size-14 rounded-full border"
|
|
56
|
-
/>
|
|
57
|
-
|
|
58
|
-
<button
|
|
59
|
-
onClick={handleEditAvatar}
|
|
60
|
-
className="border-b3-background hover:bg-b3-grey/80 absolute -bottom-1 -right-1 flex size-6 items-center justify-center rounded-full border-4 bg-[#a0a0ab] transition-colors"
|
|
61
|
-
>
|
|
62
|
-
<Pencil size={10} className="text-b3-background" />
|
|
63
|
-
</button>
|
|
64
|
-
</div>
|
|
65
|
-
<div className="global-account-profile-info flex flex-col gap-1">
|
|
66
|
-
<h2 className="text-b3-grey font-neue-montreal-semibold flex h-[38px] items-center gap-1 text-xl">
|
|
67
|
-
<div className="text-b3-foreground-muted"> $</div>
|
|
68
|
-
<div className="text-[30px]">{formatDisplayNumber(totalBalanceUsd, { fractionDigits: 2 })}</div>
|
|
69
|
-
</h2>
|
|
70
|
-
<div className="b3-modal-username font-neue-montreal-semibold text-base leading-none text-[#0B57C2]">
|
|
71
|
-
{currentUsername}
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
export default ProfileSection;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { useModalStore } from "@b3dotfun/sdk/global-account/react";
|
|
2
|
-
import { Chain } from "thirdweb";
|
|
3
|
-
import LinkIcon from "../icons/LinkIcon";
|
|
4
|
-
import ModalHeader from "../ModalHeader/ModalHeader";
|
|
5
|
-
import SettingsMenuItem from "./SettingsMenuItem";
|
|
6
|
-
import SettingsProfileCard from "./SettingsProfileCard";
|
|
7
|
-
|
|
8
|
-
const SettingsContent = ({
|
|
9
|
-
partnerId,
|
|
10
|
-
onLogout,
|
|
11
|
-
chain,
|
|
12
|
-
}: {
|
|
13
|
-
partnerId: string;
|
|
14
|
-
onLogout?: () => void;
|
|
15
|
-
chain: Chain;
|
|
16
|
-
}) => {
|
|
17
|
-
const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
|
|
18
|
-
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
19
|
-
|
|
20
|
-
const handleNavigate = (type: "home" | "swap" | "linkAccount" | "avatarEditor") => {
|
|
21
|
-
if (type === "home") {
|
|
22
|
-
setB3ModalContentType({
|
|
23
|
-
type: "manageAccount",
|
|
24
|
-
chain,
|
|
25
|
-
partnerId,
|
|
26
|
-
onLogout,
|
|
27
|
-
activeTab: "home",
|
|
28
|
-
});
|
|
29
|
-
} else if (type === "swap") {
|
|
30
|
-
setB3ModalContentType({
|
|
31
|
-
type: "manageAccount",
|
|
32
|
-
chain,
|
|
33
|
-
partnerId,
|
|
34
|
-
onLogout,
|
|
35
|
-
activeTab: "tokens",
|
|
36
|
-
});
|
|
37
|
-
} else if (type === "linkAccount") {
|
|
38
|
-
setB3ModalContentType({
|
|
39
|
-
type: "linkAccount",
|
|
40
|
-
chain,
|
|
41
|
-
partnerId,
|
|
42
|
-
});
|
|
43
|
-
} else {
|
|
44
|
-
setB3ModalContentType({
|
|
45
|
-
type: "avatarEditor",
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
setB3ModalOpen(true);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
return (
|
|
52
|
-
<div className="flex h-[470px] flex-col">
|
|
53
|
-
<ModalHeader showBackButton={false} showCloseButton={false} title="Settings" />
|
|
54
|
-
|
|
55
|
-
{/* Profile Section */}
|
|
56
|
-
<div className="p-5">
|
|
57
|
-
<div className="b3-modal-settings-profile-card flex items-center rounded-xl border border-[#e4e4e7] bg-[#f4f4f5] p-4">
|
|
58
|
-
<SettingsProfileCard />
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
{/* Menu Items */}
|
|
63
|
-
<div className="space-y-3 px-5">
|
|
64
|
-
<SettingsMenuItem
|
|
65
|
-
icon={<LinkIcon className="text-b3-grey-500" />}
|
|
66
|
-
title="Linked Accounts"
|
|
67
|
-
subtitle="3 connected accounts"
|
|
68
|
-
onClick={() => handleNavigate("linkAccount")}
|
|
69
|
-
/>
|
|
70
|
-
{/* <SettingsMenuItem
|
|
71
|
-
icon={<BellIcon className="text-b3-grey-500" />}
|
|
72
|
-
title="Notifications"
|
|
73
|
-
subtitle="Manage your notifications"
|
|
74
|
-
onClick={() => handleNavigate("avatarEditor")}
|
|
75
|
-
/>
|
|
76
|
-
<SettingsMenuItem
|
|
77
|
-
icon={<LockIcon className="text-b3-grey-500" />}
|
|
78
|
-
title="Permissions"
|
|
79
|
-
subtitle="Security & apps"
|
|
80
|
-
onClick={() => handleNavigate("avatarEditor")}
|
|
81
|
-
/> */}
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
);
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export default SettingsContent;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ChevronRight } from "lucide-react";
|
|
2
|
-
import { ReactNode } from "react";
|
|
3
|
-
|
|
4
|
-
interface SettingsMenuItemProps {
|
|
5
|
-
icon: ReactNode;
|
|
6
|
-
title: string;
|
|
7
|
-
subtitle: string;
|
|
8
|
-
onClick?: () => void;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const SettingsMenuItem = ({ icon, title, subtitle, onClick }: SettingsMenuItemProps) => {
|
|
12
|
-
return (
|
|
13
|
-
<button
|
|
14
|
-
onClick={onClick}
|
|
15
|
-
className="b3-modal-settings-menu-item flex w-full items-center gap-2 rounded-xl px-3 py-2 transition-colors hover:bg-[#f4f4f5]"
|
|
16
|
-
>
|
|
17
|
-
<div className="flex size-10 items-center justify-center rounded-full bg-[#f4f4f5]">{icon}</div>
|
|
18
|
-
<div className="flex flex-1 flex-col items-start gap-1 text-left">
|
|
19
|
-
<span className="font-neue-montreal-semibold text-[14px] leading-none tracking-[-0.28px] text-[#3f3f46]">
|
|
20
|
-
{title}
|
|
21
|
-
</span>
|
|
22
|
-
<span className="font-neue-montreal-medium text-[14px] leading-none tracking-[-0.28px] text-[#70707b]">
|
|
23
|
-
{subtitle}
|
|
24
|
-
</span>
|
|
25
|
-
</div>
|
|
26
|
-
<ChevronRight size={20} className="text-[#51525c]" />
|
|
27
|
-
</button>
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export default SettingsMenuItem;
|