UNPKG

react-native-chating-ui-kit

Version:

CometChat React Native UI Kit is a collection of custom UI Components designed to build text , chat and calling features in your application. The UI Kit is developed to keep developers in mind and aims to reduce development efforts significantly

282 lines (281 loc) 7.61 kB
import React from 'react'; import { ImageType } from '../shared'; import { CometChat } from '@cometchat-pro/react-native-chat'; import { CometChatDetailsTemplate } from '../shared'; import { BorderStyleInterface, FontStyleInterface } from '../shared/base'; import { AvatarStyleInterface } from '../shared'; import { StatusIndicatorStyleInterface } from '../shared/views/CometChatStatusIndicator/StatusIndicatorStyle'; import { ListItemStyleInterface } from '../shared'; import { AddMembersConfigurationInterface } from '../CometChatAddMembers/AddMembersConfiguration'; import { BannedMembersConfigurationInterface } from '../CometChatBannedMembers/BannedMembersConfiguration'; import { GroupMemberConfigurationInterface } from '../CometChatGroupMembers/GroupMemberConfiguration'; import { CometChatTransferOwnershipInterface } from '../CometChatTransferOwnership/CometChatTransferOwnership'; export interface ModalDetailsInterface { title: string; confirmButtonText: string; cancelButtonText: string; messageText: string; onConfirm: Function; onCancel: Function; style: ModalDetailsStyleInterface; } export interface ModalDetailsStyleInterface { confirmButtonTextFont?: FontStyleInterface; confirmButtonTextColor?: string; cancelButtonTextFont?: FontStyleInterface; cancelButtonTextColor?: string; messageTextFont?: FontStyleInterface; messageTextColor?: string; cancelBackground?: string; confirmBackground?: string; } export interface DetailsStyleInterface { width: string; height: string; backgroundColor: string; border: BorderStyleInterface; borderRadius: number; titleFont: FontStyleInterface; titleColor: string; backIconTint: string; closeIconTint: string; onlineStatusColor: string; privateGroupIconBackground: string; protectedGroupIconBackground: string; } export interface CometChatDetailsInterface { /** * * * @type {CometChat.User} * @description CometChat SDK’s user object */ user?: CometChat.User; /** * * * @type {CometChat.Group} * @description CometChat SDK’s group object */ group?: CometChat.Group; /** * * * @type {string} * @description Title of the component */ title?: string; /** * * * @type {boolean} * @description Toggle close button */ showCloseButton?: boolean; /** * * * @type {ImageType} * @description Icon for close icon */ closeButtonIcon?: ImageType; /** * * * @type {boolean} * @description hide user/group profile view */ hideProfile?: boolean; /** * * * @description ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) → @return {JSX.Element} */ SubtitleView?: ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) => JSX.Element; /** * * * @description ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) → @return {JSX.Element} */ CustomProfileView?: ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) => JSX.Element; /** * * * @type {CometChatDetailsTemplate[]} * @description ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) → @return {CometChatDetailsTemplate[]} */ data?: ({ user, group, }: { user?: CometChat.User; group?: CometChat.Group; }) => CometChatDetailsTemplate[]; /** * * * @type {boolean} * @description Toggle to disable user presence. When set to true, status indicator component will not render in the UI */ disableUsersPresence?: boolean; /** * * * @type {ImageType} * @description icon for protected group */ protectedGroupIcon?: ImageType; /** * * * @type {ImageType} * @description icon for private group */ privateGroupIcon?: ImageType; /** * * * @type {string} * @description Text to be displayed on the leave button in the confirm dialog (leave group) */ leaveGroupButtonText?: string; /** * * * @type {string} * @description Text to be displayed on the cancel button in the confirm dialog (leave group) */ leaveGroupCancelButtonText?: string; /** * * * @type {string} * @description Text to be displayed in the confirm dialog (leave group) */ leaveGroupConfirmDialogMessage?: string; /** * * * @type {ModalDetailsStyleInterface} * @description Styling properties of leave group confirm dialog */ leaveGroupDialogStyle?: ModalDetailsStyleInterface; /** * * * @type {string} * @description Text to be displayed on the leave button in the confirm dialog (delete group) */ deleteGroupButtonText?: string; /** * * * @type {string} * @description Text to be displayed on the cancel button in the confirm dialog (delete group) */ deleteGroupCancelButtonText?: string; /** * * * @type {string} * @description Text to be displayed in the confirm dialog (delete group) */ deleteGroupConfirmDialogMessage?: string; /** * * * @type {ModalDetailsStyleInterface} * @description Styling properties of delete group confirm dialog */ deleteGroupDialogStyle?: ModalDetailsStyleInterface; /** * * * @type {*} * @description Configurable properties of the group members component */ groupMembersConfiguration?: GroupMemberConfigurationInterface; /** * * * @type {*} * @description Configurable properties of the add members component */ addMembersConfiguration?: AddMembersConfigurationInterface; /** * * * @type {*} * @description Configurable properties of the banned members component */ bannedMembersConfiguration?: BannedMembersConfigurationInterface; /** * * * @type {*} * @description Configurable properties of the transfer owernership component */ transferOwnershipConfiguration?: CometChatTransferOwnershipInterface; /** * * * @description Callback invoked upon encountering an error in the component */ onError?: (error: any) => void; /** * * * @description Callback invoked upon clicking close icon / back button */ onBack?: () => void; /** * * * @type {AvatarStyleInterface} * @description Styling properties of the avatar component */ avatarStyle?: AvatarStyleInterface; /** * * * @type {StatusIndicatorStyleInterface} * @description Styling properties of the status indicator component */ statusIndicatorStyle?: StatusIndicatorStyleInterface; /** * * * @type {ListItemStyleInterface} * @description Styling properties of the list item component */ listItemStyle?: ListItemStyleInterface; /** * * * @type {DetailsStyleInterface} * @description Styling properties of the details component */ detailsStyle?: DetailsStyleInterface; } export declare const CometChatDetails: (props: CometChatDetailsInterface) => React.JSX.Element;