import { useState } from "react"; import { useNavigate } from "react-router"; import { useSupervisorQuestions } from "../contexts/SupervisorQuestionsContext"; import type { PendingQuestion } from "../lib/api"; export function SupervisorQuestionNotification() { const navigate = useNavigate(); const { pendingQuestions, submitAnswer } = useSupervisorQuestions(); const [expandedQuestion, setExpandedQuestion] = useState(null); const [response, setResponse] = useState(""); const [submitting, setSubmitting] = useState(false); if (pendingQuestions.length === 0) { return null; } const handleGoToTask = (taskId: string) => { navigate(`/mesh/${taskId}`); }; const handleExpand = (questionId: string) => { setExpandedQuestion(expandedQuestion === questionId ? null : questionId); setResponse(""); }; const handleSubmit = async (question: PendingQuestion) => { if (!response.trim()) return; setSubmitting(true); const success = await submitAnswer(question.questionId, response.trim()); setSubmitting(false); if (success) { setExpandedQuestion(null); setResponse(""); } }; const handleChoiceSelect = async (question: PendingQuestion, choice: string) => { setSubmitting(true); await submitAnswer(question.questionId, choice); setSubmitting(false); }; return (
{pendingQuestions.map((question) => (
{/* Header */}
? Supervisor Question
{/* Question preview */}
{question.context && (
{question.context}
)}

{question.question}

{/* Expanded answer section */} {expandedQuestion === question.questionId && (
{question.choices.length > 0 ? ( // Choice buttons

Select an option:

{question.choices.map((choice, idx) => ( ))}
) : ( // Free-form text input