import { createFileRoute, Link } from "@tanstack/react-router"; import { Exit } from "effect"; import { useAtomValue, useAtomSet } from "@effect/atom-react"; import { trackEvent } from "@executor-js/react/api/analytics"; import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; import { useCustomer } from "autumn-js/react"; import { toast } from "sonner"; import { orgDomainWriteKeys } from "@executor-js/react/api/reactivity-keys"; import { Button } from "@executor-js/react/components/button"; import { Badge } from "@executor-js/react/components/badge"; import { CopyButton } from "@executor-js/react/components/copy-button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@executor-js/react/components/dropdown-menu"; import { OrgPage as SharedOrgPage } from "@executor-js/react/pages/org"; import { orgDomainsAtom, getDomainVerificationLink, deleteDomain } from "../../web/org-atoms"; // --------------------------------------------------------------------------- // Cloud organization page. The members / roles / invite / org-name surface is // the SHARED `@executor-js/react` OrgPage over the provider-neutral // `/account/*` atoms — identical to self-host. Cloud composes its WorkOS-only // extras AROUND that page: // - a seat/billing banner (Autumn member-limit upsell) // - the WorkOS domain-verification section (over the surviving cloud-local // `/org/domains` endpoints) // These are cloud additions, not a fork of the shared page. // --------------------------------------------------------------------------- export const Route = createFileRoute("/{-$orgSlug}/org")({ component: OrgPage, }); type DomainData = { id: string; domain: string; state: string; verificationToken?: string; verificationPrefix?: string; }; function OrgPage() { return (
Verify a domain to let anyone with a matching email join automatically.
Join by domain is available on the Team plan.
Failed to load domains
No domains yet. Add your company domain so members can join without an invite.
); } return ({d.domain}
Add this TXT record to your DNS provider to verify ownership.
Type
Name
Value
TXT
@
{recordValue}
DNS changes can take up to 72 hours to propagate, but usually complete within a few minutes.