// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React, {type ReactNode} from 'react'; import {Text, View} from 'react-native'; import CompassIcon from '@components/compass_icon'; import ProfileAvatar from '@components/draft_post_header/profile_avatar'; import FormattedText from '@components/formatted_text'; import FormattedTime from '@components/formatted_time'; import {General} from '@constants'; import {useTheme} from '@context/theme'; import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme'; import {typography} from '@utils/typography'; import {getUserTimezone} from '@utils/user'; import type ChannelModel from '@typings/database/models/servers/channel'; import type PostModel from '@typings/database/models/servers/post'; import type UserModel from '@typings/database/models/servers/user'; type Props = { channel: ChannelModel; draftReceiverUser?: UserModel; updateAt: number; rootId?: PostModel['rootId']; testID?: string; currentUser?: UserModel; isMilitaryTime: boolean; } const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => { return { container: { display: 'flex', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', }, infoContainer: { display: 'flex', flexDirection: 'row', alignItems: 'center', }, channelInfo: { display: 'flex', flexDirection: 'row', alignItems: 'center', }, category: { color: changeOpacity(theme.centerChannelColor, 0.64), ...typography('Body', 75, 'SemiBold'), marginRight: 8, }, categoryIconContainer: { width: 24, height: 24, backgroundColor: changeOpacity(theme.centerChannelColor, 0.08), padding: 4, borderRadius: 555, }, profileComponentContainer: { marginRight: 6, }, displayName: { color: changeOpacity(theme.centerChannelColor, 0.64), ...typography('Body', 75, 'SemiBold'), }, time: { color: changeOpacity(theme.centerChannelColor, 0.64), ...typography('Body', 75), }, }; }); const DraftPostHeader: React.FC = ({ channel, draftReceiverUser, updateAt, rootId, testID, currentUser, isMilitaryTime, }) => { const theme = useTheme(); const style = getStyleSheet(theme); const isChannelTypeDM = channel.type === General.DM_CHANNEL; const ChannelInfo = ({id, defaultMessage}: {id: string; defaultMessage: string}) => ( {draftReceiverUser ? ( ) : ( )} ); let headerComponent: ReactNode = null; if (rootId) { headerComponent = ( ); } else if (isChannelTypeDM) { headerComponent = ( ); } else { headerComponent = ( ); } return ( {headerComponent} {channel.displayName} ); }; export default DraftPostHeader;