session-desktop/ts/components/conversation/message/message-content/MessageStatus.tsx

35 lines
959 B
TypeScript

import React from 'react';
import { useSelector } from 'react-redux';
import { MessageRenderingProps } from '../../../../models/messageType';
import { getMessageStatusProps } from '../../../../state/selectors/conversations';
import { OutgoingMessageStatus } from './OutgoingMessageStatus';
type Props = {
isCorrectSide: boolean;
messageId: string;
};
export type MessageStatusSelectorProps = Pick<MessageRenderingProps, 'direction' | 'status'>;
export const MessageStatus = (props: Props) => {
const { isCorrectSide } = props;
const selected = useSelector(state => getMessageStatusProps(state as any, props.messageId));
if (!selected) {
return null;
}
const { status, direction } = selected;
if (!isCorrectSide) {
return null;
}
const isIncoming = direction === 'incoming';
const showStatus = !isIncoming && Boolean(status);
if (!showStatus) {
return null;
}
return <OutgoingMessageStatus status={status} />;
};