-
import React, { useEffect, useState } from "react";
type Status = "Todo" | "In Progress" | "Blocked" | "Done";
interface TaskComment {
id: string;
text: string;
createdAt: string; // ISO string
}
interface Task {
id: string;
title: string;
assignedTo: string;
dateReported: string; // YYYY-MM-DD
status: Status;
imageDataUrl?: string;
comments: TaskComment[];
createdAt: string; // ISO string
}
const STATUS_OPTIONS: Status[] = ["Todo", "In Progress", "Blocked", "Done"];
function formatDate(dateStr: string): string {
if (!dateStr) return "";
const [y, m, d] = dateStr.split("-").map(Number);
const dt = new Date(y || 0, (m || 1) - 1, d || 1);
return dt.toLocaleDateString();
}
function statusBadgeClasses(status: Status): string {
switch (status) {
case "Todo":
return "bg-gray-100 text-gray-700 border-gray-200";
case "In Progress":
return "bg-blue-100 text-blue-700 border-blue-200";
case "Blocked":
return "bg-red-100 text-red-700 border-red-200";
case "Done":
return "b… -
initial commit