|
| 1 | +'use client' |
| 2 | + |
1 | 3 | import Card from '@/components/Global/Card' |
2 | 4 | import { PaymentInfoRow } from '@/components/Payment/PaymentInfoRow' |
3 | 5 | import { TransactionDetails } from '@/components/TransactionDetails/transactionTransformer' |
@@ -28,6 +30,7 @@ import { twMerge } from 'tailwind-merge' |
28 | 30 | import { isAddress } from 'viem' |
29 | 31 | import { getBankAccountLabel, TransactionDetailsRowKey, transactionDetailsRowKeys } from './transaction-details.utils' |
30 | 32 | import { useSupportModalContext } from '@/context/SupportModalContext' |
| 33 | +import { useRouter } from 'next/navigation' |
31 | 34 |
|
32 | 35 | export const TransactionDetailsReceipt = ({ |
33 | 36 | transaction, |
@@ -59,6 +62,7 @@ export const TransactionDetailsReceipt = ({ |
59 | 62 | const [tokenData, setTokenData] = useState<{ symbol: string; icon: string } | null>(null) |
60 | 63 | const [isTokenDataLoading, setIsTokenDataLoading] = useState(true) |
61 | 64 | const { setIsSupportModalOpen } = useSupportModalContext() |
| 65 | + const router = useRouter() |
62 | 66 |
|
63 | 67 | useEffect(() => { |
64 | 68 | setIsModalOpen?.(showCancelLinkModal) |
@@ -278,6 +282,16 @@ export const TransactionDetailsReceipt = ({ |
278 | 282 | } |
279 | 283 | } |
280 | 284 |
|
| 285 | + // Show profile button only if txn is completed, not to/by a guest user and its a send/request/receive txn |
| 286 | + const showUserProfileButton = |
| 287 | + !!transaction && |
| 288 | + transaction.status === 'completed' && |
| 289 | + !!transaction.userName && |
| 290 | + !isAddress(transaction.userName) && |
| 291 | + (transaction.extraDataForDrawer?.transactionCardType === 'send' || |
| 292 | + transaction.extraDataForDrawer?.transactionCardType === 'request' || |
| 293 | + transaction.extraDataForDrawer?.transactionCardType === 'receive') |
| 294 | + |
281 | 295 | return ( |
282 | 296 | <div ref={contentRef} className={twMerge('space-y-4', className)}> |
283 | 297 | {/* show qr code at the top if applicable */} |
@@ -911,6 +925,22 @@ export const TransactionDetailsReceipt = ({ |
911 | 925 | </div> |
912 | 926 | )} |
913 | 927 |
|
| 928 | + {showUserProfileButton && ( |
| 929 | + <div className="pr-1"> |
| 930 | + <Button |
| 931 | + onClick={() => router.push(`/${transaction.userName}`)} |
| 932 | + shadowSize="4" |
| 933 | + variant={ |
| 934 | + transaction.extraDataForDrawer?.transactionCardType === 'request' |
| 935 | + ? 'purple' |
| 936 | + : 'primary-soft' |
| 937 | + } |
| 938 | + className="flex w-full items-center gap-1" |
| 939 | + > |
| 940 | + Go to {transaction.userName} profile |
| 941 | + </Button> |
| 942 | + </div> |
| 943 | + )} |
914 | 944 | {/* Cancel deposit button for bridge_onramp transactions in awaiting_funds state */} |
915 | 945 | {transaction.direction === 'bank_deposit' && |
916 | 946 | transaction.extraDataForDrawer?.originalType !== EHistoryEntryType.REQUEST && |
|
0 commit comments