Skip to content

Commit

Permalink
fix: forward groupStyles to Message in VirtualizedMessageList (#2440)
Browse files Browse the repository at this point in the history
Co-authored-by: @TaylorBeeston
  • Loading branch information
MartinCupela authored Jun 27, 2024
1 parent aed0360 commit 241f5d7
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ export const messageRenderer = <
lastReceivedMessageId,
Message: MessageUIComponent,
messageActions,
messageGroupStyles,
MessageSystem,
numItemsPrepended,
ownMessagesReadByOthers,
Expand Down Expand Up @@ -218,6 +219,7 @@ export const messageRenderer = <
firstOfGroup={firstOfGroup}
formatDate={formatDate}
groupedByUser={groupedByUser}
groupStyles={[messageGroupStyles[message.id] ?? '']}
lastReceivedId={lastReceivedMessageId}
message={message}
Message={MessageUIComponent}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
ChatProvider,
ComponentProvider,
TranslationProvider,
useMessageContext,
} from '../../../context';
import { MessageSimple } from '../../Message';
import { UnreadMessagesSeparator } from '../UnreadMessagesSeparator';
Expand Down Expand Up @@ -164,7 +165,7 @@ describe('VirtualizedMessageComponents', () => {

describe('EmptyPlaceholder', () => {
const EmptyStateIndicator = ({ listType }) => (
<div data-listType={listType}>Custom EmptyStateIndicator</div>
<div data-listtype={listType}>Custom EmptyStateIndicator</div>
);
const NullEmptyStateIndicator = null;
const componentContext = { EmptyStateIndicator };
Expand Down Expand Up @@ -249,6 +250,40 @@ describe('VirtualizedMessageComponents', () => {
});

describe('default item rendering logic', () => {
it('should forward message group styles', () => {
const virtuosoRef = { current: {} };
let groupStylesMessageContext;
const Message = () => {
const { groupStyles } = useMessageContext();
groupStylesMessageContext = groupStyles;
return null;
};
const processedMessages = [generateMessage()];
const messageGroupStyles = { [processedMessages[0].id]: 'xy' };
renderElements(
<>
{processedMessages.map((_, numItemsPrepended) => {
const virtuosoContext = {
Message,
messageGroupStyles,
numItemsPrepended,
ownMessagesReadByOthers: {},
prependOffset,
processedMessages,
virtuosoRef,
};
return (
<div key={numItemsPrepended}>
{messageRenderer(virtuosoIndex, undefined, virtuosoContext)}
</div>
);
})}
</>,
);
expect(groupStylesMessageContext).toStrictEqual([
messageGroupStyles[processedMessages[0].id],
]);
});
it('should render nothing if MessageSystem component is undefined for system messages', () => {
const virtuosoContext = {
numItemsPrepended,
Expand Down Expand Up @@ -343,6 +378,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadMessageId: messages[0].id,
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand Down Expand Up @@ -376,6 +412,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadDate: new Date(1),
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand Down Expand Up @@ -409,6 +446,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadMessageId: messages[1].id,
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended: 1,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand All @@ -433,6 +471,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadMessageId: messages[0].id,
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand Down Expand Up @@ -466,6 +505,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadMessageId: messages[0].id,
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand All @@ -489,6 +529,7 @@ describe('VirtualizedMessageComponents', () => {
lastReadMessageId: messages[0].id,
lastReceivedMessageId: messages[1].id,
Message,
messageGroupStyles: {},
numItemsPrepended: 1,
ownMessagesReadByOthers: {},
processedMessages: messages,
Expand Down Expand Up @@ -531,6 +572,7 @@ describe('VirtualizedMessageComponents', () => {
{processedMessages.map((_, numItemsPrepended) => {
const virtuosoContext = {
Message: MessageSimple,
messageGroupStyles: {},
numItemsPrepended,
ownMessagesReadByOthers: {},
prependOffset,
Expand Down

0 comments on commit 241f5d7

Please sign in to comment.