@sendbird/uikit-chat-hooks 3.0.4 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/channel/useChannelMessagesReducer.js +60 -11
- package/lib/commonjs/channel/useChannelMessagesReducer.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +94 -83
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +44 -26
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +46 -28
- package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/channel/useChannelMessagesReducer.js +61 -12
- package/lib/module/channel/useChannelMessagesReducer.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +96 -85
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +44 -26
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
- package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +46 -28
- package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -0
- package/package.json +5 -5
- package/src/channel/useChannelMessagesReducer.ts +66 -17
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +75 -84
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +26 -22
- package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +31 -26
- package/src/types.ts +1 -0
|
@@ -36,14 +36,14 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
36
36
|
};
|
|
37
37
|
const init = useFreshCallback(async uid => {
|
|
38
38
|
if (uid) {
|
|
39
|
-
var _queryRef$current;
|
|
39
|
+
var _sdk$currentUser, _queryRef$current;
|
|
40
40
|
channelMarkAsRead();
|
|
41
|
-
updateNewMessages([], true, sdk.currentUser.userId);
|
|
41
|
+
updateNewMessages([], true, (_sdk$currentUser = sdk.currentUser) === null || _sdk$currentUser === void 0 ? void 0 : _sdk$currentUser.userId);
|
|
42
42
|
queryRef.current = createMessageQuery(channel, options);
|
|
43
43
|
if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
|
|
44
|
-
var _queryRef$current2;
|
|
44
|
+
var _queryRef$current2, _sdk$currentUser2;
|
|
45
45
|
const list = await ((_queryRef$current2 = queryRef.current) === null || _queryRef$current2 === void 0 ? void 0 : _queryRef$current2.load());
|
|
46
|
-
updateMessages(list, true, sdk.currentUser.userId);
|
|
46
|
+
updateMessages(list, true, (_sdk$currentUser2 = sdk.currentUser) === null || _sdk$currentUser2 === void 0 ? void 0 : _sdk$currentUser2.userId);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
});
|
|
@@ -55,22 +55,24 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
55
55
|
useChannelHandler(sdk, handlerId, {
|
|
56
56
|
// Messages
|
|
57
57
|
onMessageReceived(eventChannel, message) {
|
|
58
|
-
var _options$shouldCountN;
|
|
58
|
+
var _sdk$currentUser3, _sdk$currentUser4, _options$shouldCountN;
|
|
59
59
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
60
|
-
if (isMyMessage(message, sdk.currentUser.userId)) return;
|
|
60
|
+
if (isMyMessage(message, (_sdk$currentUser3 = sdk.currentUser) === null || _sdk$currentUser3 === void 0 ? void 0 : _sdk$currentUser3.userId)) return;
|
|
61
61
|
channelMarkAsRead();
|
|
62
|
-
updateMessages([message], false, sdk.currentUser.userId);
|
|
62
|
+
updateMessages([message], false, (_sdk$currentUser4 = sdk.currentUser) === null || _sdk$currentUser4 === void 0 ? void 0 : _sdk$currentUser4.userId);
|
|
63
63
|
if (options !== null && options !== void 0 && (_options$shouldCountN = options.shouldCountNewMessages) !== null && _options$shouldCountN !== void 0 && _options$shouldCountN.call(options)) {
|
|
64
|
-
|
|
64
|
+
var _sdk$currentUser5;
|
|
65
|
+
updateNewMessages([message], false, (_sdk$currentUser5 = sdk.currentUser) === null || _sdk$currentUser5 === void 0 ? void 0 : _sdk$currentUser5.userId);
|
|
65
66
|
}
|
|
66
67
|
if (options !== null && options !== void 0 && options.onMessagesReceived) {
|
|
67
68
|
options.onMessagesReceived([message]);
|
|
68
69
|
}
|
|
69
70
|
},
|
|
70
71
|
onMessageUpdated(eventChannel, message) {
|
|
72
|
+
var _sdk$currentUser6, _sdk$currentUser7;
|
|
71
73
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
72
|
-
if (isMyMessage(message, sdk.currentUser.userId)) return;
|
|
73
|
-
updateMessages([message], false, sdk.currentUser.userId);
|
|
74
|
+
if (isMyMessage(message, (_sdk$currentUser6 = sdk.currentUser) === null || _sdk$currentUser6 === void 0 ? void 0 : _sdk$currentUser6.userId)) return;
|
|
75
|
+
updateMessages([message], false, (_sdk$currentUser7 = sdk.currentUser) === null || _sdk$currentUser7 === void 0 ? void 0 : _sdk$currentUser7.userId);
|
|
74
76
|
},
|
|
75
77
|
onMessageDeleted(eventChannel, messageId) {
|
|
76
78
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
@@ -78,6 +80,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
78
80
|
deleteNewMessages([messageId], []);
|
|
79
81
|
},
|
|
80
82
|
async onReactionUpdated(eventChannel, reactionEvent) {
|
|
83
|
+
var _sdk$currentUser8;
|
|
81
84
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
82
85
|
const message = await sdk.message.getMessage({
|
|
83
86
|
messageId: reactionEvent.messageId,
|
|
@@ -88,7 +91,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
88
91
|
channelUrl: channel.url,
|
|
89
92
|
channelType: channel.channelType
|
|
90
93
|
});
|
|
91
|
-
updateMessages([message], false, sdk.currentUser.userId);
|
|
94
|
+
if (message) updateMessages([message], false, (_sdk$currentUser8 = sdk.currentUser) === null || _sdk$currentUser8 === void 0 ? void 0 : _sdk$currentUser8.userId);
|
|
92
95
|
},
|
|
93
96
|
// Channels
|
|
94
97
|
onChannelChanged: channelUpdater,
|
|
@@ -113,8 +116,9 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
113
116
|
onUserMuted: channelUpdater,
|
|
114
117
|
onUserUnmuted: channelUpdater,
|
|
115
118
|
onUserBanned(eventChannel, bannedUser) {
|
|
119
|
+
var _sdk$currentUser9;
|
|
116
120
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
117
|
-
if (bannedUser.userId === sdk.currentUser.userId) {
|
|
121
|
+
if (bannedUser.userId === ((_sdk$currentUser9 = sdk.currentUser) === null || _sdk$currentUser9 === void 0 ? void 0 : _sdk$currentUser9.userId)) {
|
|
118
122
|
var _options$onChannelDel2;
|
|
119
123
|
options === null || options === void 0 ? void 0 : (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 ? void 0 : _options$onChannelDel2.call(options);
|
|
120
124
|
} else {
|
|
@@ -135,9 +139,9 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
135
139
|
const prev = useFreshCallback(async () => {
|
|
136
140
|
var _queryRef$current3;
|
|
137
141
|
if (queryRef.current && (_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
|
|
138
|
-
var _queryRef$current4;
|
|
142
|
+
var _queryRef$current4, _sdk$currentUser10;
|
|
139
143
|
const list = await ((_queryRef$current4 = queryRef.current) === null || _queryRef$current4 === void 0 ? void 0 : _queryRef$current4.load());
|
|
140
|
-
updateMessages(list, false, sdk.currentUser.userId);
|
|
144
|
+
updateMessages(list, false, (_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId);
|
|
141
145
|
}
|
|
142
146
|
});
|
|
143
147
|
const hasPrev = useFreshCallback(() => {
|
|
@@ -150,16 +154,21 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
150
154
|
return new Promise((resolve, reject) => {
|
|
151
155
|
channel.sendUserMessage(params).onPending(pendingMessage => {
|
|
152
156
|
if (pendingMessage.isUserMessage()) {
|
|
153
|
-
|
|
157
|
+
var _sdk$currentUser11;
|
|
158
|
+
updateMessages([pendingMessage], false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
|
|
154
159
|
onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
|
|
155
160
|
}
|
|
156
161
|
}).onSucceeded(sentMessage => {
|
|
157
162
|
if (sentMessage.isUserMessage()) {
|
|
158
|
-
|
|
163
|
+
var _sdk$currentUser12;
|
|
164
|
+
updateMessages([sentMessage], false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
|
|
159
165
|
resolve(sentMessage);
|
|
160
166
|
}
|
|
161
|
-
}).onFailed((err,
|
|
162
|
-
|
|
167
|
+
}).onFailed((err, failedMessage) => {
|
|
168
|
+
if (failedMessage) {
|
|
169
|
+
var _sdk$currentUser13;
|
|
170
|
+
updateMessages([failedMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
|
|
171
|
+
}
|
|
163
172
|
reject(err);
|
|
164
173
|
});
|
|
165
174
|
});
|
|
@@ -168,37 +177,45 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
168
177
|
return new Promise((resolve, reject) => {
|
|
169
178
|
channel.sendFileMessage(params).onPending(pendingMessage => {
|
|
170
179
|
if (pendingMessage.isFileMessage()) {
|
|
171
|
-
|
|
180
|
+
var _sdk$currentUser14;
|
|
181
|
+
updateMessages([pendingMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
|
|
172
182
|
onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
|
|
173
183
|
}
|
|
174
184
|
}).onSucceeded(sentMessage => {
|
|
175
185
|
if (sentMessage.isFileMessage()) {
|
|
176
|
-
|
|
186
|
+
var _sdk$currentUser15;
|
|
187
|
+
updateMessages([sentMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
|
|
177
188
|
resolve(sentMessage);
|
|
178
189
|
}
|
|
179
|
-
}).onFailed((err,
|
|
180
|
-
|
|
190
|
+
}).onFailed((err, failedMessage) => {
|
|
191
|
+
if (failedMessage) {
|
|
192
|
+
var _sdk$currentUser16;
|
|
193
|
+
updateMessages([failedMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
|
|
194
|
+
}
|
|
181
195
|
reject(err);
|
|
182
196
|
});
|
|
183
197
|
});
|
|
184
198
|
});
|
|
185
199
|
const updateUserMessage = useFreshCallback(async (messageId, params) => {
|
|
200
|
+
var _sdk$currentUser17;
|
|
186
201
|
const updatedMessage = await channel.updateUserMessage(messageId, params);
|
|
187
|
-
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
202
|
+
updateMessages([updatedMessage], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
|
|
188
203
|
return updatedMessage;
|
|
189
204
|
});
|
|
190
205
|
const updateFileMessage = useFreshCallback(async (messageId, params) => {
|
|
206
|
+
var _sdk$currentUser18;
|
|
191
207
|
const updatedMessage = await channel.updateFileMessage(messageId, params);
|
|
192
|
-
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
208
|
+
updateMessages([updatedMessage], false, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
|
|
193
209
|
return updatedMessage;
|
|
194
210
|
});
|
|
195
211
|
const resendMessage = useFreshCallback(async failedMessage => {
|
|
212
|
+
var _sdk$currentUser19;
|
|
196
213
|
const message = await (() => {
|
|
197
214
|
if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
|
|
198
215
|
if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
|
|
199
216
|
return null;
|
|
200
217
|
})();
|
|
201
|
-
if (message) updateMessages([message], false, sdk.currentUser.userId);
|
|
218
|
+
if (message) updateMessages([message], false, (_sdk$currentUser19 = sdk.currentUser) === null || _sdk$currentUser19 === void 0 ? void 0 : _sdk$currentUser19.userId);
|
|
202
219
|
});
|
|
203
220
|
const deleteMessage = useFreshCallback(async message => {
|
|
204
221
|
if (message.sendingStatus === 'succeeded') {
|
|
@@ -209,7 +226,8 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
|
|
|
209
226
|
}
|
|
210
227
|
});
|
|
211
228
|
const resetNewMessages = useFreshCallback(() => {
|
|
212
|
-
|
|
229
|
+
var _sdk$currentUser20;
|
|
230
|
+
updateNewMessages([], true, (_sdk$currentUser20 = sdk.currentUser) === null || _sdk$currentUser20 === void 0 ? void 0 : _sdk$currentUser20.userId);
|
|
213
231
|
});
|
|
214
232
|
return {
|
|
215
233
|
loading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","ASYNC_NOOP","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useAsyncEffect","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","handlerId","forceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","_queryRef$current","currentUser","current","hasNext","_queryRef$current2","list","load","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","_options$shouldCountN","shouldCountNewMessages","call","onMessagesReceived","onMessageUpdated","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_options$onChannelDel2","refresh","prev","_queryRef$current3","_queryRef$current4","hasPrev","_queryRef$current5","next","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","resetWithStartingPoint"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { PreviousMessageListQueryParams } from '@sendbird/chat/message';\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (channel: SendbirdGroupChannel, options?: UseGroupChannelMessagesOptions) => {\n if (options?.queryCreator) return options.queryCreator();\n\n const params: PreviousMessageListQueryParams = { limit: 100, reverse: true };\n if (options?.replyType) params.replyType = options.replyType;\n\n return channel.createPreviousMessageListQuery(params);\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n deleteMessages,\n updateNewMessages,\n deleteNewMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser.userId);\n\n queryRef.current = createMessageQuery(channel, options);\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n }\n });\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n channelMarkAsRead();\n\n updateMessages([message], false, sdk.currentUser.userId);\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages([message], false, sdk.currentUser.userId);\n }\n if (options?.onMessagesReceived) {\n options.onMessagesReceived([message]);\n }\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNewMessages([messageId], []);\n },\n async onReactionUpdated(eventChannel, reactionEvent) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n const message = await sdk.message.getMessage({\n messageId: reactionEvent.messageId,\n includeReactions: true,\n includeParentMessageInfo: true,\n includeThreadInfo: true,\n includeMetaArray: true,\n channelUrl: channel.url,\n channelType: channel.channelType,\n });\n updateMessages([message], false, sdk.currentUser.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useRef","ASYNC_NOOP","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useAsyncEffect","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","handlerId","forceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","_sdk$currentUser","_queryRef$current","currentUser","current","hasNext","_queryRef$current2","_sdk$currentUser2","list","load","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","_sdk$currentUser3","_sdk$currentUser4","_options$shouldCountN","shouldCountNewMessages","call","_sdk$currentUser5","onMessagesReceived","onMessageUpdated","_sdk$currentUser6","_sdk$currentUser7","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","_sdk$currentUser8","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_sdk$currentUser9","_options$onChannelDel2","refresh","prev","_queryRef$current3","_queryRef$current4","_sdk$currentUser10","hasPrev","_queryRef$current5","next","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser11","onSucceeded","sentMessage","_sdk$currentUser12","onFailed","err","failedMessage","_sdk$currentUser13","sendFileMessage","isFileMessage","_sdk$currentUser14","_sdk$currentUser15","_sdk$currentUser16","updateUserMessage","_sdk$currentUser17","updatedMessage","updateFileMessage","_sdk$currentUser18","resendMessage","_sdk$currentUser19","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","_sdk$currentUser20","resetWithStartingPoint"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { PreviousMessageListQueryParams } from '@sendbird/chat/message';\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (channel: SendbirdGroupChannel, options?: UseGroupChannelMessagesOptions) => {\n if (options?.queryCreator) return options.queryCreator();\n\n const params: PreviousMessageListQueryParams = { limit: 100, reverse: true };\n if (options?.replyType) params.replyType = options.replyType;\n\n return channel.createPreviousMessageListQuery(params);\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n deleteMessages,\n updateNewMessages,\n deleteNewMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser?.userId);\n\n queryRef.current = createMessageQuery(channel, options);\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser?.userId);\n }\n }\n });\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser?.userId)) return;\n\n channelMarkAsRead();\n\n updateMessages([message], false, sdk.currentUser?.userId);\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages([message], false, sdk.currentUser?.userId);\n }\n if (options?.onMessagesReceived) {\n options.onMessagesReceived([message]);\n }\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser?.userId)) return;\n\n updateMessages([message], false, sdk.currentUser?.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNewMessages([messageId], []);\n },\n async onReactionUpdated(eventChannel, reactionEvent) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n const message = await sdk.message.getMessage({\n messageId: reactionEvent.messageId,\n includeReactions: true,\n includeParentMessageInfo: true,\n includeThreadInfo: true,\n includeMetaArray: true,\n channelUrl: channel.url,\n channelType: channel.channelType,\n });\n if (message) updateMessages([message], false, sdk.currentUser?.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser?.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -28,14 +28,14 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
28
28
|
} = useChannelMessagesReducer(options === null || options === void 0 ? void 0 : options.sortComparator);
|
|
29
29
|
const init = useFreshCallback(async uid => {
|
|
30
30
|
if (uid) {
|
|
31
|
-
var _queryRef$current;
|
|
31
|
+
var _queryRef$current, _sdk$currentUser2;
|
|
32
32
|
queryRef.current = createMessageQuery(channel, options === null || options === void 0 ? void 0 : options.queryCreator);
|
|
33
33
|
if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
|
|
34
|
-
var _queryRef$current2;
|
|
34
|
+
var _queryRef$current2, _sdk$currentUser;
|
|
35
35
|
const list = await ((_queryRef$current2 = queryRef.current) === null || _queryRef$current2 === void 0 ? void 0 : _queryRef$current2.load());
|
|
36
|
-
updateMessages(list, true, sdk.currentUser.userId);
|
|
36
|
+
updateMessages(list, true, (_sdk$currentUser = sdk.currentUser) === null || _sdk$currentUser === void 0 ? void 0 : _sdk$currentUser.userId);
|
|
37
37
|
}
|
|
38
|
-
updateNewMessages([], true, sdk.currentUser.userId);
|
|
38
|
+
updateNewMessages([], true, (_sdk$currentUser2 = sdk.currentUser) === null || _sdk$currentUser2 === void 0 ? void 0 : _sdk$currentUser2.userId);
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
const channelUpdater = channel => {
|
|
@@ -45,7 +45,7 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
45
45
|
};
|
|
46
46
|
useConnectionHandler(sdk, handlerId, {
|
|
47
47
|
async onReconnectSucceeded() {
|
|
48
|
-
var _queryRef$current3, _queryRef$current4, _queryRef$current5, _queryRef$current6, _queryRef$current7, _queryRef$current8, _queryRef$current9, _queryRef$current10, _queryRef$current11, _queryRef$current12, _queryRef$current13, _queryRef$current14, _queryRef$current15, _queryRef$current16, _queryRef$current17, _queryRef$current18;
|
|
48
|
+
var _queryRef$current3, _queryRef$current4, _queryRef$current5, _queryRef$current6, _queryRef$current7, _queryRef$current8, _queryRef$current9, _queryRef$current10, _queryRef$current11, _queryRef$current12, _queryRef$current13, _queryRef$current14, _queryRef$current15, _queryRef$current16, _queryRef$current17, _queryRef$current18, _sdk$currentUser3;
|
|
49
49
|
const lastMessage = messages[0];
|
|
50
50
|
if (!lastMessage) return;
|
|
51
51
|
const messageContext = {
|
|
@@ -114,12 +114,13 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
// Update to View
|
|
117
|
-
updateMessages([...messageContext.addedMessages, ...messageContext.updatedMessages], false, sdk.currentUser.userId);
|
|
117
|
+
updateMessages([...messageContext.addedMessages, ...messageContext.updatedMessages], false, (_sdk$currentUser3 = sdk.currentUser) === null || _sdk$currentUser3 === void 0 ? void 0 : _sdk$currentUser3.userId);
|
|
118
118
|
deleteMessages(messageContext.deletedMessageIds, []);
|
|
119
119
|
if (messageContext.addedMessages.length > 0) {
|
|
120
120
|
var _options$shouldCountN;
|
|
121
121
|
if (options !== null && options !== void 0 && (_options$shouldCountN = options.shouldCountNewMessages) !== null && _options$shouldCountN !== void 0 && _options$shouldCountN.call(options)) {
|
|
122
|
-
|
|
122
|
+
var _sdk$currentUser4;
|
|
123
|
+
updateNewMessages(messageContext.addedMessages, false, (_sdk$currentUser4 = sdk.currentUser) === null || _sdk$currentUser4 === void 0 ? void 0 : _sdk$currentUser4.userId);
|
|
123
124
|
}
|
|
124
125
|
if (options !== null && options !== void 0 && options.onMessagesReceived) {
|
|
125
126
|
options.onMessagesReceived(messageContext.addedMessages);
|
|
@@ -130,21 +131,23 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
130
131
|
useChannelHandler(sdk, handlerId, {
|
|
131
132
|
// Messages
|
|
132
133
|
onMessageReceived(eventChannel, message) {
|
|
133
|
-
var _options$shouldCountN2;
|
|
134
|
+
var _sdk$currentUser5, _sdk$currentUser6, _options$shouldCountN2;
|
|
134
135
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
135
|
-
if (isMyMessage(message, sdk.currentUser.userId)) return;
|
|
136
|
-
updateMessages([message], false, sdk.currentUser.userId);
|
|
136
|
+
if (isMyMessage(message, (_sdk$currentUser5 = sdk.currentUser) === null || _sdk$currentUser5 === void 0 ? void 0 : _sdk$currentUser5.userId)) return;
|
|
137
|
+
updateMessages([message], false, (_sdk$currentUser6 = sdk.currentUser) === null || _sdk$currentUser6 === void 0 ? void 0 : _sdk$currentUser6.userId);
|
|
137
138
|
if (options !== null && options !== void 0 && (_options$shouldCountN2 = options.shouldCountNewMessages) !== null && _options$shouldCountN2 !== void 0 && _options$shouldCountN2.call(options)) {
|
|
138
|
-
|
|
139
|
+
var _sdk$currentUser7;
|
|
140
|
+
updateNewMessages([message], false, (_sdk$currentUser7 = sdk.currentUser) === null || _sdk$currentUser7 === void 0 ? void 0 : _sdk$currentUser7.userId);
|
|
139
141
|
}
|
|
140
142
|
if (options !== null && options !== void 0 && options.onMessagesReceived) {
|
|
141
143
|
options.onMessagesReceived([message]);
|
|
142
144
|
}
|
|
143
145
|
},
|
|
144
146
|
onMessageUpdated(eventChannel, message) {
|
|
147
|
+
var _sdk$currentUser8, _sdk$currentUser9;
|
|
145
148
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
146
|
-
if (isMyMessage(message, sdk.currentUser.userId)) return;
|
|
147
|
-
updateMessages([message], false, sdk.currentUser.userId);
|
|
149
|
+
if (isMyMessage(message, (_sdk$currentUser8 = sdk.currentUser) === null || _sdk$currentUser8 === void 0 ? void 0 : _sdk$currentUser8.userId)) return;
|
|
150
|
+
updateMessages([message], false, (_sdk$currentUser9 = sdk.currentUser) === null || _sdk$currentUser9 === void 0 ? void 0 : _sdk$currentUser9.userId);
|
|
148
151
|
},
|
|
149
152
|
onMessageDeleted(eventChannel, messageId) {
|
|
150
153
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
@@ -171,8 +174,9 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
171
174
|
onUserMuted: channelUpdater,
|
|
172
175
|
onUserUnmuted: channelUpdater,
|
|
173
176
|
onUserBanned(eventChannel, bannedUser) {
|
|
177
|
+
var _sdk$currentUser10;
|
|
174
178
|
if (isDifferentChannel(channel, eventChannel)) return;
|
|
175
|
-
if (bannedUser.userId === sdk.currentUser.userId) {
|
|
179
|
+
if (bannedUser.userId === ((_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId)) {
|
|
176
180
|
var _options$onChannelDel2;
|
|
177
181
|
options === null || options === void 0 ? void 0 : (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 ? void 0 : _options$onChannelDel2.call(options);
|
|
178
182
|
} else {
|
|
@@ -204,9 +208,9 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
204
208
|
const prev = useFreshCallback(async () => {
|
|
205
209
|
var _queryRef$current19;
|
|
206
210
|
if (queryRef.current && (_queryRef$current19 = queryRef.current) !== null && _queryRef$current19 !== void 0 && _queryRef$current19.hasNext) {
|
|
207
|
-
var _queryRef$current20;
|
|
211
|
+
var _queryRef$current20, _sdk$currentUser11;
|
|
208
212
|
const list = await ((_queryRef$current20 = queryRef.current) === null || _queryRef$current20 === void 0 ? void 0 : _queryRef$current20.load());
|
|
209
|
-
updateMessages(list, false, sdk.currentUser.userId);
|
|
213
|
+
updateMessages(list, false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
|
|
210
214
|
}
|
|
211
215
|
});
|
|
212
216
|
const hasPrev = useFreshCallback(() => {
|
|
@@ -219,16 +223,21 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
219
223
|
return new Promise((resolve, reject) => {
|
|
220
224
|
channel.sendUserMessage(params).onPending(pendingMessage => {
|
|
221
225
|
if (pendingMessage.isUserMessage()) {
|
|
222
|
-
|
|
226
|
+
var _sdk$currentUser12;
|
|
227
|
+
updateMessages([pendingMessage], false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
|
|
223
228
|
onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
|
|
224
229
|
}
|
|
225
230
|
}).onSucceeded(sentMessage => {
|
|
226
231
|
if (sentMessage.isUserMessage()) {
|
|
227
|
-
|
|
232
|
+
var _sdk$currentUser13;
|
|
233
|
+
updateMessages([sentMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
|
|
228
234
|
resolve(sentMessage);
|
|
229
235
|
}
|
|
230
|
-
}).onFailed((err,
|
|
231
|
-
|
|
236
|
+
}).onFailed((err, failedMessage) => {
|
|
237
|
+
if (failedMessage) {
|
|
238
|
+
var _sdk$currentUser14;
|
|
239
|
+
updateMessages([failedMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
|
|
240
|
+
}
|
|
232
241
|
reject(err);
|
|
233
242
|
});
|
|
234
243
|
});
|
|
@@ -237,37 +246,45 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
237
246
|
return new Promise((resolve, reject) => {
|
|
238
247
|
channel.sendFileMessage(params).onPending(pendingMessage => {
|
|
239
248
|
if (pendingMessage.isFileMessage()) {
|
|
240
|
-
|
|
249
|
+
var _sdk$currentUser15;
|
|
250
|
+
updateMessages([pendingMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
|
|
241
251
|
onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
|
|
242
252
|
}
|
|
243
253
|
}).onSucceeded(sentMessage => {
|
|
244
254
|
if (sentMessage.isFileMessage()) {
|
|
245
|
-
|
|
255
|
+
var _sdk$currentUser16;
|
|
256
|
+
updateMessages([sentMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
|
|
246
257
|
resolve(sentMessage);
|
|
247
258
|
}
|
|
248
|
-
}).onFailed((err,
|
|
249
|
-
|
|
259
|
+
}).onFailed((err, failedMessage) => {
|
|
260
|
+
if (failedMessage) {
|
|
261
|
+
var _sdk$currentUser17;
|
|
262
|
+
updateMessages([failedMessage], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
|
|
263
|
+
}
|
|
250
264
|
reject(err);
|
|
251
265
|
});
|
|
252
266
|
});
|
|
253
267
|
});
|
|
254
268
|
const updateUserMessage = useFreshCallback(async (messageId, params) => {
|
|
269
|
+
var _sdk$currentUser18;
|
|
255
270
|
const updatedMessage = await channel.updateUserMessage(messageId, params);
|
|
256
|
-
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
271
|
+
updateMessages([updatedMessage], false, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
|
|
257
272
|
return updatedMessage;
|
|
258
273
|
});
|
|
259
274
|
const updateFileMessage = useFreshCallback(async (messageId, params) => {
|
|
275
|
+
var _sdk$currentUser19;
|
|
260
276
|
const updatedMessage = await channel.updateFileMessage(messageId, params);
|
|
261
|
-
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
277
|
+
updateMessages([updatedMessage], false, (_sdk$currentUser19 = sdk.currentUser) === null || _sdk$currentUser19 === void 0 ? void 0 : _sdk$currentUser19.userId);
|
|
262
278
|
return updatedMessage;
|
|
263
279
|
});
|
|
264
280
|
const resendMessage = useFreshCallback(async failedMessage => {
|
|
281
|
+
var _sdk$currentUser20;
|
|
265
282
|
const message = await (() => {
|
|
266
283
|
if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
|
|
267
284
|
if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
|
|
268
285
|
return null;
|
|
269
286
|
})();
|
|
270
|
-
if (message) updateMessages([message], false, sdk.currentUser.userId);
|
|
287
|
+
if (message) updateMessages([message], false, (_sdk$currentUser20 = sdk.currentUser) === null || _sdk$currentUser20 === void 0 ? void 0 : _sdk$currentUser20.userId);
|
|
271
288
|
});
|
|
272
289
|
const deleteMessage = useFreshCallback(async message => {
|
|
273
290
|
if (message.sendingStatus === 'succeeded') {
|
|
@@ -278,7 +295,8 @@ export const useOpenChannelMessagesWithQuery = (sdk, channel, userId, options) =
|
|
|
278
295
|
}
|
|
279
296
|
});
|
|
280
297
|
const resetNewMessages = useFreshCallback(() => {
|
|
281
|
-
|
|
298
|
+
var _sdk$currentUser21;
|
|
299
|
+
updateNewMessages([], true, (_sdk$currentUser21 = sdk.currentUser) === null || _sdk$currentUser21 === void 0 ? void 0 : _sdk$currentUser21.userId);
|
|
282
300
|
});
|
|
283
301
|
return {
|
|
284
302
|
loading,
|