import Link from "next/link"; import type { Campaign, Map } from "@/payload-types"; import { Item, ItemContent, ItemDescription, ItemHeader, ItemTitle, } from "@/components/ui/item"; import { CalendarDaysIcon, ChevronRightIcon, CrosshairIcon } from "lucide-react"; interface MissionEntry { id: number; name: string; codeName: string; classification: { startDateTime: string; map: number | Map; campaign: number | Campaign; }; ownershipAndStatus: { status: string; }; } interface UpcomingMissionsProps { missions: MissionEntry[]; } export function UpcomingMissions({ missions }: UpcomingMissionsProps) { if (missions.length === 0) { return ( Upcoming Missions No missions scheduled. ); } return ( Upcoming Missions View all {missions.map((mission) => { const startDate = new Date(mission.classification.startDateTime); const dateStr = startDate.toLocaleDateString("en-US", { month: "short", day: "numeric", }); const timeStr = startDate.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", }); const campaign = typeof mission.classification.campaign === "object" ? (mission.classification.campaign as Campaign) : null; return ( {startDate.toLocaleDateString("en-US", { weekday: "short" })} {dateStr.split(" ")[1]} {timeStr} {mission.codeName} {mission.name} {campaign && ( {campaign.name} )} ); })} ); }
No missions scheduled.