"use client"; import { useState } from "react"; import { useParams, useRouter } from "next/navigation"; import { ArrowLeft } from "lucide-react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { TaskInfoCard } from "@/components/tasks/task-info-card"; import { CommentSection } from "@/components/tasks/comment-section"; import { FileSection } from "@/components/tasks/file-section"; import { FileUploadDialog } from "@/components/tasks/file-upload-dialog"; import { TaskActions } from "@/components/tasks/task-actions"; import { useTask } from "@/hooks"; import { Badge } from "@/components/ui/badge"; /** * Task Detail Page * Zeigt alle Details einer einzelnen Task an * - Task-Info-Card mit allen Basis-Informationen * - Comment-Section für Kommentare * - File-Section für Datei-Anhänge * - Nur shadcn/ui Komponenten */ export default function TaskDetailPage() { const params = useParams(); const router = useRouter(); const taskId = params.id as string; /** * State für File-Upload-Dialog */ const [uploadDialogOpen, setUploadDialogOpen] = useState(false); /** * Hook zum Abrufen der Task-Daten */ const { data: task, isLoading, error } = useTask(taskId); /** * Handler für Zurück-Navigation */ const handleBack = () => { router.push("/dashboard/tasks"); }; /** * Loading State */ if (isLoading) { return (
); } /** * Error State */ if (error || !task) { return (

Fehler beim Laden der Task. Bitte versuchen Sie es erneut.

); } /** * Main Content */ return (
{/* Zurück-Button und Actions */}
{/* Task Titel und Beschreibung */} {task.was}

{task.wo}

{/* Grid Layout: Info links, Comments und Files rechts */}
{/* Linke Spalte: Task Info */} {/* Rechte Spalte: Comments und Files */}
setUploadDialogOpen(true)} />
{/* File Upload Dialog */}
); }