From 508016f29de6c7e32de3fb90fe66ef5ea2e8e935 Mon Sep 17 00:00:00 2001 From: HoonBaek Date: Wed, 13 Oct 2021 17:05:12 +0900 Subject: [PATCH] Apply replyType to messageListParams --- .../Conversation/hooks/useHandleReconnect.js | 10 +++++++--- .../Conversation/hooks/useScrollCallback.js | 14 +++++++++++--- .../Conversation/hooks/useScrollDownCallback.js | 14 +++++++++++--- src/smart-components/Conversation/index.jsx | 5 +++-- 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/smart-components/Conversation/hooks/useHandleReconnect.js b/src/smart-components/Conversation/hooks/useHandleReconnect.js index 0f9116990..c0f545a3b 100644 --- a/src/smart-components/Conversation/hooks/useHandleReconnect.js +++ b/src/smart-components/Conversation/hooks/useHandleReconnect.js @@ -3,7 +3,7 @@ import { useEffect } from 'react'; import * as utils from '../utils'; import * as messageActionTypes from '../dux/actionTypes'; -function useHandleReconnect({ isOnline }, { +function useHandleReconnect({ isOnline, replyType }, { logger, sdk, currentGroupChannel, @@ -21,9 +21,13 @@ function useHandleReconnect({ isOnline }, { const messageListParams = new sdk.MessageListParams(); messageListParams.prevResultSize = 30; + messageListParams.isInclusive = true; messageListParams.includeReplies = false; messageListParams.includeReaction = useReaction; - + if (replyType && replyType === 'QUOTE_REPLY') { + messageListParams.includeParentMessageInfo = true; + messageListParams.replyType = 'all'; + } if (userFilledMessageListQuery) { Object.keys(userFilledMessageListQuery).forEach((key) => { messageListParams[key] = userFilledMessageListQuery[key]; @@ -71,7 +75,7 @@ function useHandleReconnect({ isOnline }, { }); } }; - }, [isOnline]); + }, [isOnline, replyType]); } export default useHandleReconnect; diff --git a/src/smart-components/Conversation/hooks/useScrollCallback.js b/src/smart-components/Conversation/hooks/useScrollCallback.js index 8a3ef887c..739ced7fe 100644 --- a/src/smart-components/Conversation/hooks/useScrollCallback.js +++ b/src/smart-components/Conversation/hooks/useScrollCallback.js @@ -6,6 +6,7 @@ function useScrollCallback({ currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery, + replyType, }, { hasMore, logger, @@ -14,11 +15,18 @@ function useScrollCallback({ }) { return useCallback((cb) => { if (!hasMore) { return; } + const {appInfo = {}} = sdk; + const useReaction = appInfo.isUsingReaction || false; + const messageListParams = new sdk.MessageListParams(); messageListParams.prevResultSize = 30; + messageListParams.isInclusive = true; messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - + messageListParams.includeReaction = useReaction; + if (replyType && replyType === 'QUOTE_REPLY') { + messageListParams.includeParentMessageInfo = true; + messageListParams.replyType = 'all'; + } if (userFilledMessageListQuery) { Object.keys(userFilledMessageListQuery).forEach((key) => { messageListParams[key] = userFilledMessageListQuery[key]; @@ -63,7 +71,7 @@ function useScrollCallback({ .finally(() => { currentGroupChannel.markAsRead(); }); - }, [currentGroupChannel, lastMessageTimeStamp]); + }, [currentGroupChannel, lastMessageTimeStamp, replyType]); } export default useScrollCallback; diff --git a/src/smart-components/Conversation/hooks/useScrollDownCallback.js b/src/smart-components/Conversation/hooks/useScrollDownCallback.js index 3e73bbd07..0eed187e0 100644 --- a/src/smart-components/Conversation/hooks/useScrollDownCallback.js +++ b/src/smart-components/Conversation/hooks/useScrollDownCallback.js @@ -9,6 +9,7 @@ function useScrollDownCallback({ latestFetchedMessageTimeStamp, userFilledMessageListQuery, hasMoreToBottom, + replyType, }, { logger, messagesDispatcher, @@ -16,11 +17,18 @@ function useScrollDownCallback({ }) { return useCallback((cb) => { if (!hasMoreToBottom) { return; } + const { appInfo = {} } = sdk; + const useReaction = appInfo.isUsingReaction || false; + const messageListParams = new sdk.MessageListParams(); messageListParams.nextResultSize = RESULT_SIZE; + messageListParams.isInclusive = true; messageListParams.includeReplies = false; - messageListParams.includeReaction = true; - + messageListParams.includeReaction = useReaction; + if (replyType && replyType === 'QUOTE_REPLY') { + messageListParams.includeParentMessageInfo = true; + messageListParams.replyType = 'all'; + } if (userFilledMessageListQuery) { Object.keys(userFilledMessageListQuery).forEach((key) => { messageListParams[key] = userFilledMessageListQuery[key]; @@ -66,7 +74,7 @@ function useScrollDownCallback({ .finally(() => { currentGroupChannel.markAsRead(); }); - }, [currentGroupChannel, latestFetchedMessageTimeStamp, hasMoreToBottom]); + }, [currentGroupChannel, latestFetchedMessageTimeStamp, hasMoreToBottom, replyType]); } export default useScrollDownCallback; diff --git a/src/smart-components/Conversation/index.jsx b/src/smart-components/Conversation/index.jsx index 7b100ad55..ca242db81 100644 --- a/src/smart-components/Conversation/index.jsx +++ b/src/smart-components/Conversation/index.jsx @@ -146,7 +146,7 @@ export const ConversationPanel = (props) => { // Scrollup is default scroll for channel const onScrollCallback = useScrollCallback({ - currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery, + currentGroupChannel, lastMessageTimeStamp, userFilledMessageListQuery, replyType, }, { hasMore, logger, @@ -168,6 +168,7 @@ export const ConversationPanel = (props) => { latestFetchedMessageTimeStamp, userFilledMessageListQuery, hasMoreToBottom, + replyType, }, { logger, messagesDispatcher, @@ -227,7 +228,7 @@ export const ConversationPanel = (props) => { }, [channelUrl, sdkInit]); // handling connection breaks - useHandleReconnect({ isOnline }, { + useHandleReconnect({ isOnline, replyType }, { logger, sdk, currentGroupChannel,