// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0 // The members pages (kit-tenancy's access pages, `@conusai-kit/tenancy/ui`) are for whoever holds // `tenancy.member.read`. Asked in the loader, before anything renders, so a member without the permission // gets a real 403 and a stranger a real 404 (src/server/guard.ts). import { createFileRoute, Outlet } from "@tanstack/react-router" import { createServerFn } from "@tanstack/react-start" import type { OrgParams } from "../server/org-pages" import { RoutePending } from "../ui/route-pending" import { tenancyStyles } from "../ui/tenancy-styles" const ROUTE = "/$org/members" const requireAccess = createServerFn({ method: "GET" }) .validator((params: OrgParams) => params) .handler(async ({ data }): Promise => { const [{ reported }, { requireAccessSection }] = await Promise.all([ import("../server/page"), import("../server/org-pages"), ]) return reported(ROUTE, () => requireAccessSection({ ...data, section: "members" })) }) export const Route = createFileRoute("/$org/_settings/members")({ loader: ({ params }) => requireAccess({ data: { org: params.org } }), head: tenancyStyles, pendingComponent: RoutePending, component: Outlet, })