import { useFormatters, useT } from "@agent-native/core/client/i18n"; import { IconUser, IconCalendar } from "@tabler/icons-react"; import { useMemo } from "react"; import { useParams } from "react-router"; import { dashboards } from "@/pages/adhoc/registry"; interface DashboardHeaderProps { title?: string; description?: string; actions?: React.ReactNode; } export function DashboardHeader({ title, description, actions, }: DashboardHeaderProps) { const { id } = useParams<{ id: string }>(); const t = useT(); const { formatDate } = useFormatters(); const metadata = useMemo(() => { return dashboards.find((d) => d.id === id); }, [id]); const displayTitle = title || metadata?.name || t("navigation.dashboard"); const dateFormat: Intl.DateTimeFormatOptions = { year: "numeric", month: "short", day: "numeric", }; function formatMetadataDate(value: string): string { try { return formatDate(value, dateFormat); } catch { return value; } } return (

{displayTitle}

{description && (

{description}

)}
{actions && (
{actions}
)}
{metadata && (
{metadata.author && (
{metadata.author}
)} {metadata.lastUpdated && (
{t("dashboardHeader.updated", { date: formatMetadataDate(metadata.lastUpdated), })}
)} {metadata.dateCreated && (
{t("dashboardHeader.created", { date: formatMetadataDate(metadata.dateCreated), })}
)}
)}
); }