import { issueStateTone } from "~/ui/tones"; import { createFileRoute, Link } from "@tanstack/react-router"; import { getMilestone } from "~/fns/milestones"; import { ProgressBar } from "~/components/ProgressBar"; import { Badge } from "~/ui/Badge"; import { EmptyState } from "~/ui/EmptyState"; import { Markdown } from "~/ui/Markdown"; import { Panel } from "~/ui/Panel"; import { RelativeTime } from "~/ui/RelativeTime"; import { Heading } from "~/ui/Heading"; export const Route = createFileRoute("/$owner/$repo/milestones/$id")({ loader: ({ params }) => getMilestone({ data: { owner: params.owner, repo: params.repo, id: params.id } }), component: MilestonePage, }); function MilestonePage() { const { milestone, issues } = Route.useLoaderData(); const params = Route.useParams(); return (
{milestone.title} {milestone.state}

{milestone.dueOn ? `Due ${new Date(milestone.dueOn).toLocaleDateString()}` : "No due date"}

{milestone.description && }
{issues.length === 0 ? ( ) : (
    {issues.map((issue) => (
  • ● {issue.title} #{issue.number} by {issue.author} ·
  • ))}
)}
); }