"use client"; import { useEffect, useState } from "react"; import { useParams } from "next/navigation"; import Image from "next/image"; import Link from "next/link"; import ReactMarkdown from "react-markdown"; export default function ProjectDetailPage() { const { id } = useParams(); const [project, setProject] = useState(null); useEffect(() => { if (!id) return; const url = new URL(`${process.env.NEXT_PUBLIC_API_BASE_URL}/items/projects/${id}`); url.searchParams.set( "fields", "submission_id,title,uploader,category,tags,p_image.filename_disk,p_image.title,p_files.directus_files_id.filename_disk" ); url.searchParams.set("limit", "1"); fetch(url.toString()) .then((res) => res.json()) .then((data) => setProject(data.data)) .catch(() => setProject(null)); }, [id]); if (!project) { return (
Loading project…
No files attached.
)}Uploaded by: {project.uploader || "—"}
Category: {project.category || "—"}