UNPKG

@cometchat/chat-uikit-react-native

Version:

Ready-to-use Chat UI Components for React Native

159 lines (158 loc) 5.36 kB
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;