import { MembersList } from "./components/membersList"; import { getOrgMembers } from "@/actions"; import { isServiceError } from "@/lib/utils"; import { getOrgFromDomain } from "@/data/org"; import { InviteMemberCard } from "./components/inviteMemberCard"; import { Tabs, TabsContent } from "@/components/ui/tabs"; import { TabSwitcher } from "@/components/ui/tab-switcher"; import { InvitesList } from "./components/invitesList"; import { getOrgInvites, getMe } from "@/actions"; import { IS_BILLING_ENABLED } from "@/ee/features/billing/stripe"; import { ServiceErrorException } from "@/lib/serviceError"; interface MembersSettingsPageProps { params: { domain: string }, searchParams: { tab?: string } } export default async function MembersSettingsPage({ params: { domain }, searchParams: { tab } }: MembersSettingsPageProps) { const org = await getOrgFromDomain(domain); if (!org) { throw new Error("Organization not found"); } const me = await getMe(); if (isServiceError(me)) { throw new ServiceErrorException(me); } const userRoleInOrg = me.memberships.find((membership) => membership.id === org.id)?.role; if (!userRoleInOrg) { throw new Error("User role not found"); } const members = await getOrgMembers(domain); if (isServiceError(members)) { throw new ServiceErrorException(members); } const invites = await getOrgInvites(domain); if (isServiceError(invites)) { throw new ServiceErrorException(invites); } const currentTab = tab || "members"; return (
Invite and manage members of your organization.