import { TransactionHash } from '@/components/blocks/transaction-hash/transaction-hash'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import type { Address } from 'viem'; import { EvmAddress } from '../../evm-address/evm-address'; import type { NormalizedEventsListItem } from '../asset-events-fragments'; import { ApprovalDetails } from './approval'; import { BondRedeemedDetails } from './bond-redeemed'; import { BurnDetails } from './burn'; import { CollateralUpdatedDetails } from './collateral-updated'; import { FeeCollectedDetails } from './fee-collected'; import { MintDetails } from './mint'; import { RoleAdminChangedDetails } from './role-admin-changed'; import { RoleGrantedDetails } from './role-granted'; import { RoleRevokedDetails } from './role-revoked'; import { TokenWithdrawnDetails } from './token-withdrawn'; import { TokensFrozenDetails } from './tokens-frozen'; import { TransferDetails } from './transfer'; import { UserBlockedDetails } from './user-blocked'; export function EventDetailSheet({ event, sender, asset, timestamp, details, transactionHash, }: NormalizedEventsListItem) { return ( {event}
Sender:
Asset:
Date:
{timestamp}
Transaction Hash:
{(() => { switch (details.__typename) { case 'ApprovalEvent': return ; case 'BondRedeemedEvent': return ; case 'BurnEvent': return ; case 'CollateralUpdatedEvent': return ; case 'ManagementFeeCollectedEvent': case 'PerformanceFeeCollectedEvent': return ; case 'MintEvent': return ; case 'RoleAdminChangedEvent': return ; case 'RoleGrantedEvent': return ; case 'RoleRevokedEvent': return ; case 'TokenWithdrawnEvent': return ; case 'TokensFrozenEvent': return ; case 'TransferEvent': return ; case 'UserBlockedEvent': return ; case 'AssetCreatedEvent': case 'BondMaturedEvent': case 'PausedEvent': case 'UnpausedEvent': case 'UserUnblockedEvent': case 'UnderlyingAssetTopUpEvent': case 'UnderlyingAssetWithdrawnEvent': // These events don't have additional details to display return null; default: { const _exhaustiveCheck: never = details; return _exhaustiveCheck; } } })()}
); }