# OrganizationProfileView

![The OrganizationProfileView renders the Active Organization's management interface, including members, domains, and other Organization settings.](https://clerk.com/docs/raw/_public/images/ui-components/ios-organization-profile-view-v2.png){{ style: { maxWidth: '427px' } }}

The `OrganizationProfileView` renders the Active Organization's management interface. It includes permission-gated Organization profile editing, member management, invitations, membership requests, Verified Domains, and flows for leaving or deleting the Organization.

`OrganizationProfileView` renders content only when a session has an Active Organization. Rows and actions are shown according to the current user's Organization membership permissions and the current environment settings.

## Parameters

| Name           | Type                      | Description                                                                                                                                                         |
| -------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| isDismissable  | Bool                      | Whether the view can be dismissed by the user. When true, a dismiss button appears in the navigation bar. When false, no dismiss button is shown. Defaults to true. |
| navigationPath | Binding<NavigationPath>? | An optional parent navigation path for embedded usage. Pass a parent path when the view is hosted inside your own NavigationStack.                                  |

## Visible rows and permissions

The profile view shows Organization controls based on the active membership's permissions and instance settings:

- **Update profile** appears when the user has `canManageProfile`.
- **Members** appears when the user has `canReadMemberships` or `canManageMemberships`.
- **Verified domains** appears when Organization domains are enabled and the user has `canReadDomains` or `canManageDomains`.
- **Leave Organization** appears when there is an Active Organization membership.
- **Delete Organization** appears when dashboard admin delete is enabled, `organization.adminDeleteEnabled` is `true`, and the user has `canDeleteOrganization`.

## Custom rows

Use `OrganizationProfileCustomRow` with `.organizationProfileRows()` to insert custom rows relative to built-in rows or sections. When `OrganizationProfileView` manages its own `NavigationStack`, use `.organizationProfileDestination()` to provide destination views for those custom routes.

Related types:

- `OrganizationProfileCustomRow`
- `OrganizationProfileRowIcon`
- `OrganizationProfileCustomRowPlacement`
- `OrganizationProfileRow`
- `OrganizationProfileSection`

## Usage

The following examples show how to use the `OrganizationProfileView` in your app.

### Fullscreen Organization profile

```swift
import ClerkKitUI
import SwiftUI

struct OrganizationSettingsScreen: View {
  var body: some View {
    OrganizationProfileView(isDismissable: false)
  }
}
```

### Dismissible sheet

```swift
import ClerkKitUI
import SwiftUI

struct OrganizationSettingsButton: View {
  @State private var profileIsPresented = false

  var body: some View {
    Button("Organization settings") {
      profileIsPresented = true
    }
    .sheet(isPresented: $profileIsPresented) {
      OrganizationProfileView()
    }
  }
}
```

### Embedded navigation

```swift
import ClerkKitUI
import SwiftUI

struct OrganizationSettingsScreen: View {
  @State private var path = NavigationPath()

  var body: some View {
    NavigationStack(path: $path) {
      OrganizationProfileView(
        isDismissable: false,
        navigationPath: $path
      )
    }
  }
}
```

### Custom rows and destinations

```swift
import ClerkKitUI
import SwiftUI

enum OrganizationRoute: Hashable {
  case settings
  case support
}

OrganizationProfileView()
  .organizationProfileRows([
    .init(
      route: .settings,
      title: "Settings",
      icon: .system(name: "gear"),
      placement: .after(.members)
    ),
    .init(
      route: .support,
      title: "Support",
      icon: .system(name: "questionmark.circle"),
      placement: .sectionEnd(.actions)
    ),
  ])
  .organizationProfileDestination { (route: OrganizationRoute) in
    switch route {
    case .settings:
      // Replace this placeholder with the custom view for your Settings row.
      OrganizationSettingsContent()
    case .support:
      // Replace this placeholder with the custom view for your Support row.
      OrganizationSupportContent()
    }
  }
```

---

## Sitemap

[Overview of all docs pages](https://clerk.com/docs/llms.txt)
