import { useActionQuery } from "@agent-native/core/client/hooks"; import { useT } from "@agent-native/core/client/i18n"; import { isInAgentEmbed, postNavigate, } from "@agent-native/core/client/navigation"; import type { CalendarEvent } from "@shared/api"; import { IconClock, IconMapPin, IconUsers, IconAlignLeft, IconArrowUpRight, IconCalendar, } from "@tabler/icons-react"; import { format, parseISO, differenceInMinutes } from "date-fns"; import { useSearchParams } from "react-router"; import { Button } from "@/components/ui/button"; import { Spinner } from "@/components/ui/spinner"; import { messagesByLocale } from "@/i18n-data"; type EventPreviewResult = CalendarEvent | { error: string }; export function meta() { return [{ title: messagesByLocale["en-US"].routeTitles.eventPreview }]; } function formatDuration(start: string, end: string): string { const totalMinutes = differenceInMinutes(parseISO(end), parseISO(start)); const hours = Math.floor(totalMinutes / 60); const minutes = totalMinutes % 60; if (hours === 0) return `${minutes}m`; if (minutes === 0) return `${hours}h`; return `${hours}h ${minutes}m`; } function EventCard({ event }: { event: CalendarEvent }) { const t = useT(); const inEmbed = isInAgentEmbed(); return (
{event.description}
{t("eventPreview.couldNotLoadEvent")}
{message}