diff --git a/app/(app)/dashboard/surveys/new/form.tsx b/app/(app)/dashboard/surveys/new/form.tsx index 1c65ee04..581d7ce0 100644 --- a/app/(app)/dashboard/surveys/new/form.tsx +++ b/app/(app)/dashboard/surveys/new/form.tsx @@ -2,15 +2,18 @@ import { useRouter } from "next/navigation"; import { useState, useTransition } from "react"; -import { createSurvey } from "@/app/actions/surveys"; +import { createSurvey, generateSurveyDraft } from "@/app/actions/surveys"; export type SurveyProjectOption = { id: string; name: string; url: string; organization_id: string }; export function NewSurveyForm({ projects }: { projects: SurveyProjectOption[] }) { const router = useRouter(); const [pending, startTransition] = useTransition(); + const [draftPending, startDraftTransition] = useTransition(); const [error, setError] = useState(""); + const [draftError, setDraftError] = useState(""); const [projectId, setProjectId] = useState(projects[0]?.id ?? ""); + const [goal, setGoal] = useState(""); const [title, setTitle] = useState(""); const [question, setQuestion] = useState(""); const [answerType, setAnswerType] = useState<"rating" | "text">("rating"); @@ -19,6 +22,21 @@ export function NewSurveyForm({ projects }: { projects: SurveyProjectOption[] }) const [bSubject, setBSubject] = useState("Help us improve"); const [bMessage, setBMessage] = useState("Could you spare a minute to answer one question?"); + function draftWithAI() { + setDraftError(""); + startDraftTransition(async () => { + const result = await generateSurveyDraft({ projectId, goal }); + if (!result.ok) { setDraftError(result.error); return; } + setTitle(result.draft.title); + setQuestion(result.draft.question); + setAnswerType(result.draft.answerType); + setASubject(result.draft.variantA.subject); + setAMessage(result.draft.variantA.message); + setBSubject(result.draft.variantB.subject); + setBMessage(result.draft.variantB.message); + }); + } + function submit(event: React.FormEvent) { event.preventDefault(); setError(""); @@ -51,6 +69,25 @@ export function NewSurveyForm({ projects }: { projects: SurveyProjectOption[] }) {projects.map((project) => )} +
+