Skip to main content

Overview

CometChatGroupMembers is a versatile Component designed to showcase all users who are either added to or invited to a group, thereby enabling them to participate in group discussions, access shared content, and engage in collaborative activities. Group members have the capability to communicate in real-time through messaging, voice and video calls, and various other interactions. Additionally, they can interact with each other, share files, and join calls based on the permissions established by the group administrator or owner.
The CometChatGroupMembers component is composed of the following BaseComponents:

Usage

Integration

CometChatGroupMembers, as a custom view controller, offers flexible integration options, allowing it to be launched directly via button clicks or any user-triggered action. Additionally, it seamlessly integrates into tab view controllers. With group members, users gain access to a wide range of parameters and methods for effortless customization of its user interface. The following code snippet exemplifies how you can seamlessly integrate the GroupMembers component into your application.
If you are already using a navigation controller, you can use the pushViewController function instead of presenting the view controller.

Actions

Actions dictate how a component functions. They are divided into two types: Predefined and User-defined. You can override either type, allowing you to tailor the behavior of the component to fit your specific needs.
  1. set(onItemClick:)
set(OnItemClick:) is triggered when you click on a ListItem of the groups component. This set(OnItemClick:) method proves beneficial when a user intends to customize the on-click behavior in CometChatGroupMembers.

  1. set(OnItemLongClick:)
set(OnItemLongClick:) is triggered when you long press on a ListItem of the group members component. This set(OnItemLongClick:) method proves beneficial when a user intends to additional functionality on long press on list item in CometChatGroupMembers.

3. set(onBack:)
This set(onBack:) method becomes valuable when a user needs to override the action triggered upon pressing the back button in CometChatGroupMembers.

4. set(onSelection:)
The set(onSelection:) only gets trigger when selection mode is set to multiple of single. And this gets trigger on every selection, and returns the list of selected group members.

5. set(onError:)
This method proves helpful when a user needs to customize the action taken upon encountering an error in CometChatGroupMembers.

6. set(onEmpty:)
This set(onEmpty:) method is triggered when the groups list is empty in CometChatGroupMembers.

7. setOnLoad
This set(onLoad:) gets triggered when a group members list is fully fetched and going to displayed on the screen, this return the list of group members to get displayed on the screen.

Filters

Filters allow you to customize the data displayed in a list within a Component. You can filter the list based on your specific criteria, allowing for a more customized. Filters can be applied using RequestBuilders of Chat SDK.
1. GroupsRequestBuilder
The GroupsRequestBuilder enables you to filter and customize the group list based on available parameters in GroupsRequestBuilder. This feature allows you to create more specific and targeted queries when fetching groups. The following are the parameters available in GroupsRequestBuilder Example In the example below, we are applying a filter to the Group List based on limit and scope.
2. SearchRequestBuilder
The SearchRequestBuilder uses GroupsRequestBuilder enables you to filter and customize the search list based on available parameters in GroupsRequestBuilder. This feature allows you to keep uniformity between the displayed Groups List and searched Group List. Example

Events

Events are emitted by a Component. By using event you can extend existing functionality. Being global events, they can be applied in Multiple Locations and are capable of being Added or Removed. Events emitted by the Join Group component is as follows.
Emitting Group Events

View Controller

Customization

To fit your app’s design requirements, you can customize the appearance of the Groups component. We provide exposed methods that allow you to modify the experience and behavior according to your specific needs.

Style

Using Style you can customize the look and feel of the component in your app, These parameters typically control elements such as the color, size, shape, and fonts used within the component.
1. GroupMembers Style
You can set the GroupMembersStyle to the Group Memebers Component to customize the styling. Global level styling
Instance level styling
List of properties exposed by GroupMemberStyle

Functionality

These are a set of small functional customizations that allow you to fine-tune the overall experience of the component. With these, you can change text, set custom icons, and toggle the visibility of UI elements.

Advanced

For advanced-level customization, you can set custom views to the component. This lets you tailor each aspect of the component to fit your exact needs and application aesthetics. You can create and define your own views, layouts, and UI elements and then incorporate those into the component. The Join Group component does not provide additional functionalities beyond this level of customization.

SetListItemView

Utilize this property to assign a custom ListItem to the GroupMembers Component, allowing for enhanced customization and flexibility in its rendering.
Example
In this example, we will create a UIView file CustomListItemGroupView and pass it inside the setListItemView() method.
CustomListItemGroupView

SetLeadingView

You can modify the leading view of a group member cell using .set(leadingView:).
Demonstration
You can create a CustomLeadingView as a custom UIView. Which we will inflate in setLeadingView()

SetTitleView

You can customize the title view of a group member cell using .set(titleView:).
Demonstration
You can create a CustomTitleView as a custom UIView. Which we will inflate in setTitleView()

SetTrailView

You can set a custom Tailview using .setTailView() to match the TailView view of your app.
Example
In this example, we will create a UIView file Custom_Tail_GroupView and pass it inside the .setTailView() method.
Custom_Tail_GroupView

SubtitleView

You can set your custom Subtitle view using the .setSubtitleView() method. But keep in mind, by using this you will override the default Subtitle view functionality.
  • You can customize the subtitle view for each GroupMembers item to meet your requirements
Example
In this example, we will create a Custom_Subtitle_GroupMember_Viewa UIView file.
Custom_Subtitle_GroupMember_View

Options

Enhance your GroupsMembers component by setting Custom Options to incorporate additional functionalities when swiping
  • You can customize the options for group members to meet your requirements
Example
In this example, we’ve enhanced the interface of CometChatGroupMembers by introducing a tailored feature. By adding a custom option, such as “Delete” with a corresponding trash icon, users can now enjoy a more interactive and user-friendly experience.

You can set the Custom Menus to add more options to the Group members component.
  • You can customize the menus for groups to meet your requirements
Example
In this example, we’ll craft a custom button tailored for CometChatGroupMembers, enhancing its interface with a personalized menu for a more user-friendly experience.

SetLoadingView

You can set a custom loading view using .set(loadingView:). This method accepts a UIView to display while data is being fetched.

SetErrorView

You can customize the error view using .set(errorView:). This method accepts a UIView that appears when an error occurs.

SetEmptyView

You can customize the empty state view using .set(emptyView:). This method accepts a UIView that appears when no group members are available.

Ensure to pass and present CometChatGroupMembers. If a navigation controller is already in use, utilize the pushViewController function instead of directly presenting the view controller.