diff --git a/src/Pages/internify/intern/components/ProjectTaskCard.tsx b/src/Pages/internify/intern/components/ProjectTaskCard.tsx index 43f034d..cddb41a 100644 --- a/src/Pages/internify/intern/components/ProjectTaskCard.tsx +++ b/src/Pages/internify/intern/components/ProjectTaskCard.tsx @@ -7,18 +7,27 @@ const formatDate = (dateStr: string) => const formatTime = (dateStr: string) => new Date(dateStr).toLocaleTimeString('id-ID', { hour: '2-digit', minute: '2-digit' }); -const statusStyles: Record = { +type DisplayStatus = InternTaskItem["submission_status"] | "overdue"; + +const statusStyles: Record = { not_submitted: "bg-gray-50 text-gray-700 border-gray-200", submitted: "bg-green-50 text-green-700 border-green-200", + overdue: "bg-red-50 text-red-700 border-red-200", }; -const statusLabels: Record = { +const statusLabels: Record = { not_submitted: "Pending", submitted: "Submitted", + overdue: "Overdue", }; export default function TaskCard({ task }: { task: InternTaskItem }) { const navigate = useNavigate(); + const displayStatus: DisplayStatus = + task.submission_status === "not_submitted" && + new Date(task.deadline_at).getTime() < Date.now() + ? "overdue" + : task.submission_status; return (
+ className={`font-semibold text-xs px-3.5 py-[5px] rounded-md whitespace-nowrap border ${statusStyles[displayStatus]}`}> {statusLabels[task.submission_status]}