import React from 'react'; import { StyleSheet, Text, View } from 'react-native'; import { useTheme } from '../../contexts/themeContext/ThemeContext'; import { Check, CheckAll } from '../../icons'; import type { ChannelPreviewProps } from './ChannelPreview'; import type { ChannelPreviewMessengerPropsWithContext } from './ChannelPreviewMessenger'; import type { DefaultAttachmentType, DefaultChannelType, DefaultCommandType, DefaultEventType, DefaultMessageType, DefaultReactionType, DefaultUserType, UnknownType, } from '../../types/types'; const styles = StyleSheet.create({ date: { fontSize: 12, marginLeft: 2, textAlign: 'right', }, flexRow: { flexDirection: 'row', }, }); export type ChannelPreviewStatusProps< At extends UnknownType = DefaultAttachmentType, Ch extends UnknownType = DefaultChannelType, Co extends string = DefaultCommandType, Ev extends UnknownType = DefaultEventType, Me extends UnknownType = DefaultMessageType, Re extends UnknownType = DefaultReactionType, Us extends UnknownType = DefaultUserType, > = Pick< ChannelPreviewMessengerPropsWithContext, 'latestMessagePreview' | 'formatLatestMessageDate' > & Pick, 'channel'>; export const ChannelPreviewStatus = < At extends UnknownType = DefaultAttachmentType, Ch extends UnknownType = DefaultChannelType, Co extends string = DefaultCommandType, Ev extends UnknownType = DefaultEventType, Me extends UnknownType = DefaultMessageType, Re extends UnknownType = DefaultReactionType, Us extends UnknownType = DefaultUserType, >( props: ChannelPreviewStatusProps, ) => { const { formatLatestMessageDate, latestMessagePreview } = props; const { theme: { channelPreview: { checkAllIcon, checkIcon, date }, colors: { accent_blue, grey }, }, } = useTheme(); const created_at = latestMessagePreview.messageObject?.created_at; const latestMessageDate = created_at ? new Date(created_at) : new Date(); const status = latestMessagePreview.status; return ( {status === 2 ? ( ) : status === 1 ? ( ) : null} {formatLatestMessageDate && latestMessageDate ? formatLatestMessageDate(latestMessageDate) : latestMessagePreview.created_at} ); };