import { Copy, RotateCcw } from 'lucide-react' import { Badge, Button, Card, CardContent, Separator, Sheet, SheetContent, SheetFooter, SheetHeader, SheetSection, SheetTitle, Tabs_Shadcn_ as Tabs, TabsContent_Shadcn_ as TabsContent, TabsList_Shadcn_ as TabsList, TabsTrigger_Shadcn_ as TabsTrigger, } from 'ui' import { TimestampInfo } from 'ui-patterns' import type { WebhookDelivery } from './PlatformWebhooks.types' import { formatDeliveryStatus, statusBadgeVariant } from './PlatformWebhooksView.utils' import { getStatusLevel } from '@/components/interfaces/UnifiedLogs/UnifiedLogs.utils' import { DataTableColumnStatusCode } from '@/components/ui/DataTable/DataTableColumn/DataTableColumnStatusCode' interface PlatformWebhooksDeliveryDetailsSheetProps { deliveryAttempt: number | null deliveryDetailsTab: 'event' | 'response' deliveryEventPayload: string deliveryResponsePayload: string open: boolean selectedDelivery: WebhookDelivery | null onCopy: (value: string, label: string) => void onOpenChange: (open: boolean) => void onRetryDelivery: (deliveryId: string) => void onTabChange: (tab: 'event' | 'response') => void } export const PlatformWebhooksDeliveryDetailsSheet = ({ deliveryAttempt, deliveryDetailsTab, deliveryEventPayload, deliveryResponsePayload, open, selectedDelivery, onCopy, onOpenChange, onRetryDelivery, onTabChange, }: PlatformWebhooksDeliveryDetailsSheetProps) => { const retryableDelivery = selectedDelivery && selectedDelivery.status !== 'success' ? selectedDelivery : null return (
Delivery details {selectedDelivery && ( {formatDeliveryStatus(selectedDelivery.status)} )}
{selectedDelivery && (

Delivery ID

{selectedDelivery.id}

Attempt

{deliveryAttempt ? `#${deliveryAttempt}` : '-'}

Timestamp

Response code

{selectedDelivery.responseCode ? ( ) : ( )}
onTabChange(value as 'event' | 'response')} > Event Response

Event type

{selectedDelivery.eventType}

Event ID

{selectedDelivery.id}

Event timestamp

Payload

                        {deliveryEventPayload}
                      

Status

{formatDeliveryStatus(selectedDelivery.status)}

Response code

{selectedDelivery.responseCode ? ( ) : ( )}

Response payload

                        {deliveryResponsePayload}
                      
)} {retryableDelivery && ( )}
) }