Use Settings Adapters

React hooks for integrating authentication and workspace settings into Notion's Settings Panel.

Installation

pnpm add @notion-kit/auth-ui

Supported Features

  • Account settings
    • Change password
    • Logged in sessions
    • Passkeys management
    • Link social accounts
  • Theme select
  • Localization support for EN, DE, ES
  • Timezone support
  • Update/delete/leave workspace
  • Members & scopes management
  • Teamspaces management
  • Billing & subscription management
  • Custom emoji management
  • Workspace icon upload

Usage


Settings Panel

You can see Notion Authn for a full example.

import { useSettingsAdapters } from "@notion-kit/auth-ui"; 

function Settings() {
  const [tab, setTab] = useState<TabType>("account");
  const adapters = useSettingsAdapters(); 

  return (
    <SettingsProvider adapters={adapters}>
      <SettingsPanel>
        <SettingsSidebar>
          <SettingsSidebarPreset tab={tab} onTabChange={setTab} />
        </SettingsSidebar>
        <SettingsContent>
          <SettingsBodyPreset tab={tab} onTabChange={setTab} />
        </SettingsContent>
      </SettingsPanel>
    </SettingsProvider>
  );
}

API Reference

useSettingsAdapters

Note

It should be used within the <AuthProvider> context.

Returns a SettingsAdapters object containing domain-specific adapters for account, sessions, passkeys, connections, workspace, people, invitations, teamspaces, emoji, and billing.

It also provides an uploadFile handler for workspace icon uploads via Supabase Storage.

Each adapter provides query (getAll) and mutation methods for its domain. All adapters are optional — include only the ones your application supports.

Individual Adapter Hooks

You can also use individual adapter hooks for more granular control:

HookReturns
useAccountAdapterAccountAdapter
useSessionsAdapterSessionsAdapter
usePasskeysAdapterPasskeysAdapter
useConnectionsAdapterConnectionsAdapter
useWorkspaceAdapterWorkspaceAdapter
usePeopleAdapterPeopleAdapter
useInvitationsAdapterInvitationsAdapter
useTeamspacesAdapterTeamspacesAdapter
useBillingAdapterBillingAdapter
useEmojiAdapterEmojiAdapter

See schema definitions for: