'use client'; import { useState } from "react"; import { useRouter } from "next/navigation"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card"; import { Button } from "~/components/ui/button"; import { Input } from "~/components/ui/input"; import { Label } from "~/components/ui/label"; import { Textarea } from "~/components/ui/textarea"; import { useToast } from "~/hooks/use-toast"; import { ArrowLeft, Settings2Icon } from "lucide-react"; import Link from "next/link"; import { useActiveStudy } from "~/context/active-study"; import { getApiUrl } from "~/lib/fetch-utils"; export default function NewStudy() { const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); const [isSubmitting, setIsSubmitting] = useState(false); const router = useRouter(); const { toast } = useToast(); const { refreshStudies } = useActiveStudy(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); try { const response = await fetch(getApiUrl('/api/studies'), { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ title, description }), }); if (!response.ok) { throw new Error("Failed to create study"); } const data = await response.json(); toast({ title: "Success", description: "Study created successfully", }); // Refresh studies list and redirect to the new study await refreshStudies(); router.push(`/dashboard/studies/${data.data.id}`); } catch (error) { console.error("Error creating study:", error); toast({ title: "Error", description: "Failed to create study", variant: "destructive", }); } finally { setIsSubmitting(false); } }; return (

Create New Study

Set up a new research study and configure its settings

Study Details Configure the basic settings for your new study
setTitle(e.target.value)} placeholder="Enter study title" required />