"use client"; import { useQuery } from "@tanstack/react-query"; import Link from "next/link"; import { useParams, useRouter } from "next/navigation"; import { Button } from "@/components/ui/button"; async function fetchProject(id: string) { const res = await fetch(`/api/projects/${id}`); if (!res.ok) throw new Error("Проект не найден"); return res.json(); } export default function ProjectPage() { const params = useParams<{ id: string }>(); const router = useRouter(); const { data: project, isLoading } = useQuery({ queryKey: ["project", params.id], queryFn: () => fetchProject(params.id), }); if (isLoading) return
Загрузка...
; if (!project) return
Проект не найден
; return (
← Назад

Freelancer Match

{project.title}

{project.description}

{project.category && ( {project.category} )}
{project.required_skills.map((skill: string) => ( {skill} ))}
{(project.budget_min || project.budget_max) && (
{project.budget_min ? `${project.budget_min.toLocaleString()}₽` : "—"} —{" "} {project.budget_max ? `${project.budget_max.toLocaleString()}₽` : "до бесконечности"}
)} {project.deadline && (

Дедлайн: {new Date(project.deadline).toLocaleDateString("ru-RU")}

)}
); }