Skip to content

Commit baa322b

Browse files
committed
fix: memoize integration provided fn
1 parent 7eb09c9 commit baa322b

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

package/src/components/Message/Message.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,10 @@ const MessageWithContext = <
314314
updateMessage,
315315
} = props;
316316
const isMessageAIGenerated = messagesContext.isMessageAIGenerated;
317+
const isAIGenerated = useMemo(
318+
() => isMessageAIGenerated(message),
319+
[message, isMessageAIGenerated],
320+
);
317321
const { client } = chatContext;
318322
const {
319323
theme: {
@@ -466,7 +470,7 @@ const MessageWithContext = <
466470
case 'poll':
467471
return !!message.poll_id;
468472
case 'ai_text':
469-
return isMessageAIGenerated(message);
473+
return isAIGenerated;
470474
case 'text':
471475
default:
472476
return !!message.text;

package/src/components/Message/MessageSimple/MessageContent.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useMemo } from 'react';
22
import {
33
AnimatableNumericValue,
44
LayoutChangeEvent,
@@ -188,6 +188,11 @@ const MessageContentWithContext = <
188188
setMessageContentWidth(width);
189189
};
190190

191+
const isAIGenerated = useMemo(
192+
() => isMessageAIGenerated(message),
193+
[message, isMessageAIGenerated],
194+
);
195+
191196
const error = message.type === 'error' || message.status === MessageStatusTypes.FAILED;
192197

193198
const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;
@@ -398,15 +403,15 @@ const MessageContentWithContext = <
398403
) : null;
399404
}
400405
case 'ai_text':
401-
return isMessageAIGenerated(message) ? (
406+
return isAIGenerated ? (
402407
<StreamingMessageView
403408
key={`ai_message_text_container_${messageContentOrderIndex}`}
404409
/>
405410
) : null;
406411
case 'text':
407412
default:
408413
return (otherAttachments.length && otherAttachments[0].actions) ||
409-
isMessageAIGenerated(message) ? null : (
414+
isAIGenerated ? null : (
410415
<MessageTextContainer<StreamChatGenerics>
411416
key={`message_text_container_${messageContentOrderIndex}`}
412417
/>

package/src/components/Message/MessageSimple/MessageFooter.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useMemo } from 'react';
22
import { StyleSheet, Text, View } from 'react-native';
33

44
import type { Attachment } from 'stream-chat';
@@ -116,6 +116,11 @@ const MessageFooterWithContext = <
116116
} = useTheme();
117117
const { t } = useTranslationContext();
118118

119+
const isAIGenerated = useMemo(
120+
() => isMessageAIGenerated(message),
121+
[message, isMessageAIGenerated],
122+
);
123+
119124
if (isDeleted) {
120125
return (
121126
<View style={[styles.container, metaContainer]} testID='message-deleted'>
@@ -131,7 +136,7 @@ const MessageFooterWithContext = <
131136
return null;
132137
}
133138

134-
const isEdited = isEditedMessage(message) && !isMessageAIGenerated(message);
139+
const isEdited = isEditedMessage(message) && !isAIGenerated;
135140

136141
return (
137142
<>

0 commit comments

Comments
 (0)