Skip to Content
Clerk logo

Clerk Docs

Ctrl + K
Go to clerkstage.dev

<OrganizationProfile /> Component

Organization Profile Example

The <OrganizationProfile /> component is used to render a beautiful, full-featured organization management UI that allows users to manage their organization profile and security settings.

mountOrganizationProfile()

Render the <OrganizationProfile /> component to an HTML <div> element.

Usage

import Clerk from '@clerk/clerk-js';
import { dark } from "@clerk/themes";
 
document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
  <div
    id="organization-profile"
  ></div>
`;
 
const organizationProfileComponent = document.querySelector<HTMLDivElement>('#organization-profile')!;
 
const clerk = new Clerk('pk_[publishable_key]');
await clerk.load();
 
clerk.mountOrganizationProfile(organizationProfileComponent, {
  appearance: {
    baseTheme: dark
  }
});
<div id="organization-profile"></div>
<script>
  const script = document.createElement('script');
  script.setAttribute('data-clerk-publishable-key', 'pk_[publishable_key]');
  script.async = true;
  script.src = `https://[your-domain].clerk.accounts.dev/npm/@clerk/clerk-js@latest/dist/clerk.browser.js`;
 
  script.addEventListener('load', async function () {
    await window.Clerk.load();
 
    const organizationProfileComponent = document.querySelector('#organization-profile');
 
    window.Clerk.mountOrganizationProfile(organizationProfileComponent, {
      appearance: {
        baseTheme: dark
      }
    });
  });
  document.body.appendChild(script);
</script>

Props

function mountOrganizationProfile(node: HTMLDivElement, props?: OrganizationProfileProps): void;
NameTypeDescription
nodeHTMLDivElementThe <div> element used to render in the <OrganizationProfile /> component
props?OrganizationProfilePropsThe properties to pass to the `<OrganizationProfile />` component

unmountOrganizationProfile()

Unmount and run cleanup on an existing <OrganizationProfile /> component instance.

Usage

import Clerk from '@clerk/clerk-js';
 
document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
  <div
    id="organization-profile"
  ></div>
`
 
const organizationProfileComponent = document.querySelector<HTMLDivElement>('#organization-profile')!;
 
const clerk = new Clerk('pk_[publishable_key]');
 
await clerk.load();
 
clerk.mountOrganizationProfile(organizationProfileComponent);
 
// ...
 
clerk.unmountOrganizationProfile(organizationProfileComponent);
<div id="organization-profile"></div>
<script>
  const script = document.createElement('script');
  script.setAttribute('data-clerk-publishable-key', 'pk_[publishable_key]');
  script.async = true;
  script.src = `https://[your-domain].clerk.accounts.dev/npm/@clerk/clerk-js@latest/dist/clerk.browser.js`;
 
  script.addEventListener('load', async function () {
    await window.Clerk.load();
 
    const organizationProfileComponent = document.querySelector('#organization-profile');
 
    window.Clerk.mountOrganizationProfile(organizationProfileComponent);
 
    // ...
 
    window.Clerk.unmountOrganizationProfile(organizationProfileComponent);
  });
  document.body.appendChild(script);
</script>

Props

function unmountOrganizationProfile(node: HTMLDivElement): void;
NameTypeDescription
nodeHTMLDivElementThe container <div> element with a rendered <OrganizationProfile /> component instance

openOrganizationProfile()

Opens the <OrganizationProfile /> component as an overlay at the root of your HTML body element.

Usage

import Clerk from '@clerk/clerk-js';
import { dark } from "@clerk/themes";
 
const clerk = new Clerk('pk_[publishable_key]');
await clerk.load();
 
clerk.openOrganizationProfile({
  appearance: {
    baseTheme: dark
  }
});
<script>
  const script = document.createElement('script');
  script.setAttribute('data-clerk-publishable-key', 'pk_[publishable_key]');
  script.async = true;
  script.src = `https://[your-domain].clerk.accounts.dev/npm/@clerk/clerk-js@latest/dist/clerk.browser.js`;
 
  script.addEventListener('load', async function () {
    await window.Clerk.load();
 
    window.Clerk.openOrganizationProfile({
      appearance: {
        baseTheme: dark
      }
    });
  });
  document.body.appendChild(script);
</script>

Props

function openOrganizationProfile(props?: OrganizationProfileProps): void;
NameTypeDescription
props?OrganizationProfilePropsThe properties to pass to the `<OrganizationProfile />` component

closeOrganizationProfile()

Closes the organization profile overlay.

Usage

import Clerk from '@clerk/clerk-js';
import { dark } from "@clerk/themes";
 
const clerk = new Clerk('pk_[publishable_key]');
await clerk.load();
 
clerk.openOrganizationProfile();
 
// ...
 
clerk.closeOrganizationProfile();
<script>
  const script = document.createElement('script');
  script.setAttribute('data-clerk-publishable-key', 'pk_[publishable_key]');
  script.async = true;
  script.src = `https://[your-domain].clerk.accounts.dev/npm/@clerk/clerk-js@latest/dist/clerk.browser.js`;
 
  script.addEventListener('load', async function () {
    await window.Clerk.load();
 
    window.Clerk.openOrganizationProfile();
 
    // ...
 
    window.Clerk.closeOrganizationProfile();
  });
  document.body.appendChild(script);
</script>

Props

function closeOrganizationProfile(): void;

OrganizationProfileProps

All props below are optional.

NameTypeDescription
afterLeaveOrganizationUrlstringFull URL or path to navigate after leaving an organization.
pathstringThe path where the component is mounted when path-based routing is used. -e.g. /org-profile. This prop is ignored in hash and virtual based routing.
routingRoutingStrategyThe routing strategy for your pages. Supported values are:
- hash (default): Hash based routing.
- path: Path based routing.
- virtual: Virtual based routing.
appearanceobjectControl the look and feel of the component.

Was this helpful?

Clerk © 2023