diff --git a/components/cards/ReportCard.tsx b/components/cards/ReportCard.tsx index 668716d..b9870d4 100644 --- a/components/cards/ReportCard.tsx +++ b/components/cards/ReportCard.tsx @@ -7,7 +7,17 @@ import { decodeTime } from "ulid"; import relativeTime from "dayjs/plugin/relativeTime"; 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: Report }) { + const dueDate = +(report.content.report_reason.includes("Illegal") + ? yesterday + : lastWeek); + return ( @@ -37,6 +47,17 @@ export function ReportCard({ report }: { report: Report }) { {dayjs(decodeTime(report._id)).fromNow()}{" "} {report.status !== "Created" && report.closed_at && ( <>· Closed {dayjs(report.closed_at).fromNow()} + )}{" "} + {report.status === "Created" && decodeTime(report._id) < dueDate && ( + <> + ·{" "} + + Due{" "} + {dayjs() + .add(dayjs(decodeTime(report._id)).diff(dueDate)) + .fromNow()} + + )} diff --git a/components/ui/badge.tsx b/components/ui/badge.tsx index f000e3e..9ea1ab5 100644 --- a/components/ui/badge.tsx +++ b/components/ui/badge.tsx @@ -1,7 +1,7 @@ -import * as React from "react" -import { cva, type VariantProps } from "class-variance-authority" +import * as React from "react"; +import { cva, type VariantProps } from "class-variance-authority"; -import { cn } from "@/lib/utils" +import { cn } from "@/lib/utils"; const badgeVariants = cva( "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", @@ -14,6 +14,8 @@ const badgeVariants = cva( "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + "relatively-destructive": + "border-transparent bg-destructive/60 text-destructive-foreground hover:bg-destructive/40", outline: "text-foreground", }, }, @@ -21,7 +23,7 @@ const badgeVariants = cva( variant: "default", }, } -) +); export interface BadgeProps extends React.HTMLAttributes, @@ -30,7 +32,7 @@ export interface BadgeProps function Badge({ className, variant, ...props }: BadgeProps) { return (
- ) + ); } -export { Badge, badgeVariants } +export { Badge, badgeVariants };