UNPKG

@cometchat/chat-uikit-react-native

Version:

Ready-to-use Chat UI Components for React Native

134 lines (133 loc) 6.14 kB
import { CometChat } from "@cometchat/chat-sdk-react-native"; import { MessageBubbleAlignmentType } from "../base/Types"; import { CometChatMessageOption } from "./CometChatMessageOption"; import { CometChatTheme } from "../../theme/type"; import { JSX } from "react"; /** * Represents the interface for a message template. */ interface MessageTemplateInterface { /** * The category of the message template. */ category: string; /** * The type of the message template. */ type: (typeof CometChat.MESSAGE_TYPE)[keyof typeof CometChat.MESSAGE_TYPE]; /** * The content view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the content view. */ ContentView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The bubble view of the message template. * @param messageObject - The message object. * @returns The JSX element representing the bubble view. */ BubbleView?: (messageObject: CometChat.BaseMessage) => JSX.Element | null; /** * The bottom view of the message template. * @param messageObject - The message object. * @returns The JSX element representing the bottom view. */ BottomView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The header view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the header view. */ HeaderView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The status info view of the message template for DateTime and Receipt. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the status info view. */ StatusInfoView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The footer view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the footer view. */ FooterView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The options of the message template. * @param loggedInUser - The logged in user. * @param messageObject - The message object. * @param group - The group. * @returns The array of CometChatMessageOption. */ options?: (loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group) => CometChatMessageOption[]; } /** * Represents a message template for CometChat. */ export declare class CometChatMessageTemplate implements MessageTemplateInterface { /** * The category of the message template. */ category: string; /** * The type of the message template. */ type: (typeof CometChat.MESSAGE_TYPE)[keyof typeof CometChat.MESSAGE_TYPE]; /** * The content view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the content view. */ ContentView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The bubble view of the message template. * @param messageObject - The message object. * @returns The JSX element representing the bubble view. */ BubbleView?: (messageObject: CometChat.BaseMessage) => JSX.Element | null; /** * The bottom view of the message template. * @param messageObject - The message object. * @returns The JSX element representing the bottom view. */ BottomView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The header view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the header view. */ HeaderView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The status info view of the message template for DateTime and Receipt. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the status info view. */ StatusInfoView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The footer view of the message template. * @param messageObject - The message object. * @param alignment - The alignment of the message bubble. * @returns The JSX element representing the footer view. */ FooterView?: (messageObject: CometChat.BaseMessage, alignment: MessageBubbleAlignmentType) => JSX.Element | null; /** * The options of the message template. * @param loggedInUser - The logged in user. * @param messageObject - The message object. * @param group - The group. * @returns The array of CometChatMessageOption. */ options?: (loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group) => CometChatMessageOption[]; /** * Constructs a new instance of the CometChatMessageTemplate class. * @param {MessageTemplateInterface} options - The options for the message template. */ constructor({ category, type, ContentView, BottomView, BubbleView, HeaderView, StatusInfoView, FooterView, options, }: MessageTemplateInterface); } export {};