easemob-chat-uikit
Version:
   ![GitHub last c
71 lines (70 loc) • 2.62 kB
TypeScript
import React, { ReactNode } from 'react';
import { MessageStatusProps } from '../messageStatus';
import { ChatSDK } from '../SDK';
import { ReactionData, ReactionMessageProps } from '../reaction';
interface CustomAction {
visible: boolean;
icon?: ReactNode;
actions?: {
visible?: boolean;
icon?: ReactNode;
content?: string;
onClick?: (message: BaseMessageType) => void;
}[];
}
export type BaseMessageType = Exclude<ChatSDK.MessageBody, ChatSDK.DeliveryMsgBody | ChatSDK.ReadMsgBody | ChatSDK.ChannelMsgBody>;
export interface renderUserProfileProps {
userId: string;
}
export interface BaseMessageProps {
id?: string;
reactionData?: ReactionData[];
bubbleType?: 'primary' | 'secondly' | 'none';
bubbleStyle?: React.CSSProperties;
status?: MessageStatusProps['status'];
avatar?: ReactNode;
avatarShape?: 'circle' | 'square';
showAvatar?: boolean;
showMessageInfo?: boolean;
direction?: 'ltr' | 'rtl';
prefix?: string;
shape?: 'round' | 'square';
arrow?: boolean;
nickName?: string;
className?: string;
children?: React.ReactNode;
style?: React.CSSProperties;
time?: number;
hasRepliedMsg?: boolean;
repliedMessage?: ChatSDK.MessageBody;
customAction?: CustomAction;
reaction?: boolean;
select?: boolean;
messageStatus?: boolean;
message?: BaseMessageType;
onReplyMessage?: () => void;
onDeleteMessage?: (message: BaseMessageType) => void;
onAddReactionEmoji?: (emojiString: string) => void;
onDeleteReactionEmoji?: (emojiString: string) => void;
onShowReactionUserList?: (emojiString: string) => void;
onRecallMessage?: (message: BaseMessageType) => void;
onTranslateMessage?: () => void;
onModifyMessage?: () => void;
onSelectMessage?: () => void;
onResendMessage?: () => void;
onForwardMessage?: (message: BaseMessageType) => void;
onReportMessage?: (message: BaseMessageType) => void;
onPinMessage?: () => void;
onMessageCheckChange?: (checked: boolean) => void;
renderUserProfile?: (props: renderUserProfileProps) => React.ReactNode;
onCreateThread?: () => void;
thread?: boolean;
chatThreadOverview?: ChatSDK.ChatThreadOverview;
showNicknamesForAllMessages?: boolean;
onClickThreadTitle?: () => void;
reactionConfig?: ReactionMessageProps['reactionConfig'];
formatDateTime?: (time: number) => string;
onClick?: (message: ChatSDK.MessageBody) => boolean;
}
declare let BaseMessage: (props: BaseMessageProps) => import("react/jsx-runtime").JSX.Element;
export { BaseMessage };