Skip to main content
{
  "component": "CometChatGroups",
  "package": "@cometchat/chat-uikit-react",
  "import": "import { CometChatGroups } from \"@cometchat/chat-uikit-react\";",
  "cssImport": "import \"@cometchat/chat-uikit-react/css-variables.css\";",
  "description": "Searchable, scrollable list of all available groups with icon, name, member count, and group type indicator.",
  "cssRootClass": ".cometchat-groups",
  "primaryOutput": {
    "prop": "onItemClick",
    "type": "(group: CometChat.Group) => void"
  },
  "props": {
    "data": {
      "groupsRequestBuilder": {
        "type": "CometChat.GroupsRequestBuilder",
        "default": "SDK default (30 per page)",
        "note": "Pass the builder, not the result of .build()"
      },
      "searchRequestBuilder": {
        "type": "CometChat.GroupsRequestBuilder",
        "default": "undefined"
      },
      "activeGroup": {
        "type": "CometChat.Group",
        "default": "undefined"
      }
    },
    "callbacks": {
      "onItemClick": "(group: CometChat.Group) => void",
      "onSelect": "(group: CometChat.Group, selected: boolean) => void",
      "onError": "((error: CometChat.CometChatException) => void) | null"
    },
    "visibility": {
      "hideSearch": { "type": "boolean", "default": false },
      "hideError": { "type": "boolean", "default": false },
      "hideGroupType": { "type": "boolean", "default": false },
      "showScrollbar": { "type": "boolean", "default": false }
    },
    "selection": {
      "selectionMode": {
        "type": "SelectionMode",
        "values": ["SelectionMode.single (0)", "SelectionMode.multiple (1)", "SelectionMode.none (2)"],
        "default": "SelectionMode.none"
      }
    },
    "viewSlots": {
      "itemView": "(group: CometChat.Group) => JSX.Element",
      "leadingView": "(group: CometChat.Group) => JSX.Element",
      "titleView": "(group: CometChat.Group) => JSX.Element",
      "subtitleView": "(group: CometChat.Group) => JSX.Element",
      "trailingView": "(group: CometChat.Group) => JSX.Element",
      "headerView": "JSX.Element",
      "loadingView": "JSX.Element",
      "emptyView": "JSX.Element",
      "errorView": "JSX.Element",
      "options": "(group: CometChat.Group) => CometChatOption[]"
    }
  },
  "events": [
    {
      "name": "CometChatGroupEvents.ccGroupCreated",
      "payload": "CometChat.Group",
      "description": "New group created"
    },
    {
      "name": "CometChatGroupEvents.ccGroupDeleted",
      "payload": "CometChat.Group",
      "description": "Group deleted"
    },
    {
      "name": "CometChatGroupEvents.ccGroupMemberJoined",
      "payload": "IGroupMemberJoined",
      "description": "User joins a group"
    },
    {
      "name": "CometChatGroupEvents.ccGroupLeft",
      "payload": "IGroupLeft",
      "description": "User leaves a group"
    },
    {
      "name": "CometChatGroupEvents.ccGroupMemberAdded",
      "payload": "IGroupMemberAdded",
      "description": "Members added to a group"
    },
    {
      "name": "CometChatGroupEvents.ccGroupMemberScopeChanged",
      "payload": "IGroupMemberScopeChanged",
      "description": "Member scope changed"
    },
    {
      "name": "CometChatGroupEvents.ccGroupMemberKicked",
      "payload": "IGroupMemberKickedBanned",
      "description": "Member kicked"
    },
    {
      "name": "CometChatGroupEvents.ccGroupMemberBanned",
      "payload": "IGroupMemberKickedBanned",
      "description": "Member banned"
    },
    {
      "name": "CometChatGroupEvents.ccOwnershipChanged",
      "payload": "IOwnershipChanged",
      "description": "Ownership transferred"
    }
  ],
  "sdkListeners": [
    "onGroupMemberJoined",
    "onGroupMemberLeft",
    "onMemberAddedToGroup",
    "onGroupMemberKicked",
    "onGroupMemberBanned",
    "onGroupMemberScopeChanged"
  ],
  "compositionExample": {
    "description": "Group directory wired to message view",
    "components": [
      "CometChatGroups",
      "CometChatMessageHeader",
      "CometChatMessageList",
      "CometChatMessageComposer"
    ],
    "flow": "onItemClick emits CometChat.Group -> pass to MessageHeader, MessageList, MessageComposer"
  },
  "types": {
    "CometChatOption": {
      "id": "string | undefined",
      "title": "string | undefined",
      "iconURL": "string | undefined",
      "onClick": "(() => void) | undefined"
    },
    "SelectionMode": {
      "single": 0,
      "multiple": 1,
      "none": 2
    }
  }
}

Where It Fits

CometChatGroups is a directory list component. It renders available groups and emits the selected CometChat.Group via onItemClick. Wire it to CometChatMessageHeader, CometChatMessageList, and CometChatMessageComposer to build a group chat layout.
import { useState } from "react";
import {
  CometChatGroups,
  CometChatMessageHeader,
  CometChatMessageList,
  CometChatMessageComposer,
} from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";
import "@cometchat/chat-uikit-react/css-variables.css";

function GroupChatApp() {
  const [selectedGroup, setSelectedGroup] = useState<CometChat.Group>();

  return (
    <div style={{ display: "flex", height: "100vh", width: "100vw" }}>
      <div style={{ width: 480, height: "100%" }}>
        <CometChatGroups
          onItemClick={(group: CometChat.Group) => setSelectedGroup(group)}
        />
      </div>
      {selectedGroup ? (
        <div style={{ flex: 1, display: "flex", flexDirection: "column" }}>
          <CometChatMessageHeader group={selectedGroup} />
          <CometChatMessageList group={selectedGroup} />
          <CometChatMessageComposer group={selectedGroup} />
        </div>
      ) : (
        <div style={{ flex: 1, display: "grid", placeItems: "center", background: "#F5F5F5", color: "#727272" }}>
          Select a group
        </div>
      )}
    </div>
  );
}

Minimal Render

import { CometChatGroups } from "@cometchat/chat-uikit-react";
import "@cometchat/chat-uikit-react/css-variables.css";

function GroupsDemo() {
  return (
    <div style={{ width: "100%", height: "100%" }}>
      <CometChatGroups />
    </div>
  );
}

export default GroupsDemo;
Root CSS class: .cometchat-groups

Filtering Groups

Pass a CometChat.GroupsRequestBuilder to groupsRequestBuilder. Pass the builder instance — not the result of .build().
import { CometChatGroups } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function FilteredGroups() {
  return (
    <CometChatGroups
      groupsRequestBuilder={
        new CometChat.GroupsRequestBuilder()
          .joinedOnly(true)
          .setLimit(10)
      }
    />
  );
}

Filter Recipes

RecipeCode
Joined groups onlynew CometChat.GroupsRequestBuilder().joinedOnly(true)
Limit to 10 per pagenew CometChat.GroupsRequestBuilder().setLimit(10)
Search by keywordnew CometChat.GroupsRequestBuilder().setSearchKeyword("design")
Filter by tagsnew CometChat.GroupsRequestBuilder().setTags(["vip"])
With tags datanew CometChat.GroupsRequestBuilder().withTags(true)
Default page size is 30. The component uses infinite scroll — the next page loads as the user scrolls to the bottom. The searchRequestBuilder prop accepts a separate GroupsRequestBuilder for filtering when the search bar is active.
import { CometChatGroups } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function SearchFilteredGroups() {
  return (
    <CometChatGroups
      searchRequestBuilder={
        new CometChat.GroupsRequestBuilder()
          .setLimit(5)
          .setSearchKeyword("team")
      }
    />
  );
}
Refer to GroupsRequestBuilder for the full builder API.

Actions and Events

Callback Props

onItemClick

Fires when a group row is tapped. Primary navigation hook — set the active group and render the message view.
import { CometChatGroups } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function GroupsWithClick() {
  const handleItemClick = (group: CometChat.Group) => {
    console.log("Selected:", group.getGuid());
  };

  return <CometChatGroups onItemClick={handleItemClick} />;
}

onSelect

Fires when a group is checked/unchecked in multi-select mode. Requires selectionMode to be set.
import { useState } from "react";
import {
  CometChatGroups,
  SelectionMode,
} from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function BatchSelectGroups() {
  const [selected, setSelected] = useState<Set<string>>(new Set());

  const handleSelect = (group: CometChat.Group, isSelected: boolean) => {
    setSelected((prev) => {
      const next = new Set(prev);
      const id = group.getGuid();
      isSelected ? next.add(id) : next.delete(id);
      return next;
    });
  };

  return (
    <CometChatGroups
      selectionMode={SelectionMode.multiple}
      onSelect={handleSelect}
    />
  );
}

onError

Fires on internal errors (network failure, auth issue, SDK exception).
import { CometChatGroups } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function GroupsWithErrorHandler() {
  return (
    <CometChatGroups
      onError={(error: CometChat.CometChatException) => {
        console.error("CometChatGroups error:", error);
      }}
    />
  );
}

Global UI Events

CometChatGroupEvents emits events subscribable from anywhere in the application. Subscribe in a useEffect and unsubscribe on cleanup.
EventFires whenPayload
ccGroupCreatedA new group is createdCometChat.Group
ccGroupDeletedA group is deletedCometChat.Group
ccGroupMemberJoinedA user joins a groupIGroupMemberJoined
ccGroupLeftA user leaves a groupIGroupLeft
ccGroupMemberAddedMembers are added to a groupIGroupMemberAdded
ccGroupMemberScopeChangedA member’s scope changesIGroupMemberScopeChanged
ccGroupMemberKickedA member is kickedIGroupMemberKickedBanned
ccGroupMemberBannedA member is bannedIGroupMemberKickedBanned
ccGroupMemberUnbannedA member is unbannedIGroupMemberUnBanned
ccOwnershipChangedGroup ownership is transferredIOwnershipChanged
import { useEffect } from "react";
import { CometChatGroupEvents } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function useGroupEvents() {
  useEffect(() => {
    const createdSub = CometChatGroupEvents.ccGroupCreated.subscribe(
      (group: CometChat.Group) => {
        console.log("Group created:", group.getName());
      }
    );
    const deletedSub = CometChatGroupEvents.ccGroupDeleted.subscribe(
      (group: CometChat.Group) => {
        console.log("Group deleted:", group.getName());
      }
    );
    const memberAddedSub = CometChatGroupEvents.ccGroupMemberAdded.subscribe(
      (item) => {
        console.log("Members added to:", item.userAddedIn.getName());
      }
    );
    const leftSub = CometChatGroupEvents.ccGroupLeft.subscribe(
      (item) => {
        console.log("User left group:", item.leftGroup.getName());
      }
    );

    return () => {
      createdSub?.unsubscribe();
      deletedSub?.unsubscribe();
      memberAddedSub?.unsubscribe();
      leftSub?.unsubscribe();
    };
  }, []);
}

SDK Events (Real-Time, Automatic)

The component listens to these SDK events internally. No manual attachment needed unless additional side effects are required.
SDK ListenerInternal behavior
onGroupMemberJoinedUpdates member count, sets hasJoined if current user joined
onGroupMemberLeftUpdates member count, sets hasJoined(false) if current user left
onMemberAddedToGroupUpdates member count, adds group to list if current user was added
onGroupMemberKickedUpdates member count, sets hasJoined(false) if current user was kicked
onGroupMemberBannedRemoves group if current user was banned, otherwise updates member count
onGroupMemberScopeChangedUpdates scope if current user’s scope changed, updates member count
In React 18 StrictMode, useEffect runs twice on mount in development. The component handles listener cleanup internally, but any additional listeners added alongside the component need cleanup in the useEffect return function to avoid duplicate event handling.

Custom View Slots

Each slot replaces a section of the default UI. Slots that accept a group parameter receive the CometChat.Group object for that row.
SlotSignatureReplaces
itemView(group: CometChat.Group) => JSX.ElementEntire list item row
leadingView(group: CometChat.Group) => JSX.ElementAvatar / left section
titleView(group: CometChat.Group) => JSX.ElementName / title text
subtitleView(group: CometChat.Group) => JSX.ElementMember count subtitle
trailingView(group: CometChat.Group) => JSX.ElementRight section
headerViewJSX.ElementEntire header bar
loadingViewJSX.ElementLoading spinner
emptyViewJSX.ElementEmpty state
errorViewJSX.ElementError state
options(group: CometChat.Group) => CometChatOption[]Context menu / hover actions

itemView

Replace the entire list item row. Default:
Customized:
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatGroups } from "@cometchat/chat-uikit-react";

function CustomItemViewGroups() {
  const getItemView = (group: CometChat.Group) => {
    return (
      <div className="group-list-item">
        <div className="group-list-item__title-wrapper">
          <div className="group-list-item__title">{group.getName()}</div>
          <div className="group-list-item__tail">JOIN</div>
        </div>
        <div className="group-list-item__subtitle">
          {group.getMembersCount()} Members • {group.getDescription()}
        </div>
      </div>
    );
  };

  return <CometChatGroups itemView={getItemView} />;
}

titleView

Replace the name / title text. Group type badge inline example.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatGroups } from "@cometchat/chat-uikit-react";

function GroupTypeTitleGroups() {
  const getTitleView = (group: CometChat.Group) => {
    return (
      <div className={`groups__title-view groups__title-view-${group.getType()}`}>
        <span className="groups__title-view-name">{group.getName()}</span>
        <span className="groups__title-view-type">{group.getType()}</span>
      </div>
    );
  };

  return <CometChatGroups titleView={getTitleView} />;
}

subtitleView

Replace the member count subtitle text. Default:
Customized:
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatGroups } from "@cometchat/chat-uikit-react";

function SubtitleGroups() {
  const getSubtitleView = (group: CometChat.Group) => {
    return (
      <div className="group-subtitle">
        {group.getMembersCount()} Members • {group.getDescription()}
      </div>
    );
  };

  return <CometChatGroups subtitleView={getSubtitleView} />;
}

leadingView

Replace the avatar / left section. Joined status badge example.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatGroups, CometChatAvatar } from "@cometchat/chat-uikit-react";

function LeadingViewGroups() {
  const getLeadingView = (group: CometChat.Group) => {
    return (
      <>
        {group.getHasJoined() ? (
          <div className="groups__leading-view groups__leading-view-joined">
            <CometChatAvatar image={group?.getIcon()} name={group?.getName()} />
            <span className="groups__leading-view-info">Joined</span>
          </div>
        ) : (
          <div className="groups__leading-view">
            <CometChatAvatar image={group?.getIcon()} name={group?.getName()} />
            <span className="groups__leading-view-info">Join</span>
          </div>
        )}
      </>
    );
  };

  return <CometChatGroups leadingView={getLeadingView} />;
}

trailingView

Replace the right section. Join status button example.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatGroups } from "@cometchat/chat-uikit-react";

function TrailingViewGroups() {
  const getTrailingView = (group: CometChat.Group) => {
    return (
      <div className="groups__trailing-view">
        {group.getHasJoined() ? "JOINED" : "+ JOIN"}
      </div>
    );
  };

  return <CometChatGroups trailingView={getTrailingView} />;
}

headerView

Replace the entire header bar.
import {
  CometChatButton,
  CometChatGroups,
  getLocalizedString,
} from "@cometchat/chat-uikit-react";

function CustomHeaderGroups() {
  return (
    <CometChatGroups
      headerView={
        <div className="groups__header">
          <div className="groups__header__title">
            {getLocalizedString("GROUPS")}
          </div>
          <CometChatButton onClick={() => { /* handle click */ }} />
        </div>
      }
    />
  );
}

options

Replace the context menu / hover actions on each group item.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import {
  CometChatOption,
  CometChatGroups,
} from "@cometchat/chat-uikit-react";

function CustomOptionsGroups() {
  const getOptions = (group: CometChat.Group) => [
    new CometChatOption({
      title: "Delete",
      id: "delete",
      onClick: () => { /* delete logic */ },
    }),
  ];

  return <CometChatGroups options={getOptions} />;
}
// CometChatOption interface
interface CometChatOption {
  id?: string;       // Unique identifier
  title?: string;    // Display text
  iconURL?: string;  // Icon asset URL
  onClick?: () => void; // Click handler
}

Common Patterns

Custom empty state with CTA

import { CometChatGroups } from "@cometchat/chat-uikit-react";

function EmptyStateGroups() {
  return (
    <CometChatGroups
      emptyView={
        <div style={{ textAlign: "center", padding: 40 }}>
          <p>No groups available</p>
          <button onClick={() => { /* navigate to create group */ }}>
            Create a group
          </button>
        </div>
      }
    />
  );
}

Hide all chrome — minimal list

import { CometChatGroups } from "@cometchat/chat-uikit-react";

function MinimalGroups() {
  return (
    <CometChatGroups
      hideSearch={true}
      hideGroupType={true}
    />
  );
}

Joined groups only

import { CometChatGroups } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function JoinedGroups() {
  return (
    <CometChatGroups
      groupsRequestBuilder={
        new CometChat.GroupsRequestBuilder().joinedOnly(true)
      }
    />
  );
}

CSS Architecture

The component uses CSS custom properties (design tokens) defined in @cometchat/chat-uikit-react/css-variables.css. The cascade:
  1. Global tokens (e.g., --cometchat-primary-color, --cometchat-background-color-01) are set on the .cometchat root wrapper.
  2. Component CSS (.cometchat-groups) consumes these tokens via var() with fallback values.
  3. Overrides target .cometchat-groups descendant selectors in a global stylesheet.
To scope overrides to a single instance when multiple CometChatGroups exist on the same page, wrap the component in a container and scope selectors:
.sidebar-left .cometchat-groups .cometchat-avatar {
  border-radius: 8px;
}

Key Selectors

TargetSelector
Root.cometchat-groups
Header title.cometchat-groups .cometchat-list__header-title
Search bar input.cometchat-groups .cometchat-search-bar__input
List item.cometchat-groups .cometchat-list-item
Body title.cometchat-groups .cometchat-list-item__body-title
Avatar.cometchat-groups__list-item .cometchat-avatar
Subtitle.cometchat-groups__subtitle
Active item.cometchat-groups__list-item-active .cometchat-list-item
Password group icon.cometchat-groups__list-item-password .cometchat-list-item__status
Private group icon.cometchat-groups__list-item-private .cometchat-list-item__status
Empty state.cometchat-groups__empty-state-view
Error state.cometchat-groups__error-state-view
Shimmer loading.cometchat-groups__shimmer

Example: Brand-themed groups

.cometchat-groups .cometchat-list__header-title {
  background-color: #edeafa;
  color: #6852d6;
  border-width: 0px 1px 1px 0px;
  border-style: solid;
  border-color: #6852d6;
  font-family: "Times New Roman";
  font-size: 24px;
  font-weight: 700;
}

.cometchat-groups__list-item .cometchat-avatar {
  background-color: #aa9ee8;
  border-radius: 6.67px;
}

.cometchat-groups .cometchat-list-item__body-title {
  font-family: "Times New Roman";
  font-size: 16px;
  font-weight: 400;
}

.cometchat-groups .cometchat-groups__subtitle {
  font-family: "Times New Roman";
  font-size: 14px;
  font-weight: 400;
}

Customization Matrix

What to changeWhereProperty/APIExample
Override behavior on user interactionComponent propson<Event> callbacksonItemClick={(g) => setActive(g)}
Filter which groups appearComponent propsgroupsRequestBuildergroupsRequestBuilder={new CometChat.GroupsRequestBuilder().joinedOnly(true)}
Toggle visibility of UI elementsComponent propshide<Feature> boolean propshideGroupType={true}
Replace a section of the list itemComponent props<slot>View render propsitemView={(group) => <div>...</div>}
Change colors, fonts, spacingGlobal CSSTarget .cometchat-groups class.cometchat-groups .cometchat-avatar { border-radius: 8px; }

Accessibility

The component renders a scrollable list of interactive items. Each group row is keyboard-focusable and activates on Enter/Space. The context menu (options) is accessible via keyboard. Avatar images include the group name as alt text. Group type indicators (public/private/password) use CSS mask images — add aria-label attributes via itemView if screen reader descriptions are needed for these visual indicators.

Props

All props are optional unless noted otherwise.

activeGroup

Highlights the specified group in the list.
TypeCometChat.Group
Defaultundefined
Must be a reference-equal object from the SDK; a manually constructed object will not match.

emptyView

Custom component displayed when there are no groups.
TypeJSX.Element
DefaultBuilt-in empty state

errorView

Custom component displayed when an error occurs.
TypeJSX.Element
DefaultBuilt-in error state
Hidden when hideError={true}.

groupsRequestBuilder

Controls which groups load and in what order.
TypeCometChat.GroupsRequestBuilder
DefaultSDK default (30 per page)
Pass the builder instance, not the result of .build().

headerView

Custom component rendered as the entire header bar.
TypeJSX.Element
DefaultBuilt-in header with title

hideError

Hides the default and custom error views.
Typeboolean
Defaultfalse
Also suppresses errorView if set.

hideGroupType

Hides the group type icon (public/private/password).
Typeboolean
Defaultfalse

hideSearch

Hides the default search bar.
Typeboolean
Defaultfalse

itemView

Custom renderer for the entire list item row.
Type(group: CometChat.Group) => JSX.Element
DefaultBuilt-in list item

leadingView

Custom renderer for the avatar / left section.
Type(group: CometChat.Group) => JSX.Element
DefaultBuilt-in avatar

loadingView

Custom component displayed during the loading state.
TypeJSX.Element
DefaultBuilt-in shimmer

onError

Callback fired when the component encounters an error.
Type((error: CometChat.CometChatException) => void) | null
Defaultundefined

onItemClick

Callback fired when a group row is clicked.
Type(group: CometChat.Group) => void
Defaultundefined

onSelect

Callback fired when a group is selected/deselected. Requires selectionMode to be set.
Type(group: CometChat.Group, selected: boolean) => void
Defaultundefined

options

Custom context menu / hover actions for each group item.
Type(group: CometChat.Group) => CometChatOption[]
Defaultundefined
class CometChatOption {
  id?: string;
  title?: string;
  iconURL?: string;
  onClick?: () => void;
}

searchRequestBuilder

Controls filtering when the search bar is active.
TypeCometChat.GroupsRequestBuilder
Defaultundefined

selectionMode

Enables single or multi-select checkboxes on list items.
TypeSelectionMode
DefaultSelectionMode.none
enum SelectionMode {
  single,    // 0
  multiple,  // 1
  none,      // 2
}
Must pair with onSelect to capture selections.

showScrollbar

Shows the scrollbar in the group list.
Typeboolean
Defaultfalse

subtitleView

Custom renderer for the member count subtitle text.
Type(group: CometChat.Group) => JSX.Element
DefaultBuilt-in subtitle

titleView

Custom renderer for the name / title text.
Type(group: CometChat.Group) => JSX.Element
DefaultBuilt-in title

trailingView

Custom renderer for the right section.
Type(group: CometChat.Group) => JSX.Element
DefaultBuilt-in trailing view

Events

EventPayloadFires when
CometChatGroupEvents.ccGroupCreatedCometChat.GroupNew group created
CometChatGroupEvents.ccGroupDeletedCometChat.GroupGroup deleted
CometChatGroupEvents.ccGroupMemberJoinedIGroupMemberJoinedUser joins a group
CometChatGroupEvents.ccGroupLeftIGroupLeftUser leaves a group
CometChatGroupEvents.ccGroupMemberAddedIGroupMemberAddedMembers added to a group
CometChatGroupEvents.ccGroupMemberScopeChangedIGroupMemberScopeChangedMember scope changed
CometChatGroupEvents.ccGroupMemberKickedIGroupMemberKickedBannedMember kicked
CometChatGroupEvents.ccGroupMemberBannedIGroupMemberKickedBannedMember banned
CometChatGroupEvents.ccGroupMemberUnbannedIGroupMemberUnBannedMember unbanned
CometChatGroupEvents.ccOwnershipChangedIOwnershipChangedOwnership transferred
All events are RxJS Subject instances. Subscribe with .subscribe(), unsubscribe with the returned subscription’s .unsubscribe().

CSS Selectors

TargetSelector
Root.cometchat-groups
Header title.cometchat-groups .cometchat-list__header-title
Search bar input.cometchat-groups .cometchat-search-bar__input
List item.cometchat-groups .cometchat-list-item
Body title.cometchat-groups .cometchat-list-item__body-title
Avatar.cometchat-groups__list-item .cometchat-avatar
Leading view.cometchat-groups__list-item .cometchat-list-item__leading-view
Subtitle.cometchat-groups__subtitle
Active item.cometchat-groups__list-item-active .cometchat-list-item
Password group icon.cometchat-groups__list-item-password .cometchat-list-item__status
Password group status icon.cometchat-groups__list-item-password .cometchat-list-item__status-icon
Private group icon.cometchat-groups__list-item-private .cometchat-list-item__status
Private group status icon.cometchat-groups__list-item-private .cometchat-list-item__status-icon
Empty state.cometchat-groups__empty-state-view
Empty state title.cometchat-groups__empty-state-view-body-title
Empty state description.cometchat-groups__empty-state-view-body-description
Error state.cometchat-groups__error-state-view
Error state title.cometchat-groups__error-state-view-body-title
Error state description.cometchat-groups__error-state-view-body-description
Shimmer loading.cometchat-groups__shimmer
Shimmer item.cometchat-groups__shimmer-item
Shimmer avatar.cometchat-groups__shimmer-item-avatar
Shimmer title.cometchat-groups__shimmer-item-body-title
Shimmer subtitle.cometchat-groups__shimmer-item-body-subtitle