22 lines · 1.0 KB · TypeScript
RawDownload
import { AdminApiClient } from "./admin-client"; // ---------------------------------------------------------------------------// Self-host admin atoms — typed, cached, reactive queries/mutations over the// app-local /api/admin/* invite-code surface, on the same atom registry as the// shared account atoms. Member management reuses the shared account atoms; only// invite codes are new here.// --------------------------------------------------------------------------- // Local reactivity key: invites only matter within this client, so they don't// belong in the shared cross-client ReactivityKey set.const INVITES_KEY = "self-host:invites"; export const invitesAtom = AdminApiClient.query("admin", "listInvites", {  reactivityKeys: [INVITES_KEY],}); export const createInvite = AdminApiClient.mutation("admin", "createInvite");export const revokeInvite = AdminApiClient.mutation("admin", "revokeInvite"); /** Mutations that change the invite list pass these at the call site. */export const inviteWriteKeys = [INVITES_KEY] as const;