Settings Objects

Settings Store

The core object for settings panel.

Properties

PropTypeDescription
account*AccountStoreUser account.
workspace*WorkspaceStoreCurrent workspace.
memberships*Record<string, Membership>Memberships in current workspace.

Account Store

Properties

PropTypeDescription
id*stringUnique identifier of the user.
name*stringUser's name.
email*stringUser's email.
avatarUrl*stringChosen avatar image.
preferredName*stringPreferred name of the user.
hasPasswordbooleanWhether user has set password.
language"en" | "de" | "es"Preferred language.

Example

{
  id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
  name: "Steve",
  email: "steve@example.com",
  avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
  preferredName: "Steeeee",
  language: "de"
}

Workspace Store

Properties

PropTypeDescription
id*stringUnique identifier of the workspace.
name*stringName of the workspace.
icon*IconDataIcon of the workspace.
domain*stringPublic domain.
inviteLink*stringInvite link for the workspace.
plan*PlanPlan of the workspace.
role*RoleRole of the user in this workspace.

Example

{
  id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
  name: "Workspace",
  icon: { type: "text", src: "W" },
  domain: "notion.so",
  inviteLink: "notion.so/e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
  plan: "free",
  role: "owner"
}

Membersip

There are 2 types of membership.

  1. Workspace owner or member
  2. Guest

Properties

The properties is defined by

type Membership =
  | ({ role: Role.OWNER | Role.MEMBER } & MemberRow)
  | ({ role: Role.GUEST } & GuestRow);

See schema definitions for:

Connection

The row data of the connections table.

Properties

PropTypeDescription
id*stringUnique identifier of the connection.
connection*{ type: string, account: string }The connection type and account.
scopesstring[]Available scopes of the connection.

Example

{
  id: "be633bf1-dfa0-436d-b259-571129a590e5",
  connection: { type: "github", account: "steeeee0223" },
  scopes: ["can view"]
}

Member Row

The row data of the members table.

Properties

PropTypeDescription
user*UserInformation of the member.
role*RoleRole of the member.
teamspaces*CellOptions<GroupOption>Available teamspaces.
groups*CellOptions<GroupOption>Available groups.

See schema definitions for:

Example

{
  user: {
    id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
    name: "Steve",
    email: "steve@example.com",
    avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
  },
  role: "owner",
  teamspaces: {
    current: "t1",
    options: [
      { id: "t1", name: "Teamspace 1", memberCount: 25 },
      { id: "t2", name: "Teamspace 2", memberCount: 10 },
      { id: "t3", name: "Teamspace 3", memberCount: 32 },
    ]
  },
  groups: {
    current: "g1",
    options: [
      { id: "g1", name: "Group 1", memberCount: 2 },
      { id: "g2", name: "Group 2", memberCount: 1 },
      { id: "g3", name: "Group 3", memberCount: 3 },
    ]
  }
}

Guest Row

The row data of the guests table.

Properties

PropTypeDescription
user*UserInformation of the guest.
access*PageAccess[]Available pages for the guest.

See schema definitions for:

Example

{
  user: {
    id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
    name: "Steve",
    email: "steve@example.com",
    avatarUrl: "https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg"
  },
  role: "owner",
  teamspaces: {
    current: "t1",
    options: [
      { id: "t1", name: "Teamspace 1", memberCount: 25 },
      { id: "t2", name: "Teamspace 2", memberCount: 10 },
      { id: "t3", name: "Teamspace 3", memberCount: 32 },
    ]
  },
  groups: {
    current: "g1",
    options: [
      { id: "g1", name: "Group 1", memberCount: 2 },
      { id: "g2", name: "Group 2", memberCount: 1 },
      { id: "g3", name: "Group 3", memberCount: 3 },
    ]
  }
}

Group Option

Properties

PropTypeDescription
id*stringThe unique identifier of the group.
name*stringName of the group.
memberCount*numberThe number of members in the group.

Example

{
  id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
  name: "Group name",
  memberCount: 3
}

Cell Options

A CellOptions is a generic type CellOptions<T>, where T extends { id: string }.

Properties

PropTypeDescription
current*string | nullThe unique identifier of current option, i.e. options[i].id
options*T[]Available options.

Example

An example for CellOptions<{ id: string, title: string }>

{
  current: "a",
  options: [
    { id: "a", title: "A" },
    { id: "b", title: "B" },
    { id: "c", title: "C" },
  ]
}

Page Access

Properties

PropTypeDescription
id*stringThe unique identifier of the page.
name*stringName of the page.
scope*stringThe user scope of the page.

Example

{
  id: "e79a0b74-3aba-4149-9f74-0bb5791a6ee6",
  name: "Page 1",
  scope: 'can edit'
}

On this page