"use client" import Link from "next/link" import { Badge } from "@/shared/components/ui/badge" import { Card, CardContent, CardHeader, CardTitle } from "@/shared/components/ui/card" import { formatDate } from "@/shared/lib/utils" import type { Announcement } from "../types" const STATUS_LABEL: Record = { draft: "Draft", published: "Published", archived: "Archived", } const STATUS_VARIANT: Record< Announcement["status"], "default" | "secondary" | "outline" > = { draft: "secondary", published: "default", archived: "outline", } const TYPE_LABEL: Record = { school: "School", grade: "Grade", class: "Class", } export function AnnouncementCard({ announcement, href, }: { announcement: Announcement href?: string }) { const card = ( {announcement.title} {STATUS_LABEL[announcement.status]}

{announcement.content}

{TYPE_LABEL[announcement.type]} {announcement.publishedAt ? `Published ${formatDate(announcement.publishedAt)}` : `Updated ${formatDate(announcement.updatedAt)}`} {announcement.authorName ? ( by {announcement.authorName} ) : null}
) if (href) { return ( {card} ) } return card }