UNPKG

@sendbird/uikit-react

Version:

Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

63 lines (62 loc) 3.12 kB
import React, { ReactElement, ReactNode } from 'react'; import './index.scss'; import { type MessageMenuProps } from '../MessageMenu'; import { MessageEmojiMenuProps } from '../MessageItemReactionMenu'; import { EmojiReactionsProps } from '../EmojiReactions'; import type { OnBeforeDownloadFileMessageType } from '../../modules/GroupChannel/context/types'; import { CoreMessageType, SendableMessageType } from '../../utils'; import { GroupChannel } from '@sendbird/chat/groupChannel'; import { type EmojiCategory, EmojiContainer } from '@sendbird/chat'; import { ThreadReplySelectType } from '../../modules/Channel/context/const'; import { Nullable, ReplyType } from '../../types'; import { MessageProfileProps } from './MessageProfile'; import { MessageBodyProps } from './MessageBody'; import { MessageHeaderProps } from './MessageHeader'; import { MobileBottomSheetProps } from '../MobileMenu/types'; export { MessageBody } from './MessageBody'; export { MessageHeader } from './MessageHeader'; export { MessageProfile } from './MessageProfile'; export interface MessageContentProps extends MessageComponentRenderers { className?: string | Array<string>; userId: string; channel: Nullable<GroupChannel>; message: CoreMessageType; disabled?: boolean; chainTop?: boolean; chainBottom?: boolean; isReactionEnabled?: boolean; disableQuoteMessage?: boolean; replyType?: ReplyType; threadReplySelectType?: ThreadReplySelectType; nicknamesMap?: Map<string, string>; emojiContainer?: EmojiContainer; scrollToMessage?: (createdAt: number, messageId: number) => void; showEdit?: (bool: boolean) => void; showRemove?: (bool: boolean) => void; showFileViewer?: (bool: boolean) => void; resendMessage?: (message: SendableMessageType) => void; deleteMessage?: (message: CoreMessageType) => Promise<void>; toggleReaction?: (message: SendableMessageType, reactionKey: string, isReacted: boolean) => void; setQuoteMessage?: (message: SendableMessageType) => void; markAsUnread?: (message: SendableMessageType) => void; onReplyInThread?: (props: { message: SendableMessageType; }) => void; onQuoteMessageClick?: (props: { message: SendableMessageType; }) => void; onMessageHeightChange?: () => void; onBeforeDownloadFileMessage?: OnBeforeDownloadFileMessageType; } export interface MessageComponentRenderers { renderSenderProfile?: (props: MessageProfileProps) => ReactNode; renderMessageBody?: (props: MessageBodyProps) => ReactNode; renderMessageHeader?: (props: MessageHeaderProps) => ReactNode; renderMessageMenu?: (props: MessageMenuProps) => ReactNode; renderEmojiMenu?: (props: MessageEmojiMenuProps) => ReactNode; renderEmojiReactions?: (props: EmojiReactionsProps) => ReactNode; renderMobileMenuOnLongPress?: (props: MobileBottomSheetProps) => React.ReactElement; filterEmojiCategoryIds?: (message: SendableMessageType) => EmojiCategory['id'][]; } export declare function MessageContent(props: MessageContentProps): ReactElement; export default MessageContent;