@b3dotfun/sdk 0.0.73-test.3 → 0.0.74-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 +75 -50
- package/dist/cjs/anyspend/react/components/AnySpendBuySpin.js +9 -10
- package/dist/cjs/anyspend/react/components/AnySpendCustom.js +41 -41
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +17 -9
- package/dist/cjs/anyspend/react/components/AnySpendStakeB3.js +7 -8
- package/dist/cjs/anyspend/react/components/AnySpendStakeB3ExactIn.js +7 -8
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +2 -2
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +18 -14
- 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/InsufficientDepositPayment.js +6 -6
- package/dist/cjs/anyspend/react/components/common/OrderDetails.js +35 -35
- package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +1 -2
- package/dist/cjs/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/cjs/anyspend/react/components/common/OrderHistory.js +7 -3
- package/dist/cjs/anyspend/react/components/common/OrderHistoryItem.js +1 -1
- package/dist/cjs/anyspend/react/components/common/PanelOnramp.js +4 -4
- package/dist/cjs/anyspend/react/components/common/PanelOnrampPayment.js +8 -9
- 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/common/TransferCryptoDetails.js +2 -3
- package/dist/cjs/anyspend/react/components/webview/WebviewOnrampOrderStatus.js +1 -2
- package/dist/cjs/anyspend/react/components/webview/WebviewOnrampPayment.js +12 -12
- package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +4 -5
- package/dist/cjs/anyspend/react/hooks/useConnectedWalletDisplay.js +3 -2
- package/dist/cjs/anyspend/react/hooks/usePhantomTransfer.js +17 -17
- package/dist/cjs/anyspend/react/utils/toast.d.ts +6 -0
- package/dist/cjs/anyspend/react/utils/toast.js +9 -0
- package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.js +2 -3
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +275 -39
- package/dist/cjs/global-account/react/components/B3DynamicModal.js +40 -13
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +19 -3
- package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +1 -0
- package/dist/cjs/global-account/react/components/Deposit/Deposit.js +61 -0
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +34 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +104 -283
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +320 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkedAccountItem.js +44 -0
- package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/BottomNavigation.js +23 -0
- package/dist/cjs/global-account/react/components/ManageAccount/ContentTokens.js +1 -2
- package/dist/cjs/global-account/react/components/ManageAccount/Header.d.ts +3 -0
- package/dist/cjs/global-account/react/components/ManageAccount/Header.js +120 -0
- package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
- package/dist/cjs/global-account/react/components/ManageAccount/HomeActions.js +43 -0
- package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
- package/dist/cjs/global-account/react/components/ManageAccount/HomeContent.js +16 -0
- package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +16 -194
- package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +15 -0
- package/dist/cjs/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
- package/dist/cjs/global-account/react/components/ManageAccount/NotificationChannel.js +13 -0
- package/dist/cjs/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
- package/dist/cjs/global-account/react/components/ManageAccount/NotificationsContent.js +152 -0
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +47 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsContent.js +60 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsMenuItem.js +8 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +116 -0
- package/dist/cjs/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
- package/dist/cjs/global-account/react/components/ManageAccount/TokenBalanceRow.js +2 -2
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +44 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/DiscordChannel.js +48 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/EmailChannel.js +68 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/PhoneChannel.js +79 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/TelegramChannel.js +79 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
- package/dist/cjs/global-account/react/components/ManageAccount/channels/index.js +11 -0
- package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
- package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.js +12 -0
- package/dist/cjs/global-account/react/components/Send/Send.d.ts +5 -0
- package/dist/cjs/global-account/react/components/Send/Send.js +195 -0
- package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +5 -4
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -1
- package/dist/cjs/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
- package/dist/cjs/global-account/react/components/Toast/ToastComponents.js +54 -0
- package/dist/cjs/global-account/react/components/Toast/ToastContext.d.ts +19 -0
- package/dist/cjs/global-account/react/components/Toast/ToastContext.js +59 -0
- package/dist/cjs/global-account/react/components/Toast/index.d.ts +4 -0
- package/dist/cjs/global-account/react/components/Toast/index.js +12 -0
- package/dist/cjs/global-account/react/components/Toast/toastApi.d.ts +21 -0
- package/dist/cjs/global-account/react/components/Toast/toastApi.js +93 -0
- package/dist/cjs/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
- package/dist/cjs/global-account/react/components/WalletImage/WalletImage.js +13 -0
- package/dist/cjs/global-account/react/components/icons/BellIcon.d.ts +3 -0
- package/dist/cjs/global-account/react/components/icons/BellIcon.js +5 -0
- package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
- package/dist/cjs/global-account/react/components/icons/ChevronDownIcon.js +7 -0
- package/dist/cjs/global-account/react/components/icons/CopyIcon.d.ts +2 -0
- package/dist/cjs/global-account/react/components/icons/CopyIcon.js +7 -0
- package/dist/cjs/global-account/react/components/icons/LinkIcon.d.ts +3 -0
- package/dist/cjs/global-account/react/components/icons/LinkIcon.js +5 -0
- package/dist/cjs/global-account/react/components/icons/LockIcon.d.ts +3 -0
- package/dist/cjs/global-account/react/components/icons/LockIcon.js +5 -0
- package/dist/cjs/global-account/react/components/icons/WalletIcon.d.ts +2 -0
- package/dist/cjs/global-account/react/components/icons/WalletIcon.js +7 -0
- package/dist/cjs/global-account/react/components/index.d.ts +10 -4
- package/dist/cjs/global-account/react/components/index.js +29 -9
- 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 +3 -2
- package/dist/cjs/global-account/react/hooks/index.js +7 -3
- package/dist/cjs/global-account/react/hooks/useAccountWallet.d.ts +1 -0
- package/dist/cjs/global-account/react/hooks/useAccountWallet.js +18 -0
- package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
- package/dist/cjs/global-account/react/hooks/useChainSwitchWithAction.js +11 -11
- package/dist/cjs/global-account/react/hooks/useNativeBalance.js +2 -2
- package/dist/cjs/global-account/react/hooks/useNotifications.d.ts +48 -0
- package/dist/cjs/global-account/react/hooks/useNotifications.js +189 -0
- package/dist/cjs/global-account/react/hooks/useSimBalance.js +3 -3
- package/dist/cjs/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
- package/dist/cjs/global-account/react/hooks/useTokenBalanceDirect.js +1 -0
- package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +17 -17
- package/dist/cjs/global-account/react/stores/index.d.ts +1 -0
- package/dist/cjs/global-account/react/stores/index.js +3 -1
- package/dist/cjs/global-account/react/stores/useModalStore.d.ts +47 -6
- package/dist/cjs/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
- package/dist/cjs/global-account/react/stores/useRecentAddressesStore.js +36 -0
- package/dist/cjs/global-account/react/utils/index.d.ts +4 -0
- package/dist/cjs/global-account/react/utils/index.js +20 -0
- package/dist/cjs/global-account/react/utils/notificationsAPI.d.ts +80 -0
- package/dist/cjs/global-account/react/utils/notificationsAPI.js +257 -0
- package/dist/cjs/global-account/react/utils/profileDisplay.d.ts +3 -0
- package/dist/cjs/global-account/react/utils/profileDisplay.js +8 -4
- package/dist/cjs/global-account/react/utils/toast.d.ts +6 -0
- package/dist/cjs/global-account/react/utils/toast.js +9 -0
- package/dist/cjs/shared/constants/chains/supported.d.ts +3 -2
- package/dist/cjs/shared/constants/chains/supported.js +4 -0
- package/dist/cjs/shared/utils/ipfs.js +10 -3
- package/dist/esm/anyspend/react/components/AnySpend.js +67 -42
- package/dist/esm/anyspend/react/components/AnySpendBuySpin.js +1 -2
- package/dist/esm/anyspend/react/components/AnySpendCustom.js +10 -10
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +12 -4
- package/dist/esm/anyspend/react/components/AnySpendStakeB3.js +1 -2
- package/dist/esm/anyspend/react/components/AnySpendStakeB3ExactIn.js +1 -2
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +2 -2
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +9 -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/InsufficientDepositPayment.js +1 -1
- package/dist/esm/anyspend/react/components/common/OrderDetails.js +2 -2
- package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +1 -2
- package/dist/esm/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/esm/anyspend/react/components/common/OrderHistory.js +6 -5
- package/dist/esm/anyspend/react/components/common/OrderHistoryItem.js +2 -2
- package/dist/esm/anyspend/react/components/common/PanelOnramp.js +4 -4
- package/dist/esm/anyspend/react/components/common/PanelOnrampPayment.js +2 -3
- 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/common/TransferCryptoDetails.js +1 -2
- package/dist/esm/anyspend/react/components/webview/WebviewOnrampOrderStatus.js +1 -2
- package/dist/esm/anyspend/react/components/webview/WebviewOnrampPayment.js +1 -1
- package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +1 -2
- package/dist/esm/anyspend/react/hooks/useConnectedWalletDisplay.js +3 -2
- package/dist/esm/anyspend/react/hooks/usePhantomTransfer.js +1 -1
- package/dist/esm/anyspend/react/utils/toast.d.ts +6 -0
- package/dist/esm/anyspend/react/utils/toast.js +5 -0
- package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.js +1 -2
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +276 -40
- package/dist/esm/global-account/react/components/B3DynamicModal.js +37 -13
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +19 -3
- package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +1 -0
- package/dist/esm/global-account/react/components/Deposit/Deposit.js +55 -0
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +31 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +103 -283
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +314 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkedAccountItem.js +42 -0
- package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/BottomNavigation.js +21 -0
- package/dist/esm/global-account/react/components/ManageAccount/ContentTokens.js +1 -2
- package/dist/esm/global-account/react/components/ManageAccount/Header.d.ts +3 -0
- package/dist/esm/global-account/react/components/ManageAccount/Header.js +81 -0
- package/dist/esm/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
- package/dist/esm/global-account/react/components/ManageAccount/HomeActions.js +41 -0
- package/dist/esm/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
- package/dist/esm/global-account/react/components/ManageAccount/HomeContent.js +10 -0
- package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +18 -196
- package/dist/esm/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +13 -0
- package/dist/esm/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
- package/dist/esm/global-account/react/components/ManageAccount/NotificationChannel.js +9 -0
- package/dist/esm/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
- package/dist/esm/global-account/react/components/ManageAccount/NotificationsContent.js +147 -0
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +45 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsContent.js +55 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsMenuItem.js +6 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +111 -0
- package/dist/esm/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
- package/dist/esm/global-account/react/components/ManageAccount/TokenBalanceRow.js +3 -3
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +42 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/DiscordChannel.js +44 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/EmailChannel.js +64 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/PhoneChannel.js +75 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/TelegramChannel.js +75 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
- package/dist/esm/global-account/react/components/ManageAccount/channels/index.js +4 -0
- package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
- package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.js +10 -0
- package/dist/esm/global-account/react/components/Send/Send.d.ts +5 -0
- package/dist/esm/global-account/react/components/Send/Send.js +189 -0
- package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +7 -6
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -1
- package/dist/esm/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
- package/dist/esm/global-account/react/components/Toast/ToastComponents.js +50 -0
- package/dist/esm/global-account/react/components/Toast/ToastContext.d.ts +19 -0
- package/dist/esm/global-account/react/components/Toast/ToastContext.js +55 -0
- package/dist/esm/global-account/react/components/Toast/index.d.ts +4 -0
- package/dist/esm/global-account/react/components/Toast/index.js +3 -0
- package/dist/esm/global-account/react/components/Toast/toastApi.d.ts +21 -0
- package/dist/esm/global-account/react/components/Toast/toastApi.js +89 -0
- package/dist/esm/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
- package/dist/esm/global-account/react/components/WalletImage/WalletImage.js +11 -0
- package/dist/esm/global-account/react/components/icons/BellIcon.d.ts +3 -0
- package/dist/esm/global-account/react/components/icons/BellIcon.js +3 -0
- package/dist/esm/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
- package/dist/esm/global-account/react/components/icons/ChevronDownIcon.js +4 -0
- package/dist/esm/global-account/react/components/icons/CopyIcon.d.ts +2 -0
- package/dist/esm/global-account/react/components/icons/CopyIcon.js +4 -0
- package/dist/esm/global-account/react/components/icons/LinkIcon.d.ts +3 -0
- package/dist/esm/global-account/react/components/icons/LinkIcon.js +3 -0
- package/dist/esm/global-account/react/components/icons/LockIcon.d.ts +3 -0
- package/dist/esm/global-account/react/components/icons/LockIcon.js +3 -0
- package/dist/esm/global-account/react/components/icons/WalletIcon.d.ts +2 -0
- package/dist/esm/global-account/react/components/icons/WalletIcon.js +4 -0
- package/dist/esm/global-account/react/components/index.d.ts +10 -4
- package/dist/esm/global-account/react/components/index.js +14 -5
- 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 +3 -2
- package/dist/esm/global-account/react/hooks/index.js +3 -2
- package/dist/esm/global-account/react/hooks/useAccountWallet.d.ts +1 -0
- package/dist/esm/global-account/react/hooks/useAccountWallet.js +17 -0
- package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
- package/dist/esm/global-account/react/hooks/useChainSwitchWithAction.js +2 -2
- package/dist/esm/global-account/react/hooks/useNativeBalance.js +1 -1
- package/dist/esm/global-account/react/hooks/useNotifications.d.ts +48 -0
- package/dist/esm/global-account/react/hooks/useNotifications.js +186 -0
- package/dist/esm/global-account/react/hooks/useSimBalance.js +3 -3
- package/dist/esm/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
- package/dist/esm/global-account/react/hooks/useTokenBalanceDirect.js +1 -0
- package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
- package/dist/esm/global-account/react/stores/index.d.ts +1 -0
- package/dist/esm/global-account/react/stores/index.js +1 -0
- package/dist/esm/global-account/react/stores/useModalStore.d.ts +47 -6
- package/dist/esm/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
- package/dist/esm/global-account/react/stores/useRecentAddressesStore.js +33 -0
- package/dist/esm/global-account/react/utils/index.d.ts +4 -0
- package/dist/esm/global-account/react/utils/index.js +4 -0
- package/dist/esm/global-account/react/utils/notificationsAPI.d.ts +80 -0
- package/dist/esm/global-account/react/utils/notificationsAPI.js +254 -0
- package/dist/esm/global-account/react/utils/profileDisplay.d.ts +3 -0
- package/dist/esm/global-account/react/utils/profileDisplay.js +8 -4
- package/dist/esm/global-account/react/utils/toast.d.ts +6 -0
- package/dist/esm/global-account/react/utils/toast.js +5 -0
- package/dist/esm/shared/constants/chains/supported.d.ts +3 -2
- package/dist/esm/shared/constants/chains/supported.js +3 -0
- package/dist/esm/shared/utils/ipfs.js +10 -3
- package/dist/styles/index.css +1 -1
- package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -0
- package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +2 -1
- package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
- package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/types/anyspend/react/utils/toast.d.ts +6 -0
- package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +1 -0
- package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +1 -1
- package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +1 -0
- package/dist/types/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
- package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
- package/dist/types/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
- package/dist/types/global-account/react/components/LinkAccount/LinkedAccountItem.d.ts +16 -0
- package/dist/types/global-account/react/components/ManageAccount/BottomNavigation.d.ts +2 -0
- package/dist/types/global-account/react/components/ManageAccount/Header.d.ts +3 -0
- package/dist/types/global-account/react/components/ManageAccount/HomeActions.d.ts +5 -0
- package/dist/types/global-account/react/components/ManageAccount/HomeContent.d.ts +6 -0
- package/dist/types/global-account/react/components/ManageAccount/NFTContent.d.ts +2 -0
- package/dist/types/global-account/react/components/ManageAccount/NotificationChannel.d.ts +16 -0
- package/dist/types/global-account/react/components/ManageAccount/NotificationsContent.d.ts +8 -0
- package/dist/types/global-account/react/components/ManageAccount/ProfileSection.d.ts +2 -0
- package/dist/types/global-account/react/components/ManageAccount/SettingsContent.d.ts +7 -0
- package/dist/types/global-account/react/components/ManageAccount/SettingsMenuItem.d.ts +9 -0
- package/dist/types/global-account/react/components/ManageAccount/SettingsProfileCard.d.ts +2 -0
- package/dist/types/global-account/react/components/ManageAccount/TokenBalanceRow.d.ts +3 -3
- package/dist/types/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
- package/dist/types/global-account/react/components/ManageAccount/channels/DiscordChannel.d.ts +11 -0
- package/dist/types/global-account/react/components/ManageAccount/channels/EmailChannel.d.ts +11 -0
- package/dist/types/global-account/react/components/ManageAccount/channels/PhoneChannel.d.ts +14 -0
- package/dist/types/global-account/react/components/ManageAccount/channels/TelegramChannel.d.ts +11 -0
- package/dist/types/global-account/react/components/ManageAccount/channels/index.d.ts +4 -0
- package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +11 -0
- package/dist/types/global-account/react/components/Send/Send.d.ts +5 -0
- package/dist/types/global-account/react/components/Toast/ToastComponents.d.ts +15 -0
- package/dist/types/global-account/react/components/Toast/ToastContext.d.ts +19 -0
- package/dist/types/global-account/react/components/Toast/index.d.ts +4 -0
- package/dist/types/global-account/react/components/Toast/toastApi.d.ts +21 -0
- package/dist/types/global-account/react/components/WalletImage/WalletImage.d.ts +4 -0
- package/dist/types/global-account/react/components/icons/BellIcon.d.ts +3 -0
- package/dist/types/global-account/react/components/icons/ChevronDownIcon.d.ts +2 -0
- package/dist/types/global-account/react/components/icons/CopyIcon.d.ts +2 -0
- package/dist/types/global-account/react/components/icons/LinkIcon.d.ts +3 -0
- package/dist/types/global-account/react/components/icons/LockIcon.d.ts +3 -0
- package/dist/types/global-account/react/components/icons/WalletIcon.d.ts +2 -0
- package/dist/types/global-account/react/components/index.d.ts +10 -4
- package/dist/types/global-account/react/hooks/index.d.ts +3 -2
- package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +1 -0
- package/dist/types/global-account/react/hooks/useNotifications.d.ts +48 -0
- package/dist/types/global-account/react/hooks/useTokenBalanceDirect.d.ts +1 -0
- package/dist/types/global-account/react/stores/index.d.ts +1 -0
- package/dist/types/global-account/react/stores/useModalStore.d.ts +47 -6
- package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
- package/dist/types/global-account/react/utils/index.d.ts +4 -0
- package/dist/types/global-account/react/utils/notificationsAPI.d.ts +80 -0
- package/dist/types/global-account/react/utils/profileDisplay.d.ts +3 -0
- package/dist/types/global-account/react/utils/toast.d.ts +6 -0
- package/dist/types/shared/constants/chains/supported.d.ts +3 -2
- package/package.json +2 -1
- package/src/anyspend/react/components/AnySpend.tsx +213 -173
- package/src/anyspend/react/components/AnySpendBuySpin.tsx +2 -1
- package/src/anyspend/react/components/AnySpendCustom.tsx +80 -77
- package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +20 -4
- package/src/anyspend/react/components/AnySpendStakeB3.tsx +2 -1
- package/src/anyspend/react/components/AnySpendStakeB3ExactIn.tsx +2 -1
- package/src/anyspend/react/components/AnyspendDepositHype.tsx +3 -0
- package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +56 -22
- 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/InsufficientDepositPayment.tsx +1 -1
- package/src/anyspend/react/components/common/OrderDetails.tsx +6 -2
- package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +2 -2
- package/src/anyspend/react/components/common/OrderHistory.tsx +8 -13
- package/src/anyspend/react/components/common/OrderHistoryItem.tsx +69 -25
- package/src/anyspend/react/components/common/PanelOnramp.tsx +6 -4
- package/src/anyspend/react/components/common/PanelOnrampPayment.tsx +3 -3
- 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/common/TransferCryptoDetails.tsx +2 -2
- package/src/anyspend/react/components/webview/WebviewOnrampOrderStatus.tsx +3 -3
- package/src/anyspend/react/components/webview/WebviewOnrampPayment.tsx +2 -1
- package/src/anyspend/react/hooks/useAnyspendFlow.ts +2 -1
- package/src/anyspend/react/hooks/useConnectedWalletDisplay.ts +3 -2
- package/src/anyspend/react/hooks/usePhantomTransfer.ts +1 -1
- package/src/anyspend/react/utils/toast.ts +6 -0
- package/src/global-account/react/components/AccountAssets/AccountAssets.tsx +115 -25
- package/src/global-account/react/components/AvatarCreator/AvatarCreator.tsx +2 -2
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +491 -130
- package/src/global-account/react/components/B3DynamicModal.tsx +76 -17
- package/src/global-account/react/components/B3Provider/B3Provider.tsx +40 -20
- package/src/global-account/react/components/Deposit/Deposit.tsx +208 -0
- package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +84 -0
- package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +269 -434
- package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +480 -0
- package/src/global-account/react/components/LinkAccount/LinkedAccountItem.tsx +135 -0
- package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +83 -0
- package/src/global-account/react/components/ManageAccount/ContentTokens.tsx +2 -1
- package/src/global-account/react/components/ManageAccount/Header.tsx +230 -0
- package/src/global-account/react/components/ManageAccount/HomeActions.tsx +118 -0
- package/src/global-account/react/components/ManageAccount/HomeContent.tsx +42 -0
- package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +74 -597
- package/src/global-account/react/components/ManageAccount/NFTContent.tsx +24 -0
- package/src/global-account/react/components/ManageAccount/NotificationChannel.tsx +94 -0
- package/src/global-account/react/components/ManageAccount/NotificationsContent.tsx +268 -0
- package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +79 -0
- package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +106 -0
- package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +31 -0
- package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +197 -0
- package/src/global-account/react/components/ManageAccount/TokenBalanceRow.tsx +20 -5
- package/src/global-account/react/components/ManageAccount/TokenContent.tsx +66 -0
- package/src/global-account/react/components/ManageAccount/channels/DiscordChannel.tsx +119 -0
- package/src/global-account/react/components/ManageAccount/channels/EmailChannel.tsx +168 -0
- package/src/global-account/react/components/ManageAccount/channels/PhoneChannel.tsx +227 -0
- package/src/global-account/react/components/ManageAccount/channels/TelegramChannel.tsx +150 -0
- package/src/global-account/react/components/ManageAccount/channels/index.ts +4 -0
- package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +61 -0
- package/src/global-account/react/components/Send/Send.tsx +621 -0
- package/src/global-account/react/components/SignInWithB3/SignIn.tsx +13 -12
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +1 -1
- package/src/global-account/react/components/Toast/README.md +350 -0
- package/src/global-account/react/components/Toast/ToastComponents.tsx +159 -0
- package/src/global-account/react/components/Toast/ToastContext.tsx +86 -0
- package/src/global-account/react/components/Toast/index.ts +4 -0
- package/src/global-account/react/components/Toast/toastApi.ts +98 -0
- package/src/global-account/react/components/WalletImage/WalletImage.tsx +12 -0
- package/src/global-account/react/components/icons/BellIcon.tsx +15 -0
- package/src/global-account/react/components/icons/ChevronDownIcon.tsx +17 -0
- package/src/global-account/react/components/icons/CopyIcon.tsx +22 -0
- package/src/global-account/react/components/icons/LinkIcon.tsx +15 -0
- package/src/global-account/react/components/icons/LockIcon.tsx +15 -0
- package/src/global-account/react/components/icons/WalletIcon.tsx +21 -0
- package/src/global-account/react/components/index.ts +19 -5
- package/src/global-account/react/components/ui/Tabs.tsx +5 -13
- package/src/global-account/react/components/ui/dialog.tsx +23 -14
- package/src/global-account/react/components/ui/drawer.tsx +1 -1
- package/src/global-account/react/hooks/index.ts +5 -1
- package/src/global-account/react/hooks/useAccountWallet.tsx +26 -0
- package/src/global-account/react/hooks/useB3BalanceFromAddresses.ts +1 -0
- package/src/global-account/react/hooks/useChainSwitchWithAction.ts +3 -2
- package/src/global-account/react/hooks/useNativeBalance.tsx +2 -1
- package/src/global-account/react/hooks/useNotifications.ts +229 -0
- package/src/global-account/react/hooks/useSimBalance.ts +3 -3
- package/src/global-account/react/hooks/useTokenBalanceDirect.tsx +2 -0
- package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +3 -2
- package/src/global-account/react/stores/index.ts +1 -0
- package/src/global-account/react/stores/useModalStore.ts +53 -6
- package/src/global-account/react/stores/useRecentAddressesStore.ts +54 -0
- package/src/global-account/react/utils/index.ts +4 -0
- package/src/global-account/react/utils/notificationsAPI.ts +305 -0
- package/src/global-account/react/utils/profileDisplay.ts +12 -4
- package/src/global-account/react/utils/toast.ts +6 -0
- package/src/shared/constants/chains/supported.ts +4 -0
- package/src/shared/utils/ipfs.ts +10 -3
- package/src/styles/index.css +12 -1
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +0 -107
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -151
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +0 -104
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -145
- package/dist/types/global-account/react/components/ManageAccount/BalanceContent.d.ts +0 -7
- package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +0 -258
- package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +0 -279
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function WalletIcon({ className, ...props }) {
|
|
3
|
+
return (_jsxs("svg", { width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, ...props, children: [_jsx("rect", { width: "40", height: "40", rx: "20", fill: "#F4F4F5" }), _jsx("path", { d: "M28 16H27V14C27 13.4696 26.7893 12.9609 26.4142 12.5858C26.0391 12.2107 25.5304 12 25 12H15C14.4696 12 13.9609 12.2107 13.5858 12.5858C13.2107 12.9609 13 13.4696 13 14V26C13 26.5304 13.2107 27.0391 13.5858 27.4142C13.9609 27.7893 14.4696 28 15 28H27C27.5304 28 28.0391 27.7893 28.4142 27.4142C28.7893 27.0391 29 26.5304 29 26V18C29 17.4696 28.7893 16.9609 28.4142 16.5858C28.0391 16.2107 27.5304 16 27 16ZM15 14H25V16H15V14ZM27 22H25C24.7348 22 24.4804 21.8946 24.2929 21.7071C24.1054 21.5196 24 21.2652 24 21C24 20.7348 24.1054 20.4804 24.2929 20.2929C24.4804 20.1054 24.7348 20 25 20H27V22Z", fill: "#71717A" })] }));
|
|
4
|
+
}
|
|
@@ -13,8 +13,9 @@ export { SignInWithB3Privy } from "./SignInWithB3/SignInWithB3Privy";
|
|
|
13
13
|
export { LoginStepContainer } from "./SignInWithB3/steps/LoginStep";
|
|
14
14
|
export { getConnectOptionsFromStrategy, isWalletType, type AllowedStrategy } from "./SignInWithB3/utils/signInUtils";
|
|
15
15
|
export { ManageAccount } from "./ManageAccount/ManageAccount";
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
16
|
+
export { Deposit } from "./Deposit/Deposit";
|
|
17
|
+
export { Send } from "./Send/Send";
|
|
18
|
+
export { IPFSMediaRenderer } from "./IPFSMediaRenderer/IPFSMediaRenderer";
|
|
18
19
|
export { RequestPermissions } from "./RequestPermissions/RequestPermissions";
|
|
19
20
|
export { RequestPermissionsButton } from "./RequestPermissions/RequestPermissionsButton";
|
|
20
21
|
export { AccountAssets } from "./AccountAssets/AccountAssets";
|
|
@@ -40,10 +41,15 @@ export { Popover, PopoverContent, PopoverTrigger } from "./ui/popover";
|
|
|
40
41
|
export { ScrollArea, ScrollBar } from "./ui/scroll-area";
|
|
41
42
|
export { ShinyButton } from "./ui/ShinyButton";
|
|
42
43
|
export { Skeleton } from "./ui/skeleton";
|
|
43
|
-
export {
|
|
44
|
-
export {
|
|
44
|
+
export { TabsContent as TabsContentPrimitive, TabsList as TabsListPrimitive, Tabs as TabsPrimitive, TabTrigger as TabTriggerPrimitive, } from "./ui/Tabs";
|
|
45
|
+
export { Tabs, TabsContent, TabsList, TabsTransitionWrapper, TabTrigger } from "./ui/TabSystem";
|
|
45
46
|
export { TextLoop } from "./ui/text-loop";
|
|
46
47
|
export { TextShimmer } from "./ui/text-shimmer";
|
|
47
48
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
|
|
48
49
|
export { TransitionPanel } from "./ui/transition-panel";
|
|
49
50
|
export { AnimatedLottie } from "./magicui/AnimatedLottie";
|
|
51
|
+
export { toast } from "./Toast/toastApi";
|
|
52
|
+
export { Toast, ToastContainer } from "./Toast/ToastComponents";
|
|
53
|
+
export { ToastProvider, useToastContext } from "./Toast/ToastContext";
|
|
54
|
+
export type { ToastItem, ToastType } from "./Toast/ToastContext";
|
|
55
|
+
export { default as WalletImage } from "./WalletImage/WalletImage";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// TODO woj: Barrel file for all components, this might be reason of bundle size issues
|
|
1
2
|
// Core Components
|
|
2
3
|
export { B3DynamicModal } from "./B3DynamicModal.js";
|
|
3
4
|
export { B3Provider, InnerProvider } from "./B3Provider/B3Provider.js";
|
|
@@ -16,9 +17,12 @@ export { LoginStepContainer } from "./SignInWithB3/steps/LoginStep.js";
|
|
|
16
17
|
export { getConnectOptionsFromStrategy, isWalletType } from "./SignInWithB3/utils/signInUtils.js";
|
|
17
18
|
// ManageAccount Components
|
|
18
19
|
export { ManageAccount } from "./ManageAccount/ManageAccount.js";
|
|
19
|
-
//
|
|
20
|
-
export {
|
|
21
|
-
|
|
20
|
+
// Deposit Components
|
|
21
|
+
export { Deposit } from "./Deposit/Deposit.js";
|
|
22
|
+
// Send Components
|
|
23
|
+
export { Send } from "./Send/Send.js";
|
|
24
|
+
// Media Components
|
|
25
|
+
export { IPFSMediaRenderer } from "./IPFSMediaRenderer/IPFSMediaRenderer.js";
|
|
22
26
|
// RequestPermissions Components
|
|
23
27
|
export { RequestPermissions } from "./RequestPermissions/RequestPermissions.js";
|
|
24
28
|
export { RequestPermissionsButton } from "./RequestPermissions/RequestPermissionsButton.js";
|
|
@@ -51,11 +55,16 @@ export { Popover, PopoverContent, PopoverTrigger } from "./ui/popover.js";
|
|
|
51
55
|
export { ScrollArea, ScrollBar } from "./ui/scroll-area.js";
|
|
52
56
|
export { ShinyButton } from "./ui/ShinyButton.js";
|
|
53
57
|
export { Skeleton } from "./ui/skeleton.js";
|
|
54
|
-
export {
|
|
55
|
-
export {
|
|
58
|
+
export { TabsContent as TabsContentPrimitive, TabsList as TabsListPrimitive, Tabs as TabsPrimitive, TabTrigger as TabTriggerPrimitive, } from "./ui/Tabs.js";
|
|
59
|
+
export { Tabs, TabsContent, TabsList, TabsTransitionWrapper, TabTrigger } from "./ui/TabSystem.js";
|
|
56
60
|
export { TextLoop } from "./ui/text-loop.js";
|
|
57
61
|
export { TextShimmer } from "./ui/text-shimmer.js";
|
|
58
62
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip.js";
|
|
59
63
|
export { TransitionPanel } from "./ui/transition-panel.js";
|
|
60
64
|
// Magic UI Components
|
|
61
65
|
export { AnimatedLottie } from "./magicui/AnimatedLottie.js";
|
|
66
|
+
// Toast Components
|
|
67
|
+
export { toast } from "./Toast/toastApi.js";
|
|
68
|
+
export { Toast, ToastContainer } from "./Toast/ToastComponents.js";
|
|
69
|
+
export { ToastProvider, useToastContext } from "./Toast/ToastContext.js";
|
|
70
|
+
export { default as WalletImage } from "./WalletImage/WalletImage.js";
|
|
@@ -3,10 +3,10 @@ import { cn } from "../../../../shared/utils/index.js";
|
|
|
3
3
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4
4
|
export const Tabs = ({ defaultValue, onValueChange, children, }) => (_jsx(TabsPrimitive.Root, { defaultValue: defaultValue, onValueChange: onValueChange, children: children }));
|
|
5
5
|
export function TabsList({ className, ...props }) {
|
|
6
|
-
return
|
|
6
|
+
return _jsx(TabsPrimitive.List, { className: cn("", className), ...props });
|
|
7
7
|
}
|
|
8
8
|
export function TabTrigger({ className, ...props }) {
|
|
9
|
-
return (_jsx(TabsPrimitive.Trigger, { className: cn("inline-flex h-full items-center justify-center whitespace-nowrap px-3
|
|
9
|
+
return (_jsx(TabsPrimitive.Trigger, { className: cn("text-md inline-flex h-full items-center justify-center whitespace-nowrap px-3 font-semibold transition-all", "focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50", "data-[state=active]:font-bold data-[state=active]:text-[#0B57C2]", "hover:text-b3-react-foreground data-[state=inactive]:text-b3-react-muted-foreground", "flex-1", className), ...props }));
|
|
10
10
|
}
|
|
11
11
|
export function TabsContent({ className, ...props }) {
|
|
12
12
|
return (_jsx(TabsPrimitive.Content, { className: cn("ring-offset-b3-react-background focus-visible:ring-b3-react-ring mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2", className), ...props }));
|
|
@@ -10,9 +10,9 @@ const DialogPortal = DialogPrimitive.Portal;
|
|
|
10
10
|
const DialogClose = DialogPrimitive.Close;
|
|
11
11
|
const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("fixed inset-0 z-50 bg-black/80 backdrop-blur-[20px]", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:backdrop-blur-none data-[state=open]:backdrop-blur-[20px]", "transition-all duration-300", className), ...props })));
|
|
12
12
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
13
|
-
const DialogContent = React.forwardRef(({ className, children, hideCloseButton =
|
|
13
|
+
const DialogContent = React.forwardRef(({ className, children, hideCloseButton = true, closeBtnClassName, ...props }, ref) => {
|
|
14
14
|
const container = typeof window !== "undefined" ? document.getElementById("b3-root") : null;
|
|
15
|
-
return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("
|
|
15
|
+
return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 border shadow-lg !outline-none", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 duration-500", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]", "[perspective:1200px] [transform-style:preserve-3d] sm:rounded-xl", "transition-all ease-out", className), ...props, children: [_jsxs("div", { className: "modal-inner-content mb-[23px] flex flex-1 flex-col overflow-hidden rounded-xl border border-[#D1D1D6] bg-white shadow-[0_20px_24px_-4px_rgba(10,13,18,0.08),0_8px_8px_-4px_rgba(10,13,18,0.03),0_3px_3px_-1.5px_rgba(10,13,18,0.04)]", children: [children, !hideCloseButton && (_jsxs(DialogPrimitive.Close, { className: cn("modal-close-button data-[state=open]:bg-b3-react-background data-[state=open]:text-b3-react-muted-foreground absolute right-2 top-2 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none dark:data-[state=open]:bg-gray-800 dark:data-[state=open]:text-gray-400", closeBtnClassName), children: [_jsx(X, { className: "h-5 w-5" }), _jsx("span", { className: "sr-only", children: "Close" })] }))] }), _jsxs("div", { className: "b3-modal-ga-branding absolute bottom-[10px] left-0 right-0 flex items-center justify-center gap-1.5 pt-[10px]", children: [_jsx("img", { src: "https://cdn.b3.fun/b3_logo.svg", alt: "B3", className: "h-4 w-4" }), _jsx("span", { className: "font-neue-montreal-semibold text-xs uppercase leading-none tracking-[0.72px] text-[#0B57C2]", children: "Global Account" })] })] })] }));
|
|
16
16
|
});
|
|
17
17
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
18
18
|
const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
|
|
@@ -12,7 +12,7 @@ const DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(D
|
|
|
12
12
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
13
13
|
const DrawerContent = React.forwardRef(({ className, children, ...props }, ref) => {
|
|
14
14
|
const container = typeof window !== "undefined" ? document.getElementById("b3-root") : null;
|
|
15
|
-
return (_jsxs(DrawerPortal, { container: container, children: [_jsx(DrawerOverlay, {}), _jsx(DrawerPrimitive.Content, { ref: ref, className: cn("bg-b3-react-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border py-6", className), ...props, children: children })] }));
|
|
15
|
+
return (_jsxs(DrawerPortal, { container: container, children: [_jsx(DrawerOverlay, {}), _jsx(DrawerPrimitive.Content, { ref: ref, className: cn("bg-b3-react-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border py-6 pt-5", className), ...props, children: children })] }));
|
|
16
16
|
});
|
|
17
17
|
DrawerContent.displayName = "DrawerContent";
|
|
18
18
|
const DrawerHeader = ({ className, ...props }) => (_jsx("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props }));
|
|
@@ -22,8 +22,9 @@ export { useIsMobile } from "./useIsMobile";
|
|
|
22
22
|
export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
|
|
23
23
|
export { useMediaQuery } from "./useMediaQuery";
|
|
24
24
|
export { useNativeBalance, useNativeBalanceFromRPC } from "./useNativeBalance";
|
|
25
|
+
export { useNotifications, type UseNotificationsReturn } from "./useNotifications";
|
|
25
26
|
export { useOneBalance } from "./useOneBalance";
|
|
26
|
-
export { useProfile, useProfilePreference, type CombinedProfile, type PreferenceRequestBody, type Profile, } from "./useProfile";
|
|
27
|
+
export { useDisplayName, useProfile, useProfilePreference, useProfileSettings, type CombinedProfile, type DisplayNameRequestBody, type PreferenceRequestBody, type Profile, } from "./useProfile";
|
|
27
28
|
export { useQueryB3 } from "./useQueryB3";
|
|
28
29
|
export { useQueryBSMNT } from "./useQueryBSMNT";
|
|
29
30
|
export { useRemoveSessionKey } from "./useRemoveSessionKey";
|
|
@@ -39,5 +40,5 @@ export { useTokenFromUrl } from "./useTokenFromUrl";
|
|
|
39
40
|
export { useTokenPrice } from "./useTokenPrice";
|
|
40
41
|
export { useTokenPriceWithFallback } from "./useTokenPriceWithFallback";
|
|
41
42
|
export { useTokensFromAddress } from "./useTokensFromAddress";
|
|
42
|
-
export { useURLParams } from "./useURLParams";
|
|
43
43
|
export { useUnifiedChainSwitchAndExecute } from "./useUnifiedChainSwitchAndExecute";
|
|
44
|
+
export { useURLParams } from "./useURLParams";
|
|
@@ -22,8 +22,9 @@ export { useIsMobile } from "./useIsMobile.js";
|
|
|
22
22
|
export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect.js";
|
|
23
23
|
export { useMediaQuery } from "./useMediaQuery.js";
|
|
24
24
|
export { useNativeBalance, useNativeBalanceFromRPC } from "./useNativeBalance.js";
|
|
25
|
+
export { useNotifications } from "./useNotifications.js";
|
|
25
26
|
export { useOneBalance } from "./useOneBalance.js";
|
|
26
|
-
export { useProfile, useProfilePreference, } from "./useProfile.js";
|
|
27
|
+
export { useDisplayName, useProfile, useProfilePreference, useProfileSettings, } from "./useProfile.js";
|
|
27
28
|
export { useQueryB3 } from "./useQueryB3.js";
|
|
28
29
|
export { useQueryBSMNT } from "./useQueryBSMNT.js";
|
|
29
30
|
export { useRemoveSessionKey } from "./useRemoveSessionKey.js";
|
|
@@ -39,5 +40,5 @@ export { useTokenFromUrl } from "./useTokenFromUrl.js";
|
|
|
39
40
|
export { useTokenPrice } from "./useTokenPrice.js";
|
|
40
41
|
export { useTokenPriceWithFallback } from "./useTokenPriceWithFallback.js";
|
|
41
42
|
export { useTokensFromAddress } from "./useTokensFromAddress.js";
|
|
42
|
-
export { useURLParams } from "./useURLParams.js";
|
|
43
43
|
export { useUnifiedChainSwitchAndExecute } from "./useUnifiedChainSwitchAndExecute.js";
|
|
44
|
+
export { useURLParams } from "./useURLParams.js";
|
|
@@ -69,3 +69,20 @@ export function useAccountWallet() {
|
|
|
69
69
|
]);
|
|
70
70
|
return res;
|
|
71
71
|
}
|
|
72
|
+
export function useAccountWalletImage() {
|
|
73
|
+
const { account, user } = useB3();
|
|
74
|
+
const activeWallet = useActiveWallet();
|
|
75
|
+
const connectedWallets = useConnectedWallets();
|
|
76
|
+
const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === ecosystemWalletId);
|
|
77
|
+
const connectedEOAWallet = connectedWallets.find(wallet => wallet.id !== ecosystemWalletId);
|
|
78
|
+
const isActiveSmartWallet = activeWallet?.id === connectedSmartWallet?.id;
|
|
79
|
+
const { data: walletImage } = useWalletImage(connectedEOAWallet?.id);
|
|
80
|
+
// If not EOA sign in, then we need to show the smart wallet icon
|
|
81
|
+
const lastAuthProvider = useLastAuthProvider();
|
|
82
|
+
const smartWalletIcon = lastAuthProvider && !connectedEOAWallet
|
|
83
|
+
? socialIcons[lastAuthProvider]
|
|
84
|
+
: "https://gradvatar.com/0x0000000000000000000000000000000000000000"; // show smart wallet of eoa wallet is gradvatar
|
|
85
|
+
const { data: profileData } = useProfile({ address: account?.address });
|
|
86
|
+
const avatarUrl = user?.avatar || profileData?.avatar;
|
|
87
|
+
return avatarUrl || (isActiveSmartWallet ? smartWalletIcon : walletImage) || "";
|
|
88
|
+
}
|
|
@@ -74,6 +74,7 @@ export function useB3BalanceFromAddresses(addresses, options) {
|
|
|
74
74
|
enabled: (options?.enabled ?? true) && normalizedAddresses.length > 0,
|
|
75
75
|
refetchInterval: options?.refetchInterval ?? 30000, // Default 30s refresh
|
|
76
76
|
staleTime: 10000, // Consider data stale after 10s
|
|
77
|
+
structuralSharing: false, // Disable structural sharing because data contains BigInt values
|
|
77
78
|
});
|
|
78
79
|
}
|
|
79
80
|
export default useB3BalanceFromAddresses;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getChainName, getNativeToken } from "../../../anyspend/index.js";
|
|
2
|
+
import { toast } from "../../../global-account/react/index.js";
|
|
2
3
|
import { supportedChains } from "../../../shared/constants/chains/supported.js";
|
|
3
4
|
import invariant from "invariant";
|
|
4
5
|
import { useCallback, useState } from "react";
|
|
5
|
-
import { toast } from "sonner";
|
|
6
6
|
import { useSwitchChain, useWalletClient } from "wagmi";
|
|
7
7
|
export function useChainSwitchWithAction() {
|
|
8
8
|
const { data: walletClient } = useWalletClient();
|
|
@@ -59,7 +59,7 @@ export function useChainSwitchWithAction() {
|
|
|
59
59
|
catch (e) {
|
|
60
60
|
if (e?.code === -32603 || e?.message?.includes("f is not a function")) {
|
|
61
61
|
// This is a workaround for a bug in the wallet provider.
|
|
62
|
-
toast(`Switched to ${getChainName(targetChainId)}. Executing…`);
|
|
62
|
+
toast.success(`Switched to ${getChainName(targetChainId)}. Executing…`);
|
|
63
63
|
await switchChainAndExecute(targetChainId, action);
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { toast } from "../../../global-account/react/index.js";
|
|
1
2
|
import { PUBLIC_BASE_RPC_URL } from "../../../shared/constants/index.js";
|
|
2
3
|
import { b3Mainnet, b3Testnet } from "../../../shared/constants/chains/supported.js";
|
|
3
4
|
import { formatNumber } from "../../../shared/utils/formatNumber.js";
|
|
4
5
|
import { useQuery } from "@tanstack/react-query";
|
|
5
|
-
import { toast } from "sonner";
|
|
6
6
|
import { createPublicClient, formatEther, formatUnits, http } from "viem";
|
|
7
7
|
import { fetchNativeTokenPriceWithChange } from "./useTokenPrice.js";
|
|
8
8
|
async function fetchNativeBalance(address, chainIds) {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { UserData } from "../utils/notificationsAPI";
|
|
2
|
+
export interface UseNotificationsReturn {
|
|
3
|
+
/** User's notification data including channels and settings */
|
|
4
|
+
userData: UserData | null;
|
|
5
|
+
/** Whether the data is currently loading */
|
|
6
|
+
loading: boolean;
|
|
7
|
+
/** Any error that occurred */
|
|
8
|
+
error: string | null;
|
|
9
|
+
/** Whether email channel is connected */
|
|
10
|
+
isEmailConnected: boolean;
|
|
11
|
+
/** Whether Telegram channel is connected */
|
|
12
|
+
isTelegramConnected: boolean;
|
|
13
|
+
/** Whether user has any channel connected */
|
|
14
|
+
hasAnyChannelConnected: boolean;
|
|
15
|
+
/** Connect an email channel */
|
|
16
|
+
connectEmail: (email: string) => Promise<void>;
|
|
17
|
+
/** Connect Telegram channel (opens deep link) */
|
|
18
|
+
connectTelegram: () => Promise<void>;
|
|
19
|
+
/** Disconnect a channel */
|
|
20
|
+
disconnectChannel: (channelType: string) => Promise<void>;
|
|
21
|
+
/** Send a test notification */
|
|
22
|
+
sendTestNotification: () => Promise<void>;
|
|
23
|
+
/** Refresh user data */
|
|
24
|
+
refresh: () => Promise<void>;
|
|
25
|
+
/** Telegram connection status */
|
|
26
|
+
telegramStatus: "idle" | "pending" | "connected";
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Hook for managing user notification settings and channels
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const {
|
|
34
|
+
* userData,
|
|
35
|
+
* loading,
|
|
36
|
+
* isEmailConnected,
|
|
37
|
+
* connectEmail,
|
|
38
|
+
* sendTestNotification
|
|
39
|
+
* } = useNotifications();
|
|
40
|
+
*
|
|
41
|
+
* // Connect email
|
|
42
|
+
* await connectEmail('user@example.com');
|
|
43
|
+
*
|
|
44
|
+
* // Send test
|
|
45
|
+
* await sendTestNotification();
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function useNotifications(): UseNotificationsReturn;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { getAuthToken } from "../../../shared/utils/auth-token.js";
|
|
2
|
+
import { debugB3React } from "../../../shared/utils/debug.js";
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { useB3 } from "../components/index.js";
|
|
5
|
+
import { notificationsAPI } from "../utils/notificationsAPI.js";
|
|
6
|
+
import { useUserQuery } from "./useUserQuery.js";
|
|
7
|
+
const debug = debugB3React("useNotifications");
|
|
8
|
+
/**
|
|
9
|
+
* Hook for managing user notification settings and channels
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const {
|
|
14
|
+
* userData,
|
|
15
|
+
* loading,
|
|
16
|
+
* isEmailConnected,
|
|
17
|
+
* connectEmail,
|
|
18
|
+
* sendTestNotification
|
|
19
|
+
* } = useNotifications();
|
|
20
|
+
*
|
|
21
|
+
* // Connect email
|
|
22
|
+
* await connectEmail('user@example.com');
|
|
23
|
+
*
|
|
24
|
+
* // Send test
|
|
25
|
+
* await sendTestNotification();
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useNotifications() {
|
|
29
|
+
const { user } = useUserQuery();
|
|
30
|
+
const { partnerId } = useB3();
|
|
31
|
+
const [userData, setUserData] = useState(null);
|
|
32
|
+
const [loading, setLoading] = useState(true);
|
|
33
|
+
const [error, setError] = useState(null);
|
|
34
|
+
const [telegramStatus, setTelegramStatus] = useState("idle");
|
|
35
|
+
const userId = user?.userId;
|
|
36
|
+
const jwtToken = getAuthToken();
|
|
37
|
+
const loadUserData = useCallback(async () => {
|
|
38
|
+
if (!userId || !jwtToken) {
|
|
39
|
+
setLoading(false);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
setLoading(true);
|
|
44
|
+
const data = await notificationsAPI.getUser(userId, jwtToken);
|
|
45
|
+
setUserData(data);
|
|
46
|
+
setError(null);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
debug("Error loading user data:", err);
|
|
50
|
+
// Try to register the user if they don't exist
|
|
51
|
+
try {
|
|
52
|
+
await notificationsAPI.registerUser(jwtToken);
|
|
53
|
+
const data = await notificationsAPI.getUser(userId, jwtToken);
|
|
54
|
+
setUserData(data);
|
|
55
|
+
setError(null);
|
|
56
|
+
}
|
|
57
|
+
catch (registerErr) {
|
|
58
|
+
debug("Error registering user:", registerErr);
|
|
59
|
+
setError("Failed to load notification settings");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
setLoading(false);
|
|
64
|
+
}
|
|
65
|
+
}, [userId, jwtToken]);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
loadUserData();
|
|
68
|
+
}, [loadUserData]);
|
|
69
|
+
const createDefaultNotificationSettings = useCallback(async () => {
|
|
70
|
+
if (!userId || !jwtToken)
|
|
71
|
+
return;
|
|
72
|
+
try {
|
|
73
|
+
// Create settings for test notifications only
|
|
74
|
+
await notificationsAPI.ensureNotificationSettings(userId, partnerId, "general", jwtToken);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
debug("Error creating default notification settings:", err);
|
|
78
|
+
}
|
|
79
|
+
}, [userId, jwtToken, partnerId]);
|
|
80
|
+
const connectEmail = useCallback(async (email) => {
|
|
81
|
+
if (!userId || !jwtToken) {
|
|
82
|
+
throw new Error("User not authenticated");
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
await notificationsAPI.connectEmail(userId, email, jwtToken);
|
|
86
|
+
await createDefaultNotificationSettings();
|
|
87
|
+
await loadUserData();
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
debug("Error connecting email:", err);
|
|
91
|
+
throw new Error("Failed to connect email");
|
|
92
|
+
}
|
|
93
|
+
}, [userId, jwtToken, loadUserData, createDefaultNotificationSettings]);
|
|
94
|
+
const connectTelegram = useCallback(async () => {
|
|
95
|
+
if (!userId || !jwtToken) {
|
|
96
|
+
throw new Error("User not authenticated");
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const { deepLink } = await notificationsAPI.getTelegramLink(jwtToken);
|
|
100
|
+
window.open(deepLink, "_blank");
|
|
101
|
+
setTelegramStatus("pending");
|
|
102
|
+
// Poll for connection using nested timeouts to avoid overlapping requests
|
|
103
|
+
const startTime = Date.now();
|
|
104
|
+
const maxDuration = 120000; // 2 minutes
|
|
105
|
+
let timeoutId = null;
|
|
106
|
+
const pollStatus = async () => {
|
|
107
|
+
try {
|
|
108
|
+
const { connected } = await notificationsAPI.checkTelegramStatus(userId, jwtToken);
|
|
109
|
+
if (connected) {
|
|
110
|
+
if (timeoutId)
|
|
111
|
+
clearTimeout(timeoutId);
|
|
112
|
+
setTelegramStatus("connected");
|
|
113
|
+
await createDefaultNotificationSettings();
|
|
114
|
+
await loadUserData();
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
debug("Error checking Telegram status:", err);
|
|
120
|
+
}
|
|
121
|
+
// Check if we've exceeded max duration
|
|
122
|
+
if (Date.now() - startTime < maxDuration) {
|
|
123
|
+
// Schedule next check after previous one completes
|
|
124
|
+
timeoutId = setTimeout(pollStatus, 2000);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
setTelegramStatus("idle");
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
// Start polling
|
|
131
|
+
timeoutId = setTimeout(pollStatus, 2000);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
debug("Error connecting Telegram:", err);
|
|
135
|
+
throw new Error("Failed to connect Telegram");
|
|
136
|
+
}
|
|
137
|
+
}, [userId, jwtToken, loadUserData, createDefaultNotificationSettings]);
|
|
138
|
+
const disconnectChannel = useCallback(async (channelType) => {
|
|
139
|
+
if (!userId || !jwtToken) {
|
|
140
|
+
throw new Error("User not authenticated");
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
await notificationsAPI.disconnectChannel(userId, channelType, jwtToken);
|
|
144
|
+
await loadUserData();
|
|
145
|
+
if (channelType === "telegram") {
|
|
146
|
+
setTelegramStatus("idle");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
debug("Error disconnecting channel:", err);
|
|
151
|
+
throw new Error(`Failed to disconnect ${channelType}`);
|
|
152
|
+
}
|
|
153
|
+
}, [userId, jwtToken, loadUserData]);
|
|
154
|
+
const sendTestNotification = useCallback(async () => {
|
|
155
|
+
if (!userId || !jwtToken) {
|
|
156
|
+
throw new Error("User not authenticated");
|
|
157
|
+
}
|
|
158
|
+
try {
|
|
159
|
+
// The API method now handles ensuring settings exist
|
|
160
|
+
await notificationsAPI.sendTestNotification(userId, partnerId, jwtToken);
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
debug("Error sending test notification:", err);
|
|
164
|
+
throw new Error("Failed to send test notification");
|
|
165
|
+
}
|
|
166
|
+
}, [userId, jwtToken, partnerId]);
|
|
167
|
+
const emailChannel = userData?.channels?.find(c => c.channel_type === "email");
|
|
168
|
+
const telegramChannel = userData?.channels?.find(c => c.channel_type === "telegram");
|
|
169
|
+
const isEmailConnected = emailChannel?.enabled === 1;
|
|
170
|
+
const isTelegramConnected = telegramChannel?.enabled === 1;
|
|
171
|
+
const hasAnyChannelConnected = isEmailConnected || isTelegramConnected;
|
|
172
|
+
return {
|
|
173
|
+
userData,
|
|
174
|
+
loading,
|
|
175
|
+
error,
|
|
176
|
+
isEmailConnected,
|
|
177
|
+
isTelegramConnected,
|
|
178
|
+
hasAnyChannelConnected,
|
|
179
|
+
connectEmail,
|
|
180
|
+
connectTelegram,
|
|
181
|
+
disconnectChannel,
|
|
182
|
+
sendTestNotification,
|
|
183
|
+
refresh: loadUserData,
|
|
184
|
+
telegramStatus,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
@@ -3,9 +3,9 @@ async function fetchSimBalance(address, chainIdsParam) {
|
|
|
3
3
|
if (!address)
|
|
4
4
|
throw new Error("Address is required");
|
|
5
5
|
const chainIds = chainIdsParam.length === 0 ? "mainnet" : chainIdsParam.join(",");
|
|
6
|
-
let url = `https://simdune-api.sean-430.workers.dev/?url=https://api.sim.dune.com/v1/evm/balances/${address}?metadata=logo&chain_ids=${chainIds}`;
|
|
7
|
-
if (process.env.
|
|
8
|
-
url += `&localkey=${process.env.
|
|
6
|
+
let url = `https://simdune-api.sean-430.workers.dev/?url=https://api.sim.dune.com/v1/evm/balances/${address}?metadata=logo&chain_ids=${chainIds}&exclude_spam_tokens=true`;
|
|
7
|
+
if (process.env.NEXT_PUBLIC_SIMDUNE_LOCAL_KEY) {
|
|
8
|
+
url += `&localkey=${process.env.NEXT_PUBLIC_SIMDUNE_LOCAL_KEY}`;
|
|
9
9
|
}
|
|
10
10
|
const response = await fetch(url);
|
|
11
11
|
if (!response.ok) {
|
|
@@ -7,6 +7,7 @@ export interface TokenBalanceResult {
|
|
|
7
7
|
rawBalance: bigint | null;
|
|
8
8
|
formattedBalance: string;
|
|
9
9
|
isLoading: boolean;
|
|
10
|
+
refetch: () => void;
|
|
10
11
|
}
|
|
11
12
|
export declare function useTokenBalanceDirect({ token, address }: UseTokenBalanceProps): TokenBalanceResult;
|
|
12
13
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getChainName, getNativeToken } from "../../../anyspend/index.js";
|
|
2
2
|
import app from "../../../global-account/app.js";
|
|
3
|
+
import { toast } from "../../../global-account/react/index.js";
|
|
3
4
|
import { getThirdwebChain, supportedChains } from "../../../shared/constants/chains/supported.js";
|
|
4
5
|
import { client } from "../../../shared/utils/thirdweb.js";
|
|
5
6
|
import invariant from "invariant";
|
|
6
7
|
import { useCallback, useState } from "react";
|
|
7
|
-
import { toast } from "sonner";
|
|
8
8
|
import { prepareTransaction, sendTransaction as twSendTransaction } from "thirdweb";
|
|
9
9
|
import { isAddress } from "viem";
|
|
10
10
|
import { useSwitchChain } from "wagmi";
|
|
@@ -83,7 +83,7 @@ export function useUnifiedChainSwitchAndExecute() {
|
|
|
83
83
|
catch (e) {
|
|
84
84
|
if (e?.code === -32603 || e?.message?.includes("f is not a function")) {
|
|
85
85
|
// This is a workaround for a bug in the wallet provider.
|
|
86
|
-
toast(`Switched to ${getChainName(targetChainId)}. Executing…`);
|
|
86
|
+
toast.success(`Switched to ${getChainName(targetChainId)}. Executing…`);
|
|
87
87
|
return await handleEOASwitchChainAndSendTransaction(targetChainId, params);
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { useAuthStore } from "./useAuthStore";
|
|
2
2
|
export { useModalStore } from "./useModalStore";
|
|
3
|
+
export { useRecentAddressesStore } from "./useRecentAddressesStore";
|
|
3
4
|
export type { AnySpendBuySpinProps, AnySpendFundTournamentProps, AnySpendJoinTournamentProps, AnySpendModalProps, AnySpendNftProps, AnySpendOrderHistoryProps, AnySpendStakeB3Props, AnyspendOrderDetailsProps, ManageAccountModalProps, ModalContentType, RequestPermissionsModalProps, SignInWithB3ModalProps, } from "./useModalStore";
|
|
@@ -77,9 +77,9 @@ export interface ManageAccountModalProps extends BaseModalProps {
|
|
|
77
77
|
/** Partner ID */
|
|
78
78
|
partnerId: string;
|
|
79
79
|
/** Active Tab */
|
|
80
|
-
activeTab?: "
|
|
80
|
+
activeTab?: "home" | "tokens" | "nfts" | "apps" | "settings" | "swap";
|
|
81
81
|
/** Function to set the active tab */
|
|
82
|
-
setActiveTab?: (tab: "
|
|
82
|
+
setActiveTab?: (tab: "home" | "tokens" | "nfts" | "apps" | "settings" | "swap") => void;
|
|
83
83
|
/** Whether to show the referral information */
|
|
84
84
|
showReferralInfo?: boolean;
|
|
85
85
|
/** Whether to show the swap button */
|
|
@@ -349,6 +349,15 @@ export interface LinkAccountModalProps extends BaseModalProps {
|
|
|
349
349
|
partnerId: string;
|
|
350
350
|
chain: Chain;
|
|
351
351
|
}
|
|
352
|
+
export interface LinkNewAccountModalProps extends BaseModalProps {
|
|
353
|
+
type: "linkNewAccount";
|
|
354
|
+
showBackButton?: boolean;
|
|
355
|
+
onSuccess?: () => void;
|
|
356
|
+
onError?: (error: Error) => void;
|
|
357
|
+
onClose?: () => void;
|
|
358
|
+
partnerId: string;
|
|
359
|
+
chain: Chain;
|
|
360
|
+
}
|
|
352
361
|
export interface AnySpendDepositHypeProps extends BaseModalProps {
|
|
353
362
|
/** Modal type identifier */
|
|
354
363
|
type: "anySpendDepositHype";
|
|
@@ -364,6 +373,8 @@ export interface AnySpendDepositHypeProps extends BaseModalProps {
|
|
|
364
373
|
mainFooter?: React.ReactNode;
|
|
365
374
|
/** Callback function called when the deposit is successful */
|
|
366
375
|
onSuccess?: (amount?: string) => void;
|
|
376
|
+
/** Callback function trigger open custom modal */
|
|
377
|
+
onOpenCustomModal?: () => void;
|
|
367
378
|
/** Custom USD input values for quick amount buttons in fiat onramp */
|
|
368
379
|
customUsdInputValues?: string[];
|
|
369
380
|
/** prefer eoa wallet */
|
|
@@ -375,10 +386,40 @@ export interface AvatarEditorModalProps extends BaseModalProps {
|
|
|
375
386
|
/** Callback function called when avatar is successfully set */
|
|
376
387
|
onSuccess?: () => void;
|
|
377
388
|
}
|
|
378
|
-
|
|
389
|
+
/**
|
|
390
|
+
* Props for the Deposit modal
|
|
391
|
+
* Allows users to deposit tokens into their global account
|
|
392
|
+
*/
|
|
393
|
+
export interface DepositModalProps extends BaseModalProps {
|
|
394
|
+
/** Modal type identifier */
|
|
395
|
+
type: "deposit";
|
|
396
|
+
/** Callback function called when deposit is successful */
|
|
397
|
+
onSuccess?: () => void;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Props for the Send modal
|
|
401
|
+
* Allows users to send tokens from their global account to another address
|
|
402
|
+
*/
|
|
403
|
+
export interface SendModalProps extends BaseModalProps {
|
|
404
|
+
/** Modal type identifier */
|
|
405
|
+
type: "send";
|
|
406
|
+
/** Pre-filled recipient address (optional) */
|
|
407
|
+
recipientAddress?: string;
|
|
408
|
+
/** Callback function called when send is successful */
|
|
409
|
+
onSuccess?: (txHash?: string) => void;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Props for the Notifications modal
|
|
413
|
+
* Allows users to manage notification settings and channels
|
|
414
|
+
*/
|
|
415
|
+
export interface NotificationsModalProps extends BaseModalProps {
|
|
379
416
|
/** Modal type identifier */
|
|
380
|
-
type: "
|
|
381
|
-
/**
|
|
417
|
+
type: "notifications";
|
|
418
|
+
/** Partner ID */
|
|
419
|
+
partnerId: string;
|
|
420
|
+
/** Blockchain chain information */
|
|
421
|
+
chain: Chain;
|
|
422
|
+
/** Callback function called when settings are successfully saved */
|
|
382
423
|
onSuccess?: () => void;
|
|
383
424
|
}
|
|
384
425
|
/**
|
|
@@ -410,7 +451,7 @@ export interface AnySpendCollectorClubPurchaseProps extends BaseModalProps {
|
|
|
410
451
|
/**
|
|
411
452
|
* Union type of all possible modal content types
|
|
412
453
|
*/
|
|
413
|
-
export type ModalContentType = SignInWithB3ModalProps | RequestPermissionsModalProps | ManageAccountModalProps | AnySpendModalProps | AnyspendOrderDetailsProps | AnySpendNftProps | AnySpendJoinTournamentProps | AnySpendFundTournamentProps | AnySpendOrderHistoryProps | AnySpendStakeB3Props | AnySpendStakeB3ExactInProps | AnySpendStakeUpsideProps | AnySpendStakeUpsideExactInProps | AnySpendDepositUpsideProps | AnySpendBuySpinProps | AnySpendSignatureMintProps | AnySpendBondKitProps | LinkAccountModalProps | AnySpendDepositHypeProps | AvatarEditorModalProps |
|
|
454
|
+
export type ModalContentType = SignInWithB3ModalProps | RequestPermissionsModalProps | ManageAccountModalProps | AnySpendModalProps | AnyspendOrderDetailsProps | AnySpendNftProps | AnySpendJoinTournamentProps | AnySpendFundTournamentProps | AnySpendOrderHistoryProps | AnySpendStakeB3Props | AnySpendStakeB3ExactInProps | AnySpendStakeUpsideProps | AnySpendStakeUpsideExactInProps | AnySpendDepositUpsideProps | AnySpendBuySpinProps | AnySpendSignatureMintProps | AnySpendBondKitProps | LinkAccountModalProps | LinkNewAccountModalProps | AnySpendDepositHypeProps | AvatarEditorModalProps | DepositModalProps | SendModalProps | NotificationsModalProps | AnySpendCollectorClubPurchaseProps;
|
|
414
455
|
/**
|
|
415
456
|
* State interface for the modal store
|
|
416
457
|
*/
|