UNPKG

@cometchat/chat-uikit-react

Version:

Ready-to-use Chat UI Components for React(Javascript/Web)

150 lines (149 loc) 10.5 kB
/// <reference types="react" /> import { CometChat } from "@cometchat/chat-sdk-javascript"; import { DataSource } from "./DataSource"; import { additionalParams } from "./ConversationUtils"; import { CometChatMentionsFormatter } from "../formatters/CometChatFormatters/CometChatMentionsFormatter/CometChatMentionsFormatter"; import { CometChatUrlsFormatter } from "../formatters/CometChatFormatters/CometChatUrlsFormatter/CometChatUrlsFormatter"; import { CometChatTextFormatter } from "../formatters/CometChatFormatters/CometChatTextFormatter"; import { CometChatActionsIcon, CometChatActionsView, CometChatMessageComposerAction, CometChatMessageTemplate } from "../modals"; import { MentionsTargetElement, MessageBubbleAlignment } from "../Enums/Enums"; import { CalendarObject } from "./CalendarObject"; export type ComposerId = { parentMessageId: number | null; user: string | null; group: string | null; }; /** * Utility class that extends DataSource and provides getters for message options. * It is used in message and dataSource utils. */ export interface additionalParamsOptions { hideReplyInThreadOption?: boolean; hideTranslateMessageOption?: boolean; hideReactionOption?: boolean; hideEditMessageOption?: boolean; hideDeleteMessageOption?: boolean; hideMessagePrivatelyOption?: boolean; hideCopyMessageOption?: boolean; hideMessageInfoOption?: boolean; } export declare class MessagesDataSource implements DataSource { getEditOption(): CometChatActionsIcon; getDeleteOption(): CometChatActionsIcon; getReactionOption(): CometChatActionsView; getReplyInThreadOption(): CometChatActionsIcon; getSendMessagePrivatelyOption(): CometChatActionsIcon; getCopyOption(): CometChatActionsIcon; getMessageInfoOption(): CometChatActionsIcon; isSentByMe(loggedInUser: CometChat.User, message: CometChat.BaseMessage): boolean; getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: additionalParamsOptions): Array<CometChatActionsIcon | CometChatActionsView>; getIsSentByMe(message: CometChat.BaseMessage): boolean; getImageMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: Object | undefined): Array<CometChatActionsIcon | CometChatActionsView>; getVideoMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: Object | undefined): Array<CometChatActionsIcon | CometChatActionsView>; getAudioMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: Object | undefined): Array<CometChatActionsIcon | CometChatActionsView>; getFileMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: Object | undefined): Array<CometChatActionsIcon | CometChatActionsView>; getReceiptClass(status?: number): "error" | "wait" | "read" | "delivered" | "sent" | undefined; /** * Function to get receipt for message bubble * @param {CometChat.BaseMessage} item - The message bubble for which the receipt needs to be fetched * @returns {JSX.Element | null} Returns JSX.Element for receipt of a message bubble or null */ getBubbleStatusInfoReceipt: (item: CometChat.BaseMessage, hideReceipt?: boolean) => JSX.Element | null; /** * Function for displaying the timestamp next to messages. * @returns CalendarObject */ getMessageSentAtDateFormat(messageSentAtDateTimeFormat?: CalendarObject): { today: string; yesterday: string; lastWeek?: string | undefined; otherDays: string; relativeTime?: { minute?: string | undefined; minutes?: string | undefined; hour?: string | undefined; hours?: string | undefined; } | undefined; }; /** * Function to get status and date for message bubble * @param {CometChat.BaseMessage} item - The message bubble for which the information needs to be fetched * @returns {JSX.Element | null} Returns JSX.Element for status and date of a message bubble or null */ getBubbleStatusInfoDate: (item: CometChat.BaseMessage, messageSentAtDateTimeFormat?: CalendarObject) => JSX.Element | null; getStatusInfoView: (_messageObject: CometChat.BaseMessage, _alignment: MessageBubbleAlignment, hideReceipt?: boolean, messageSentAtDateTimeFormat?: CalendarObject) => import("react/jsx-runtime").JSX.Element | null; getBottomView(_messageObject: CometChat.BaseMessage, _alignment: MessageBubbleAlignment): null; getTextMessageTemplate(additionalConfigurations?: additionalParams): CometChatMessageTemplate; getAudioMessageTemplate(): CometChatMessageTemplate; getVideoMessageTemplate(): CometChatMessageTemplate; getImageMessageTemplate(): CometChatMessageTemplate; getGroupActionTemplate(additionalConfigurations?: { hideGroupActionMessages?: boolean; }): CometChatMessageTemplate; getFileMessageTemplate(): CometChatMessageTemplate; getAllMessageTemplates(additionalConfigurations?: additionalParams): Array<CometChatMessageTemplate>; getMessageTemplate(messageType: string, messageCategory: string, additionalConfigurations?: additionalParams): CometChatMessageTemplate | null; getMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: additionalParamsOptions): Array<CometChatActionsIcon | CometChatActionsView>; getCommonOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, group?: CometChat.Group, additionalParams?: additionalParamsOptions): Array<CometChatActionsIcon | CometChatActionsView>; getAllMessageTypes(): Array<string>; addList(): string; getAllMessageCategories(additionalConfigurations?: { hideGroupActionMessages?: boolean; }): Array<string>; getStickerButton(id: ComposerId, user?: CometChat.User, group?: CometChat.Group): JSX.Element | undefined; getId(): string; getTextMessageContentView(message: CometChat.TextMessage, _alignment: MessageBubbleAlignment, additionalConfigurations?: additionalParams): JSX.Element | Element; getAudioMessageContentView(message: CometChat.MediaMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getFileMessageContentView(message: CometChat.MediaMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getImageMessageContentView(message: CometChat.MediaMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getVideoMessageContentView(message: CometChat.MediaMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getActionMessage(message: any): string; getDeleteMessageBubble(message: CometChat.BaseMessage, text?: string, alignment?: MessageBubbleAlignment): import("react/jsx-runtime").JSX.Element; getGroupActionBubble(message: CometChat.BaseMessage): import("react/jsx-runtime").JSX.Element; getTextMessageBubble(messageText: string, message: CometChat.TextMessage, alignment: MessageBubbleAlignment, additionalConfigurations?: additionalParams): Element | JSX.Element; getAudioMessageBubble(audioUrl: string, message: CometChat.MediaMessage, title?: string, alignment?: MessageBubbleAlignment): Element | JSX.Element; /** * Function to check mimeType and return the iconUrl of that type * @param mimeType * @returns */ getFileType: (mimeType: string) => string; /** * Function to convert bites to human readable fromat eg. kb,mb,gb * @param sizeInBytes * @returns */ getFileSize: (sizeInBytes: number) => string; getFileMessageBubble(fileUrl: string, message: CometChat.MediaMessage, title?: string, alignment?: MessageBubbleAlignment): Element | JSX.Element; getImageMessageBubble(imageUrl: string, placeholderImage: string, message: CometChat.MediaMessage, onClick?: Function): import("react/jsx-runtime").JSX.Element; getVideoMessageBubble(videoUrl: string, message: CometChat.MediaMessage, thumbnailUrl?: string, onClick?: Function): Element | JSX.Element; imageAttachmentOption(): CometChatMessageComposerAction; videoAttachmentOption(): CometChatMessageComposerAction; audioAttachmentOption(): CometChatMessageComposerAction; fileAttachmentOption(): CometChatMessageComposerAction; getAttachmentOptions(id: ComposerId, additionalConfigurations?: any): Array<CometChatMessageComposerAction>; getLastConversationMessage(conversation: CometChat.Conversation, loggedInUser: CometChat.User, additionalConfigurations: additionalParams): string; getAuxiliaryHeaderMenu(user?: CometChat.User, group?: CometChat.Group, additionalConfigurations?: any): Element[] | JSX.Element[]; /** * Adds styled @ for every mention in the text by matching uid * * @param {CometChat.TextMessage} message * @param {string} subtitle * @returns {void} */ getMentionsFormattedText(message: CometChat.TextMessage, subtitle: string, mentionsFormatterParams: { mentionsTargetElement: MentionsTargetElement; }): string; getAllTextFormatters(formatterParams: additionalParams): CometChatTextFormatter[]; getMentionsTextFormatter(params: additionalParams): CometChatMentionsFormatter; getUrlTextFormatter(params?: additionalParams): CometChatUrlsFormatter; getFormMessageBubble(message: CometChat.InteractiveMessage, alignment: MessageBubbleAlignment): Element | JSX.Element; getSchedulerMessageBubble(message: CometChat.InteractiveMessage, alignment: MessageBubbleAlignment): Element | JSX.Element; getCardMessageBubble(message: CometChat.InteractiveMessage, alignment: MessageBubbleAlignment): Element | JSX.Element; getFormMessageTemplate(): CometChatMessageTemplate; getSchedulerMessageTemplate(): CometChatMessageTemplate; getCardMessageTemplate(): CometChatMessageTemplate; getFormMessageContentView(message: CometChat.InteractiveMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getSchedulerMessageContentView(message: CometChat.InteractiveMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; getCardMessageContentView(message: CometChat.InteractiveMessage, _alignment: MessageBubbleAlignment): Element | JSX.Element; }