easemob-chat-uikit
Version:
   ![GitHub last c
46 lines (45 loc) • 1.54 kB
TypeScript
import React, { ReactNode } from 'react';
import { ChatSDK } from '../SDK';
import { BaseMessageType } from '../baseMessage/BaseMessage';
export interface CustomMessageQuoteContext {
message: ChatSDK.CustomMsgBody;
msgQuote?: {
msgID: string;
msgPreview: string;
msgSender: string;
msgType: ChatSDK.MessageBody['type'];
};
prefixCls: string;
}
export type CustomMessageQuoteRenderer = (context: CustomMessageQuoteContext) => ReactNode;
export interface RepliedMsgProps {
prefixCls?: string;
className?: string;
style?: React.CSSProperties;
shape?: 'round' | 'square';
direction?: 'ltr' | 'rtl';
message: BaseMessageType;
/**
* 自定义消息被引用时的渲染器
* 用于渲染用户自定义的 custom 消息在被引用时的展示内容
*
* @example
* ```tsx
* renderCustomMessageQuote={(context) => {
* const { message, prefixCls } = context;
* if (message.customEvent === 'myCustomType') {
* return (
* <div className={`${prefixCls}-content-text`}>
* <Icon type="CUSTOM_ICON" />
* <span>我的自定义消息: {message.customExts?.title}</span>
* </div>
* );
* }
* return null; // 返回 null 使用默认渲染
* }}
* ```
*/
renderCustomMessageQuote?: CustomMessageQuoteRenderer;
}
declare const RepliedMsg: (props: RepliedMsgProps) => import("react/jsx-runtime").JSX.Element | null;
export { RepliedMsg };