import { Card, CardDescription, CardHeader, CardTitle } from "../ui/card"; import { Badge } from "../ui/badge"; import dayjs from "dayjs"; import { decodeTime } from "ulid"; import relativeTime from "dayjs/plugin/relativeTime"; import { ReportDocument } from "@/lib/db"; dayjs.extend(relativeTime); const lastWeek = new Date(); lastWeek.setDate(lastWeek.getDate() - 7); const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); export function ReportCard({ report }: { report: ReportDocument }) { const dueDate = +(report.content.report_reason.includes("Illegal") ? yesterday : lastWeek); return ( {report.status === "Resolved" ? ( Resolved ) : report.status === "Rejected" ? ( Closed for {report.rejection_reason} ) : ( report.content.report_reason.includes("Illegal") && ( Urgent ) )}{" "} {report.additional_context || "No reason specified"} {report._id.toString().substring(20, 26)} ·{" "} {report.content.report_reason} · {report.content.type} ·{" "} {dayjs(decodeTime(report._id)).fromNow()}{" "} {report.status !== "Created" && report.closed_at && ( <>· Closed {dayjs(report.closed_at).fromNow()} )}{" "} {report.case_id && ( <> ·{" "} Assigned )}{" "} {report.status === "Created" && decodeTime(report._id) < dueDate && ( <> ·{" "} Due{" "} {dayjs() .add(dayjs(decodeTime(report._id)).diff(dueDate)) .fromNow()} )} ); }