@cometchat/chat-uikit-react-native
Version:
Ready-to-use Chat UI Components for React Native
159 lines (158 loc) • 5.36 kB
TypeScript
import { CometChat } from "@cometchat/chat-sdk-react-native";
import { CometChatListProps } from "../shared";
import { DeepPartial } from "../shared/helper/types";
import { GroupMemberStyle } from "./style";
import { MenuItemInterface } from "../shared/views/CometChatTooltipMenu/CometChatTooltipMenu";
import { JSX } from "react";
/**
* Props for the CometChatGroupMembers component.
*/
export interface CometChatGroupMembersInterface extends Omit<CometChatListProps, "requestBuilder" | "listItemKey" | "title" | "statusIndicatorStyle" | "avatarStyle" | "listItemStyle" | "listStyle" | "ListItemView" | "searchRequestBuilder" | "onSelection" | "disableUsersPresence" | "errorStateText" | "emptyStateText" | "onListFetched" | "hideBackButton" | "statusIndicatorType" | "hideStickyHeader"> {
/**
* Custom view for subtitle.
* @param item - Object of CometChat.GroupMember.
* @returns JSX.Element.
*/
SubtitleView?: (item: CometChat.GroupMember) => JSX.Element;
TitleView?: (item: CometChat.GroupMember) => JSX.Element;
/**
* Custom tail view.
* @param item - Object of CometChat.GroupMember.
* @returns JSX.Element.
*/
TrailingView?: (item: CometChat.GroupMember) => JSX.Element;
/**
* Custom view for empty state.
* @returns JSX.Element.
*/
EmptyView?: () => JSX.Element;
/**
* Custom view for error state.
* @returns JSX.Element.
*/
ErrorView?: () => JSX.Element;
/**
* Custom view for loading state.
* @returns JSX.Element.
*/
LoadingView?: () => JSX.Element;
/**
* Callback for press on ListItem.
* @param groupMember - Object of CometChat.GroupMember.
* @returns void.
*/
onItemPress?: (groupMember: CometChat.GroupMember) => void;
/**
* Callback for long press on ListItem.
* @param groupMember - Object of CometChat.GroupMember.
* @returns void.
*/
onItemLongPress?: (groupMember: CometChat.GroupMember) => void;
/**
* Callback for on selection of group members.
* @param list - Array of selected GroupMembers.
* @returns void.
*/
onSelection?: (list: CometChat.GroupMember[]) => void;
/**
* Callback when submit selection button is pressed.
*/
onSubmit?: (list: Array<CometChat.Conversation>) => void;
/**
* Pass search request builder object.
*/
searchRequestBuilder?: CometChat.GroupMembersRequestBuilder;
/**
* Pass group member request builder object.
*/
groupMemberRequestBuilder?: CometChat.GroupMembersRequestBuilder;
/**
* Pass CometChat SDK's group object.
*/
group: CometChat.Group;
/**
* Style for group member.
*/
style?: DeepPartial<GroupMemberStyle>;
/**
* Custom Item view.
*/
ItemView?: (item: CometChat.GroupMember) => JSX.Element;
/**
* Custom ListItem view.
*/
LeadingView?: (item: CometChat.GroupMember) => JSX.Element;
/**
* Callback triggered when the group members list is empty.
*/
onEmpty?: () => void;
/**
* Callback triggered once the group members have loaded (i.e., the fetched list is not empty).
* Receives the array of group members.
*/
onLoad?: (list: CometChat.GroupMember[]) => void;
/**
* A function to **replace** the default menu items entirely for a group member.d
* @param member - The group member object
* @param group - The group object
* @returns An array of menu items (with text, onPress, etc.)
*/
options?: (member: CometChat.GroupMember, group: CometChat.Group) => MenuItemInterface[];
/**
* A function to **append** more menu items on top of the default menu items for a group member.
* @param member - The group member object
* @param group - The group object
* @returns An array of menu items that will be appended to the default list
*/
addOptions?: (member: CometChat.GroupMember, group: CometChat.Group) => MenuItemInterface[];
/**
* Hide the "Remove" (Kick) option from the default menu.
*/
hideKickMemberOption?: boolean;
/**
* Hide the "Ban" option from the default menu.
*/
hideBanMemberOption?: boolean;
/**
* Hide the "Change Scope" option from the default menu.
*/
hideScopeChangeOption?: boolean;
/**
* Hide the loading skeleton.
*/
hideLoadingState?: boolean;
/**
* Hide the users Status.
*/
usersStatusVisibility?: boolean;
/**
* Hide the Header.
*/
hideHeader?: boolean;
/**
* Hide the Submit Button.
*/
onError?: () => void;
/**
* search Keyword
*/
searchKeyword?: string;
/**
* visibilty of back button
*/
showBackButton?: boolean;
/**
* exclude owner from the list.
*/
excludeOwner?: boolean;
}
/**
* Component to render and manage the list of group members.
*
* This component renders a list of group members using CometChatList and provides functionality
* to manage member roles (change scope), ban, or remove members through menus and modals.
*
* @param props - Props of type CometChatGroupMembersInterface.
* @returns JSX.Element.
*/
export declare const CometChatGroupMembers: (props: CometChatGroupMembersInterface) => JSX.Element;