import { AlertItem } from "../Shared/Alert"; const validateMatchSentences = ( sentences: {id: string; sentence: string; solution: string;}[], setAlerts: React.Dispatch> ): boolean => { let hasErrors = false; const emptySentences = sentences.filter(s => !s.sentence.trim()); if (emptySentences.length > 0) { hasErrors = true; setAlerts(prev => { const filteredAlerts = prev.filter(alert => !alert.tag?.startsWith('empty-sentence')); return [...filteredAlerts, ...emptySentences.map(s => ({ variant: "error" as const, tag: `empty-sentence-${s.id}`, description: `Heading ${s.id} is empty` }))]; }); } else { setAlerts(prev => prev.filter(alert => !alert.tag?.startsWith('empty-sentence'))); } const unmatchedSentences = sentences.filter(s => !s.solution); if (unmatchedSentences.length > 0) { hasErrors = true; setAlerts(prev => { const filteredAlerts = prev.filter(alert => !alert.tag?.startsWith('unmatched-sentence')); return [...filteredAlerts, ...unmatchedSentences.map(s => ({ variant: "error" as const, tag: `unmatched-sentence-${s.id}`, description: `Heading ${s.id} has no paragraph selected` }))]; }); } else { setAlerts(prev => prev.filter(alert => !alert.tag?.startsWith('unmatched-sentence'))); } return !hasErrors; }; export default validateMatchSentences;