import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Badge, Card } from 'ui' import { Admonition } from 'ui-patterns' import type { ValidationFailure } from '@/data/replication/validate-destination-mutation' interface ValidationFailuresSectionProps { destinationFailures: ValidationFailure[] pipelineFailures: ValidationFailure[] } export const ValidationFailuresSection = ({ destinationFailures, pipelineFailures, }: ValidationFailuresSectionProps) => { const validationIssues = [...destinationFailures, ...pipelineFailures].sort((a, _b) => a.failure_type === 'critical' ? -1 : 1 ) const criticalFailures = validationIssues.filter((f) => f.failure_type === 'critical') const warnings = validationIssues.filter((f) => f.failure_type === 'warning') const hasCriticalFailures = criticalFailures.length > 0 const hasWarnings = warnings.length > 0 if (validationIssues.length === 0) { return null } return (

{hasCriticalFailures ? `Please fix all required issues below${hasWarnings ? ' and review the others' : ''} before continuing.` : 'The following issues were identified, although you may still proceed to create the destination.'}

{validationIssues.map((failure, idx) => (

{failure.name} {failure.failure_type === 'critical' && Required}

{failure.reason.replaceAll('\n\n', '\n')}

))}
) }