import React from "react"; import { FaTimes, FaTasks, FaCalendar, FaUser, FaChartLine, } from "react-icons/fa"; import { mockProjectTasks } from "../../../mocks/mockProjectTasks"; import { PsProject, TaskStatusEnum } from "../../../types/ps"; import dayjs from "dayjs"; import { PriorityEnum } from "../../../types/common"; interface TaskViewModalProps { project: PsProject; isOpen: boolean; onClose: () => void; } const statusConfig = { [TaskStatusEnum.NotStarted]: { name: "Başlamadı", color: "bg-gray-100 text-gray-800", }, [TaskStatusEnum.InProgress]: { name: "Devam Ediyor", color: "bg-yellow-100 text-yellow-800", }, [TaskStatusEnum.Completed]: { name: "Tamamlandı", color: "bg-green-100 text-green-800", }, [TaskStatusEnum.OnHold]: { name: "Beklemede", color: "bg-orange-100 text-orange-800", }, [TaskStatusEnum.Cancelled]: { name: "İptal Edildi", color: "bg-red-100 text-red-800", }, }; const priorityConfig = { [PriorityEnum.Low]: { name: "Düşük", color: "bg-green-100 text-green-800" }, [PriorityEnum.Normal]: { name: "Normal", color: "bg-blue-100 text-blue-800" }, [PriorityEnum.High]: { name: "Yüksek", color: "bg-orange-100 text-orange-800", }, [PriorityEnum.Urgent]: { name: "Acil", color: "bg-red-100 text-red-800" }, }; const Badge: React.FC<{ className?: string; children: React.ReactNode }> = ({ className, children, }) => ( {children} ); const TaskInfo: React.FC<{ icon: React.ElementType; label: string; value: string | number; }> = ({ icon: Icon, label, value }) => (

{label}

{value}

); const ProgressBar: React.FC<{ progress: number }> = ({ progress }) => { const getProgressColor = (p: number) => { if (p >= 100) return "bg-green-500"; if (p >= 70) return "bg-blue-500"; if (p >= 50) return "bg-yellow-500"; return "bg-red-500"; }; return (
İlerleme %{progress}
); }; const TaskViewModal: React.FC = ({ project, isOpen, onClose, }) => { if (!isOpen) return null; const projectTasks = mockProjectTasks.filter( (task) => task.projectId === project.id ); return (

Proje Görevleri

{project.name} - {project.code}

{projectTasks.length > 0 ? (
{projectTasks.map((task) => (

{task.name}

{task.taskCode} {statusConfig[task.status]?.name || "Bilinmiyor"} {priorityConfig[task.priority as PriorityEnum]?.name || "Bilinmiyor"}
{task.description && (

{task.description}

)}
{task.actualHours > 0 && (
Gerçek Saat: {task.actualHours}h / {task.estimatedHours}h
)}
))}
) : (

Görev bulunamadı

Bu proje için henüz görev tanımlanmamış.

)}
); }; export default TaskViewModal;