UNPKG

easemob-chat-uikit

Version:

![Static Badge](https://img.shields.io/badge/platform-React-green) ![Static Badge](https://img.shields.io/badge/language-typescript-green) ![GitHub commit activity](https://img.shields.io/github/commit-activity/y/easemob/Easemob-UIKit-web) ![GitHub last c

36 lines (35 loc) 1.78 kB
import React, { FC, ReactNode } from 'react'; import { ChatSDK } from '../SDK'; import { renderUserProfileProps } from '../baseMessage'; import { CurrentConversation } from '../store/ConversationStore'; import { BaseMessageProps } from '../baseMessage'; import { NoticeMessageBody } from '../noticeMessage/NoticeMessage'; export interface MessageRenderContext { message: ChatSDK.MessageBody | NoticeMessageBody; style: React.CSSProperties; renderUserProfile?: (props: renderUserProfileProps) => React.ReactNode; isThread?: boolean; messageProps?: BaseMessageProps; onOpenThreadPanel?: (threadId: string) => void; onRtcInviteMessageClick?: (message: ChatSDK.MessageBody) => void; scrollToBottom?: () => void; } export type MessageType = 'txt' | 'img' | 'audio' | 'video' | 'file' | 'loc' | 'combine' | 'custom' | 'notice' | 'recall'; export type MessageRenderer = (context: MessageRenderContext) => ReactNode; export interface MsgListProps { prefix?: string; className?: string; style?: React.CSSProperties; isThread?: boolean; /** @deprecated 使用 customRenderers 替代,支持按类型自定义 */ renderMessage?: (message: ChatSDK.MessageBody | NoticeMessageBody) => ReactNode; /** 按消息类型自定义渲染器,只需要传入想自定义的类型即可,其他类型会使用默认渲染 */ customRenderers?: Partial<Record<MessageType, MessageRenderer>>; renderUserProfile?: (props: renderUserProfileProps) => React.ReactNode; conversation?: CurrentConversation; messageProps?: BaseMessageProps; onOpenThreadPanel?: (threadId: string) => void; onRtcInviteMessageClick?: (message: ChatSDK.MessageBody) => void; } declare let MessageList: FC<MsgListProps>; export { MessageList };