import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Megaphone, AlertTriangle, AlertCircle, Info } from "lucide-react"; import { useAnnouncements } from "@/hooks/queries"; import type { Announcement } from "@/types/communication"; const priorityConfig: Record = { urgent: { variant: "destructive", icon: }, important: { variant: "default", icon: }, normal: { variant: "secondary", icon: }, }; export default function StudentAnnouncements() { const { data: announcements = [], isLoading } = useAnnouncements(); const sorted = [...announcements] .filter(a => a.is_published) .sort((a, b) => new Date(b.published_at ?? b.expires_at ?? "").getTime() - new Date(a.published_at ?? a.expires_at ?? "").getTime()); if (isLoading) return
; return (

Announcements

Stay up to date with the latest announcements from your courses.

{sorted.map(a => { const cfg = priorityConfig[a.priority]; return (
{cfg.icon}
{a.title} {a.priority}

{a.content}

{a.author_name} {a.course_name && <>·{a.course_name}} {a.published_at && <>·{new Date(a.published_at).toLocaleDateString()}}
); })} {sorted.length === 0 && (

No announcements right now.

)}
); }