|
1 | 1 | import { Card, CardContent } from '@/features/common/components/card' |
2 | 2 | import { cn } from '@/features/common/utils' |
3 | 3 | import { DisplayAlgo } from '@/features/common/components/display-algo' |
4 | | -import { Button } from '@/features/common/components/button' |
5 | 4 | import { TransactionInfo } from './transaction-info' |
6 | 5 | import { TransactionNote } from './transaction-note' |
7 | 6 | import { TransactionJson } from './transaction-json' |
8 | 7 | import { useMemo } from 'react' |
9 | | -import { PaymentTransactionModel } from '../models' |
| 8 | +import { PaymentTransactionModel, SignatureType } from '../models' |
10 | 9 | import { TransactionResult } from '@algorandfoundation/algokit-utils/types/indexer' |
11 | 10 | import { DescriptionList } from '@/features/common/components/description-list' |
12 | 11 | import { TransactionViewVisual } from './transaction-view-visual' |
13 | 12 | import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/features/common/components/tabs' |
14 | 13 | import { TransactionViewTable } from './transaction-view-table' |
15 | 14 | import { Multisig } from './multisig' |
| 15 | +import { Logicsig } from './logicsig' |
16 | 16 |
|
17 | | -export type Props = { |
| 17 | +type PaymentTransactionProps = { |
18 | 18 | transaction: PaymentTransactionModel |
19 | 19 | rawTransaction: TransactionResult |
20 | 20 | } |
21 | 21 |
|
22 | | -export function PaymentTransaction({ transaction, rawTransaction }: Props) { |
| 22 | +const visualTransactionDetailsTabId = 'visual' |
| 23 | +const tableTransactionDetailsTabId = 'table' |
| 24 | +export const transactionDetailsLabel = 'View Transaction Details' |
| 25 | +export const visualTransactionDetailsTabLabel = 'Visual' |
| 26 | +export const tableTransactionDetailsTabLabel = 'Table' |
| 27 | + |
| 28 | +export function PaymentTransaction({ transaction, rawTransaction }: PaymentTransactionProps) { |
23 | 29 | const paymentTransactionItems = useMemo( |
24 | 30 | () => [ |
25 | 31 | { |
@@ -54,29 +60,35 @@ export function PaymentTransaction({ transaction, rawTransaction }: Props) { |
54 | 60 | <div className={cn('space-y-2')}> |
55 | 61 | <div className={cn('flex items-center justify-between')}> |
56 | 62 | <h1 className={cn('text-2xl text-primary font-bold')}>Payment</h1> |
57 | | - <Button>Replay</Button> |
58 | 63 | </div> |
59 | 64 | <DescriptionList items={paymentTransactionItems} /> |
60 | 65 | </div> |
61 | | - <Tabs defaultValue="visual"> |
62 | | - <TabsList aria-label="View Transaction"> |
63 | | - <TabsTrigger className={cn('data-[state=active]:border-primary data-[state=active]:border-b-2 w-32')} value="visual"> |
64 | | - Visual |
| 66 | + <Tabs defaultValue={visualTransactionDetailsTabId}> |
| 67 | + <TabsList aria-label={transactionDetailsLabel}> |
| 68 | + <TabsTrigger |
| 69 | + className={cn('data-[state=active]:border-primary data-[state=active]:border-b-2 w-32')} |
| 70 | + value={visualTransactionDetailsTabId} |
| 71 | + > |
| 72 | + {visualTransactionDetailsTabLabel} |
65 | 73 | </TabsTrigger> |
66 | | - <TabsTrigger className={cn('data-[state=active]:border-primary data-[state=active]:border-b-2 w-32')} value="table"> |
67 | | - Table |
| 74 | + <TabsTrigger |
| 75 | + className={cn('data-[state=active]:border-primary data-[state=active]:border-b-2 w-32')} |
| 76 | + value={tableTransactionDetailsTabId} |
| 77 | + > |
| 78 | + {tableTransactionDetailsTabLabel} |
68 | 79 | </TabsTrigger> |
69 | 80 | </TabsList> |
70 | | - <TabsContent value="visual" className={cn('border-solid border-2 border-border p-4')}> |
| 81 | + <TabsContent value={visualTransactionDetailsTabId} className={cn('border-solid border-2 border-border p-4')}> |
71 | 82 | <TransactionViewVisual transaction={transaction} /> |
72 | 83 | </TabsContent> |
73 | | - <TabsContent value="table" className={cn('border-solid border-2 border-border p-4')}> |
| 84 | + <TabsContent value={tableTransactionDetailsTabId} className={cn('border-solid border-2 border-border p-4')}> |
74 | 85 | <TransactionViewTable transaction={transaction} /> |
75 | 86 | </TabsContent> |
76 | 87 | </Tabs> |
77 | 88 | <TransactionNote transaction={transaction} /> |
78 | 89 | <TransactionJson transaction={rawTransaction} /> |
79 | | - {transaction.multisig && <Multisig multisig={transaction.multisig} />} |
| 90 | + {transaction.signature?.type === SignatureType.Multi && <Multisig signature={transaction.signature} />} |
| 91 | + {transaction.signature?.type === SignatureType.Logic && <Logicsig signature={transaction.signature} />} |
80 | 92 | </CardContent> |
81 | 93 | </Card> |
82 | 94 | </div> |
|
0 commit comments