Skip to content

Commit 241f5d7

Browse files
authored
fix: forward groupStyles to Message in VirtualizedMessageList (#2440)
Co-authored-by: @TaylorBeeston
1 parent aed0360 commit 241f5d7

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

src/components/MessageList/VirtualizedMessageListComponents.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ export const messageRenderer = <
134134
lastReceivedMessageId,
135135
Message: MessageUIComponent,
136136
messageActions,
137+
messageGroupStyles,
137138
MessageSystem,
138139
numItemsPrepended,
139140
ownMessagesReadByOthers,
@@ -218,6 +219,7 @@ export const messageRenderer = <
218219
firstOfGroup={firstOfGroup}
219220
formatDate={formatDate}
220221
groupedByUser={groupedByUser}
222+
groupStyles={[messageGroupStyles[message.id] ?? '']}
221223
lastReceivedId={lastReceivedMessageId}
222224
message={message}
223225
Message={MessageUIComponent}

src/components/MessageList/__tests__/VirtualizedMessageListComponents.test.js

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
ChatProvider,
2222
ComponentProvider,
2323
TranslationProvider,
24+
useMessageContext,
2425
} from '../../../context';
2526
import { MessageSimple } from '../../Message';
2627
import { UnreadMessagesSeparator } from '../UnreadMessagesSeparator';
@@ -164,7 +165,7 @@ describe('VirtualizedMessageComponents', () => {
164165

165166
describe('EmptyPlaceholder', () => {
166167
const EmptyStateIndicator = ({ listType }) => (
167-
<div data-listType={listType}>Custom EmptyStateIndicator</div>
168+
<div data-listtype={listType}>Custom EmptyStateIndicator</div>
168169
);
169170
const NullEmptyStateIndicator = null;
170171
const componentContext = { EmptyStateIndicator };
@@ -249,6 +250,40 @@ describe('VirtualizedMessageComponents', () => {
249250
});
250251

251252
describe('default item rendering logic', () => {
253+
it('should forward message group styles', () => {
254+
const virtuosoRef = { current: {} };
255+
let groupStylesMessageContext;
256+
const Message = () => {
257+
const { groupStyles } = useMessageContext();
258+
groupStylesMessageContext = groupStyles;
259+
return null;
260+
};
261+
const processedMessages = [generateMessage()];
262+
const messageGroupStyles = { [processedMessages[0].id]: 'xy' };
263+
renderElements(
264+
<>
265+
{processedMessages.map((_, numItemsPrepended) => {
266+
const virtuosoContext = {
267+
Message,
268+
messageGroupStyles,
269+
numItemsPrepended,
270+
ownMessagesReadByOthers: {},
271+
prependOffset,
272+
processedMessages,
273+
virtuosoRef,
274+
};
275+
return (
276+
<div key={numItemsPrepended}>
277+
{messageRenderer(virtuosoIndex, undefined, virtuosoContext)}
278+
</div>
279+
);
280+
})}
281+
</>,
282+
);
283+
expect(groupStylesMessageContext).toStrictEqual([
284+
messageGroupStyles[processedMessages[0].id],
285+
]);
286+
});
252287
it('should render nothing if MessageSystem component is undefined for system messages', () => {
253288
const virtuosoContext = {
254289
numItemsPrepended,
@@ -343,6 +378,7 @@ describe('VirtualizedMessageComponents', () => {
343378
lastReadMessageId: messages[0].id,
344379
lastReceivedMessageId: messages[1].id,
345380
Message,
381+
messageGroupStyles: {},
346382
numItemsPrepended,
347383
ownMessagesReadByOthers: {},
348384
processedMessages: messages,
@@ -376,6 +412,7 @@ describe('VirtualizedMessageComponents', () => {
376412
lastReadDate: new Date(1),
377413
lastReceivedMessageId: messages[1].id,
378414
Message,
415+
messageGroupStyles: {},
379416
numItemsPrepended,
380417
ownMessagesReadByOthers: {},
381418
processedMessages: messages,
@@ -409,6 +446,7 @@ describe('VirtualizedMessageComponents', () => {
409446
lastReadMessageId: messages[1].id,
410447
lastReceivedMessageId: messages[1].id,
411448
Message,
449+
messageGroupStyles: {},
412450
numItemsPrepended: 1,
413451
ownMessagesReadByOthers: {},
414452
processedMessages: messages,
@@ -433,6 +471,7 @@ describe('VirtualizedMessageComponents', () => {
433471
lastReadMessageId: messages[0].id,
434472
lastReceivedMessageId: messages[1].id,
435473
Message,
474+
messageGroupStyles: {},
436475
numItemsPrepended,
437476
ownMessagesReadByOthers: {},
438477
processedMessages: messages,
@@ -466,6 +505,7 @@ describe('VirtualizedMessageComponents', () => {
466505
lastReadMessageId: messages[0].id,
467506
lastReceivedMessageId: messages[1].id,
468507
Message,
508+
messageGroupStyles: {},
469509
numItemsPrepended,
470510
ownMessagesReadByOthers: {},
471511
processedMessages: messages,
@@ -489,6 +529,7 @@ describe('VirtualizedMessageComponents', () => {
489529
lastReadMessageId: messages[0].id,
490530
lastReceivedMessageId: messages[1].id,
491531
Message,
532+
messageGroupStyles: {},
492533
numItemsPrepended: 1,
493534
ownMessagesReadByOthers: {},
494535
processedMessages: messages,
@@ -531,6 +572,7 @@ describe('VirtualizedMessageComponents', () => {
531572
{processedMessages.map((_, numItemsPrepended) => {
532573
const virtuosoContext = {
533574
Message: MessageSimple,
575+
messageGroupStyles: {},
534576
numItemsPrepended,
535577
ownMessagesReadByOthers: {},
536578
prependOffset,

0 commit comments

Comments
 (0)