import React, { PropsWithChildren } from 'react'; import TencentCloudChat from '@tencentcloud/chat'; import type { TUIMessageProps } from './TUIMessage'; import { MessageBubble } from './MessageBubble'; import { MessageTip } from './MessageTip'; import './styles/index.scss'; import { messageShowType, useComponentContext, useTUIMessageContext } from '../../context'; import { MessageSystem } from './MessageSystem'; import { MessageRevoke } from './MessageRevoke'; import { MessageName } from './MessageName'; import { MessageAvatar } from './MessageAvatar'; function TUIMessageDefaultWithContext ( props: PropsWithChildren, ):React.ReactElement { const { message, MessageContext: propsMessageContext, MessagePlugins: propsMessagePlugins, className, } = props; const { MessageContext: contextMessageContext, MessagePlugins: contextMessagePlugins, } = useComponentContext('TUIMessage'); const { prefix, suffix, customName, showAvatar = messageShowType.IN, showName = messageShowType.IN, customAvatar, } = useTUIMessageContext('TUIMessage'); const MessageContextUIComponent = propsMessageContext || contextMessageContext; const MessagePlugins = propsMessagePlugins || contextMessagePlugins; return (
{ message?.type === TencentCloudChat.TYPES.MSG_GRP_TIP && () } { message?.type === TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE && () } { message?.isRevoked && () } {message?.type !== TencentCloudChat.TYPES.MSG_GRP_TIP && message?.type !== TencentCloudChat.TYPES.MSG_GRP_SYS_NOTICE && !message?.isRevoked && (
{prefix}
{suffix}
)}
); } const MemoizedTUIMessageDefault = React.memo(TUIMessageDefaultWithContext) as typeof TUIMessageDefaultWithContext; export function TUIMessageDefault(props:TUIMessageProps):React.ReactElement { const { message, } = props; return ( ); }