Documentation Index
Fetch the complete documentation index at: https://cometchat-22654f5b-react-uikit-v7.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
AI Integration Quick Reference
AI Integration Quick Reference
Overview
CometChatGroupMembers is a list component that renders all members of a specific group. It provides role-based actions (kick, ban, scope change) for admins and moderators, and emits the selected CometChat.GroupMember via onItemClick. Use it inside group details panels or as a standalone member management view.

Live Preview — interact with the default group members list.Open in Storybook ↗
The component handles:
- Paginated fetching with infinite scroll
- Real-time membership updates (joins, leaves, kicks, bans, scope changes)
- Search filtering
- Role-based action menus (kick, ban, change scope)
- Selection mode (single/multiple)
Usage
Flat API
Compound Composition
Group Details Example
Filtering
Pass aCometChat.GroupMembersRequestBuilder to groupMemberRequestBuilder to control which members load. Pass the builder instance — not the result of .build().
Search
The component includes a built-in search bar. When the user types, it fetches matching members from the server. For custom search behavior, pass asearchRequestBuilder:
Filter Recipes
| Recipe | Code |
|---|---|
| Only admins | new CometChat.GroupMembersRequestBuilder(guid).setScopes(["admin"]) |
| Admins & moderators | new CometChat.GroupMembersRequestBuilder(guid).setScopes(["admin", "moderator"]) |
| Limit page size | new CometChat.GroupMembersRequestBuilder(guid).setLimit(10) |
Actions and Events
Callback Props
| Prop | Signature | Fires when |
|---|---|---|
onItemClick | (member: CometChat.GroupMember) => void | User clicks a member item |
onSelect | (member: CometChat.GroupMember, selected: boolean) => void | Member selected/deselected (selection mode) |
onError | ((error: CometChat.CometChatException) => void) | null | SDK error occurs |
onEmpty | () => void | List is empty after initial fetch |
onBack | () => void | Back button is clicked |
Events Emitted
This component does not emit any UI events directly. Kick, ban, and scope change actions are handled by internal action handlers that publish their own events.Events Received
UI events this component subscribes to (published by other components):| Event | Payload | Behavior |
|---|---|---|
ui:group/member-added | { group, members, messages } | Adds new members to the list |
ui:group/member-kicked | { group, user, message } | Removes the kicked member from the list |
ui:group/member-banned | { group, user, message } | Removes the banned member from the list |
ui:group/member-scope-changed | { group, user, newScope } | Updates the member’s scope/role display |
SDK Listeners (Automatic)
These SDK listeners are attached internally. The component updates its state automatically — no manual subscription needed:- Groups:
onGroupMemberJoined,onGroupMemberLeft,onGroupMemberKicked,onGroupMemberBanned,onGroupMemberScopeChanged,onMemberAddedToGroup
Customization
View Props
Use view props to replace sections of the default UI while keeping the component’s behavior intact:| Slot | Signature | Replaces |
|---|---|---|
itemView | (member) => ReactNode | Entire member row |
leadingView | (member) => ReactNode | Avatar section |
titleView | (member) => ReactNode | Member name |
subtitleView | (member) => ReactNode | Status / role text |
trailingView | (member) => ReactNode | Scope badge + action menu |
headerView | ReactNode | Header area |
loadingView | ReactNode | Loading shimmer |
emptyView | ReactNode | Empty state |
errorView | ReactNode | Error state |
Compound Composition
For full layout control, use sub-components. Omit any sub-component to hide it:| Sub-component | Description | Props | Flat API equivalent |
|---|---|---|---|
Root | Context provider and container | All Root props + children | — |
List | Scrollable member list | itemView, className | itemView |
Item | Individual member row | leadingView, titleView, subtitleView, trailingView, className | Per-item view props |
Header | Header area | title, children | headerView |
SearchBar | Search input | placeholder | — |
EmptyState | Empty state | children | emptyView |
ErrorState | Error state | children | errorView |
LoadingState | Loading shimmer | children | loadingView |
CSS Styling
Override design tokens on the component selector:Props
All props are optional unless marked Required.View slot props (
headerView, searchView, loadingView, emptyView, errorView, itemView, leadingView, titleView, subtitleView, trailingView) are convenience props available only on the flat API. In compound composition mode, use the corresponding sub-components directly.group
Required. The group whose members to display.| Type | CometChat.Group |
| Default | — |
groupMemberRequestBuilder
Custom request builder for fetching group members. Controls pagination, filtering, and sorting.| Type | CometChat.GroupMembersRequestBuilder |
| Default | SDK default (limit 30) |
searchRequestBuilder
Custom request builder used specifically when the user searches. Separate from the main builder.| Type | CometChat.GroupMembersRequestBuilder |
| Default | undefined |
searchKeyword
Initial search keyword to pre-filter members on mount.| Type | string |
| Default | undefined |
hideUserStatus
Hide the online/offline status indicator on member avatars.| Type | boolean |
| Default | false |
hideSearch
Hide the search bar entirely.| Type | boolean |
| Default | false |
hideKickMemberOption
Hide the “Kick Member” option from the action menu (even for admins/owners).| Type | boolean |
| Default | false |
hideBanMemberOption
Hide the “Ban Member” option from the action menu (even for admins/owners).| Type | boolean |
| Default | false |
hideScopeChangeOption
Hide the “Change Scope” option from the action menu (even for admins/owners).| Type | boolean |
| Default | false |
showScrollbar
Show the native scrollbar on the member list.| Type | boolean |
| Default | false |
selectionMode
Enable selection mode for single or multi-select operations.| Type | 'none' | 'single' | 'multiple' |
| Default | 'none' |
options
Function that returns context menu options for each member item (shown on hover/swipe). Overrides the default kick/ban/scope options.| Type | (member: CometChat.GroupMember) => CometChatGroupMemberOption[] |
| Default | Default options (kick, ban, change scope — based on logged-in user’s role) |
onItemClick
Callback when a member item is clicked.| Type | (member: CometChat.GroupMember) => void |
| Default | undefined |
onSelect
Callback when a member is selected or deselected (only fires in selection mode).| Type | (member: CometChat.GroupMember, selected: boolean) => void |
| Default | undefined |
onError
Callback when an SDK error occurs during fetch or real-time operations.| Type | ((error: CometChat.CometChatException) => void) | null |
| Default | null |
onEmpty
Callback when the member list is empty after the initial fetch completes.| Type | () => void |
| Default | undefined |
onBack
Callback when the back button in the header is clicked.| Type | () => void |
| Default | undefined |
CSS Selectors
| Target | Selector |
|---|---|
| Root container | .cometchat-group-members |
| Header | .cometchat-group-members__header |
| Search bar | .cometchat-group-members__search-bar |
| List container | .cometchat-group-members__list |
| Member item | .cometchat-group-members__item |
| Scope badge | .cometchat-group-members__item-scope |
| Empty state | .cometchat-group-members__empty-state |
| Error state | .cometchat-group-members__error-state |
| Loading state | .cometchat-group-members__loading-state |
Next Steps
Groups
Browse and select groups
Banned Members
View and unban banned group members
Add Members
Add new members to a group
Theming
Customize colors, fonts, and spacing