"use client"; import { useParams, useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import Link from "next/link"; import Image from "next/image"; interface Project { id: string; title: string; slug: string; description: string; link: string; image: string; } export default function ProjectDetail() { const params = useParams(); const router = useRouter(); const { slug } = params as { slug: string }; const [project, setProject] = useState(null); useEffect(() => { if (slug) { fetch("/data/projects.json") .then((res) => res.json()) .then((data: Project[]) => { const found = data.find((proj) => proj.slug === slug); if (found) { setProject(found); // Log the project view fetch("/api/stats", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ type: "project_view", projectId: found.id, }), }).catch((err) => console.error("Failed to log project view", err)); } else { // Redirect to 404 if project not found router.replace("/not-found"); } }); } }, [slug, router]); if (!project) { return
Loading...
; } return (

{project.title}

{project.title}

{project.description}

Go back Home
); }