diff --git a/lib/utils/delete-message-utils.js b/lib/utils/delete-message-utils.js --- a/lib/utils/delete-message-utils.js +++ b/lib/utils/delete-message-utils.js @@ -23,6 +23,8 @@ import { threadPermissions } from '../types/thread-permission-types.js'; import { thickThreadTypes } from '../types/thread-types-enum.js'; +const deletedMessageText = 'Deleted message'; + function useDeleteMessage(): (message: MessageInfo) => Promise { const callDeleteMessage = useSendDeleteMessage(); const dispatchActionPromise = useDispatchActionPromise(); @@ -113,4 +115,4 @@ ); } -export { useDeleteMessage, useCanDeleteMessage }; +export { useDeleteMessage, useCanDeleteMessage, deletedMessageText }; diff --git a/native/chat/chat-item-height-measurer.react.js b/native/chat/chat-item-height-measurer.react.js --- a/native/chat/chat-item-height-measurer.react.js +++ b/native/chat/chat-item-height-measurer.react.js @@ -14,6 +14,7 @@ messageTypes, type MessageType, } from 'lib/types/message-types-enum.js'; +import { deletedMessageText } from 'lib/utils/delete-message-utils.js'; import { entityTextToRawString } from 'lib/utils/entity-text.js'; import type { MeasurementTask } from './chat-context-provider.react.js'; @@ -35,8 +36,20 @@ if (item.itemType !== 'message') { return null; } - const { messageInfo, hasBeenEdited, threadCreatedFromMessage, reactions } = - item; + const { + messageInfo, + hasBeenEdited, + threadCreatedFromMessage, + reactions, + deleted, + } = item; + + if (deleted) { + return JSON.stringify({ + deleted, + sidebar: getInlineEngagementSidebarText(threadCreatedFromMessage), + }); + } if (messageInfo && messageInfo.type === messageTypes.TEXT) { return JSON.stringify({ @@ -70,8 +83,23 @@ item.itemType === 'message', 'NodeHeightMeasurer asked for dummy for non-message item', ); - const { messageInfo, hasBeenEdited, threadCreatedFromMessage, reactions } = - item; + const { + messageInfo, + hasBeenEdited, + threadCreatedFromMessage, + reactions, + deleted, + } = item; + + if (deleted) { + return dummyNodeForTextMessageHeightMeasurement( + deletedMessageText, + null, + threadCreatedFromMessage, + {}, + true, + ); + } if (messageInfo && messageInfo.type === messageTypes.TEXT) { const label = getMessageLabel(hasBeenEdited, messageInfo.threadID); diff --git a/native/chat/deleted-message.react.js b/native/chat/deleted-message.react.js --- a/native/chat/deleted-message.react.js +++ b/native/chat/deleted-message.react.js @@ -3,6 +3,8 @@ import * as React from 'react'; import { View, Text } from 'react-native'; +import { deletedMessageText } from 'lib/utils/delete-message-utils.js'; + import ComposedMessage from './composed-message.react.js'; import { allCorners, @@ -30,7 +32,6 @@ () => [styles.message, cornerStyle], [cornerStyle, styles.message], ); - const text = 'Deleted message'; return ( - {text} + {deletedMessageText} ); diff --git a/native/chat/inner-text-message.react.js b/native/chat/inner-text-message.react.js --- a/native/chat/inner-text-message.react.js +++ b/native/chat/inner-text-message.react.js @@ -1,7 +1,7 @@ // @flow import * as React from 'react'; -import { StyleSheet, TouchableWithoutFeedback, View } from 'react-native'; +import { StyleSheet, TouchableWithoutFeedback, View, Text } from 'react-native'; import { type SharedValue, useAnimatedStyle } from 'react-native-reanimated'; import type { ReactionInfo } from 'lib/selectors/chat-selectors.js'; @@ -31,10 +31,11 @@ editedLabel?: ?string, sidebarInfo: ?ThreadInfo, reactions: ReactionInfo, + withoutMarkdown?: ?boolean, ): React.Element { return ( - {text} + {text} , + +withoutMarkdown: boolean, +children: string, }; function DummyTextNode(props: DummyTextNodeProps): React.Node { - const { children, style, ...rest } = props; + const { children, style, withoutMarkdown, ...rest } = props; const maxWidth = useComposedMessageMaxWidth(); const viewStyle = [props.style, styles.dummyMessage, { maxWidth }]; const rules = useTextMessageMarkdownRules(false); - return ( - + + let content; + if (withoutMarkdown) { + content = {children}; + } else { + content = ( {children} + ); + } + + return ( + + {content} ); } diff --git a/web/chat/deleted-message.react.js b/web/chat/deleted-message.react.js --- a/web/chat/deleted-message.react.js +++ b/web/chat/deleted-message.react.js @@ -6,6 +6,7 @@ import SWMansionIcon from 'lib/components/swmansion-icon.react.js'; import type { ComposableChatMessageInfoItem } from 'lib/selectors/chat-selectors.js'; import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js'; +import { deletedMessageText } from 'lib/utils/delete-message-utils.js'; import css from './chat-message-list.css'; import ComposedMessage from './composed-message.react.js'; @@ -30,7 +31,7 @@ >
- Deleted message + {deletedMessageText}
);