@b3dotfun/sdk 0.0.65-alpha.0 → 0.0.65-test.3
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 +77 -35
- package/dist/cjs/anyspend/react/components/AnySpendCustom.js +2 -2
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +1 -1
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +1 -1
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +5 -3
- 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 +7 -3
- 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/hooks/useSigMint.d.ts +1 -1
- package/dist/cjs/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +184 -35
- package/dist/cjs/global-account/react/components/B3DynamicModal.js +23 -12
- package/dist/cjs/global-account/react/components/Deposit/Deposit.d.ts +1 -0
- package/dist/cjs/global-account/react/components/Deposit/Deposit.js +65 -0
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
- package/dist/cjs/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +37 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +113 -279
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +331 -0
- package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.d.ts +6 -0
- package/dist/cjs/global-account/react/components/ManageAccount/AppsContent.js +34 -0
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +6 -5
- 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/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 +24 -193
- 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/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 +50 -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 +106 -0
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +22 -0
- package/dist/cjs/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -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 +187 -0
- package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +3 -1
- 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 +5 -4
- package/dist/cjs/global-account/react/components/index.js +14 -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/hooks/index.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/index.js +3 -1
- 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/useAuthentication.d.ts +2 -2
- package/dist/cjs/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
- package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +2 -2
- 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 +31 -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/profileDisplay.d.ts +2 -0
- 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 +10 -3
- package/dist/esm/anyspend/react/components/AnySpend.js +78 -36
- package/dist/esm/anyspend/react/components/AnySpendCustom.js +2 -2
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +1 -1
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +1 -1
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +0 -6
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +5 -3
- 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 +6 -5
- 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/hooks/useSigMint.d.ts +1 -1
- package/dist/esm/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +186 -37
- package/dist/esm/global-account/react/components/B3DynamicModal.js +23 -12
- package/dist/esm/global-account/react/components/Deposit/Deposit.d.ts +1 -0
- package/dist/esm/global-account/react/components/Deposit/Deposit.js +59 -0
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.d.ts +39 -0
- package/dist/esm/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.js +34 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +6 -4
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +113 -280
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.d.ts +4 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +325 -0
- package/dist/esm/global-account/react/components/ManageAccount/AppsContent.d.ts +6 -0
- package/dist/esm/global-account/react/components/ManageAccount/AppsContent.js +32 -0
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +6 -5
- 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/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 +26 -195
- 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/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 +45 -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 +101 -0
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.d.ts +2 -0
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +20 -0
- package/dist/esm/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -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 +181 -0
- package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +4 -2
- 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 +5 -4
- package/dist/esm/global-account/react/components/index.js +9 -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/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 +1 -0
- package/dist/esm/global-account/react/hooks/useAccountWallet.js +17 -0
- package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +2 -2
- package/dist/esm/global-account/react/hooks/useB3BalanceFromAddresses.js +1 -0
- package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +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 +31 -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/profileDisplay.d.ts +2 -0
- 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 +10 -3
- package/dist/styles/index.css +1 -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/hooks/useSigMint.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/ManageAccount/AppsContent.d.ts +6 -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/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/TokenContent.d.ts +2 -0
- package/dist/types/global-account/react/components/ModalHeader/ModalHeader.d.ts +10 -0
- package/dist/types/global-account/react/components/Send/Send.d.ts +5 -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 +5 -4
- package/dist/types/global-account/react/hooks/index.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useAccountWallet.d.ts +1 -0
- 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 +1 -0
- package/dist/types/global-account/react/stores/useModalStore.d.ts +31 -6
- package/dist/types/global-account/react/stores/useRecentAddressesStore.d.ts +25 -0
- package/dist/types/global-account/react/utils/profileDisplay.d.ts +2 -0
- package/dist/types/shared/constants/chains/supported.d.ts +3 -3
- package/package.json +1 -1
- package/src/anyspend/react/components/AnySpend.tsx +229 -170
- package/src/anyspend/react/components/AnySpendCustom.tsx +1 -3
- package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +0 -2
- package/src/anyspend/react/components/AnyspendDepositHype.tsx +0 -2
- package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +7 -14
- 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 +8 -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/global-account/react/components/AccountAssets/AccountAssets.tsx +115 -25
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +360 -128
- package/src/global-account/react/components/B3DynamicModal.tsx +28 -14
- package/src/global-account/react/components/Deposit/Deposit.tsx +211 -0
- package/src/global-account/react/components/IPFSMediaRenderer/IPFSMediaRenderer.tsx +84 -0
- package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +332 -433
- package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +490 -0
- package/src/global-account/react/components/ManageAccount/AppsContent.tsx +79 -0
- package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +6 -10
- package/src/global-account/react/components/ManageAccount/BottomNavigation.tsx +83 -0
- 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 +73 -589
- package/src/global-account/react/components/ManageAccount/NFTContent.tsx +24 -0
- package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +72 -0
- package/src/global-account/react/components/ManageAccount/SettingsContent.tsx +87 -0
- package/src/global-account/react/components/ManageAccount/SettingsMenuItem.tsx +31 -0
- package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +180 -0
- package/src/global-account/react/components/ManageAccount/TokenContent.tsx +41 -0
- package/src/global-account/react/components/ModalHeader/ModalHeader.tsx +50 -0
- package/src/global-account/react/components/Send/Send.tsx +585 -0
- package/src/global-account/react/components/SignInWithB3/SignIn.tsx +11 -7
- 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 +11 -5
- package/src/global-account/react/components/ui/Tabs.tsx +5 -13
- package/src/global-account/react/components/ui/dialog.tsx +32 -14
- package/src/global-account/react/hooks/index.ts +3 -0
- 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/stores/index.ts +1 -0
- package/src/global-account/react/stores/useModalStore.ts +35 -6
- package/src/global-account/react/stores/useRecentAddressesStore.ts +55 -0
- package/src/global-account/react/utils/profileDisplay.ts +4 -2
- package/src/shared/utils/ipfs.ts +10 -3
- package/src/styles/index.css +6 -1
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/dist/cjs/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -141
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/dist/esm/global-account/react/components/ProfileEditor/ProfileEditor.js +0 -135
- package/dist/types/global-account/react/components/ProfileEditor/ProfileEditor.d.ts +0 -6
- package/src/global-account/react/components/ProfileEditor/ProfileEditor.tsx +0 -265
|
@@ -19,10 +19,12 @@ import { useEffect, useRef } from "react";
|
|
|
19
19
|
import { useSetActiveWallet } from "thirdweb/react";
|
|
20
20
|
import { AvatarEditor } from "./AvatarEditor/AvatarEditor";
|
|
21
21
|
import { useB3 } from "./B3Provider/useB3";
|
|
22
|
+
import { Deposit } from "./Deposit/Deposit";
|
|
22
23
|
import { LinkAccount } from "./LinkAccount/LinkAccount";
|
|
23
|
-
import {
|
|
24
|
+
import { LinkNewAccount } from "./LinkAccount/LinkNewAccount";
|
|
24
25
|
import { ManageAccount } from "./ManageAccount/ManageAccount";
|
|
25
26
|
import { RequestPermissions } from "./RequestPermissions/RequestPermissions";
|
|
27
|
+
import { Send } from "./Send/Send";
|
|
26
28
|
import { SignInWithB3Flow } from "./SignInWithB3/SignInWithB3Flow";
|
|
27
29
|
import { Dialog, DialogContent, DialogDescription, DialogTitle } from "./ui/dialog";
|
|
28
30
|
import { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from "./ui/drawer";
|
|
@@ -30,7 +32,10 @@ import { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from "./ui/draw
|
|
|
30
32
|
const debug = debugB3React("B3DynamicModal");
|
|
31
33
|
|
|
32
34
|
export function B3DynamicModal() {
|
|
33
|
-
const
|
|
35
|
+
const isOpen = useModalStore(state => state.isOpen);
|
|
36
|
+
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
37
|
+
const contentType = useModalStore(state => state.contentType);
|
|
38
|
+
const navigateBack = useModalStore(state => state.navigateBack);
|
|
34
39
|
const { theme } = useB3();
|
|
35
40
|
const isMobile = useIsMobile();
|
|
36
41
|
const prevIsOpenRef = useRef(isOpen);
|
|
@@ -64,8 +69,10 @@ export function B3DynamicModal() {
|
|
|
64
69
|
"anySpendSignatureMint",
|
|
65
70
|
"anySpendBondKit",
|
|
66
71
|
"linkAccount",
|
|
72
|
+
"linkNewAccount",
|
|
67
73
|
"avatarEditor",
|
|
68
|
-
"
|
|
74
|
+
"deposit",
|
|
75
|
+
"send",
|
|
69
76
|
];
|
|
70
77
|
|
|
71
78
|
const freestyleTypes = [
|
|
@@ -83,7 +90,7 @@ export function B3DynamicModal() {
|
|
|
83
90
|
|
|
84
91
|
// Check if current content type is in freestyle types
|
|
85
92
|
const isFreestyleType = freestyleTypes.includes(contentType?.type as string);
|
|
86
|
-
const hideCloseButton =
|
|
93
|
+
const hideCloseButton = true;
|
|
87
94
|
|
|
88
95
|
// Build content class using cn utility
|
|
89
96
|
// eslint-disable-next-line tailwindcss/no-custom-classname
|
|
@@ -121,7 +128,7 @@ export function B3DynamicModal() {
|
|
|
121
128
|
case "anySpendFundTournament":
|
|
122
129
|
return <AnySpendTournament {...contentType} mode="modal" action="fund" />;
|
|
123
130
|
case "anySpendOrderHistory":
|
|
124
|
-
return <OrderHistory
|
|
131
|
+
return <OrderHistory {...contentType} mode="modal" />;
|
|
125
132
|
case "anySpendStakeB3":
|
|
126
133
|
return <AnySpendStakeB3 {...contentType} mode="modal" />;
|
|
127
134
|
case "anySpendStakeB3ExactIn":
|
|
@@ -138,12 +145,16 @@ export function B3DynamicModal() {
|
|
|
138
145
|
return <AnySpendBondKit {...contentType} />;
|
|
139
146
|
case "linkAccount":
|
|
140
147
|
return <LinkAccount {...contentType} />;
|
|
148
|
+
case "linkNewAccount":
|
|
149
|
+
return <LinkNewAccount {...contentType} />;
|
|
141
150
|
case "anySpendDepositHype":
|
|
142
151
|
return <AnySpendDepositHype {...contentType} mode="modal" />;
|
|
143
152
|
case "avatarEditor":
|
|
144
153
|
return <AvatarEditor onSetAvatar={contentType.onSuccess} />;
|
|
145
|
-
case "
|
|
146
|
-
return <
|
|
154
|
+
case "deposit":
|
|
155
|
+
return <Deposit />;
|
|
156
|
+
case "send":
|
|
157
|
+
return <Send {...contentType} />;
|
|
147
158
|
// Add other modal types here
|
|
148
159
|
default:
|
|
149
160
|
return null;
|
|
@@ -162,17 +173,20 @@ export function B3DynamicModal() {
|
|
|
162
173
|
contentClass,
|
|
163
174
|
"rounded-2xl bg-white shadow-xl dark:bg-gray-900",
|
|
164
175
|
"border border-gray-200 dark:border-gray-800",
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
176
|
+
(contentType?.type === "manageAccount" ||
|
|
177
|
+
contentType?.type === "deposit" ||
|
|
178
|
+
contentType?.type === "send" ||
|
|
179
|
+
contentType?.type === "avatarEditor") &&
|
|
180
|
+
"p-0",
|
|
181
|
+
"mx-auto w-full max-w-md sm:max-w-lg",
|
|
169
182
|
)}
|
|
170
183
|
hideCloseButton={hideCloseButton}
|
|
171
184
|
>
|
|
172
185
|
<ModalTitle className="sr-only hidden">{contentType?.type || "Modal"}</ModalTitle>
|
|
173
186
|
<ModalDescription className="sr-only hidden">{contentType?.type || "Modal Body"}</ModalDescription>
|
|
187
|
+
|
|
174
188
|
<div className={cn("no-scrollbar max-h-[90dvh] overflow-auto sm:max-h-[80dvh]")}>
|
|
175
|
-
{
|
|
189
|
+
{(!hideCloseButton || contentType?.showBackButton) && (
|
|
176
190
|
<button
|
|
177
191
|
onClick={navigateBack}
|
|
178
192
|
className="flex items-center gap-2 px-6 py-4 text-gray-600 transition-colors hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"
|
|
@@ -193,13 +207,13 @@ export function B3DynamicModal() {
|
|
|
193
207
|
strokeLinejoin="round"
|
|
194
208
|
/>
|
|
195
209
|
</svg>
|
|
196
|
-
<span className="text-sm font-
|
|
210
|
+
<span className="font-inter text-sm font-semibold">Back</span>
|
|
197
211
|
</button>
|
|
198
212
|
)}
|
|
199
213
|
{renderContent()}
|
|
200
214
|
</div>
|
|
201
215
|
</ModalContent>
|
|
202
|
-
{
|
|
216
|
+
{contentType?.type === "avatarEditor" && (
|
|
203
217
|
<button
|
|
204
218
|
onClick={() => setB3ModalOpen(false)}
|
|
205
219
|
className="fixed right-5 top-5 z-[100] cursor-pointer text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white"
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { RELAY_SOLANA_MAINNET_CHAIN_ID } from "@b3dotfun/sdk/anyspend/constants";
|
|
2
|
+
import type { components } from "@b3dotfun/sdk/anyspend/types/api";
|
|
3
|
+
import { ALL_CHAINS } from "@b3dotfun/sdk/anyspend/utils/chain";
|
|
4
|
+
import { useAccountWallet, useModalStore } from "@b3dotfun/sdk/global-account/react";
|
|
5
|
+
import { TokenSelector } from "@relayprotocol/relay-kit-ui";
|
|
6
|
+
import { ChevronDown, Copy } from "lucide-react";
|
|
7
|
+
import { QRCodeSVG } from "qrcode.react";
|
|
8
|
+
import { useMemo, useState } from "react";
|
|
9
|
+
import { toast } from "sonner";
|
|
10
|
+
import { base } from "thirdweb/chains";
|
|
11
|
+
import ModalHeader from "../ModalHeader/ModalHeader";
|
|
12
|
+
import { Button } from "../ui/button";
|
|
13
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
|
|
14
|
+
|
|
15
|
+
// Coinbase logo SVG
|
|
16
|
+
const CoinbaseLogo = () => (
|
|
17
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
18
|
+
<path
|
|
19
|
+
d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z"
|
|
20
|
+
fill="#0052FF"
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M8.00065 11.3337C6.16065 11.3337 4.66732 9.84033 4.66732 8.00033C4.66732 6.16033 6.16065 4.66699 8.00065 4.66699C9.47399 4.66699 10.734 5.64699 11.1607 7.00033H13.2273C12.774 4.54699 10.6273 2.66699 8.00065 2.66699C5.05399 2.66699 2.66732 5.05366 2.66732 8.00033C2.66732 10.947 5.05399 13.3337 8.00065 13.3337C10.6273 13.3337 12.774 11.4537 13.2273 9.00033H11.1607C10.734 10.3537 9.47399 11.3337 8.00065 11.3337Z"
|
|
24
|
+
fill="white"
|
|
25
|
+
/>
|
|
26
|
+
</svg>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export function Deposit() {
|
|
30
|
+
const { address } = useAccountWallet();
|
|
31
|
+
const navigateBack = useModalStore(state => state.navigateBack);
|
|
32
|
+
const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
|
|
33
|
+
const history = useModalStore(state => state.history);
|
|
34
|
+
|
|
35
|
+
const [selectedChainId, setSelectedChainId] = useState(base.id);
|
|
36
|
+
const [selectedToken, setSelectedToken] = useState<components["schemas"]["Token"]>({
|
|
37
|
+
address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
38
|
+
chainId: base.id,
|
|
39
|
+
decimals: 6,
|
|
40
|
+
symbol: "USDC",
|
|
41
|
+
name: "USD Coin",
|
|
42
|
+
metadata: {
|
|
43
|
+
logoURI: "https://assets.relay.link/icons/1/light/usdc.png",
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Get the selected chain object
|
|
48
|
+
const selectedChain = useMemo(() => ALL_CHAINS[selectedChainId], [selectedChainId]);
|
|
49
|
+
|
|
50
|
+
// Get all supported chains for the dropdown
|
|
51
|
+
const supportedChains = useMemo(() => Object.values(ALL_CHAINS), []);
|
|
52
|
+
|
|
53
|
+
// The deposit address is the user's active wallet address
|
|
54
|
+
const depositAddress = address || "0x0000000000000000000000000000000000000000";
|
|
55
|
+
|
|
56
|
+
const handleTokenSelect = (token: any) => {
|
|
57
|
+
setSelectedChainId(token.chainId);
|
|
58
|
+
setSelectedToken({
|
|
59
|
+
address: token.address,
|
|
60
|
+
chainId: token.chainId,
|
|
61
|
+
decimals: token.decimals,
|
|
62
|
+
metadata: { logoURI: token.logoURI },
|
|
63
|
+
name: token.name,
|
|
64
|
+
symbol: token.symbol,
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const handleCopyAddress = async () => {
|
|
69
|
+
try {
|
|
70
|
+
await navigator.clipboard.writeText(depositAddress);
|
|
71
|
+
toast.success("Address copied to clipboard");
|
|
72
|
+
} catch (error) {
|
|
73
|
+
toast.error("Failed to copy address");
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<div className="flex w-full flex-col">
|
|
79
|
+
<ModalHeader title="Deposit" showCloseButton={false} />
|
|
80
|
+
|
|
81
|
+
{/* Content */}
|
|
82
|
+
<div className="flex flex-col pb-5 pt-5">
|
|
83
|
+
{/* Header text */}
|
|
84
|
+
<div className="mb-4 px-5">
|
|
85
|
+
<p className="font-neue-montreal-medium text-base leading-snug text-[#3f3f46]">
|
|
86
|
+
Send any accepted token and we'll convert it to B3 on Base for you to use.
|
|
87
|
+
</p>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
{/* Chain and Token Selectors */}
|
|
91
|
+
<div className="space-y-3 px-5">
|
|
92
|
+
{/* Chain Selector */}
|
|
93
|
+
<div>
|
|
94
|
+
<label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Chain</label>
|
|
95
|
+
<DropdownMenu>
|
|
96
|
+
<DropdownMenuTrigger asChild>
|
|
97
|
+
<button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
|
|
98
|
+
<div className="flex items-center gap-2">
|
|
99
|
+
{selectedChain?.logoUrl && (
|
|
100
|
+
<img src={selectedChain.logoUrl} alt={selectedChain.name} className="h-6 w-6 rounded-full" />
|
|
101
|
+
)}
|
|
102
|
+
<span className="text-base text-[#18181b]">{selectedChain?.name || "Select Chain"}</span>
|
|
103
|
+
</div>
|
|
104
|
+
<ChevronDown className="h-4 w-4 text-[#51525c]" />
|
|
105
|
+
</button>
|
|
106
|
+
</DropdownMenuTrigger>
|
|
107
|
+
<DropdownMenuContent className="max-h-[300px] w-full overflow-y-auto">
|
|
108
|
+
{supportedChains.map(chain => (
|
|
109
|
+
<DropdownMenuItem key={chain.id} onClick={() => setSelectedChainId(chain.id)}>
|
|
110
|
+
<div className="flex items-center gap-2">
|
|
111
|
+
{chain.logoUrl && <img src={chain.logoUrl} alt={chain.name} className="h-6 w-6 rounded-full" />}
|
|
112
|
+
<span className="text-[#18181b]">{chain.name}</span>
|
|
113
|
+
</div>
|
|
114
|
+
</DropdownMenuItem>
|
|
115
|
+
))}
|
|
116
|
+
</DropdownMenuContent>
|
|
117
|
+
</DropdownMenu>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
{/* Accepted Tokens Selector */}
|
|
121
|
+
<div>
|
|
122
|
+
<label className="mb-1.5 block text-sm font-medium text-[#3f3f46]">Accepted tokens</label>
|
|
123
|
+
<TokenSelector
|
|
124
|
+
address={address}
|
|
125
|
+
chainIdsFilter={[selectedChainId]}
|
|
126
|
+
context="from"
|
|
127
|
+
fromChainWalletVMSupported={true}
|
|
128
|
+
isValidAddress={true}
|
|
129
|
+
lockedChainIds={[selectedChainId]}
|
|
130
|
+
multiWalletSupportEnabled={true}
|
|
131
|
+
onAnalyticEvent={undefined}
|
|
132
|
+
popularChainIds={[1, 8453, RELAY_SOLANA_MAINNET_CHAIN_ID]}
|
|
133
|
+
setToken={handleTokenSelect}
|
|
134
|
+
supportedWalletVMs={["evm", "svm"]}
|
|
135
|
+
token={undefined}
|
|
136
|
+
trigger={
|
|
137
|
+
<button className="flex h-10 w-full items-center justify-between rounded-lg border border-[#d1d1d6] bg-white px-2.5 py-2 transition-colors hover:bg-[#fafafa]">
|
|
138
|
+
<div className="flex items-center gap-2">
|
|
139
|
+
{selectedToken?.metadata?.logoURI && (
|
|
140
|
+
<img
|
|
141
|
+
src={selectedToken.metadata.logoURI}
|
|
142
|
+
alt={selectedToken.symbol}
|
|
143
|
+
className="h-6 w-6 rounded-full"
|
|
144
|
+
/>
|
|
145
|
+
)}
|
|
146
|
+
<span className="text-base text-[#18181b]">{selectedToken.symbol}</span>
|
|
147
|
+
</div>
|
|
148
|
+
<ChevronDown className="h-4 w-4 text-[#51525c]" />
|
|
149
|
+
</button>
|
|
150
|
+
}
|
|
151
|
+
/>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
|
|
155
|
+
{/* QR Code and Address Container */}
|
|
156
|
+
<div className="mx-5 mt-4 flex items-start rounded-xl border border-[#e4e4e7] bg-[#fafafa]">
|
|
157
|
+
{/* QR Code Section */}
|
|
158
|
+
<div className="flex flex-1 flex-col items-center gap-2 px-5 pb-3 pt-5">
|
|
159
|
+
<div className="flex w-full items-center justify-center">
|
|
160
|
+
<div className="w-full">
|
|
161
|
+
<div className="flex aspect-[144/146] w-full flex-col items-center justify-center overflow-hidden">
|
|
162
|
+
<QRCodeSVG value={depositAddress} size={144} level="M" />
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
<div className="flex items-center gap-2">
|
|
167
|
+
<span className="text-xs font-semibold leading-[18px] text-[#0b57c2]">SCAN WITH</span>
|
|
168
|
+
<CoinbaseLogo />
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
{/* Deposit Address Section */}
|
|
173
|
+
<div className="relative flex flex-1 flex-col gap-2 self-stretch border-l border-[#e4e4e7] p-6">
|
|
174
|
+
<label className="text-sm font-medium leading-5 text-[#3f3f46]">Deposit address:</label>
|
|
175
|
+
<div className="relative flex w-full flex-wrap items-center gap-2">
|
|
176
|
+
<p className="h-[74px] flex-1 overflow-hidden text-ellipsis whitespace-pre-wrap break-all pr-6 text-base font-semibold leading-6 text-[#18181b]">
|
|
177
|
+
{depositAddress}
|
|
178
|
+
</p>
|
|
179
|
+
<button
|
|
180
|
+
onClick={handleCopyAddress}
|
|
181
|
+
className="absolute bottom-0 right-0 h-4 w-4 transition-opacity hover:opacity-70"
|
|
182
|
+
aria-label="Copy address"
|
|
183
|
+
>
|
|
184
|
+
<Copy className="h-full w-full text-[#51525c]" />
|
|
185
|
+
</button>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
{/* Warning Text */}
|
|
191
|
+
<div className="mx-5 mt-4">
|
|
192
|
+
<p className="font-neue-montreal-italic text-center text-sm leading-[1.3] text-[#3f3f46]">
|
|
193
|
+
Do not send any tokens other than the ones specified.
|
|
194
|
+
<br />
|
|
195
|
+
Tokens not accepted will not be converted.
|
|
196
|
+
</p>
|
|
197
|
+
</div>
|
|
198
|
+
|
|
199
|
+
{/* Action Button */}
|
|
200
|
+
<div className="mt-4 px-5">
|
|
201
|
+
<Button
|
|
202
|
+
onClick={handleCopyAddress}
|
|
203
|
+
className="h-12 w-full rounded-xl bg-[#0c68e9] text-base font-semibold text-white shadow-[inset_0px_0px_0px_1px_rgba(10,13,18,0.18),inset_0px_-2px_0px_0px_rgba(10,13,18,0.05)] hover:bg-[#0b5fd4]"
|
|
204
|
+
>
|
|
205
|
+
Copy deposit address
|
|
206
|
+
</Button>
|
|
207
|
+
</div>
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { client as defaultClient } from "@b3dotfun/sdk/shared/utils/thirdweb";
|
|
4
|
+
import type { ThirdwebClient } from "thirdweb";
|
|
5
|
+
import { MediaRenderer } from "thirdweb/react";
|
|
6
|
+
|
|
7
|
+
// Primary IPFS gateway URL - matches our allowed list in profileDisplay.ts
|
|
8
|
+
// Note: MediaRenderer expects the base gateway URL without /ipfs path
|
|
9
|
+
const IPFS_GATEWAY_URL = "https://cloudflare-ipfs.com";
|
|
10
|
+
|
|
11
|
+
interface IPFSMediaRendererProps {
|
|
12
|
+
/** The source URL - can be IPFS URL (ipfs://...) or HTTP URL */
|
|
13
|
+
src: string | null | undefined;
|
|
14
|
+
/** Alt text for the media */
|
|
15
|
+
alt?: string;
|
|
16
|
+
/** CSS class name */
|
|
17
|
+
className?: string;
|
|
18
|
+
/** Thirdweb client instance (optional, uses default if not provided) */
|
|
19
|
+
client?: ThirdwebClient;
|
|
20
|
+
/** Width of the media */
|
|
21
|
+
width?: string | number;
|
|
22
|
+
/** Height of the media */
|
|
23
|
+
height?: string | number;
|
|
24
|
+
/** Controls property for video/audio */
|
|
25
|
+
controls?: boolean;
|
|
26
|
+
/** Style object */
|
|
27
|
+
style?: React.CSSProperties;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* IPFSMediaRenderer - A wrapper around Thirdweb's MediaRenderer that configures
|
|
32
|
+
* the IPFS gateway URL to use our validated gateway.
|
|
33
|
+
*
|
|
34
|
+
* Features:
|
|
35
|
+
* - Configures MediaRenderer to use cloudflare-ipfs.com gateway
|
|
36
|
+
* - Gateway matches our allowed list in profileDisplay.ts
|
|
37
|
+
* - Provides fallback for missing sources
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* <IPFSMediaRenderer
|
|
42
|
+
* src="ipfs://QmX..."
|
|
43
|
+
* alt="Profile Avatar"
|
|
44
|
+
* className="size-14 rounded-full"
|
|
45
|
+
* />
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function IPFSMediaRenderer({
|
|
49
|
+
src,
|
|
50
|
+
alt = "Media",
|
|
51
|
+
className,
|
|
52
|
+
client = defaultClient,
|
|
53
|
+
width,
|
|
54
|
+
height,
|
|
55
|
+
controls,
|
|
56
|
+
style,
|
|
57
|
+
}: IPFSMediaRendererProps) {
|
|
58
|
+
// If no source, render fallback
|
|
59
|
+
if (!src) {
|
|
60
|
+
return (
|
|
61
|
+
<div className={className} style={style} aria-label={alt}>
|
|
62
|
+
<div className="bg-b3-primary-wash flex h-full w-full items-center justify-center">
|
|
63
|
+
<span className="text-b3-grey font-neue-montreal-semibold text-xs">{alt.charAt(0).toUpperCase()}</span>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Convert IPFS URLs to HTTP gateway URLs if needed
|
|
70
|
+
// This handles both ipfs:// URLs and existing HTTP gateway URLs
|
|
71
|
+
|
|
72
|
+
return (
|
|
73
|
+
<MediaRenderer
|
|
74
|
+
src={src}
|
|
75
|
+
client={client}
|
|
76
|
+
alt={alt}
|
|
77
|
+
className={className}
|
|
78
|
+
width={width ? width.toString() : undefined}
|
|
79
|
+
height={height ? height.toString() : undefined}
|
|
80
|
+
controls={controls}
|
|
81
|
+
style={style}
|
|
82
|
+
/>
|
|
83
|
+
);
|
|
84
|
+
}
|