UNPKG

@sendbird/uikit-react-native-foundation

Version:

A foundational UI kit for building chat-enabled React Native apps.

58 lines (50 loc) 1.77 kB
import type React from 'react'; import type { SendbirdGroupChannel, SendbirdMessage, SendbirdUser } from '@sendbird/uikit-utils'; import AdminMessage from './Message.admin'; import FileMessage from './Message.file'; import ImageFileMessage from './Message.file.image'; import VideoFileMessage from './Message.file.video'; import VoiceFileMessage from './Message.file.voice'; import type { VoiceFileMessageState } from './Message.file.voice'; import UnknownMessage from './Message.unknown'; import UserMessage from './Message.user'; import OpenGraphUser from './Message.user.og'; export type GroupChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = { channel: SendbirdGroupChannel; message: T; variant?: 'outgoing' | 'incoming'; strings?: { senderName?: string; sentDate?: string; edited?: string; fileName?: string; unknownTitle?: string; unknownDescription?: string; }; children?: React.ReactNode; sendingStatus?: React.ReactNode; parentMessage?: React.ReactNode; replyInfo?: React.ReactNode; groupedWithPrev: boolean; groupedWithNext: boolean; onPress?: () => void; onLongPress?: () => void; onPressAvatar?: () => void; onPressURL?: (url: string) => void; onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void; onToggleVoiceMessage?: ( state: VoiceFileMessageState, setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>, ) => Promise<void>; } & AdditionalProps; const GroupChannelMessage = { User: UserMessage, OpenGraphUser: OpenGraphUser, File: FileMessage, ImageFile: ImageFileMessage, VideoFile: VideoFileMessage, VoiceFile: VoiceFileMessage, Admin: AdminMessage, Unknown: UnknownMessage, }; export default GroupChannelMessage;