import { createFileRoute, useNavigate } from "@tanstack/react-router";
import { requireSignedIn } from "~/lib/route-guards";
import { deleteOrganization } from "~/fns/account";
import { useAction } from "~/hooks/use-action";
import { PageContainer } from "~/ui/PageContainer";
import { Panel } from "~/ui/Panel";
import { Button } from "~/ui/Button";
import { CheckboxField, TextField } from "~/ui/Field";
import { ErrorBanner } from "~/ui/Callout";
import { Heading } from "~/ui/Heading";
export const Route = createFileRoute("/orgs/$org/settings")({
beforeLoad: ({ context, location }) => {
requireSignedIn({ context, location });
},
component: OrgSettingsPage,
});
function OrgSettingsPage() {
const { org } = Route.useParams();
const navigate = useNavigate();
const remove = useAction(deleteOrganization, { invalidate: false });
return (
<PageContainer className="max-w-3xl space-y-4">
<Heading>{org} settings</Heading>
<Panel tone="danger" title="Danger zone">
<form
className="space-y-3 p-5"
onSubmit={async (event) => {
event.preventDefault();
const form = new FormData(event.currentTarget);
const result = await remove.run({
data: {
org,
confirm: String(form.get("confirm") ?? ""),
deleteRepos: form.get("deleteRepos") === "on",
},
});
if (result) await navigate({ to: "/" });
}}