"use client" import * as React from "react" import type { QuestionnaireItemStatus } from "@shadcn/react/questionnaire" import { toast } from "sonner" import { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSubmit, QuestionnaireTitle, } from "@/styles/aria-nova/ui/questionnaire" const items = [ { name: "permission", required: true }, { name: "verification", required: true }, ] as const type ItemName = "permission" | "verification" export function QuestionnaireNavigationState() { const [item, setItem] = React.useState("permission") const [statuses, setStatuses] = React.useState< Record >({ permission: "unanswered", verification: "unanswered", }) const unanswered = statuses[item] === "unanswered" function setStatus(name: ItemName, status: QuestionnaireItemStatus) { setStatuses((current) => ({ ...current, [name]: status })) } function handleSubmit(event: React.FormEvent) { event.preventDefault() const formData = new FormData(event.currentTarget) toast("Permissions saved", { description: `Permission: ${formData.get("permission") ?? "None"} ยท Verification: ${formData.get("verification") ?? "None"}`, }) } return ( setItem(nextItem as ItemName)} onSubmit={handleSubmit} > setStatus("permission", status)} > What may the agent modify? Next is intentionally disabled until an answer is selected. Project files Project files and tests Files, tests, and configuration setStatus("verification", status)} > What must pass before completion? Tests Tests and types Tests, types, and visual QA Next Save permissions ) }