@cometchat/chat-uikit-react
Version:
Ready-to-use Chat UI Components for React(Javascript/Web)
150 lines (149 loc) • 10.5 kB
TypeScript
/// <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;
}