"use client" import { type AskUserToolPart } from "@/tools" import { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoices, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSubmit, QuestionnaireTitle, } from "@/components/ui/questionnaire" export function QuestionCard({ part, onAnswer, }: { part: AskUserToolPart onAnswer: ( toolCallId: string, answers: { question: string; answer: string }[] ) => void }) { const questions = part.state === "input-available" ? part.input.questions : [] return (
{questions.length === 0 ? (
Preparing a question…
) : ( ({ choices: question.choices.map((choice) => ({ value: choice })), name: `q${index}`, required: true, }))} onSubmit={(event) => { event.preventDefault() const formData = new FormData(event.currentTarget) onAnswer( part.toolCallId, questions.map((question, index) => ({ question: question.question, answer: String(formData.get(`q${index}`) ?? ""), })) ) }} > {questions.length > 1 && ( )} {questions.map((question, index) => ( {question.question} {question.choices.map((choice) => ( {choice} ))} ))} Next Answer )}
) }