import { createFileRoute, Link, notFound } from "@tanstack/react-router"; import { CtaBand } from "~/components/marketing/CtaBand"; import { DisplayTitle } from "~/components/marketing/DisplayTitle"; import { FeatureDemo } from "~/components/marketing/FeatureDemo"; import { MarketingHero } from "~/components/marketing/MarketingHero"; import { FEATURE_PAGES, featurePage } from "~/lib/marketing/features"; import { buttonClass } from "~/ui/Button"; import { CodeBlock } from "~/ui/CodeBlock"; import { PageContainer } from "~/ui/PageContainer"; import { TextLink } from "~/ui/TextLink"; import { seo } from "~/utils/seo"; import { featureOgPath } from "~/lib/og"; export const Route = createFileRoute("/features/$slug")({ loader: ({ params }) => { const page = featurePage(params.slug); if (!page) throw notFound(); return page; }, head: ({ loaderData, match }) => ({ meta: loaderData ? seo({ origin: match.context.publicUrl, path: `/features/${loaderData.slug}`, title: `${loaderData.nav} ยท gitfor`, description: loaderData.lede, image: featureOgPath(loaderData.slug, loaderData.title, loaderData.lede), imageAlt: loaderData.title, }) : [], }), component: FeaturePage, }); function FeaturePage() { const page = Route.useLoaderData(); const others = FEATURE_PAGES.filter((other) => other.slug !== page.slug); return ( <> } actions={ <> Create an account All features } />
{page.highlights.map((item) => (
{item.title}
{item.body}
))}
{page.details.map((detail) => (

{detail.body}

{detail.code && ( )}
))}
); }