<OrganizationList />
component
The <OrganizationList />
component is used to display organization related memberships, invitations, and suggestions for the user.
All props are optional.
Name hidePersonal
Type boolean
Description By default, users can switch between organization and their personal account. This option controls whether <OrganizationList />
will include the user's personal account in the organization list. Setting this to false
will hide the personal account entry, and users will only be able to switch between organizations. Defaults to false
.
Name skipInvitationScreen
Type boolean
| undefined
Description Hides the screen for sending invitations after an organization is created. When left undefined Clerk will automatically hide the screen if the number of max allowed members is equal to 1. Defaults to false
.
Name appearance
Type Appearance | undefined
Description Name afterCreateOrganizationUrl
Type ((org: Organization ) => string)
| string
Description Full URL or path to navigate to after creating a new organization.
Name afterSelectOrganizationUrl
Type ((org: Organization ) => string)
| string
Description Full URL or path to navigate to after selecting an organization. Defaults to undefined
.
Name afterSelectPersonalUrl
Type ((org: Organization ) => string)
| string
Description Full URL or path to navigate to after selecting the personal account. Defaults to undefined
.
/app /discover /page.tsx import { OrganizationList } from "@clerk/nextjs" ;
export default function OrganizationListPage () {
return (
< OrganizationList
afterCreateOrganizationUrl = '/organization/:slug'
afterSelectPersonalUrl = '/user/:id'
afterSelectOrganizationUrl = '/organization/:slug'
/>
);
}
/pages /discover.tsx import { OrganizationList } from "@clerk/nextjs" ;
export default function OrganizationListPage () {
return (
< OrganizationList
afterCreateOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
afterSelectPersonalUrl = {user => `/user/ ${ user .id } ` }
afterSelectOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
/>
);
}
discover.tsx import { OrganizationList } from "@clerk/clerk-react" ;
export default function OrganizationListPage () {
return (
< OrganizationList
afterCreateOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
afterSelectPersonalUrl = {user => `/user/ ${ user .id } ` }
afterSelectOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
/>
);
}
/route /discover.tsx import { OrganizationList } from "@clerk/remix" ;
export default function OrganizationListPage () {
return (
< OrganizationList
afterCreateOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
afterSelectPersonalUrl = {user => `/user/ ${ user .id } ` }
afterSelectOrganizationUrl = {org => `/organization/ ${ org .slug } ` }
/>
);
}
The following methods available on an instance of the Clerk
class are used to render and control the <OrganizationList />
component:
The following examples assume that you have followed the quickstart in order to add Clerk to your JavaScript application.
Render the <OrganizationList />
component to an HTML <div>
element.
function mountOrganizationList (node : HTMLDivElement , props ?: OrganizationListProps ) : void ;
Name node
Type HTMLDivElement
Description The <div>
element used to render in the <OrganizationList />
component
Name props?
Type OrganizationListProps
Description The properties to pass to the <OrganizationList />
component
main.js import Clerk from '@clerk/clerk-js' ;
// Initialize Clerk with your Clerk publishable key
const clerk = new Clerk ( ' YOUR_PUBLISHABLE_KEY ' );
await clerk .load ();
document .getElementById ( "app" ).innerHTML = `
<div id="organization-list"></div>
` ;
const orgListDiv =
document .getElementById ( "organization-list" );
clerk .mountOrganizationList (orgListDiv);
index.html <!-- Add a <div id="organization-list"> element to your HTML -->
< div id = "organization-list" ></ div >
<!-- Initialize Clerk with your
Clerk Publishable key and Frontend API URL -->
< script
async
crossorigin = "anonymous"
data-clerk-publishable-key = " YOUR_PUBLISHABLE_KEY "
src = "https:// YOUR_FRONTEND_API_URL /npm/@clerk/clerk-js@latest/dist/clerk.browser.js"
type = "text/javascript"
></ script >
< script >
window .addEventListener ( "load" , async function () {
await Clerk .load ();
const orgListDiv =
document .getElementById ( 'organization-list' );
Clerk .mountOrganizationList (orgListDiv);
});
</ script >
Unmount and run cleanup on an existing <OrganizationList />
component instance.
function unmountOrganizationList (node : HTMLDivElement ) : void ;
Name node
Type HTMLDivElement
Description The container <div>
element with a rendered <OrganizationList />
component instance
main.js import Clerk from '@clerk/clerk-js' ;
// Initialize Clerk with your Clerk publishable key
const clerk = new Clerk ( ' YOUR_PUBLISHABLE_KEY ' );
await clerk .load ();
document .getElementById ( 'app' ).innerHTML = `
<div id="organization-list"></div>
`
const orgListDiv =
document .getElementById ( 'organization-list' );
clerk .mountOrganizationList (orgListDiv);
// ...
clerk .unmountOrganizationList (orgListDiv);
index.html <!-- Add a <div id="organization-list"> element to your HTML -->
< div id = "organization-list" ></ div >
<!-- Initialize Clerk with your
Clerk Publishable key and Frontend API URL -->
< script
async
crossorigin = "anonymous"
data-clerk-publishable-key = " YOUR_PUBLISHABLE_KEY "
src = "https:// YOUR_FRONTEND_API_URL /npm/@clerk/clerk-js@latest/dist/clerk.browser.js"
type = "text/javascript"
></ script >
< script >
window .addEventListener ( "load" , async function () {
await Clerk .load ();
const orgListDiv =
document .getElementById ( 'organization-list' );
Clerk .mountOrganizationList (orgListDiv);
// ...
Clerk .unmountOrganizationList (orgListDiv);
});
</ script >
If you would like to prohibit people from using their personal accounts and force them to be part of an organization, the hidePersonal
property forces your user to join or create an organization in order to continue. For more information on how to hide Personal Accounts and force organizations, see the dedicated guide .
organization-portal.tsx export default function OrganizationListPage () {
return (
< OrganizationList
hidePersonal = { true }
{ ... }
/>
);
};