Skip to content

Commit 94249e2

Browse files
authored
fix: Modify condition of checking parent and thread messages (#466)
* Do not check threadInfo to improve the parent message, because every normal messages potentially can be a parent message * The type of messageId should be the number
1 parent 6f1965d commit 94249e2

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

src/smart-components/Thread/context/ThreadProvider.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ export const ThreadProvider: React.FC<ThreadProviderProps> = (props: ThreadProvi
145145
sdkInit,
146146
currentChannel,
147147
parentMessage,
148-
}, { logger, pubSub, threadDispatcher })
148+
}, { logger, pubSub, threadDispatcher });
149149

150150
// callbacks
151151
const fetchPrevThreads = useGetPrevThreadsCallback({

src/smart-components/Thread/context/__test__/utils.spec.ts

+12-6
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@ import { UserMessage } from "@sendbird/chat/message";
22
import { getParentMessageFrom, isParentMessage, isThreadMessage } from "../utils";
33

44
const mockParentMessage = {
5-
messageId: 1,
5+
messageId: 111111,
66
parentMessage: null,
7-
parentMessageId: null,
7+
parentMessageId: 0,
88
threadInfo: {
9-
lastRepliedAt: 100000,
9+
lastRepliedAt: 1000,
1010
replyCount: 1,
1111
mostRepliedUsers: [],
12-
updatedAt: 100000,
12+
updatedAt: 1000,
1313
},
1414
};
1515
const mockThreadMessage = {
16-
messageId: 2,
16+
messageId: 111112,
1717
parentMessage: mockParentMessage,
18-
parentMessageId: 1,
18+
parentMessageId: 111111,
1919
threadInfo: null,
2020
};
2121

@@ -26,6 +26,9 @@ describe('Thread/utils - isParentMessage', () => {
2626
it('should confirm if the message is not a parent message', () => {
2727
expect(isParentMessage(mockThreadMessage as UserMessage)).toBe(false);
2828
});
29+
it('should check type of the parentMessageId', () => {
30+
expect(isParentMessage({ ...mockParentMessage, parentMessageId: '1' } as UserMessage)).toBe(false);
31+
});
2932
});
3033

3134
describe('Thread/utils - isThreadMessage', () => {
@@ -35,6 +38,9 @@ describe('Thread/utils - isThreadMessage', () => {
3538
it('should comfirm if the message is not a thread message', () => {
3639
expect(isThreadMessage(mockParentMessage as UserMessage)).toBe(false);
3740
});
41+
it('should check type of the parentMessageId', () => {
42+
expect(isThreadMessage({ ...mockThreadMessage, parentMessageId: '1' } as UserMessage)).toBe(false);
43+
});
3844
});
3945

4046
describe('Thread/utils - getParentMessageFrom', () => {

src/smart-components/Thread/context/utils.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,16 @@ export const getParentMessageFrom = (message: UserMessage | FileMessage): UserMe
2525
export const isParentMessage = (message: UserMessage | FileMessage): boolean => {
2626
return (
2727
message?.parentMessage === null
28-
&& message?.parentMessageId === null
29-
&& message?.threadInfo !== null
28+
&& typeof message?.parentMessageId === 'number'
29+
&& !message?.parentMessageId
3030
);
3131
};
3232

3333
export const isThreadMessage = (message: UserMessage | FileMessage): boolean => {
3434
return (
3535
message?.parentMessage !== null
36-
&& message?.parentMessageId !== null
36+
&& typeof message?.parentMessageId === 'number'
37+
&& message?.parentMessageId > 0
3738
&& message?.threadInfo === null
3839
);
3940
};

0 commit comments

Comments
 (0)