Skip to main content

useActiveOrganization

The useActiveOrganization hook provides access to the currently active organization and methods to manage it.

Return Value

activeOrganization
Organization | null
The active organization object
activeMembership
OrganizationMembership | null
User’s membership in active organization
loading
boolean
Whether data is loading
error
Error | null
Any error that occurred
refetch
updateOrganization
getMembers
getRoles
getDomains
addDomain
verifyDomain
removeDomain
removeMember
leave
removeRole
addMemberRole
removeMemberRole
inviteMember
invitation.email
string
required
Email address of the user to invite
invitation.organizationRole
OrganizationRole
required
Organization role to assign to the invited user
invitation.workspace
Workspace
Optional workspace to also invite the user to
invitation.workspaceRole
WorkspaceRole
Optional workspace role to assign
discardInvitation
resendInvitation
getInvitations
getEnterpriseConnections
createEnterpriseConnection
updateEnterpriseConnection
deleteEnterpriseConnection
testEnterpriseConnectionConfig
testEnterpriseConnection
generateSCIMToken
getSCIMToken
revokeSCIMToken

Examples

Display Active Organization

import { useActiveOrganization } from "@wacht/tanstack-router";

function OrgHeader() {
  const { activeOrganization } = useActiveOrganization();

  return (
    <header>
      <h1>{activeOrganization?.name}</h1>
      <p>{activeOrganization?.description}</p>
    </header>
  );
}

Update Organization

import { useActiveOrganization } from "@wacht/tanstack-router";

function OrgSettings() {
  const { updateOrganization } = useActiveOrganization();

  const handleUpdate = async () => {
    await updateOrganization({
      name: "Updated Name",
      description: "Updated description",
    });
  };

  return <button onClick={handleUpdate}>Update Organization</button>;
}

Get Members

import { useActiveOrganization } from "@wacht/tanstack-router";

function OrgMembers() {
  const { getMembers } = useActiveOrganization();
  const [members, setMembers] = useState([]);

  useEffect(() => {
    getMembers().then(setMembers);
  }, [getMembers]);

  return (
    <ul>
      {members.map((member) => (
        <li key={member.id}>{member.user?.first_name}</li>
      ))}
    </ul>
  );
}

Leave Organization

import { useActiveOrganization } from "@wacht/tanstack-router";

function LeaveOrgButton() {
  const { leave } = useActiveOrganization();

  return (
    <button onClick={() => leave()}>
      Leave Organization
    </button>
  );
}

Data Structures

OrganizationInvitationPayload
email
string
Email address of the user to invite
organizationRole
OrganizationRole
Organization role to assign to the invited user
workspace
Workspace | null
Optional workspace to also invite the user to
workspaceRole
WorkspaceRole | null
Optional workspace role to assign
OrganizationInvitation
id
string
Unique identifier for the invitation
email
string
Email address of the invited user
organization_id
string
ID of the organization this invitation belongs to
initial_organization_role
OrganizationRole
Initial organization role assigned
workspace
Workspace
Associated workspace (if also invited to a workspace)
initial_workspace_role
WorkspaceRole
Initial workspace role assigned
inviter
OrganizationMembership
The user who sent this invitation
expired
boolean
Whether the invitation has expired
created_at
string
ISO 8601 timestamp when the invitation was created
updated_at
string
ISO 8601 timestamp when the invitation was last updated