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) => (
))}
>
);
}