'use client' export type ValidationIssue = { nodeId: string nodeType: 'dialogue' | 'choice' | 'variable' | 'edge' contentSnippet: string undefinedReference: string referenceType: 'character' | 'variable' } type ExportValidationModalProps = { issues: ValidationIssue[] onExportAnyway: () => void onCancel: () => void } export default function ExportValidationModal({ issues, onExportAnyway, onCancel, }: ExportValidationModalProps) { const characterIssues = issues.filter((i) => i.referenceType === 'character') const variableIssues = issues.filter((i) => i.referenceType === 'variable') return (

Export Validation Issues

{issues.length} undefined reference{issues.length !== 1 ? 's' : ''} found. These nodes/edges reference characters or variables that no longer exist.

{characterIssues.length > 0 && (

Undefined Characters

    {characterIssues.map((issue, idx) => (
  • {issue.nodeType}

    {issue.contentSnippet}

    ID: {issue.undefinedReference.slice(0, 8)}...
  • ))}
)} {variableIssues.length > 0 && (

Undefined Variables

    {variableIssues.map((issue, idx) => (
  • {issue.nodeType}

    {issue.contentSnippet}

    ID: {issue.undefinedReference.slice(0, 8)}...
  • ))}
)}
) }