import type { ReactNode } from "react"; import { Link } from "@tanstack/react-router"; import { useAtomValue } from "@effect/atom-react"; import { orgMembersAtom } from "../api/account-atoms"; import { isAsyncResultLoading } from "../lib/async-result"; import { useCanCreateWorkspaceConnections } from "../multiplayer/use-admin-nav"; import { Button } from "./button"; import { PageContainer, PageHeader } from "./page"; import { Skeleton } from "./skeleton"; /** Keep integration creation flows behind the same role gate as edit and delete. */ export function IntegrationCreationGate({ children }: { readonly children: ReactNode }) { const canCreate = useCanCreateWorkspaceConnections(); const members = useAtomValue(orgMembersAtom); if (canCreate) return children; if (isAsyncResultLoading(members)) { return ( ); } return ( ); }