Skip to content

Commit

Permalink
Divide the Thread props to propsMessage and propsParentMessage
Browse files Browse the repository at this point in the history
  • Loading branch information
HoonBaek committed Mar 28, 2023
1 parent 534cccf commit 99c392d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 16 deletions.
6 changes: 1 addition & 5 deletions src/smart-components/App/DesktopLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import Channel from '../Channel';
import ChannelSettings from '../ChannelSettings';
import MessageSearchPannel from '../MessageSearch';
import Thread from '../Thread';
import { BaseMessage, UserMessage } from '@sendbird/chat/message';

export const DesktopLayout: React.FC<DesktopLayoutProps> = (
props: DesktopLayoutProps,
Expand Down Expand Up @@ -77,10 +76,7 @@ export const DesktopLayout: React.FC<DesktopLayoutProps> = (
setShowSettings(false);
setShowSearch(false);
if (replyType === 'THREAD') {
setThreadTargetMessage({
parentMessage: message as BaseMessage,
parentMessageId: message?.messageId,
} as UserMessage);
setThreadTargetMessage(message);
setShowThread(true);
}
}}
Expand Down
15 changes: 8 additions & 7 deletions src/smart-components/Thread/context/ThreadProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { User } from '@sendbird/chat';
import { GroupChannel } from '@sendbird/chat/groupChannel';
import { BaseMessage, FileMessage, FileMessageCreateParams, UserMessage } from '@sendbird/chat/message';

import { getNicknamesMapFromMembers } from './utils';
import { getNicknamesMapFromMembers, isThreadMessage } from './utils';
import { UserProfileProvider } from '../../../lib/UserProfileContext';
import { CustomUseReducerDispatcher } from '../../../lib/SendbirdState';
import useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';
Expand Down Expand Up @@ -64,7 +64,6 @@ export const ThreadProvider: React.FC<ThreadProviderProps> = (props: ThreadProvi
const {
children,
channelUrl,
message,
onHeaderActionClick,
onMoveToParentMessage,
onBeforeSendVoiceMessage,
Expand All @@ -73,6 +72,8 @@ export const ThreadProvider: React.FC<ThreadProviderProps> = (props: ThreadProvi
renderUserProfile,
onUserProfileMessage,
} = props;
const propsMessage = props?.message;
const propsParentMessage = isThreadMessage(propsMessage) ? propsMessage?.parentMessage : propsMessage;
// Context from SendbirdProvider
const globalStore = useSendbirdStateContext();
const { stores, config } = globalStore;
Expand Down Expand Up @@ -120,19 +121,19 @@ export const ThreadProvider: React.FC<ThreadProviderProps> = (props: ThreadProvi
useGetChannel({
channelUrl,
sdkInit,
message,
message: propsMessage,
}, { sdk, logger, threadDispatcher });
useGetParentMessage({
channelUrl,
sdkInit,
parentMessageId: message?.parentMessageId,
parentMessage: message?.parentMessage,
parentMessage: propsParentMessage,
}, { sdk, logger, threadDispatcher });
useGetThreadList({
sdkInit,
parentMessage,
isReactionEnabled,
anchorMessage: message?.messageId ? message : null,
anchorMessage: propsMessage?.messageId !== propsParentMessage?.messageId ? propsMessage : null,
// anchorMessage should be null when parentMessage doesn't exist
}, { logger, threadDispatcher });
useGetAllEmoji({ sdk }, { logger, threadDispatcher });
// Handle channel events
Expand Down Expand Up @@ -193,7 +194,7 @@ export const ThreadProvider: React.FC<ThreadProviderProps> = (props: ThreadProvi
value={{
// ThreadProviderProps
channelUrl,
message,
message: propsMessage,
onHeaderActionClick,
onMoveToParentMessage,
// ThreadContextInitialState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { ChannelType } from '@sendbird/chat';

interface DynamicProps {
channelUrl: string;
parentMessageId: number;
sdkInit: boolean;
parentMessage?: BaseMessage;
}
Expand All @@ -21,7 +20,6 @@ interface StaticProps {

export default function useGetParentMessage({
channelUrl,
parentMessageId,
sdkInit,
parentMessage,
}: DynamicProps, {
Expand All @@ -39,7 +37,7 @@ export default function useGetParentMessage({
const params: MessageRetrievalParams = {
channelUrl,
channelType: ChannelType.GROUP,
messageId: parentMessageId,
messageId: parentMessage?.messageId,
includeMetaArray: true,
includeReactions: true,
includeThreadInfo: true,
Expand Down Expand Up @@ -67,7 +65,7 @@ export default function useGetParentMessage({
});
});
}
}, [sdkInit, parentMessageId]);
}, [sdkInit, parentMessage?.messageId]);
/**
* We don't use channelUrl here,
* because Thread must operate independently of the channel.
Expand Down

0 comments on commit 99c392d

Please sign in to comment.