Skip to content

Commit 9482e99

Browse files
committed
fix(MessageUI): use isDeleted as a flag to determine message deletion
1 parent 7893492 commit 9482e99

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/components/Message/MessageUI.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ const MessageUIWithContext = ({
9595
() => isMessageAIGenerated?.(message),
9696
[isMessageAIGenerated, message],
9797
);
98+
const isDeleted =
99+
!!message.deleted_at || message.type === 'deleted' || message.deleted_for_me;
98100

99101
const finalAttachments = useMemo(
100102
() =>
@@ -110,7 +112,7 @@ const MessageUIWithContext = ({
110112
return null;
111113
}
112114

113-
if (MessageDeleted && (message.deleted_at || message.type === 'deleted')) {
115+
if (MessageDeleted && isDeleted) {
114116
return <MessageDeleted message={message} />;
115117
}
116118

@@ -121,7 +123,6 @@ const MessageUIWithContext = ({
121123
const poll = message.poll_id && client.polls.fromState(message.poll_id);
122124

123125
const memberCount = Object.keys(channel?.state?.members ?? {}).length;
124-
const isDeleted = !!message.deleted_at;
125126
const hasAttachment = !isDeleted && messageHasAttachments(message);
126127
const hasSingleAttachment = !isDeleted && messageHasSingleAttachment(message);
127128
const hasGiphyAttachment = !isDeleted && messageHasGiphyAttachment(message);
@@ -216,7 +217,7 @@ const MessageUIWithContext = ({
216217
thread_participants={message.thread_participants}
217218
/>
218219
)}
219-
{message.deleted_at ? (
220+
{isDeleted ? (
220221
<MessageDeletedBubble />
221222
) : (
222223
<>

src/components/Message/__tests__/MessageUI.test.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,30 @@ describe('<MessageSimple />', () => {
202202
expect(results).toHaveNoViolations();
203203
});
204204

205+
it('should render deleted message when message type is deleted', async () => {
206+
const deletedMessage = generateAliceMessage({
207+
type: 'deleted',
208+
});
209+
const { container, getByTestId } = await renderMessageSimple({
210+
message: deletedMessage,
211+
});
212+
expect(getByTestId('message-deleted-bubble')).toBeInTheDocument();
213+
const results = await axe(container);
214+
expect(results).toHaveNoViolations();
215+
});
216+
217+
it('should render deleted message when message is deleted for current user', async () => {
218+
const deletedMessage = generateAliceMessage({
219+
deleted_for_me: true,
220+
});
221+
const { container, getByTestId } = await renderMessageSimple({
222+
message: deletedMessage,
223+
});
224+
expect(getByTestId('message-deleted-bubble')).toBeInTheDocument();
225+
const results = await axe(container);
226+
expect(results).toHaveNoViolations();
227+
});
228+
205229
it('should render deleted message with custom component when message was deleted and a custom delete message component was passed', async () => {
206230
const deletedMessage = generateAliceMessage({
207231
deleted_at: new Date('2019-12-25T03:24:00').toISOString(),

0 commit comments

Comments
 (0)