Skip to content

Commit 5d2feff

Browse files
authored
fix: Add optional chaining for undefined logger and pubSub (#1270)
1 parent fd72464 commit 5d2feff

File tree

4 files changed

+28
-26
lines changed

4 files changed

+28
-26
lines changed

src/modules/OpenChannel/context/hooks/useInitialMessagesFetch.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface DynamicParams {
1212
userFilledMessageListParams?: Record<string, any>;
1313
}
1414
interface StaticParams {
15-
logger: Logger;
15+
logger?: Logger;
1616
messagesDispatcher: CustomUseReducerDispatcher;
1717
scrollRef: React.RefObject<HTMLElement>;
1818
}
@@ -22,7 +22,7 @@ function useInitialMessagesFetch(
2222
{ logger, messagesDispatcher, scrollRef }: StaticParams,
2323
): void {
2424
useEffect(() => {
25-
logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);
25+
logger?.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);
2626
messagesDispatcher({
2727
type: messageActionTypes.RESET_MESSAGES,
2828
payload: null,
@@ -40,16 +40,16 @@ function useInitialMessagesFetch(
4040
// @ts-ignore
4141
messageListParams[key] = userFilledMessageListParams[key];
4242
});
43-
logger.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');
43+
logger?.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');
4444
}
4545

46-
logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages', { currentOpenChannel, messageListParams });
46+
logger?.info('OpenChannel | useInitialMessagesFetch: Fetching messages', { currentOpenChannel, messageListParams });
4747
messagesDispatcher({
4848
type: messageActionTypes.GET_PREV_MESSAGES_START,
4949
payload: null,
5050
});
5151
currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then((messages) => {
52-
logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);
52+
logger?.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);
5353
const hasMore = (messages && messages.length > 0);
5454
const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;
5555
messagesDispatcher({
@@ -63,7 +63,7 @@ function useInitialMessagesFetch(
6363
});
6464
setTimeout(() => { scrollIntoLast(0, scrollRef); });
6565
}).catch((error) => {
66-
logger.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);
66+
logger?.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);
6767
messagesDispatcher({
6868
type: messageActionTypes.GET_PREV_MESSAGES_FAIL,
6969
payload: {

src/modules/OpenChannelApp/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export default function OpenChannelApp({
3131
const [showSettings, setShowSettings] = useState(false);
3232

3333
return (
34-
<Sendbird appId={appId} userId={userId} nickname={nickname} theme={theme} imageCompression={imageCompression}>
34+
<Sendbird appId={appId} userId={userId} nickname={nickname} theme={theme} imageCompression={imageCompression} config={{ logLevel: 'all' }}>
3535
<div className="sendbird-openchannel-app">
3636
<div className={'sendbird-openchannel-app__channellist'}>
3737
<OpenChannelList onChannelSelected={(channel) => setChannelUrl(channel.url)} />

src/modules/OpenChannelList/context/OpenChannelListProvider.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,21 @@ export const OpenChannelListProvider: React.FC<OpenChannelListProviderProps> = (
6161
// Events & PubSub
6262
useEffect(() => {
6363
const subscriber = new Map<string, { remove:() => void }>();
64-
subscriber.set(
65-
pubSubTopics.UPDATE_OPEN_CHANNEL,
66-
pubSub.subscribe(pubSubTopics.UPDATE_OPEN_CHANNEL, (channel) => {
67-
openChannelListDispatcher({
68-
type: OpenChannelListActionTypes.UPDATE_OPEN_CHANNEL,
69-
payload: channel,
70-
});
71-
}),
72-
);
64+
if (pubSub?.subscribe) {
65+
subscriber.set(
66+
pubSubTopics.UPDATE_OPEN_CHANNEL,
67+
pubSub.subscribe(pubSubTopics.UPDATE_OPEN_CHANNEL, (channel) => {
68+
openChannelListDispatcher({
69+
type: OpenChannelListActionTypes.UPDATE_OPEN_CHANNEL,
70+
payload: channel,
71+
});
72+
}),
73+
);
74+
}
7375
return () => {
74-
subscriber.forEach((it) => it.remove());
76+
subscriber.forEach((it) => it?.remove());
7577
};
76-
}, [sdkInitialized, pubSub]);
78+
}, [sdkInitialized, pubSub?.subscribe]);
7779

7880
// Fetch next channels by scroll event
7981
const fetchNextChannels = useFetchNextCallback({

src/modules/OpenChannelList/context/hooks/useSetupOpenChannelList.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface DynamicParams {
1212
openChannelListQuery?: UserFilledOpenChannelListQuery;
1313
}
1414
interface StaticParams {
15-
logger: Logger;
15+
logger?: Logger;
1616
openChannelListDispatcher: OpenChannelListDispatcherType;
1717
}
1818

@@ -30,7 +30,7 @@ function useSetupOpenChannelList(
3030
useEffect(() => {
3131
if (sdkInitialized) {
3232
if (sdk?.openChannel) {
33-
logger.info('OpenChannelList|useSetupOpenChannelList: Setup OpenChannelList', { sdkInitialized });
33+
logger?.info('OpenChannelList|useSetupOpenChannelList: Setup OpenChannelList', { sdkInitialized });
3434
const channelListQuery = createChannelListQuery({
3535
sdk,
3636
logger,
@@ -40,34 +40,34 @@ function useSetupOpenChannelList(
4040
});
4141

4242
if (channelListQuery?.hasNext) {
43-
logger.info('OpenChannelList|useSetupOpenChannelList: Fetch channels');
43+
logger?.info('OpenChannelList|useSetupOpenChannelList: Fetch channels');
4444
openChannelListDispatcher({
4545
type: OpenChannelListActionTypes.INIT_OPEN_CHANNEL_LIST_START,
4646
payload: null,
4747
});
4848
channelListQuery.next()
4949
.then((channelList) => {
50-
logger.info('OpenChannelList|useSetupOpenChannelList: Succeeded fetching channels', channelList);
50+
logger?.info('OpenChannelList|useSetupOpenChannelList: Succeeded fetching channels', channelList);
5151
openChannelListDispatcher({
5252
type: OpenChannelListActionTypes.INIT_OPEN_CHANNEL_LIST_SUCCESS,
5353
payload: channelList,
5454
});
5555
})
5656
.catch((err) => {
57-
logger.error('OpenChannelList|useSetupOpenChannelList: Failed fetching channels', err);
57+
logger?.error('OpenChannelList|useSetupOpenChannelList: Failed fetching channels', err);
5858
openChannelListDispatcher({
5959
type: OpenChannelListActionTypes.INIT_OPEN_CHANNEL_LIST_FAILURE,
6060
payload: null,
6161
});
6262
});
6363
} else {
64-
logger.info('OpenChannelList|useSetupOpenChannelList: There is no more channels');
64+
logger?.info('OpenChannelList|useSetupOpenChannelList: There is no more channels');
6565
}
6666
} else {
67-
logger.warning('OpenChannelList|useSetupOpenChannelList: openChannel is not included in the Chat SDK', sdk);
67+
logger?.warning('OpenChannelList|useSetupOpenChannelList: openChannel is not included in the Chat SDK', sdk);
6868
}
6969
} else {
70-
logger.info('OpenChannelList|useSetupOpenChannelList: Reset OpenChannelList', { sdkInitialized });
70+
logger?.info('OpenChannelList|useSetupOpenChannelList: Reset OpenChannelList', { sdkInitialized });
7171
openChannelListDispatcher({
7272
type: OpenChannelListActionTypes.RESET_OPEN_CHANNEL_LIST,
7373
payload: null,

0 commit comments

Comments
 (0)