Users#

Manage user profiles, per-user settings, and user lifecycle operations.

Provider required

All hooks require a BrandwaveProvider ancestor in your component tree. See the React Hooks overview for setup instructions.

useListUsers#

List users in an organization with pagination and name search.

typescript
import { useListUsers } from '@brandwave/react';

const { data, isLoading } = useListUsers({
  pageIndex: 0,
  pageSize: 25,
  organizationId: 'org_123',
});

Parameters#

NameTypeRequiredDescription
pageIndexintegerRequiredZero-based page index for pagination.
pageSizeintegerRequiredNumber of items per page (1-100).
organizationIdstring (UUID)RequiredOrganization identifier.
searchTermstringFree-text search term to filter results (max 200 characters).
sortBystringColumn name to sort by.
sortDirection'asc' | 'desc'Sort direction: ascending or descending.

Response#

Returns { items, totalCount, facets } with paginated results.

Underlying SDK method: bw.users.list(params)

useCreateUser#

Create a new user record during sign-up.

typescript
import { useCreateUser } from '@brandwave/react';

const { mutate, isPending } = useCreateUser();

mutate({
  userId: 'user_abc123',
  email: 'user@example.com',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier (from auth provider).
emailstringRequiredUser email address.
namestring | nullUser display name (max 255 characters).
jobRolestring | nullUser job role (max 100 characters).

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.create(params)

useUser#

Retrieve a single user by ID.

typescript
import { useUser } from '@brandwave/react';

const { data, isLoading } = useUser({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredUser identifier.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users({ id })

useUpdateUser#

Update a user's profile information. Updatable fields: name (display name), email, jobRole (e.g. 'Head of Marketing'), avatarKey (storage key, null to remove). Only include the fields you want to change.

typescript
import { useUpdateUser } from '@brandwave/react';

const { mutate, isPending } = useUpdateUser();

mutate({
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier to update.
namestringUpdated display name (1-255 characters).
emailstringUpdated email address.
jobRolestring | nullUpdated job role (max 100 characters).
avatarKeystring | nullStorage key for the user avatar image. Set to null to remove.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.update(params)

useRequestAvatarUpload#

Request a presigned URL for uploading a user avatar image. The client uploads the file directly using the returned URL, then calls PATCH /users/:id with the avatarKey.

typescript
import { useRequestAvatarUpload } from '@brandwave/react';

const { mutate, isPending } = useRequestAvatarUpload();

mutate({
  userId: 'user_abc123',
  contentLength: '...',
  contentType: '...',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier requesting an avatar upload URL.
contentLengthintegerRequiredSize of the file in bytes.
contentType'image/jpeg' | 'image/png' | 'image/webp' | 'image/gif'RequiredMIME type of the file.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.requestAvatarUpload(params)

useChangeEmail#

Request a change to the user's email address.

typescript
import { useChangeEmail } from '@brandwave/react';

const { mutate, isPending } = useChangeEmail();

mutate({
  userId: 'user_abc123',
  newEmail: '...',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier requesting the email change.
newEmailstringRequiredThe new email address to change to.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.changeEmail(params)

useRequestDeletion#

Request an account deletion confirmation email after verifying ownership safeguards.

typescript
import { useRequestDeletion } from '@brandwave/react';

const { mutate, isPending } = useRequestDeletion();

mutate({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredUser identifier requesting account deletion.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.requestDeletion(params)

useConfirmDeletion#

Validate an account deletion token and re-check ownership safeguards before final deletion.

typescript
import { useConfirmDeletion } from '@brandwave/react';

const { mutate, isPending } = useConfirmDeletion();

mutate({
  id: 'abc-123',
  token: '...',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredUser identifier confirming account deletion.
tokenstring (UUID)RequiredDeletion confirmation token from the email link.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.confirmDeletion(params)

useDeleteUser#

Delete a user account using an optional email confirmation token, revoke access, remove memberships, and clear saved profile details.

typescript
import { useDeleteUser } from '@brandwave/react';

const { mutate, isPending } = useDeleteUser();

mutate({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredUser identifier to delete.
tokenstring (UUID)Optional deletion confirmation token from the email link.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.delete(params)

useUserSettings#

Retrieve a user's personal settings.

typescript
import { useUserSettings } from '@brandwave/react';

const { data, isLoading } = useUserSettings({
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier to fetch settings for.

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.settings(params)

useUpdateUserSettings#

Create or update a user's settings, including switching the active organization and managing UI preferences.

typescript
import { useUpdateUserSettings } from '@brandwave/react';

const { mutate, isPending } = useUpdateUserSettings();

mutate({
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier to update settings for.
activeOrganizationIdstring (UUID)Organization to set as the active workspace.
preferencesobjectUser UI preferences (shallow-merged into existing).

Response#

Returns { data } with the result.

Underlying SDK method: bw.users.settings.update(params)