"use client"; import { useState, useEffect, useRef } from 'react'; const DATASET_TAGS = [ { value: 'named', label: 'Named Dataset', description: 'A specific, named dataset (e.g. "2022 national census")' }, { value: 'descriptive', label: 'Descriptive', description: 'A described but not formally named dataset' }, { value: 'vague', label: 'Vague', description: 'An unclear or ambiguous data reference' }, ]; export default function AnnotationModal({ isOpen, selectedText, annotatorName, onAnnotatorChange, onSubmit, onClose, }) { const [datasetTag, setDatasetTag] = useState('named'); const [saving, setSaving] = useState(false); const noteRef = useRef(null); useEffect(() => { if (isOpen && noteRef.current) { noteRef.current.focus(); } }, [isOpen]); useEffect(() => { const handleEsc = (e) => { if (e.key === 'Escape') onClose(); }; if (isOpen) window.addEventListener('keydown', handleEsc); return () => window.removeEventListener('keydown', handleEsc); }, [isOpen, onClose]); if (!isOpen) return null; const handleSubmit = async () => { setSaving(true); await onSubmit({ dataset_tag: datasetTag }); setSaving(false); setDatasetTag('named'); }; return (
{DATASET_TAGS.find(t => t.value === datasetTag)?.description}