"use client"; import { useState } from "react"; import { createProjectAction, updateProjectAction } from "./actions"; import { useRouter } from "@/i18n/routing"; import { Loader2, Upload, PlusCircle, ArrowLeft, Save } from "lucide-react"; export function ProjectForm({ initialData, projectId }: { initialData?: any; projectId?: string }) { const router = useRouter(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [preview, setPreview] = useState(initialData?.imageUrl || null); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setError(null); setLoading(true); try { const formData = new FormData(e.currentTarget); const url = projectId ? `/api/admin/projects/${projectId}` : "/api/admin/projects"; const method = projectId ? "PUT" : "POST"; const response = await fetch(url, { method, body: formData, }); const result = await response.json(); if (!response.ok || !result.success) { setError(result.message || "An error occurred"); setLoading(false); } else { setLoading(false); router.refresh(); router.push("/admin/dashboard/projects"); } } catch (err) { setError("An unexpected error occurred during submission."); setLoading(false); } } return (

{projectId ? "Edit Project" : "Create New Project"}

{projectId ? "Update your portfolio case study" : "Add a new case study to your portfolio"}

{error && (
{error}
)}