Skip to content

Commit 9acfa3a

Browse files
chohongmHoonBaek
andauthored
fix: Update suggested replies logic (#1239)
Fixes [AC-4063](https://sendbird.atlassian.net/browse/AC-4063) ### Summary When a regular bot sends a message, `channel.lastMessage` is not updated. Therefore, I modified the code that relies on `channel.lastMessage`. ### Changelogs - improved stability [AC-4063]: https://sendbird.atlassian.net/browse/AC-4063?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: HoonBaek <[email protected]>
1 parent 2fb0d7c commit 9acfa3a

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Diff for: src/modules/Channel/components/Message/index.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const Message = (props: MessageProps) => {
3232
onMessageAnimated,
3333
sendMessage,
3434
localMessages,
35+
allMessages,
3536
} = useChannelContext();
3637

3738
const { message } = props;
@@ -51,7 +52,9 @@ const Message = (props: MessageProps) => {
5152
&& (
5253
config?.groupChannel?.showSuggestedRepliesFor === 'all_messages'
5354
? true
54-
: message.messageId === currentGroupChannel?.lastMessage?.messageId
55+
: message.messageId === allMessages[allMessages.length - 1].messageId
56+
// Use `allMessages[allMessages.length - 1]` instead of `currentGroupChannel.lastMessage`
57+
// because lastMessage is not updated when **Bot** sends messages
5558
)
5659
// the options should appear only when there's no failed or pending messages
5760
&& localMessages?.length === 0

Diff for: src/modules/GroupChannel/components/Message/index.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,13 @@ export const Message = (props: MessageProps): React.ReactElement => {
4343
const shouldRenderSuggestedReplies = useIIFE(() => {
4444
const { enableSuggestedReplies, showSuggestedRepliesFor } = config.groupChannel;
4545

46+
// Use `allMessages[allMessages.length - 1]` instead of `currentGroupChannel.lastMessage`
47+
// because lastMessage is not updated when **Bot** sends messages
4648
const lastMessageInView = messages[messages.length - 1];
4749
const hasUnsentMessage = isSendableMessage(lastMessageInView) && lastMessageInView.sendingStatus !== 'succeeded';
48-
const showSuggestedReplies = showSuggestedRepliesFor === 'all_messages' ? true : message.messageId === currentChannel?.lastMessage?.messageId;
49-
50+
const showSuggestedReplies = showSuggestedRepliesFor === 'all_messages'
51+
? true
52+
: message.messageId === lastMessageInView.messageId;
5053
return enableSuggestedReplies && getSuggestedReplies(message).length > 0 && !hasUnsentMessage && showSuggestedReplies;
5154
});
5255

0 commit comments

Comments
 (0)