Skip to content

Commit 020cecc

Browse files
authored
fix: message list connection reconciliation (#2896)
* fix: connection recovery reconciliation in message list * fix: use top level state for user presence
1 parent 7e50994 commit 020cecc

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

package/src/components/AITypingIndicatorView/hooks/useAIState.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { AIState, Channel, Event } from 'stream-chat';
44

55
import { useChatContext } from '../../../contexts';
66
import type { DefaultStreamChatGenerics } from '../../../types/types';
7-
import { useIsOnline } from '../../Chat/hooks/useIsOnline';
87

98
export const AIStates = {
109
Error: 'AI_STATE_ERROR',
@@ -24,8 +23,7 @@ export const useAIState = <
2423
>(
2524
channel?: Channel<StreamChatGenerics>,
2625
): { aiState: AIState } => {
27-
const { client } = useChatContext<StreamChatGenerics>();
28-
const { isOnline } = useIsOnline<StreamChatGenerics>(client);
26+
const { isOnline } = useChatContext<StreamChatGenerics>();
2927

3028
const [aiState, setAiState] = useState<AIState>(AIStates.Idle);
3129

package/src/components/Channel/Channel.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,14 @@ const ChannelWithContext = <
985985
syncingChannelRef.current = true;
986986
setError(false);
987987

988+
if (channelMessagesState?.messages) {
989+
await channel?.watch({
990+
messages: {
991+
limit: channelMessagesState.messages.length + 30,
992+
},
993+
});
994+
}
995+
988996
const parseMessage = (message: FormatMessageResponse<StreamChatGenerics>) =>
989997
({
990998
...message,
@@ -1003,6 +1011,7 @@ const ChannelWithContext = <
10031011
if (failedMessages?.length) {
10041012
channel.state.addMessagesSorted(failedMessages);
10051013
}
1014+
channel.state.setIsUpToDate(true);
10061015
} else {
10071016
await reloadThread();
10081017

@@ -1042,7 +1051,7 @@ const ChannelWithContext = <
10421051
if (enableOfflineSupport) {
10431052
connectionChangedSubscription = DBSyncManager.onSyncStatusChange((statusChanged) => {
10441053
if (statusChanged) {
1045-
copyChannelState();
1054+
connectionChangedHandler();
10461055
}
10471056
});
10481057
} else {

0 commit comments

Comments
 (0)