@b3dotfun/sdk 0.0.64-alpha.2 → 0.0.65-test.1
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 +73 -33
- package/dist/cjs/anyspend/react/components/AnySpendCustom.js +1 -1
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +1 -1
- 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/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +139 -33
- package/dist/cjs/global-account/react/components/B3DynamicModal.js +25 -6
- 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/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 +2 -2
- 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 +44 -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 +38 -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/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 +4 -2
- package/dist/cjs/global-account/react/components/index.js +11 -4
- 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/useB3BalanceFromAddresses.js +1 -0
- 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 +34 -3
- 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 +2 -2
- package/dist/cjs/shared/utils/ipfs.js +1 -1
- package/dist/esm/anyspend/react/components/AnySpend.js +74 -34
- package/dist/esm/anyspend/react/components/AnySpendCustom.js +1 -1
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +1 -1
- 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/global-account/react/components/AccountAssets/AccountAssets.js +38 -2
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +140 -34
- package/dist/esm/global-account/react/components/B3DynamicModal.js +25 -6
- 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/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 +2 -2
- 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 +42 -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 +36 -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/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 +4 -2
- package/dist/esm/global-account/react/components/index.js +7 -2
- 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/useB3BalanceFromAddresses.js +1 -0
- 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 +34 -3
- 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 +2 -2
- package/dist/esm/shared/utils/ipfs.js +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/types/anyspend/react/components/common/OrderHistory.d.ts +1 -1
- package/dist/types/global-account/react/components/Deposit/Deposit.d.ts +1 -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 +4 -2
- package/dist/types/global-account/react/hooks/index.d.ts +1 -1
- package/dist/types/global-account/react/stores/index.d.ts +1 -0
- package/dist/types/global-account/react/stores/useModalStore.d.ts +34 -3
- 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 +2 -2
- package/package.json +1 -1
- package/src/anyspend/react/components/AnySpend.tsx +225 -167
- package/src/anyspend/react/components/AnySpendCustom.tsx +1 -1
- package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +1 -1
- 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 +303 -126
- package/src/global-account/react/components/B3DynamicModal.tsx +28 -6
- package/src/global-account/react/components/Deposit/Deposit.tsx +211 -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 +2 -3
- 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 +74 -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 +74 -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/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 +9 -2
- 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/useB3BalanceFromAddresses.ts +1 -0
- package/src/global-account/react/stores/index.ts +1 -0
- package/src/global-account/react/stores/useModalStore.ts +39 -2
- 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 +1 -1
- package/src/styles/index.css +6 -1
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { useAnyspendOrderHistory } from "@b3dotfun/sdk/anyspend/react";
|
|
4
4
|
import { Button, Skeleton, useAccountWallet } from "@b3dotfun/sdk/global-account/react";
|
|
5
|
-
import
|
|
5
|
+
import ModalHeader from "@b3dotfun/sdk/global-account/react/components/ModalHeader/ModalHeader";
|
|
6
|
+
import { RefreshCcw } from "lucide-react";
|
|
6
7
|
import { OrderHistoryItem } from "./OrderHistoryItem";
|
|
7
8
|
|
|
8
9
|
interface OrderHistoryProps {
|
|
9
10
|
mode: "modal" | "page";
|
|
10
|
-
onBack
|
|
11
|
+
onBack?: () => void;
|
|
11
12
|
onSelectOrder?: (orderId: string) => void;
|
|
12
13
|
}
|
|
13
14
|
|
|
@@ -17,13 +18,7 @@ export function OrderHistory({ mode, onBack, onSelectOrder }: OrderHistoryProps)
|
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
20
|
<>
|
|
20
|
-
<
|
|
21
|
-
<Button onClick={onBack} variant="ghost" size="icon" className="hover:bg-as-surface-secondary">
|
|
22
|
-
<ArrowLeft className="h-5 w-5" />
|
|
23
|
-
</Button>
|
|
24
|
-
<div className="flex-1">
|
|
25
|
-
<h3 className="text-as-primary text-2xl font-bold">Order History</h3>
|
|
26
|
-
</div>
|
|
21
|
+
<ModalHeader title="Order History" showCloseButton={false} handleBack={onBack} className="w-full">
|
|
27
22
|
<Button
|
|
28
23
|
variant="ghost"
|
|
29
24
|
size="icon"
|
|
@@ -34,20 +29,20 @@ export function OrderHistory({ mode, onBack, onSelectOrder }: OrderHistoryProps)
|
|
|
34
29
|
>
|
|
35
30
|
<RefreshCcw className="text-as-secondary hover:text-as-primary h-5 w-5 cursor-pointer transition-all hover:rotate-180" />
|
|
36
31
|
</Button>
|
|
37
|
-
</
|
|
32
|
+
</ModalHeader>
|
|
38
33
|
|
|
39
34
|
{isLoadingOrderHistory ? (
|
|
40
|
-
<div className="w-full space-y-3">
|
|
35
|
+
<div className="w-full space-y-3 px-5">
|
|
41
36
|
{[1, 2, 3].map(i => (
|
|
42
37
|
<Skeleton key={i} className="h-[180px] w-full rounded-2xl" />
|
|
43
38
|
))}
|
|
44
39
|
</div>
|
|
45
40
|
) : !orderHistory?.length ? (
|
|
46
|
-
<div className="bg-as-surface-secondary w-full rounded-2xl p-12 text-center">
|
|
41
|
+
<div className="bg-as-surface-secondary w-full rounded-2xl p-12 px-5 text-center">
|
|
47
42
|
<p className="text-as-secondary text-sm">No order history found</p>
|
|
48
43
|
</div>
|
|
49
44
|
) : (
|
|
50
|
-
<div className="mb-12 w-full space-y-3">
|
|
45
|
+
<div className="mb-12 w-full space-y-3 px-5 pt-5">
|
|
51
46
|
{[...orderHistory]
|
|
52
47
|
.sort((a, b) => b.createdAt - a.createdAt)
|
|
53
48
|
.map(order => (
|
|
@@ -150,7 +150,7 @@ function PanelOnrampPaymentInner(props: PanelOnrampPaymentProps) {
|
|
|
150
150
|
};
|
|
151
151
|
|
|
152
152
|
return (
|
|
153
|
-
<div className="mx-auto flex w-full max-w-[460px] flex-col gap-6">
|
|
153
|
+
<div className="mx-auto flex w-full max-w-[460px] flex-col gap-6 px-5">
|
|
154
154
|
{/* Order Summary Section */}
|
|
155
155
|
<>
|
|
156
156
|
<h2 className="-mb-3 text-lg font-semibold">Order summary</h2>
|
|
@@ -9,7 +9,7 @@ interface PointsDetailPanelProps {
|
|
|
9
9
|
|
|
10
10
|
export function PointsDetailPanel({ pointsAmount = 0, onBack }: PointsDetailPanelProps) {
|
|
11
11
|
return (
|
|
12
|
-
<div className="mx-auto flex w-[460px] max-w-full flex-col items-center gap-4">
|
|
12
|
+
<div className="mx-auto flex w-[460px] max-w-full flex-col items-center gap-4 px-5">
|
|
13
13
|
<div className="flex flex-col items-center gap-4 text-center">
|
|
14
14
|
<h3 className="text-as-primary text-xl font-bold">Earn Points with Every Swap</h3>
|
|
15
15
|
<p className="text-as-primary/70 text-balance text-sm leading-relaxed">
|
|
@@ -88,7 +88,7 @@ export function RecipientSelection({
|
|
|
88
88
|
const canConfirm = recipientAddress && isAddressValid;
|
|
89
89
|
|
|
90
90
|
return (
|
|
91
|
-
<div className="recipient-selection mx-auto w-[460px] max-w-full">
|
|
91
|
+
<div className="recipient-selection mx-auto w-[460px] max-w-full px-5">
|
|
92
92
|
<div className="flex flex-col gap-6">
|
|
93
93
|
{/* Header */}
|
|
94
94
|
<div className="flex justify-around">
|
|
@@ -1,16 +1,35 @@
|
|
|
1
|
-
import { SimpleHashNFTResponse } from "@b3dotfun/sdk/global-account/types/simplehash.types";
|
|
1
|
+
import { NFT, SimpleHashNFTResponse } from "@b3dotfun/sdk/global-account/types/simplehash.types";
|
|
2
|
+
import { useState } from "react";
|
|
2
3
|
|
|
3
4
|
interface AccountAssetsProps {
|
|
4
5
|
nfts: SimpleHashNFTResponse;
|
|
5
6
|
isLoading?: boolean;
|
|
6
7
|
}
|
|
7
8
|
|
|
9
|
+
interface GroupedNFTs {
|
|
10
|
+
collection_id: string;
|
|
11
|
+
collection_name: string;
|
|
12
|
+
collection_image: string;
|
|
13
|
+
nfts: NFT[];
|
|
14
|
+
}
|
|
15
|
+
|
|
8
16
|
export function AccountAssets({ nfts, isLoading }: AccountAssetsProps) {
|
|
17
|
+
// Initialize with all collections expanded
|
|
18
|
+
const [expandedCollections, setExpandedCollections] = useState<Set<string>>(
|
|
19
|
+
() => new Set(collections.map(c => c.collection_id)),
|
|
20
|
+
);
|
|
21
|
+
|
|
9
22
|
if (isLoading) {
|
|
10
23
|
return (
|
|
11
|
-
<div className="
|
|
12
|
-
{[...Array(
|
|
13
|
-
<div key={i} className="
|
|
24
|
+
<div className="flex flex-col gap-3">
|
|
25
|
+
{[...Array(2)].map((_, i) => (
|
|
26
|
+
<div key={i} className="animate-pulse">
|
|
27
|
+
<div className="bg-b3-react-muted mb-3 h-6 w-48 rounded" />
|
|
28
|
+
<div className="flex gap-3">
|
|
29
|
+
<div className="bg-b3-react-muted h-[98px] w-[98px] shrink-0 rounded-lg" />
|
|
30
|
+
<div className="bg-b3-react-muted h-[98px] w-[98px] shrink-0 rounded-lg" />
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
14
33
|
))}
|
|
15
34
|
</div>
|
|
16
35
|
);
|
|
@@ -20,29 +39,100 @@ export function AccountAssets({ nfts, isLoading }: AccountAssetsProps) {
|
|
|
20
39
|
return <div className="text-b3-react-muted-foreground py-8 text-center">No NFTs found</div>;
|
|
21
40
|
}
|
|
22
41
|
|
|
42
|
+
// Group NFTs by collection
|
|
43
|
+
const groupedNFTs = nfts.nfts.reduce(
|
|
44
|
+
(acc, nft) => {
|
|
45
|
+
const collectionId = nft.collection?.collection_id || "unknown";
|
|
46
|
+
if (!acc[collectionId]) {
|
|
47
|
+
acc[collectionId] = {
|
|
48
|
+
collection_id: collectionId,
|
|
49
|
+
collection_name: nft.collection?.name || "Unknown Collection",
|
|
50
|
+
collection_image: nft.collection?.image_url || nft.previews?.image_small_url || "",
|
|
51
|
+
nfts: [],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
acc[collectionId].nfts.push(nft);
|
|
55
|
+
return acc;
|
|
56
|
+
},
|
|
57
|
+
{} as Record<string, GroupedNFTs>,
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
const collections = Object.values(groupedNFTs);
|
|
61
|
+
|
|
62
|
+
const toggleCollection = (collectionId: string) => {
|
|
63
|
+
setExpandedCollections(prev => {
|
|
64
|
+
const next = new Set(prev);
|
|
65
|
+
if (next.has(collectionId)) {
|
|
66
|
+
next.delete(collectionId);
|
|
67
|
+
} else {
|
|
68
|
+
next.add(collectionId);
|
|
69
|
+
}
|
|
70
|
+
return next;
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
23
74
|
return (
|
|
24
|
-
<div className="
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
className="
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
75
|
+
<div className="flex flex-col gap-3 px-4">
|
|
76
|
+
{collections.map(collection => {
|
|
77
|
+
const isExpanded = expandedCollections.has(collection.collection_id);
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<div key={collection.collection_id} className="flex flex-col gap-3">
|
|
81
|
+
{/* Collection Header */}
|
|
82
|
+
<button
|
|
83
|
+
onClick={() => toggleCollection(collection.collection_id)}
|
|
84
|
+
className="flex w-full items-center justify-between"
|
|
85
|
+
>
|
|
86
|
+
<div className="flex items-center gap-1">
|
|
87
|
+
{collection.collection_image && (
|
|
88
|
+
<img
|
|
89
|
+
src={collection.collection_image}
|
|
90
|
+
alt={collection.collection_name}
|
|
91
|
+
className="h-5 w-5 shrink-0 rounded object-cover"
|
|
92
|
+
/>
|
|
93
|
+
)}
|
|
94
|
+
<p className="font-neue-montreal-medium text-[14px] text-[#3f3f46]">
|
|
95
|
+
{collection.collection_name} ({collection.nfts.length})
|
|
96
|
+
</p>
|
|
97
|
+
</div>
|
|
98
|
+
<svg
|
|
99
|
+
className={`h-[18px] w-[18px] shrink-0 transition-transform ${isExpanded ? "rotate-180" : ""}`}
|
|
100
|
+
viewBox="0 0 18 18"
|
|
101
|
+
fill="none"
|
|
102
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
103
|
+
>
|
|
104
|
+
<path
|
|
105
|
+
d="M4.5 6.75L9 11.25L13.5 6.75"
|
|
106
|
+
stroke="#51525C"
|
|
107
|
+
strokeWidth="1.5"
|
|
108
|
+
strokeLinecap="round"
|
|
109
|
+
strokeLinejoin="round"
|
|
110
|
+
/>
|
|
111
|
+
</svg>
|
|
112
|
+
</button>
|
|
113
|
+
|
|
114
|
+
{/* NFT Grid */}
|
|
115
|
+
{isExpanded && (
|
|
116
|
+
<div className="flex gap-3 overflow-x-auto">
|
|
117
|
+
{collection.nfts.map(nft => (
|
|
118
|
+
<div key={nft.nft_id} className="relative h-[98px] w-[98px] shrink-0 overflow-hidden rounded-lg">
|
|
119
|
+
<img
|
|
120
|
+
src={
|
|
121
|
+
nft.previews?.image_medium_url ||
|
|
122
|
+
nft.extra_metadata?.image_original_url ||
|
|
123
|
+
nft.collection?.image_url ||
|
|
124
|
+
""
|
|
125
|
+
}
|
|
126
|
+
alt={nft.name || "NFT"}
|
|
127
|
+
className="h-full w-full object-cover"
|
|
128
|
+
/>
|
|
129
|
+
</div>
|
|
130
|
+
))}
|
|
131
|
+
</div>
|
|
132
|
+
)}
|
|
43
133
|
</div>
|
|
44
|
-
|
|
45
|
-
)
|
|
134
|
+
);
|
|
135
|
+
})}
|
|
46
136
|
</div>
|
|
47
137
|
);
|
|
48
138
|
}
|