/** * ConfigValidationStatus * * Displays real-time validation status for agent configuration editing. * Shows validation state (validating/valid/invalid), error count, warnings, * and detailed error/warning messages with line numbers. Provides visual * feedback during configuration editing to help users fix issues before saving. */ import React from 'react'; import { AlertCircle, CheckCircle, AlertTriangle } from 'lucide-react'; import type { ValidationError, ValidationWarning } from '../hooks/useAgentConfig'; interface ConfigValidationStatusProps { isValidating: boolean; isValid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; hasUnsavedChanges: boolean; } export default function ConfigValidationStatus({ isValidating, isValid, errors, warnings, hasUnsavedChanges, }: ConfigValidationStatusProps) { return (
{/* Status indicator */}
{isValidating ? ( <>
Validating... ) : isValid ? ( <> Valid configuration {hasUnsavedChanges && ' (unsaved changes)'} ) : ( <> {errors.length} {errors.length === 1 ? 'error' : 'errors'} )}
{/* Warnings indicator */} {warnings.length > 0 && (
{warnings.length} {warnings.length === 1 ? 'warning' : 'warnings'}
)}
{/* Error list */} {errors.length > 0 && (
{errors.map((error, idx) => (
{error.path && {error.path}: } {error.message} {error.line && ( (line {error.line} {error.column && `:${error.column}`}) )}
))}
)} {/* Warning list */} {warnings.length > 0 && errors.length === 0 && (
{warnings.map((warning, idx) => (
{warning.path}: {warning.message}
))}
)}
); }