190 lines · 9.2 KB
import { createFileRoute } from "@tanstack/react-router";
import { Fact, LegalPage, LegalSection, MailLink, Operator } from "~/components/legal/LegalPage";
import { getLegalInfo } from "~/fns/legal";
import { MINIMUM_AGE, MINIMUM_AGE_EEA } from "~/lib/legal";
import { TextLink } from "~/ui/TextLink";
import { seo } from "~/utils/seo";

export const Route = createFileRoute("/terms")({
  loader: () => getLegalInfo(),
  head: ({ match }) => ({
    meta: seo({
      origin: match.context.publicUrl,
      path: "/terms",
      title: "Terms of Service · gitfor",
      description: "The terms that govern your use of gitfor.",
    }),
  }),
  component: TermsPage,
});

function TermsPage() {
  const info = Route.useLoaderData();
  return (
    <LegalPage
      title="Terms of Service"
      lede={`These terms are an agreement between you and the operator of ${info.forgeName} for hosted Git repositories, code review, CI runners, editors, AI features and site hosting.`}
      info={info}
    >
      <LegalSection title="1. Who we are">
        <p>
          {info.forgeName} at {info.publicUrl || "this site"} is operated by <Operator info={info} />
          {info.address && <>, located at {info.address}</>} ("we", "us"). The software is open source; these terms
          cover only this hosted instance, not copies other people run.
        </p>
      </LegalSection>

      <LegalSection title="2. Accepting these terms">
        <p>
          By creating an account, signing in with GitHub, or otherwise using the service you agree to these terms, the{" "}
          <TextLink to="/acceptable-use">Acceptable Use Policy</TextLink> and the{" "}