import { useProjectTasks, useDeleteTask } from '../../../hooks/useTasks'; import type { InternTaskItem, ProjectDetail } from '../../../types/project.types'; import { ClipboardList, Pencil, Trash2 } from 'lucide-react'; import { useState } from 'react'; import CreateTaskModal from './components/CreateTaskDialog'; import EditTaskModal from './components/EditTaskDialog'; import { customToast } from '../../utils/showToast'; export default function TaskTab({ project }: { project: ProjectDetail }) { const { tasks, loading, error, refetch } = useProjectTasks(project.id); const { remove } = useDeleteTask(); const [isModalOpen, setIsModalOpen] = useState(false); const [editModalOpen, setEditModalOpen] = useState(false); const [selectedTask, setSelectedTask] = useState(null); const isProjectActive = project?.status === "active" const handleDeleteTask = async (taskId: number, taskTitle: string) => { const confirmed = window.confirm(`Yakin ingin menghapus task “${taskTitle}”?`); if (!confirmed) return; const del = await remove(taskId, String(project.id)); if (del) { try { customToast.success("Berhasil", `Task ${taskTitle} berhasil dihapus`) } catch (error) { customToast.error("Gagal", `Task ${taskTitle} gagal dihapus`) } finally { refetch(); } } }; if (loading) return (
{[...Array(3)].map((_, i) => (
))}
); if (error) return

{error}

; return (

Tasks


{loading ? (
{[...Array(tasks.length)].map((_, i) => (
))}
) : error ? (

{error}

) : tasks.length > 0 ? ( tasks.map((task, idx) => (
{task.title}
)) ) : (

Belum ada tugas yang dibuat untuk proyek ini.

) } {/* {tasks.length > 0 ? ( tasks.map((task, idx) => (
{task.title}
)) ) : (

Belum ada tugas yang dibuat untuk proyek ini.

)} */}
{isModalOpen && ( setIsModalOpen(false)} projectId={String(project.id)} onSuccess={() => { setIsModalOpen(false); refetch(); }} /> )} {editModalOpen && selectedTask && ( { setEditModalOpen(false); setSelectedTask(null); }} task={selectedTask} onSuccess={() => { setEditModalOpen(false); setSelectedTask(null); refetch(); }} /> )}
); }