useOrganization()
Access attributes of the currently active organization.
Overview
The useOrganization
hook gives you access to the current active organization attributes.
1import {useOrganization} from "@clerk/nextjs"23const useOrganizationParams = {4invitationList: { limit, offset }, // Pagination params5membershipList: { limit, offset } // Pagination params6};78const {9isLoaded,10organization,11invitationList,12membershipList,13membership,14} = useOrganization(useOrganizationParams);
These attributes are updated automatically and will re-render their respective components whenever you set a different organization using the setActive({ organization })
method or update any of the memberships or invitations.
Expanding invitationList
and/or membershipList
To keep network usage to a minimum but also to provide a smooth auto-updating experience to developers, we made the invitationList
and membershipList
attributes being available only when their respective parameters are present when calling the hook.
1const { invitationList } = useOrganization();23// returns undefined4console.log(invitationList)56const { invitationList } = useOrganization({7invitationList: {}8});9// invitationList is retrieved and auto-updating as expected.
Usage
In the following example, useOrganization
is used to map over the membershipList
of the current active organization and present membership attributes.
import { useOrganization } from "@clerk/nextjs";export default function MemberList() {const { membershipList} = useOrganization({membershipList: {},});if (!membershipList) {// loading statereturn null;}return (<div><h2>Organization members</h2><ul>{membershipList?.map((membership) => (<li key={membership.id}>{membership.publicUserData.firstName}{membership.publicUserData.lastName} <{membership.publicUserData.identifier}> :: {membership.role}</li>))}</ul></div>);}
To see a demo application utilizing the hook and the organizations feature, look at our organizations demo repository.