import { useState, useEffect } from "react" import { Link, useParams, useNavigate } from "react-router" import { ArrowLeft, Calendar, FileText, Lock, MessageSquare, Pencil, Trash2, } from "lucide-react" import { Navbar } from "@/components/shared/navbar" import { Footer } from "@/components/shared/footer" import { FormButton } from "@/components/shared/form-button" import { QuestionPreview } from "@/components/forms/question-preview" import { getFormById, deleteForm } from "@/lib/api" import { useAuth } from "@/app/context/auth-context" import type { FormDetail } from "@/lib/types" export default function FormPreviewPage() { const { id } = useParams() const navigate = useNavigate() const { user } = useAuth() const [form, setForm] = useState(null) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [showDeleteConfirm, setShowDeleteConfirm] = useState(false) const [deleting, setDeleting] = useState(false) useEffect(() => { if (!id) return async function fetchForm() { try { const data = await getFormById(id!) setForm(data) } catch (err) { if (err instanceof Response && err.status === 404) { throw err } setError("Failed to load form. Please try again.") } finally { setLoading(false) } } fetchForm() }, [id]) async function handleDelete() { if (!id) return setDeleting(true) try { await deleteForm(id) navigate("/forms") } catch { setError("Failed to delete form.") setShowDeleteConfirm(false) } finally { setDeleting(false) } } if (loading) { return (

Loading...

) } if (error || !form) { return (

{error ?? "Form not found"}

Back to forms
) } return (
Back to forms
Read-only preview

{form.title}

{form.description}

{form.questions.length} questions {form.response_count} responses Created {new Date(form.created_at).toLocaleDateString()} Updated {new Date(form.updated_at).toLocaleDateString()}
{user && user.id === form.user_id && (
Edit setShowDeleteConfirm(true)} className="text-destructive hover:bg-destructive/10 hover:text-destructive" > Delete
)}
{form.questions.map((question, index) => ( ))}

This is a read-only preview. Form submission is disabled.

Submit (Preview Mode)
Back to all forms
{showDeleteConfirm && (

Delete Form

Are you sure you want to delete this form? This action cannot be undone.

setShowDeleteConfirm(false)} disabled={deleting} > Cancel {deleting ? "Deleting..." : "Delete"}
)}
) }