Skip to main content
{
  "component": "CometChatSearch",
  "package": "@cometchat/chat-uikit-react",
  "import": "import { CometChatSearch } from \"@cometchat/chat-uikit-react\";",
  "cssImport": "import \"@cometchat/chat-uikit-react/css-variables.css\";",
  "description": "Dual-scope search across conversations and messages with filtering, scopes, and custom views.",
  "cssRootClass": ".cometchat-search",
  "primaryOutput": {
    "props": ["onConversationClicked", "onMessageClicked"],
    "types": [
      "(conversation: CometChat.Conversation, searchKeyword?: string) => void",
      "(message: CometChat.BaseMessage, searchKeyword?: string) => void"
    ]
  },
  "props": {
    "data": {
      "uid": { "type": "string", "default": "undefined", "note": "Limits search to specific user" },
      "guid": { "type": "string", "default": "undefined", "note": "Limits search to specific group" },
      "conversationsRequestBuilder": { "type": "CometChat.ConversationsRequestBuilder", "default": "SDK default" },
      "messagesRequestBuilder": { "type": "CometChat.MessagesRequestBuilder", "default": "SDK default" },
      "messageSentAtDateTimeFormat": { "type": "CalendarObject", "default": "Component default" }
    },
    "callbacks": {
      "onConversationClicked": "(conversation: CometChat.Conversation, searchKeyword?: string) => void",
      "onMessageClicked": "(message: CometChat.BaseMessage, searchKeyword?: string) => void",
      "onBack": "() => void",
      "onError": "(error: CometChat.CometChatException) => void"
    },
    "visibility": {
      "hideBackButton": { "type": "boolean", "default": false },
      "hideUserStatus": { "type": "boolean", "default": false },
      "hideGroupType": { "type": "boolean", "default": false },
      "hideReceipts": { "type": "boolean", "default": false }
    },
    "search": {
      "searchFilters": {
        "type": "CometChatSearchFilter[]",
        "default": "All available filters"
      },
      "initialSearchFilter": {
        "type": "CometChatSearchFilter",
        "default": "undefined"
      },
      "searchIn": {
        "type": "CometChatSearchScope[]",
        "default": "[CometChatSearchScope.All]"
      }
    },
    "viewSlots": {
      "conversationItemView": "(conversation: CometChat.Conversation) => JSX.Element",
      "conversationLeadingView": "(conversation: CometChat.Conversation) => JSX.Element",
      "conversationTitleView": "(conversation: CometChat.Conversation) => JSX.Element",
      "conversationSubtitleView": "(conversation: CometChat.Conversation) => JSX.Element",
      "conversationTrailingView": "(conversation: CometChat.Conversation) => JSX.Element",
      "conversationOptions": "((conversation: CometChat.Conversation) => CometChatOption[]) | null",
      "messageItemView": "(message: CometChat.BaseMessage) => JSX.Element",
      "messageLeadingView": "(message: CometChat.BaseMessage) => JSX.Element",
      "messageTitleView": "(message: CometChat.BaseMessage) => JSX.Element",
      "messageSubtitleView": "(message: CometChat.BaseMessage) => JSX.Element",
      "messageTrailingView": "(message: CometChat.BaseMessage) => JSX.Element",
      "initialView": "JSX.Element",
      "loadingView": "JSX.Element",
      "emptyView": "JSX.Element",
      "errorView": "JSX.Element"
    },
    "formatting": {
      "textFormatters": { "type": "CometChatTextFormatter[]", "default": "[]" }
    }
  },
  "events": [],
  "sdkListeners": [],
  "types": {
    "CometChatSearchScope": {
      "Conversations": "conversations",
      "Messages": "messages"
    },
    "CometChatSearchFilter": {
      "Messages": "messages",
      "Conversations": "conversations",
      "Unread": "unread",
      "Groups": "groups",
      "Photos": "photos",
      "Videos": "videos",
      "Links": "links",
      "Documents": "files",
      "Audio": "audio"
    },
    "CalendarObject": {
      "today": "string | undefined",
      "yesterday": "string | undefined",
      "lastWeek": "string | undefined",
      "otherDays": "string | undefined"
    },
    "CometChatOption": {
      "id": "string | undefined",
      "title": "string | undefined",
      "iconURL": "string | undefined",
      "onClick": "(() => void) | undefined"
    }
  },
  "compositionExample": {
    "description": "Standalone search panel with navigation callbacks",
    "components": ["CometChatSearch"],
    "flow": "User types query -> results appear in conversations and messages sections -> onConversationClicked/onMessageClicked navigate to result"
  }
}

Where It Fits

CometChatSearch is a standalone search panel that searches across conversations and messages simultaneously. It renders filter chips, conversation results, and message results in a unified interface. Wire onConversationClicked and onMessageClicked to navigate to the selected result.
import { useState } from "react";
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";
import "@cometchat/chat-uikit-react/css-variables.css";

function SearchDemo() {
  const handleConversationClicked = (
    conversation: CometChat.Conversation,
    searchKeyword?: string
  ) => {
    console.log("Conversation:", conversation.getConversationId(), searchKeyword);
  };

  const handleMessageClicked = (
    message: CometChat.BaseMessage,
    searchKeyword?: string
  ) => {
    console.log("Message:", message.getId(), searchKeyword);
  };

  return (
    <div style={{ width: "100%", height: "100%" }}>
      <CometChatSearch
        onConversationClicked={handleConversationClicked}
        onMessageClicked={handleMessageClicked}
      />
    </div>
  );
}

export default SearchDemo;

Minimal Render

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

function SearchMinimal() {
  return (
    <div style={{ width: "100%", height: "100%" }}>
      <CometChatSearch />
    </div>
  );
}
Root CSS class: .cometchat-search

Filtering Search Results

Search Scope

Control which entities are searched using searchIn with CometChatSearchScope.
import {
  CometChatSearch,
  CometChatSearchScope,
} from "@cometchat/chat-uikit-react";

function MessagesOnlySearch() {
  return (
    <CometChatSearch
      searchIn={[CometChatSearchScope.Messages]}
    />
  );
}
enum CometChatSearchScope {
  Conversations = "conversations",
  Messages = "messages",
}

Search Filters

Control which filter chips appear using searchFilters with CometChatSearchFilter.
import {
  CometChatSearch,
  CometChatSearchFilter,
} from "@cometchat/chat-uikit-react";

function FilteredSearch() {
  return (
    <CometChatSearch
      searchFilters={[
        CometChatSearchFilter.Messages,
        CometChatSearchFilter.Photos,
        CometChatSearchFilter.Videos,
      ]}
      initialSearchFilter={CometChatSearchFilter.Messages}
    />
  );
}
enum CometChatSearchFilter {
  Messages = "messages",
  Conversations = "conversations",
  Unread = "unread",
  Groups = "groups",
  Photos = "photos",
  Videos = "videos",
  Links = "links",
  Documents = "files",
  Audio = "audio",
}

Request Builders

Pass ConversationsRequestBuilder and MessagesRequestBuilder to customize the underlying SDK queries.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function CustomBuilderSearch() {
  return (
    <CometChatSearch
      conversationsRequestBuilder={
        new CometChat.ConversationsRequestBuilder().setLimit(5)
      }
      messagesRequestBuilder={
        new CometChat.MessagesRequestBuilder().setLimit(5)
      }
    />
  );
}

Scoped Search (User or Group)

Limit search to a specific user or group conversation using uid or guid.
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function UserScopedSearch() {
  return <CometChatSearch uid="uid" />;
}

Actions and Events

Callback Props

onConversationClicked

Fires when a conversation is clicked in search results.
import { CometChatSearch } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function SearchWithConversationClick() {
  return (
    <CometChatSearch
      onConversationClicked={(conversation: CometChat.Conversation, keyword?: string) => {
        console.log("Selected:", conversation.getConversationId(), keyword);
      }}
    />
  );
}

onMessageClicked

Fires when a message is clicked in search results.
import { CometChatSearch } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

function SearchWithMessageClick() {
  return (
    <CometChatSearch
      onMessageClicked={(message: CometChat.BaseMessage, keyword?: string) => {
        console.log("Message:", message.getId(), keyword);
      }}
    />
  );
}

onBack

Fires when the back button is clicked.
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchWithBack() {
  return <CometChatSearch onBack={() => console.log("Back")} />;
}

onError

Fires on internal errors during search.
import { CometChatSearch } from "@cometchat/chat-uikit-react";
import { CometChat } from "@cometchat/chat-sdk-javascript";

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

Global UI Events

The CometChatSearch component does not emit any custom UI events.

SDK Events (Real-Time, Automatic)

The component does not attach SDK listeners. Search is on-demand, not real-time.

Custom View Slots

The component exposes separate view slots for conversation results and message results. All per-item slots receive their respective data object.
SlotSignatureReplaces
conversationItemView(conversation: CometChat.Conversation) => JSX.ElementEntire conversation list item
conversationLeadingView(conversation: CometChat.Conversation) => JSX.ElementConversation avatar
conversationTitleView(conversation: CometChat.Conversation) => JSX.ElementConversation title
conversationSubtitleView(conversation: CometChat.Conversation) => JSX.ElementConversation subtitle
conversationTrailingView(conversation: CometChat.Conversation) => JSX.ElementConversation trailing section
conversationOptions(conversation: CometChat.Conversation) => CometChatOption[]Conversation context menu
messageItemView(message: CometChat.BaseMessage) => JSX.ElementEntire message list item
messageLeadingView(message: CometChat.BaseMessage) => JSX.ElementMessage avatar
messageTitleView(message: CometChat.BaseMessage) => JSX.ElementMessage title
messageSubtitleView(message: CometChat.BaseMessage) => JSX.ElementMessage subtitle
messageTrailingView(message: CometChat.BaseMessage) => JSX.ElementMessage trailing section
initialViewJSX.ElementInitial state before search
loadingViewJSX.ElementLoading state
emptyViewJSX.ElementEmpty results state
errorViewJSX.ElementError state
Conversation view slots follow the same pattern as CometChatConversations. Refer to that component for detailed examples.

messageItemView

Replace the entire message list item in search results.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchCustomMessageItem() {
  const getMessageItemView = (message: CometChat.BaseMessage) => (
    <div className="cometchat-search__message-list-item">
      <div className="cometchat-search__message-list-item-sender">
        {message.getSender()?.getName()}:
      </div>
      <div className="cometchat-search__message-list-item-text">
        {message instanceof CometChat.TextMessage
          ? (message as CometChat.TextMessage).getText()
          : message.getType()}
      </div>
    </div>
  );

  return <CometChatSearch messageItemView={getMessageItemView} />;
}

messageLeadingView

Replace the message avatar / left section.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchCustomMessageLeading() {
  const getMessageLeadingView = (message: CometChat.BaseMessage) => (
    <div className="cometchat-search__message-list-item-leading-view">
      <img src={ICON_URL} />
    </div>
  );

  return <CometChatSearch messageLeadingView={getMessageLeadingView} />;
}

messageTitleView

Replace the message title text.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchCustomMessageTitle() {
  const getMessageTitleView = (message: CometChat.BaseMessage) => (
    <div className="cometchat-search__message-list-item-title">
      <div className="cometchat-search__message-list-item-title-text">
        {message.getSender()?.getName()}
      </div>
      <span>|</span>
      <div className="cometchat-search__message-list-item-title-role">
        {message.getSender().getRole() ?? "Pro User"}
      </div>
    </div>
  );

  return <CometChatSearch messageTitleView={getMessageTitleView} />;
}

messageSubtitleView

Replace the message subtitle text.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchCustomMessageSubtitle() {
  const getMessageSubtitleView = (message: CometChat.BaseMessage) => (
    <div className="cometchat-search__message-list-item-subtitle">
      <div className="cometchat-search__message-list-item-subtitle-sender">
        {message.getSender()?.getName()}:
      </div>
      <div className="cometchat-search__message-list-item-subtitle-text">
        {message instanceof CometChat.TextMessage
          ? (message as CometChat.TextMessage).getText()
          : message.getType()}
      </div>
    </div>
  );

  return <CometChatSearch messageSubtitleView={getMessageSubtitleView} />;
}

messageTrailingView

Replace the message right section.
import { CometChat } from "@cometchat/chat-sdk-javascript";
import { CometChatSearch } from "@cometchat/chat-uikit-react";

function SearchCustomMessageTrailing() {
  const getMessageTrailingView = (message: CometChat.BaseMessage) => {
    const timestamp = message.getSentAt() * 1000;
    const now = Date.now();
    const diffInMinutes = Math.floor((now - timestamp) / (1000 * 60));
    const diffInHours = Math.floor((now - timestamp) / (1000 * 60 * 60));

    let className = "cometchat-search__message-trailing-view-min";
    let topLabel = `${diffInMinutes}`;
    let bottomLabel = diffInMinutes === 1 ? "Min ago" : "Mins ago";

    if (diffInHours >= 1 && diffInHours <= 10) {
      className = "cometchat-search__message-trailing-view-hour";
      topLabel = `${diffInHours}`;
      bottomLabel = diffInHours === 1 ? "Hour ago" : "Hours ago";
    } else if (diffInHours > 10) {
      className = "cometchat-search__message-trailing-view-date";
      const time = new Date(timestamp);
      topLabel = time.toLocaleDateString("en-US", { day: "numeric" });
      bottomLabel = time.toLocaleDateString("en-US", {
        month: "short",
        year: "numeric",
      });
    }

    return (
      <div className={`cometchat-search__message-trailing-view ${className}`}>
        <span className="cometchat-search__message-trailing-view-time">
          {topLabel}
        </span>
        <span className="cometchat-search__message-trailing-view-status">
          {bottomLabel}
        </span>
      </div>
    );
  };

  return <CometChatSearch messageTrailingView={getMessageTrailingView} />;
}

messageSentAtDateTimeFormat

Customize the message timestamp format using a CalendarObject.
import {
  CometChatSearch,
  CalendarObject,
} from "@cometchat/chat-uikit-react";

function SearchCustomDate() {
  const dateFormat = new CalendarObject({
    today: "DD MMM, hh:mm A",
    yesterday: "DD MMM, hh:mm A",
    otherDays: "DD MMM, hh:mm A",
  });

  return <CometChatSearch messageSentAtDateTimeFormat={dateFormat} />;
}

Common Patterns

import {
  CometChatSearch,
  CometChatSearchScope,
} from "@cometchat/chat-uikit-react";

function MessagesOnlySearch() {
  return (
    <CometChatSearch searchIn={[CometChatSearchScope.Messages]} />
  );
}

Photos and videos filter only

import {
  CometChatSearch,
  CometChatSearchFilter,
} from "@cometchat/chat-uikit-react";

function MediaSearch() {
  return (
    <CometChatSearch
      searchFilters={[
        CometChatSearchFilter.Photos,
        CometChatSearchFilter.Videos,
      ]}
    />
  );
}

Search within a specific group

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

function GroupScopedSearch() {
  return <CometChatSearch guid="group_id" />;
}

CSS Architecture

The component uses CSS custom properties (design tokens) defined in @cometchat/chat-uikit-react/css-variables.css. The cascade:
  1. Global tokens set on the .cometchat root wrapper.
  2. Component CSS (.cometchat-search) consumes these tokens via var().
  3. Overrides target .cometchat-search descendant selectors.

Key Selectors

TargetSelector
Root.cometchat-search
Header.cometchat-search__header
Search input.cometchat-search__input
Back button.cometchat-search__back-button
Clear button.cometchat-search__input-clear-button
Filter bar.cometchat-search__body-filters
Filter chip.cometchat-search__body-filter
Active filter chip.cometchat-search__body-filter-active
Results container.cometchat-search__results
Conversations section.cometchat-search__conversations
Messages section.cometchat-search__messages
Message list item.cometchat-search-messages__list-item
Initial view.cometchat-search__initial-view
Empty view.cometchat-search__empty-view
Error view.cometchat-search__error-view
Shimmer loading.cometchat-search__shimmer
See more button (conversations).cometchat-search-conversations__see-more
See more button (messages).cometchat-search-messages__see-more
Text highlight.cometchat-search .cometchat-text-highlight
.cometchat-search * {
  font-family: "Times New Roman", Times;
}

.cometchat-search {
  gap: 0;
}

.cometchat-search__header {
  background-color: var(--cometchat-primary-color);
}

.cometchat-search__back-button .cometchat-button .cometchat-button__icon {
  background: var(--cometchat-static-white);
}

.cometchat-search__body {
  padding-block: var(--cometchat-padding-3);
  background-color: var(--cometchat-primary-color);
}

.cometchat-search__conversations {
  padding-top: var(--cometchat-padding-3);
  background-color: var(--cometchat-extended-primary-color-100);
}

.cometchat-search-messages__date-separator {
  display: none;
}

Customization Matrix

What to changeWhereProperty/APIExample
Handle result clicksComponent propsonConversationClicked / onMessageClickedonMessageClicked={(msg) => navigate(msg)}
Control search scopeComponent propssearchInsearchIn={[CometChatSearchScope.Messages]}
Control filter chipsComponent propssearchFilters / initialSearchFiltersearchFilters={[CometChatSearchFilter.Photos]}
Scope to user/groupComponent propsuid / guiduid="user_id"
Customize SDK queriesComponent propsconversationsRequestBuilder / messagesRequestBuilderconversationsRequestBuilder={builder}
Replace result itemsComponent propsView slot propsmessageItemView={(msg) => <div>...</div>}
Change colors, fonts, spacingGlobal CSSTarget .cometchat-search class.cometchat-search__header { background: red; }

Accessibility

The search input is auto-focused on mount. Filter chips are keyboard-navigable and activate on Enter/Space. Search results are rendered as interactive list items, each keyboard-focusable. The back button and clear button are accessible via keyboard. The initial, empty, and error states render descriptive text content for screen readers.

Props

All props are optional. Sorted alphabetically.

conversationItemView

Custom renderer for the entire conversation list item in search results.
Type(conversation: CometChat.Conversation) => JSX.Element
DefaultBuilt-in list item

conversationLeadingView

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

conversationOptions

Custom context menu actions for conversation items.
Type((conversation: CometChat.Conversation) => CometChatOption[]) | null
Defaultundefined

conversationsRequestBuilder

Controls which conversations appear in search results.
TypeCometChat.ConversationsRequestBuilder
DefaultSDK default with search keyword

conversationSubtitleView

Custom renderer for the conversation subtitle.
Type(conversation: CometChat.Conversation) => JSX.Element
DefaultBuilt-in subtitle

conversationTitleView

Custom renderer for the conversation title.
Type(conversation: CometChat.Conversation) => JSX.Element
DefaultBuilt-in title

conversationTrailingView

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

emptyView

Custom component displayed when no search results are found.
TypeJSX.Element
DefaultBuilt-in empty state

errorView

Custom component displayed when an error occurs.
TypeJSX.Element
DefaultBuilt-in error state

guid

Limits search to messages in a specific group.
Typestring
Defaultundefined

hideBackButton

Hides the back button.
Typeboolean
Defaultfalse

hideGroupType

Hides the group type icon in conversation results.
Typeboolean
Defaultfalse

hideReceipts

Hides message read/delivery receipt indicators.
Typeboolean
Defaultfalse

hideUserStatus

Hides the online/offline status indicator.
Typeboolean
Defaultfalse

initialSearchFilter

The filter active by default on load.
TypeCometChatSearchFilter
Defaultundefined

initialView

Custom component displayed before the user enters a search query.
TypeJSX.Element
DefaultBuilt-in initial state

loadingView

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

messageItemView

Custom renderer for the entire message list item in search results.
Type(message: CometChat.BaseMessage) => JSX.Element
DefaultBuilt-in list item

messageLeadingView

Custom renderer for the message avatar / left section.
Type(message: CometChat.BaseMessage) => JSX.Element
DefaultBuilt-in leading view

messageSentAtDateTimeFormat

Format for message timestamps.
TypeCalendarObject
DefaultComponent default
Falls back to global calendar configuration if not set.

messagesRequestBuilder

Controls which messages appear in search results.
TypeCometChat.MessagesRequestBuilder
DefaultSDK default with search keyword

messageSubtitleView

Custom renderer for the message subtitle.
Type(message: CometChat.BaseMessage) => JSX.Element
DefaultBuilt-in subtitle

messageTitleView

Custom renderer for the message title.
Type(message: CometChat.BaseMessage) => JSX.Element
DefaultBuilt-in title

messageTrailingView

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

onBack

Callback fired when the back button is clicked.
Type() => void
Default() => {}

onConversationClicked

Callback fired when a conversation is clicked in search results.
Type(conversation: CometChat.Conversation, searchKeyword?: string) => void
Defaultundefined

onError

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

onMessageClicked

Callback fired when a message is clicked in search results.
Type(message: CometChat.BaseMessage, searchKeyword?: string) => void
Defaultundefined

searchFilters

Filters rendered in the search filter bar.
TypeCometChatSearchFilter[]
DefaultAll available filters
enum CometChatSearchFilter {
  Messages = "messages",
  Conversations = "conversations",
  Unread = "unread",
  Groups = "groups",
  Photos = "photos",
  Videos = "videos",
  Links = "links",
  Documents = "files",
  Audio = "audio",
}

searchIn

Scopes to search in.
TypeCometChatSearchScope[]
Default[CometChatSearchScope.All]
enum CometChatSearchScope {
  Conversations = "conversations",
  Messages = "messages",
}

textFormatters

Custom text formatters for message content.
TypeCometChatTextFormatter[]
Default[]

uid

Limits search to messages with a specific user.
Typestring
Defaultundefined

Events

The CometChatSearch component does not emit any custom UI events.

CSS Selectors

TargetSelector
Root.cometchat-search
Header.cometchat-search__header
Search input.cometchat-search__input
Back button.cometchat-search__back-button
Clear button.cometchat-search__input-clear-button
Filter bar.cometchat-search__body-filters
Filter chip.cometchat-search__body-filter
Active filter chip.cometchat-search__body-filter-active
Results container.cometchat-search__results
Conversations section.cometchat-search__conversations
Conversation list item.cometchat-search__conversations-list-item
Active conversation item.cometchat-search__conversations-list-item-active .cometchat-list-item
Conversation subtitle.cometchat-search__conversations-subtitle
Conversation trailing view.cometchat-search__conversations-trailing-view
Conversation badge count.cometchat-search__conversations-trailing-view-badge-count
Messages section.cometchat-search__messages
Message list item.cometchat-search-messages__list-item
Message subtitle.cometchat-search-messages__subtitle-text
Message trailing view.cometchat-search-messages__trailing-view
Date separator.cometchat-search-messages__date-separator
See more (conversations).cometchat-search-conversations__see-more
See more (messages).cometchat-search-messages__see-more
Text highlight.cometchat-search .cometchat-text-highlight
Initial view.cometchat-search__initial-view
Empty view.cometchat-search__empty-view
Error view.cometchat-search__error-view
Shimmer loading.cometchat-search__shimmer
Online status.cometchat-search__conversations-list-item-online .cometchat-list-item__status
Password group.cometchat-search__conversations-list-item-password .cometchat-list-item__status
Private group.cometchat-search__conversations-list-item-private .cometchat-list-item__status