// SPDX-License-Identifier: AGPL-3.0-or-later import {PRODUCT_NAME} from '@app/features/app/config/I18nDisplayConstants'; import {UserTag} from '@app/features/channel/components/ChannelUserTag'; import {CompactAuthorPrefix, CompactMessageLayout} from '@app/features/channel/components/CompactMessageLayout'; import {MessageAvatar} from '@app/features/channel/components/MessageAvatar'; import {MessageUsername} from '@app/features/channel/components/MessageUsername'; import {useMessageViewContext} from '@app/features/channel/components/MessageViewContext'; import {TimestampWithTooltip} from '@app/features/channel/components/TimestampWithTooltip'; import Guilds from '@app/features/guild/state/Guilds'; import GuildMembers from '@app/features/member/state/GuildMembers'; import {compactMarkdownProps} from '@app/features/theme/layout/MessageLayoutAttributes'; import markupStyles from '@app/features/theme/styles/Markup.module.css'; import styles from '@app/features/theme/styles/Message.module.css'; import Users from '@app/features/user/state/Users'; import * as DateUtils from '@app/features/user/utils/DateFormatting'; import {msg} from '@lingui/core/macro'; import {useLingui} from '@lingui/react/macro'; import {WarningCircleIcon} from '@phosphor-icons/react'; import {clsx} from 'clsx'; import {observer} from 'mobx-react-lite'; const UPDATE_PRODUCT_TO_VIEW_MESSAGE_DESCRIPTOR = msg({ message: 'Update {productName} to view this message.', comment: 'Message placeholder shown when the app cannot render a newer message type.', }); export const UnknownMessage = observer(() => { const {i18n} = useLingui(); const {message, channel, shouldGroup, isHovering, messageDisplayCompact, previewContext, previewOverrides} = useMessageViewContext(); const userAuthor = Users.getUser(message.author.id); const author = message.webhookId != null ? message.author : (userAuthor ?? message.author); const formattedDate = DateUtils.getRelativeDateString(message.timestamp, i18n); const guild = Guilds.getGuild(channel.guildId ?? ''); const member = GuildMembers.getMember(guild?.id ?? '', author?.id ?? ''); const updateMessage = i18n._(UPDATE_PRODUCT_TO_VIEW_MESSAGE_DESCRIPTOR, {productName: PRODUCT_NAME}); if (messageDisplayCompact) { return ( {(showMetadata) => (
{showMetadata && ( )}
{updateMessage}
)}
); } return ( <> {!shouldGroup && ( <>
)}

{author.bot && ( )} {formattedDate}

{updateMessage}
); });