"use client"; import { useEffect, useState } from "react"; import { useParams } from "next/navigation"; import { getProjects, Project } from "@/lib/api"; import Sidebar from "@/components/Sidebar"; import KanbanBoard from "@/components/KanbanBoard"; import ChatPanel from "@/components/ChatPanel"; import ProjectFiles from "@/components/ProjectFiles"; import ProjectSettings from "@/components/ProjectSettings"; const TABS = [ { key: "board", label: "📋 Доска" }, { key: "chat", label: "💬 Чат" }, { key: "files", label: "📁 Файлы" }, { key: "settings", label: "⚙️ Настройки" }, ]; export default function ProjectPage() { const { slug } = useParams<{ slug: string }>(); const [projects, setProjects] = useState([]); const [loading, setLoading] = useState(true); const [activeTab, setActiveTab] = useState("board"); useEffect(() => { getProjects() .then(setProjects) .catch(() => {}) .finally(() => setLoading(false)); }, []); const project = projects.find((p) => p.slug === slug); const handleProjectUpdated = (updated: Project) => { setProjects((prev) => prev.map((p) => (p.id === updated.id ? updated : p))); }; if (loading) { return
Загрузка...
; } if (!project) { return
Проект не найден
; } return (

{project.name}

{project.description && (

{project.description}

)}
{TABS.map((tab) => ( ))}
{activeTab === "board" && ( )} {activeTab === "chat" && project.chat_id && ( )} {activeTab === "chat" && !project.chat_id && (
Чат недоступен
)} {activeTab === "files" && ( )} {activeTab === "settings" && ( )}
); }