Skip to main content

Overview

Fetches the member list for a conversation on mount and provides actions to add members, remove members, change roles, and leave the conversation. Also exposes upsertMember and removeMemberLocally for real-time socket-driven updates.
Requires ChatProvider in the component tree.

Usage Example

Props

conversationId
string
required
The ID of the conversation whose members to fetch.

Returns

members
ConversationMember[]
The current member list. When spaceReputation is requested, each embedded user carries an added spaceReputation number. See ConversationMember and Reputation.
loading
boolean
true while the initial fetch is in progress.
addMember
({ userId: string }) => Promise<void>
Adds a user to the conversation. Updates the local member list on success.
removeMember
({ userId: string }) => Promise<void>
Removes a user from the conversation. Updates the local member list on success.
leave
() => Promise<void>
Removes the current user from the conversation.
changeRole
({ userId: string; role: 'admin' | 'member' }) => Promise<void>
Updates a member’s role. Updates the local member list on success.
upsertMember
(member: ConversationMember) => void
Inserts or replaces a member in the local list by userId. Intended for use with real-time socket event handlers.
removeMemberLocally
({ userId: string }) => void
Removes a member from the local list by userId without making an API call. Intended for use with real-time socket event handlers.

Notes

  • The member list is fetched with a limit of 100. For very large conversations, consider lazy-loading or paginating members separately.
  • For integration guidance, see Chat: Conversations.