import React from 'react'; import { SendingStatus } from '@sendbird/chat/message'; import type { SendbirdMessage } from '@sendbird/uikit-utils'; import { getMessageTimeFormat } from '@sendbird/uikit-utils'; import Box from '../../components/Box'; import Icon from '../../components/Icon'; import PressBox from '../../components/PressBox'; import Text from '../../components/Text'; import createStyleSheet from '../../styles/createStyleSheet'; import useUIKitTheme from '../../theme/useUIKitTheme'; import Avatar from '../Avatar'; import LoadingSpinner from '../LoadingSpinner'; import type { OpenChannelMessageProps } from './index'; type Props = { pressed?: boolean; }; const MessageContainer = ({ children, channel, grouped, pressed, ...props }: OpenChannelMessageProps) => { const { colors } = useUIKitTheme(); const color = colors.ui.openChannelMessage.default; const renderSendingStatus = () => { if (!('sendingStatus' in props.message)) return null; switch (props.message.sendingStatus) { case SendingStatus.PENDING: { return ( ); } case SendingStatus.FAILED: { return ( ); } default: { return null; } } }; return ( {!grouped && 'sender' in props.message ? ( ) : ( )} {!grouped && 'sender' in props.message && ( {props.strings?.senderName ?? props.message.sender.nickname} {props.strings?.sentDate ?? getMessageTimeFormat(new Date(props.message.createdAt))} )} {children} {renderSendingStatus()} ); }; const SendingStatusContainer = ({ children }: { children: React.ReactNode }) => { return ( {children} ); }; const styles = createStyleSheet({ avatar: { width: 28, }, message: { width: '100%', }, }); export default MessageContainer;