@sendbird/uikit-chat-hooks 3.11.3 → 3.12.0

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.
@@ -163,8 +163,8 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
163
163
  (0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
164
164
  onUserBanned(channel, bannedUser) {
165
165
  if (channel.isGroupChannel() && !(0, _uikitUtils.isDifferentChannel)(channel, channel)) {
166
- var _sdk$currentUser10;
167
- if (bannedUser.userId === ((_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId)) {
166
+ var _sdk$currentUser0;
167
+ if (bannedUser.userId === ((_sdk$currentUser0 = sdk.currentUser) === null || _sdk$currentUser0 === void 0 ? void 0 : _sdk$currentUser0.userId)) {
168
168
  var _options$onChannelDel2;
169
169
  options === null || options === void 0 || (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 || _options$onChannelDel2.call(options);
170
170
  } else {
@@ -194,9 +194,9 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
194
194
  var _collectionRef$curren4;
195
195
  if (collectionRef.current && (_collectionRef$curren4 = collectionRef.current) !== null && _collectionRef$curren4 !== void 0 && _collectionRef$curren4.hasPrevious) {
196
196
  try {
197
- var _collectionRef$curren5, _sdk$currentUser11;
197
+ var _collectionRef$curren5, _sdk$currentUser1;
198
198
  const list = await ((_collectionRef$curren5 = collectionRef.current) === null || _collectionRef$curren5 === void 0 ? void 0 : _collectionRef$curren5.loadPrevious());
199
- updateMessages(list, false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
199
+ updateMessages(list, false, (_sdk$currentUser1 = sdk.currentUser) === null || _sdk$currentUser1 === void 0 ? void 0 : _sdk$currentUser1.userId);
200
200
  } catch {}
201
201
  }
202
202
  });
@@ -211,9 +211,9 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
211
211
  var _collectionRef$curren6;
212
212
  if (collectionRef.current && (_collectionRef$curren6 = collectionRef.current) !== null && _collectionRef$curren6 !== void 0 && _collectionRef$curren6.hasNext) {
213
213
  try {
214
- var _collectionRef$curren7, _sdk$currentUser12;
214
+ var _collectionRef$curren7, _sdk$currentUser10;
215
215
  const fetchedList = await ((_collectionRef$curren7 = collectionRef.current) === null || _collectionRef$curren7 === void 0 ? void 0 : _collectionRef$curren7.loadNext());
216
- updateMessages(fetchedList, false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
216
+ updateMessages(fetchedList, false, (_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId);
217
217
  } catch {}
218
218
  }
219
219
  });
@@ -228,20 +228,20 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
228
228
  return new Promise((resolve, reject) => {
229
229
  channel.sendUserMessage(params).onPending(pendingMessage => {
230
230
  if (pendingMessage.isUserMessage()) {
231
- var _sdk$currentUser13;
231
+ var _sdk$currentUser11;
232
232
  onPending === null || onPending === void 0 || onPending(pendingMessage);
233
- updateMessages([pendingMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
233
+ updateMessages([pendingMessage], false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
234
234
  }
235
235
  }).onSucceeded(sentMessage => {
236
236
  if (sentMessage.isUserMessage()) {
237
- var _sdk$currentUser14;
238
- updateMessages([sentMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
237
+ var _sdk$currentUser12;
238
+ updateMessages([sentMessage], false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
239
239
  resolve(sentMessage);
240
240
  }
241
241
  }).onFailed((err, failedMessage) => {
242
242
  if (failedMessage) {
243
- var _sdk$currentUser15;
244
- updateMessages([failedMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
243
+ var _sdk$currentUser13;
244
+ updateMessages([failedMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
245
245
  }
246
246
  reject(err);
247
247
  });
@@ -251,45 +251,45 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
251
251
  return new Promise((resolve, reject) => {
252
252
  channel.sendFileMessage(params).onPending(pendingMessage => {
253
253
  if (pendingMessage.isFileMessage()) {
254
- var _sdk$currentUser16;
255
- updateMessages([pendingMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
254
+ var _sdk$currentUser14;
255
+ updateMessages([pendingMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
256
256
  onPending === null || onPending === void 0 || onPending(pendingMessage);
257
257
  }
258
258
  }).onSucceeded(sentMessage => {
259
259
  if (sentMessage.isFileMessage()) {
260
- var _sdk$currentUser17;
261
- updateMessages([sentMessage], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
260
+ var _sdk$currentUser15;
261
+ updateMessages([sentMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
262
262
  resolve(sentMessage);
263
263
  }
264
264
  }).onFailed((err, failedMessage) => {
265
265
  if (failedMessage) {
266
- var _sdk$currentUser18;
267
- updateMessages([failedMessage], false, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
266
+ var _sdk$currentUser16;
267
+ updateMessages([failedMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
268
268
  }
269
269
  reject(err);
270
270
  });
271
271
  });
272
272
  });
273
273
  const updateUserMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
274
- var _sdk$currentUser19;
274
+ var _sdk$currentUser17;
275
275
  const updatedMessage = await channel.updateUserMessage(messageId, params);
276
- updateMessages([updatedMessage], false, (_sdk$currentUser19 = sdk.currentUser) === null || _sdk$currentUser19 === void 0 ? void 0 : _sdk$currentUser19.userId);
276
+ updateMessages([updatedMessage], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
277
277
  return updatedMessage;
278
278
  });
279
279
  const updateFileMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
280
- var _sdk$currentUser20;
280
+ var _sdk$currentUser18;
281
281
  const updatedMessage = await channel.updateFileMessage(messageId, params);
282
- updateMessages([updatedMessage], false, (_sdk$currentUser20 = sdk.currentUser) === null || _sdk$currentUser20 === void 0 ? void 0 : _sdk$currentUser20.userId);
282
+ updateMessages([updatedMessage], false, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
283
283
  return updatedMessage;
284
284
  });
285
285
  const resendMessage = (0, _uikitUtils.useFreshCallback)(async failedMessage => {
286
- var _sdk$currentUser21;
286
+ var _sdk$currentUser19;
287
287
  const resentMessage = await (() => {
288
288
  if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
289
289
  if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
290
290
  return null;
291
291
  })();
292
- if (resentMessage) updateMessages([resentMessage], false, (_sdk$currentUser21 = sdk.currentUser) === null || _sdk$currentUser21 === void 0 ? void 0 : _sdk$currentUser21.userId);
292
+ if (resentMessage) updateMessages([resentMessage], false, (_sdk$currentUser19 = sdk.currentUser) === null || _sdk$currentUser19 === void 0 ? void 0 : _sdk$currentUser19.userId);
293
293
  });
294
294
  const deleteMessage = (0, _uikitUtils.useFreshCallback)(async message => {
295
295
  if (message.sendingStatus === 'succeeded') {
@@ -305,14 +305,14 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
305
305
  }
306
306
  });
307
307
  const resetNewMessages = (0, _uikitUtils.useFreshCallback)(() => {
308
- var _sdk$currentUser22;
309
- updateNewMessages([], true, (_sdk$currentUser22 = sdk.currentUser) === null || _sdk$currentUser22 === void 0 ? void 0 : _sdk$currentUser22.userId);
308
+ var _sdk$currentUser20;
309
+ updateNewMessages([], true, (_sdk$currentUser20 = sdk.currentUser) === null || _sdk$currentUser20 === void 0 ? void 0 : _sdk$currentUser20.userId);
310
310
  });
311
311
  const resetWithStartingPoint = (0, _uikitUtils.useFreshCallback)((startingPoint, callback) => {
312
- var _sdk$currentUser23;
312
+ var _sdk$currentUser21;
313
313
  const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;
314
314
  updateLoading(true);
315
- updateMessages([], true, (_sdk$currentUser23 = sdk.currentUser) === null || _sdk$currentUser23 === void 0 ? void 0 : _sdk$currentUser23.userId);
315
+ updateMessages([], true, (_sdk$currentUser21 = sdk.currentUser) === null || _sdk$currentUser21 === void 0 ? void 0 : _sdk$currentUser21.userId);
316
316
  init(startingPoint, limit, () => {
317
317
  updateLoading(false);
318
318
  callback === null || callback === void 0 || callback();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","Logger","error","_sdk$currentUser8","debug","onApiResult","warn","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser10","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser11","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser12","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser13","onSucceeded","sentMessage","_sdk$currentUser14","onFailed","failedMessage","_sdk$currentUser15","sendFileMessage","isFileMessage","_sdk$currentUser16","_sdk$currentUser17","_sdk$currentUser18","updateUserMessage","_sdk$currentUser19","updatedMessage","updateFileMessage","_sdk$currentUser20","resendMessage","_sdk$currentUser21","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser22","resetWithStartingPoint","_sdk$currentUser23","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\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 MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = (source?: CollectionEventSource) => {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n confirmAndMarkAsRead([channel]);\n break;\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback((startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser?.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n ...options,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\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 onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\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 as SendbirdFileMessage);\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 resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], 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 try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","Logger","error","_sdk$currentUser8","debug","onApiResult","warn","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser0","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser1","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser10","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser11","onSucceeded","sentMessage","_sdk$currentUser12","onFailed","failedMessage","_sdk$currentUser13","sendFileMessage","isFileMessage","_sdk$currentUser14","_sdk$currentUser15","_sdk$currentUser16","updateUserMessage","_sdk$currentUser17","updatedMessage","updateFileMessage","_sdk$currentUser18","resendMessage","_sdk$currentUser19","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser20","resetWithStartingPoint","_sdk$currentUser21","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\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 MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = (source?: CollectionEventSource) => {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n confirmAndMarkAsRead([channel]);\n break;\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback((startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser?.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n ...options,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\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 onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\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 as SendbirdFileMessage);\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 resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], 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 try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -142,9 +142,9 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
142
142
  const prev = (0, _uikitUtils.useFreshCallback)(async () => {
143
143
  var _queryRef$current3;
144
144
  if (queryRef.current && (_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
145
- var _queryRef$current4, _sdk$currentUser10;
145
+ var _queryRef$current4, _sdk$currentUser0;
146
146
  const list = await ((_queryRef$current4 = queryRef.current) === null || _queryRef$current4 === void 0 ? void 0 : _queryRef$current4.load());
147
- updateMessages(list, false, (_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId);
147
+ updateMessages(list, false, (_sdk$currentUser0 = sdk.currentUser) === null || _sdk$currentUser0 === void 0 ? void 0 : _sdk$currentUser0.userId);
148
148
  }
149
149
  });
150
150
  const hasPrev = (0, _uikitUtils.useFreshCallback)(() => {
@@ -157,20 +157,20 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
157
157
  return new Promise((resolve, reject) => {
158
158
  channel.sendUserMessage(params).onPending(pendingMessage => {
159
159
  if (pendingMessage.isUserMessage()) {
160
- var _sdk$currentUser11;
161
- updateMessages([pendingMessage], false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
160
+ var _sdk$currentUser1;
161
+ updateMessages([pendingMessage], false, (_sdk$currentUser1 = sdk.currentUser) === null || _sdk$currentUser1 === void 0 ? void 0 : _sdk$currentUser1.userId);
162
162
  onPending === null || onPending === void 0 || onPending(pendingMessage);
163
163
  }
164
164
  }).onSucceeded(sentMessage => {
165
165
  if (sentMessage.isUserMessage()) {
166
- var _sdk$currentUser12;
167
- updateMessages([sentMessage], false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
166
+ var _sdk$currentUser10;
167
+ updateMessages([sentMessage], false, (_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId);
168
168
  resolve(sentMessage);
169
169
  }
170
170
  }).onFailed((err, failedMessage) => {
171
171
  if (failedMessage) {
172
- var _sdk$currentUser13;
173
- updateMessages([failedMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
172
+ var _sdk$currentUser11;
173
+ updateMessages([failedMessage], false, (_sdk$currentUser11 = sdk.currentUser) === null || _sdk$currentUser11 === void 0 ? void 0 : _sdk$currentUser11.userId);
174
174
  }
175
175
  reject(err);
176
176
  });
@@ -180,45 +180,45 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
180
180
  return new Promise((resolve, reject) => {
181
181
  channel.sendFileMessage(params).onPending(pendingMessage => {
182
182
  if (pendingMessage.isFileMessage()) {
183
- var _sdk$currentUser14;
184
- updateMessages([pendingMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
183
+ var _sdk$currentUser12;
184
+ updateMessages([pendingMessage], false, (_sdk$currentUser12 = sdk.currentUser) === null || _sdk$currentUser12 === void 0 ? void 0 : _sdk$currentUser12.userId);
185
185
  onPending === null || onPending === void 0 || onPending(pendingMessage);
186
186
  }
187
187
  }).onSucceeded(sentMessage => {
188
188
  if (sentMessage.isFileMessage()) {
189
- var _sdk$currentUser15;
190
- updateMessages([sentMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
189
+ var _sdk$currentUser13;
190
+ updateMessages([sentMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
191
191
  resolve(sentMessage);
192
192
  }
193
193
  }).onFailed((err, failedMessage) => {
194
194
  if (failedMessage) {
195
- var _sdk$currentUser16;
196
- updateMessages([failedMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
195
+ var _sdk$currentUser14;
196
+ updateMessages([failedMessage], false, (_sdk$currentUser14 = sdk.currentUser) === null || _sdk$currentUser14 === void 0 ? void 0 : _sdk$currentUser14.userId);
197
197
  }
198
198
  reject(err);
199
199
  });
200
200
  });
201
201
  });
202
202
  const updateUserMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
203
- var _sdk$currentUser17;
203
+ var _sdk$currentUser15;
204
204
  const updatedMessage = await channel.updateUserMessage(messageId, params);
205
- updateMessages([updatedMessage], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
205
+ updateMessages([updatedMessage], false, (_sdk$currentUser15 = sdk.currentUser) === null || _sdk$currentUser15 === void 0 ? void 0 : _sdk$currentUser15.userId);
206
206
  return updatedMessage;
207
207
  });
208
208
  const updateFileMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
209
- var _sdk$currentUser18;
209
+ var _sdk$currentUser16;
210
210
  const updatedMessage = await channel.updateFileMessage(messageId, params);
211
- updateMessages([updatedMessage], false, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
211
+ updateMessages([updatedMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
212
212
  return updatedMessage;
213
213
  });
214
214
  const resendMessage = (0, _uikitUtils.useFreshCallback)(async failedMessage => {
215
- var _sdk$currentUser19;
215
+ var _sdk$currentUser17;
216
216
  const message = await (() => {
217
217
  if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
218
218
  if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
219
219
  return null;
220
220
  })();
221
- if (message) updateMessages([message], false, (_sdk$currentUser19 = sdk.currentUser) === null || _sdk$currentUser19 === void 0 ? void 0 : _sdk$currentUser19.userId);
221
+ if (message) updateMessages([message], false, (_sdk$currentUser17 = sdk.currentUser) === null || _sdk$currentUser17 === void 0 ? void 0 : _sdk$currentUser17.userId);
222
222
  });
223
223
  const deleteMessage = (0, _uikitUtils.useFreshCallback)(async message => {
224
224
  if (message.sendingStatus === 'succeeded') {
@@ -229,8 +229,8 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
229
229
  }
230
230
  });
231
231
  const resetNewMessages = (0, _uikitUtils.useFreshCallback)(() => {
232
- var _sdk$currentUser20;
233
- updateNewMessages([], true, (_sdk$currentUser20 = sdk.currentUser) === null || _sdk$currentUser20 === void 0 ? void 0 : _sdk$currentUser20.userId);
232
+ var _sdk$currentUser18;
233
+ updateNewMessages([], true, (_sdk$currentUser18 = sdk.currentUser) === null || _sdk$currentUser18 === void 0 ? void 0 : _sdk$currentUser18.userId);
234
234
  });
235
235
  return {
236
236
  loading,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","init","useFreshCallback","uid","_sdk$currentUser","_queryRef$current","confirmAndMarkAsRead","currentUser","current","hasNext","_queryRef$current2","_sdk$currentUser2","list","load","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","_sdk$currentUser3","_sdk$currentUser4","_options$shouldCountN","isMyMessage","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","useAsyncEffect","refresh","prev","_queryRef$current3","_queryRef$current4","_sdk$currentUser10","hasPrev","_queryRef$current5","next","ASYNC_NOOP","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","Logger","warn","exports"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { BaseMessage, 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\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\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 init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n confirmAndMarkAsRead([channel]);\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 confirmAndMarkAsRead([channel]);\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 as BaseMessage], 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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,WAAA,GAAAD,OAAA;AAYA,IAAAE,kBAAA,GAAAF,OAAA;AAEA,IAAAG,0BAAA,GAAAH,OAAA;AAEA,MAAMI,kBAAkB,GAAGA,CAACC,OAA6B,EAAEC,OAAwC,KAAK;EACtG,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,YAAY,EAAE,OAAOD,OAAO,CAACC,YAAY,CAAC,CAAC;EAExD,MAAMC,MAAsC,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC5E,IAAIJ,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEK,SAAS,EAAEH,MAAM,CAACG,SAAS,GAAGL,OAAO,CAACK,SAAS;EAE5D,OAAON,OAAO,CAACO,8BAA8B,CAACJ,MAAM,CAAC;AACvD,CAAC;;AAED;AACA;AACA;AACO,MAAMK,gCAAyD,GAAGA,CAACC,GAAG,EAAET,OAAO,EAAEU,MAAM,EAAET,OAAO,KAAK;EAC1G,MAAMU,QAAQ,GAAG,IAAAC,aAAM,EAAmC,CAAC;EAC3D,MAAMC,SAAS,GAAG,IAAAC,4BAAgB,EAAC,kCAAkC,CAAC;EAEtE,MAAMC,WAAW,GAAG,IAAAC,0BAAc,EAAC,CAAC;EAEpC,MAAM;IACJC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,cAAc;IACdC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,aAAa;IACbC;EACF,CAAC,GAAG,IAAAC,oDAAyB,EAAC1B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2B,cAAc,CAAC;EAEtD,MAAMC,IAAI,GAAG,IAAAC,4BAAgB,EAAC,MAAOC,GAAY,IAAK;IACpD,IAAIA,GAAG,EAAE;MAAA,IAAAC,gBAAA,EAAAC,iBAAA;MACP,IAAAC,gCAAoB,EAAC,CAAClC,OAAO,CAAC,CAAC;MAC/BuB,iBAAiB,CAAC,EAAE,EAAE,IAAI,GAAAS,gBAAA,GAAEvB,GAAG,CAAC0B,WAAW,cAAAH,gBAAA,uBAAfA,gBAAA,CAAiBtB,MAAM,CAAC;MAEpDC,QAAQ,CAACyB,OAAO,GAAGrC,kBAAkB,CAACC,OAAO,EAAEC,OAAO,CAAC;MACvD,KAAAgC,iBAAA,GAAItB,QAAQ,CAACyB,OAAO,cAAAH,iBAAA,eAAhBA,iBAAA,CAAkBI,OAAO,EAAE;QAAA,IAAAC,kBAAA,EAAAC,iBAAA;QAC7B,MAAMC,IAAI,GAAG,QAAAF,kBAAA,GAAM3B,QAAQ,CAACyB,OAAO,cAAAE,kBAAA,uBAAhBA,kBAAA,CAAkBG,IAAI,CAAC,CAAC;QAC3CpB,cAAc,CAACmB,IAAI,EAAE,IAAI,GAAAD,iBAAA,GAAE9B,GAAG,CAAC0B,WAAW,cAAAI,iBAAA,uBAAfA,iBAAA,CAAiB7B,MAAM,CAAC;MACrD;IACF;EACF,CAAC,CAAC;EAEF,MAAMgC,cAAc,GAAI1C,OAA4B,IAAK;IACvD,IAAIA,OAAO,CAAC2C,cAAc,CAAC,CAAC,IAAI,CAAC,IAAAC,8BAAkB,EAAC5C,OAAO,EAAEA,OAAO,CAAC,EAAE;MACrEe,WAAW,CAAC,CAAC;IACf;EACF,CAAC;EAED,IAAA8B,oCAAiB,EAACpC,GAAG,EAAEI,SAAS,EAAE;IAChC;IACAiC,iBAAiBA,CAACC,YAAY,EAAEC,OAAO,EAAE;MAAA,IAAAC,iBAAA,EAAAC,iBAAA,EAAAC,qBAAA;MACvC,IAAI,IAAAP,8BAAkB,EAAC5C,OAAO,EAAE+C,YAAY,CAAC,EAAE;MAC/C,IAAI,IAAAK,uBAAW,EAACJ,OAAO,GAAAC,iBAAA,GAAExC,GAAG,CAAC0B,WAAW,cAAAc,iBAAA,uBAAfA,iBAAA,CAAiBvC,MAAM,CAAC,EAAE;MAEnD,IAAAwB,gCAAoB,EAAC,CAAClC,OAAO,CAAC,CAAC;MAE/BqB,cAAc,CAAC,CAAC2B,OAAO,CAAC,EAAE,KAAK,GAAAE,iBAAA,GAAEzC,GAAG,CAAC0B,WAAW,cAAAe,iBAAA,uBAAfA,iBAAA,CAAiBxC,MAAM,CAAC;MACzD,IAAIT,OAAO,aAAPA,OAAO,gBAAAkD,qBAAA,GAAPlD,OAAO,CAAEoD,sBAAsB,cAAAF,qBAAA,eAA/BA,qBAAA,CAAAG,IAAA,CAAArD,OAAkC,CAAC,EAAE;QAAA,IAAAsD,iBAAA;QACvChC,iBAAiB,CAAC,CAACyB,OAAO,CAAC,EAAE,KAAK,GAAAO,iBAAA,GAAE9C,GAAG,CAAC0B,WAAW,cAAAoB,iBAAA,uBAAfA,iBAAA,CAAiB7C,MAAM,CAAC;MAC9D;MACA,IAAIT,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEuD,kBAAkB,EAAE;QAC/BvD,OAAO,CAACuD,kBAAkB,CAAC,CAACR,OAAO,CAAC,CAAC;MACvC;IACF,CAAC;IACDS,gBAAgBA,CAACV,YAAY,EAAEC,OAAO,EAAE;MAAA,IAAAU,iBAAA,EAAAC,iBAAA;MACtC,IAAI,IAAAf,8BAAkB,EAAC5C,OAAO,EAAE+C,YAAY,CAAC,EAAE;MAC/C,IAAI,IAAAK,uBAAW,EAACJ,OAAO,GAAAU,iBAAA,GAAEjD,GAAG,CAAC0B,WAAW,cAAAuB,iBAAA,uBAAfA,iBAAA,CAAiBhD,MAAM,CAAC,EAAE;MAEnDW,cAAc,CAAC,CAAC2B,OAAO,CAAC,EAAE,KAAK,GAAAW,iBAAA,GAAElD,GAAG,CAAC0B,WAAW,cAAAwB,iBAAA,uBAAfA,iBAAA,CAAiBjD,MAAM,CAAC;IAC3D,CAAC;IACDkD,gBAAgBA,CAACb,YAAY,EAAEc,SAAS,EAAE;MACxC,IAAI,IAAAjB,8BAAkB,EAAC5C,OAAO,EAAE+C,YAAY,CAAC,EAAE;MAC/CzB,cAAc,CAAC,CAACuC,SAAS,CAAC,EAAE,EAAE,CAAC;MAC/BrC,iBAAiB,CAAC,CAACqC,SAAS,CAAC,EAAE,EAAE,CAAC;IACpC,CAAC;IACD,MAAMC,iBAAiBA,CAACf,YAAY,EAAEgB,aAAa,EAAE;MAAA,IAAAC,iBAAA;MACnD,IAAI,IAAApB,8BAAkB,EAAC5C,OAAO,EAAE+C,YAAY,CAAC,EAAE;MAE/C,MAAMC,OAAO,GAAG,MAAMvC,GAAG,CAACuC,OAAO,CAACiB,UAAU,CAAC;QAC3CJ,SAAS,EAAEE,aAAa,CAACF,SAAS;QAClCK,gBAAgB,EAAE,IAAI;QACtBC,wBAAwB,EAAE,IAAI;QAC9BC,iBAAiB,EAAE,IAAI;QACvBC,gBAAgB,EAAE,IAAI;QACtBC,UAAU,EAAEtE,OAAO,CAACuE,GAAG;QACvBC,WAAW,EAAExE,OAAO,CAACwE;MACvB,CAAC,CAAC;MACF,IAAIxB,OAAO,EAAE3B,cAAc,CAAC,CAAC2B,OAAO,CAAgB,EAAE,KAAK,GAAAgB,iBAAA,GAAEvD,GAAG,CAAC0B,WAAW,cAAA6B,iBAAA,uBAAfA,iBAAA,CAAiBtD,MAAM,CAAC;IACvF,CAAC;IACD;IACA+D,gBAAgB,EAAE/B,cAAc;IAChCgC,eAAe,EAAEhC,cAAc;IAC/BiC,iBAAiB,EAAEjC,cAAc;IACjCkC,eAAe,EAAElC,cAAc;IAC/BmC,2BAA2BA,CAACC,QAAQ,EAAE;MACpC,MAAMC,YAAY,GAAGD,QAAQ,CAACE,IAAI,CAAEC,CAAC,IAAK,CAAC,IAAArC,8BAAkB,EAACqC,CAAC,EAAEjF,OAAO,CAAC,CAAC;MAC1E,IAAI+E,YAAY,EAAErC,cAAc,CAACqC,YAAY,CAAC;IAChD,CAAC;IACDG,gBAAgBA,CAACZ,UAAkB,EAAE;MAAA,IAAAa,qBAAA;MACnC,IAAInF,OAAO,CAACuE,GAAG,KAAKD,UAAU,EAAErE,OAAO,aAAPA,OAAO,gBAAAkF,qBAAA,GAAPlF,OAAO,CAAEiF,gBAAgB,cAAAC,qBAAA,eAAzBA,qBAAA,CAAA7B,IAAA,CAAArD,OAA4B,CAAC;IAC/D,CAAC;IACD;IACAmF,iBAAiB,EAAE1C,cAAc;IACjC2C,UAAU,EAAE3C,cAAc;IAC1B;IACA;IACA4C,YAAY,EAAE5C,cAAc;IAC5B6C,cAAc,EAAE7C,cAAc;IAC9B8C,WAAW,EAAE9C,cAAc;IAC3B+C,aAAa,EAAE/C,cAAc;IAC7BgD,YAAYA,CAAC3C,YAAY,EAAE4C,UAAU,EAAE;MAAA,IAAAC,iBAAA;MACrC,IAAI,IAAAhD,8BAAkB,EAAC5C,OAAO,EAAE+C,YAAY,CAAC,EAAE;MAE/C,IAAI4C,UAAU,CAACjF,MAAM,OAAAkF,iBAAA,GAAKnF,GAAG,CAAC0B,WAAW,cAAAyD,iBAAA,uBAAfA,iBAAA,CAAiBlF,MAAM,GAAE;QAAA,IAAAmF,sBAAA;QACjD5F,OAAO,aAAPA,OAAO,gBAAA4F,sBAAA,GAAP5F,OAAO,CAAEiF,gBAAgB,cAAAW,sBAAA,eAAzBA,sBAAA,CAAAvC,IAAA,CAAArD,OAA4B,CAAC;MAC/B,CAAC,MAAM;QACLyC,cAAc,CAACK,YAAY,CAAC;MAC9B;IACF;EACF,CAAC,CAAC;EAEF,IAAA+C,0BAAc,EAAC,YAAY;IACzBrE,aAAa,CAAC,IAAI,CAAC;IACnB,MAAMI,IAAI,CAACnB,MAAM,CAAC;IAClBe,aAAa,CAAC,KAAK,CAAC;EACtB,CAAC,EAAE,CAACzB,OAAO,CAACuE,GAAG,EAAE7D,MAAM,CAAC,CAAC;EAEzB,MAAMqF,OAAuD,GAAG,IAAAjE,4BAAgB,EAAC,YAAY;IAC3FJ,gBAAgB,CAAC,IAAI,CAAC;IACtB,MAAMG,IAAI,CAACnB,MAAM,CAAC;IAClBgB,gBAAgB,CAAC,KAAK,CAAC;EACzB,CAAC,CAAC;EAEF,MAAMsE,IAAiD,GAAG,IAAAlE,4BAAgB,EAAC,YAAY;IAAA,IAAAmE,kBAAA;IACrF,IAAItF,QAAQ,CAACyB,OAAO,KAAA6D,kBAAA,GAAItF,QAAQ,CAACyB,OAAO,cAAA6D,kBAAA,eAAhBA,kBAAA,CAAkB5D,OAAO,EAAE;MAAA,IAAA6D,kBAAA,EAAAC,kBAAA;MACjD,MAAM3D,IAAI,GAAG,QAAA0D,kBAAA,GAAMvF,QAAQ,CAACyB,OAAO,cAAA8D,kBAAA,uBAAhBA,kBAAA,CAAkBzD,IAAI,CAAC,CAAC;MAC3CpB,cAAc,CAACmB,IAAI,EAAE,KAAK,GAAA2D,kBAAA,GAAE1F,GAAG,CAAC0B,WAAW,cAAAgE,kBAAA,uBAAfA,kBAAA,CAAiBzF,MAAM,CAAC;IACtD;EACF,CAAC,CAAC;EACF,MAAM0F,OAAuD,GAAG,IAAAtE,4BAAgB,EAC9E;IAAA,IAAAuE,kBAAA;IAAA,OAAM,EAAAA,kBAAA,GAAA1F,QAAQ,CAACyB,OAAO,cAAAiE,kBAAA,uBAAhBA,kBAAA,CAAkBhE,OAAO,KAAI,KAAK;EAAA,CAC1C,CAAC;EAED,MAAMiE,IAAiD,GAAG,IAAAxE,4BAAgB,EAACyE,sBAAU,CAAC;EACtF,MAAMlE,OAAuD,GAAG,IAAAP,4BAAgB,EAAC,MAAM,KAAK,CAAC;EAE7F,MAAM0E,eAAuE,GAAG,IAAA1E,4BAAgB,EAC9F,CAAC3B,MAAM,EAAEsG,SAAS,KAAK;IACrB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC5G,OAAO,CACJwG,eAAe,CAACrG,MAAM,CAAC,CACvBsG,SAAS,CAAEI,cAAc,IAAK;QAC7B,IAAIA,cAAc,CAACC,aAAa,CAAC,CAAC,EAAE;UAAA,IAAAC,kBAAA;UAClC1F,cAAc,CAAC,CAACwF,cAAc,CAAC,EAAE,KAAK,GAAAE,kBAAA,GAAEtG,GAAG,CAAC0B,WAAW,cAAA4E,kBAAA,uBAAfA,kBAAA,CAAiBrG,MAAM,CAAC;UAChE+F,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGI,cAAc,CAAC;QAC7B;MACF,CAAC,CAAC,CACDG,WAAW,CAAEC,WAAW,IAAK;QAC5B,IAAIA,WAAW,CAACH,aAAa,CAAC,CAAC,EAAE;UAAA,IAAAI,kBAAA;UAC/B7F,cAAc,CAAC,CAAC4F,WAAW,CAAC,EAAE,KAAK,GAAAC,kBAAA,GAAEzG,GAAG,CAAC0B,WAAW,cAAA+E,kBAAA,uBAAfA,kBAAA,CAAiBxG,MAAM,CAAC;UAC7DiG,OAAO,CAACM,WAAW,CAAC;QACtB;MACF,CAAC,CAAC,CACDE,QAAQ,CAAC,CAACC,GAAG,EAAEC,aAAa,KAAK;QAChC,IAAIA,aAAa,EAAE;UAAA,IAAAC,kBAAA;UACjBjG,cAAc,CAAC,CAACgG,aAAa,CAAC,EAAE,KAAK,GAAAC,kBAAA,GAAE7G,GAAG,CAAC0B,WAAW,cAAAmF,kBAAA,uBAAfA,kBAAA,CAAiB5G,MAAM,CAAC;QACjE;QACAkG,MAAM,CAACQ,GAAG,CAAC;MACb,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CACF,CAAC;EACD,MAAMG,eAAuE,GAAG,IAAAzF,4BAAgB,EAC9F,CAAC3B,MAAM,EAAEsG,SAAS,KAAK;IACrB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC5G,OAAO,CACJuH,eAAe,CAACpH,MAAM,CAAC,CACvBsG,SAAS,CAAEI,cAAc,IAAK;QAC7B,IAAIA,cAAc,CAACW,aAAa,CAAC,CAAC,EAAE;UAAA,IAAAC,kBAAA;UAClCpG,cAAc,CAAC,CAACwF,cAAc,CAAC,EAAE,KAAK,GAAAY,kBAAA,GAAEhH,GAAG,CAAC0B,WAAW,cAAAsF,kBAAA,uBAAfA,kBAAA,CAAiB/G,MAAM,CAAC;UAChE+F,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGI,cAAc,CAAC;QAC7B;MACF,CAAC,CAAC,CACDG,WAAW,CAAEC,WAAW,IAAK;QAC5B,IAAIA,WAAW,CAACO,aAAa,CAAC,CAAC,EAAE;UAAA,IAAAE,kBAAA;UAC/BrG,cAAc,CAAC,CAAC4F,WAAW,CAAC,EAAE,KAAK,GAAAS,kBAAA,GAAEjH,GAAG,CAAC0B,WAAW,cAAAuF,kBAAA,uBAAfA,kBAAA,CAAiBhH,MAAM,CAAC;UAC7DiG,OAAO,CAACM,WAAW,CAAC;QACtB;MACF,CAAC,CAAC,CACDE,QAAQ,CAAC,CAACC,GAAG,EAAEC,aAAa,KAAK;QAChC,IAAIA,aAAa,EAAE;UAAA,IAAAM,kBAAA;UACjBtG,cAAc,CAAC,CAACgG,aAAa,CAAC,EAAE,KAAK,GAAAM,kBAAA,GAAElH,GAAG,CAAC0B,WAAW,cAAAwF,kBAAA,uBAAfA,kBAAA,CAAiBjH,MAAM,CAAC;QACjE;QACAkG,MAAM,CAACQ,GAAG,CAAC;MACb,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CACF,CAAC;EACD,MAAMQ,iBAA2E,GAAG,IAAA9F,4BAAgB,EAClG,OAAO+B,SAAS,EAAE1D,MAAM,KAAK;IAAA,IAAA0H,kBAAA;IAC3B,MAAMC,cAAc,GAAG,MAAM9H,OAAO,CAAC4H,iBAAiB,CAAC/D,SAAS,EAAE1D,MAAM,CAAC;IACzEkB,cAAc,CAAC,CAACyG,cAAc,CAAC,EAAE,KAAK,GAAAD,kBAAA,GAAEpH,GAAG,CAAC0B,WAAW,cAAA0F,kBAAA,uBAAfA,kBAAA,CAAiBnH,MAAM,CAAC;IAChE,OAAOoH,cAAc;EACvB,CACF,CAAC;EACD,MAAMC,iBAA2E,GAAG,IAAAjG,4BAAgB,EAClG,OAAO+B,SAAS,EAAE1D,MAAM,KAAK;IAAA,IAAA6H,kBAAA;IAC3B,MAAMF,cAAc,GAAG,MAAM9H,OAAO,CAAC+H,iBAAiB,CAAClE,SAAS,EAAE1D,MAAM,CAAC;IACzEkB,cAAc,CAAC,CAACyG,cAAc,CAAC,EAAE,KAAK,GAAAE,kBAAA,GAAEvH,GAAG,CAAC0B,WAAW,cAAA6F,kBAAA,uBAAfA,kBAAA,CAAiBtH,MAAM,CAAC;IAChE,OAAOoH,cAAc;EACvB,CACF,CAAC;EACD,MAAMG,aAAmE,GAAG,IAAAnG,4BAAgB,EAC1F,MAAOuF,aAAa,IAAK;IAAA,IAAAa,kBAAA;IACvB,MAAMlF,OAAO,GAAG,MAAM,CAAC,MAAM;MAC3B,IAAIqE,aAAa,CAACP,aAAa,CAAC,CAAC,EAAE,OAAO9G,OAAO,CAACmI,iBAAiB,CAACd,aAAa,CAAC;MAClF,IAAIA,aAAa,CAACG,aAAa,CAAC,CAAC,EAAE,OAAOxH,OAAO,CAACoI,iBAAiB,CAACf,aAAa,CAAC;MAClF,OAAO,IAAI;IACb,CAAC,EAAE,CAAC;IAEJ,IAAIrE,OAAO,EAAE3B,cAAc,CAAC,CAAC2B,OAAO,CAAC,EAAE,KAAK,GAAAkF,kBAAA,GAAEzH,GAAG,CAAC0B,WAAW,cAAA+F,kBAAA,uBAAfA,kBAAA,CAAiBxH,MAAM,CAAC;EACxE,CACF,CAAC;EACD,MAAM2H,aAAmE,GAAG,IAAAvG,4BAAgB,EAAC,MAAOkB,OAAO,IAAK;IAC9G,IAAIA,OAAO,CAACsF,aAAa,KAAK,WAAW,EAAE;MACzC,IAAItF,OAAO,CAAC8D,aAAa,CAAC,CAAC,EAAE,MAAM9G,OAAO,CAACqI,aAAa,CAACrF,OAAO,CAAC;MACjE,IAAIA,OAAO,CAACwE,aAAa,CAAC,CAAC,EAAE,MAAMxH,OAAO,CAACqI,aAAa,CAACrF,OAAO,CAAC;IACnE,CAAC,MAAM;MACL1B,cAAc,CAAC,CAAC0B,OAAO,CAACa,SAAS,CAAC,EAAE,CAACb,OAAO,CAACuF,KAAK,CAAC,CAAC;IACtD;EACF,CAAC,CAAC;EACF,MAAMC,gBAAyE,GAAG,IAAA1G,4BAAgB,EAAC,MAAM;IAAA,IAAA2G,kBAAA;IACvGlH,iBAAiB,CAAC,EAAE,EAAE,IAAI,GAAAkH,kBAAA,GAAEhI,GAAG,CAAC0B,WAAW,cAAAsG,kBAAA,uBAAfA,kBAAA,CAAiB/H,MAAM,CAAC;EACtD,CAAC,CAAC;EAEF,OAAO;IACLO,OAAO;IACPC,UAAU;IACV6E,OAAO;IACP5E,QAAQ;IACRC,WAAW;IACXoH,gBAAgB;IAChBlC,IAAI;IACJjE,OAAO;IACP2D,IAAI;IACJI,OAAO;IACPI,eAAe;IACfe,eAAe;IACfK,iBAAiB;IACjBG,iBAAiB;IACjBE,aAAa;IACbI,aAAa;IACbK,sBAAsBA,CAAA,EAAG;MACvBC,kBAAM,CAACC,IAAI,CAAC,kFAAkF,CAAC;IACjG;EACF,CAAC;AACH,CAAC;AAACC,OAAA,CAAArI,gCAAA,GAAAA,gCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","init","useFreshCallback","uid","_sdk$currentUser","_queryRef$current","confirmAndMarkAsRead","currentUser","current","hasNext","_queryRef$current2","_sdk$currentUser2","list","load","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","_sdk$currentUser3","_sdk$currentUser4","_options$shouldCountN","isMyMessage","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","useAsyncEffect","refresh","prev","_queryRef$current3","_queryRef$current4","_sdk$currentUser0","hasPrev","_queryRef$current5","next","ASYNC_NOOP","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser1","onSucceeded","sentMessage","_sdk$currentUser10","onFailed","err","failedMessage","_sdk$currentUser11","sendFileMessage","isFileMessage","_sdk$currentUser12","_sdk$currentUser13","_sdk$currentUser14","updateUserMessage","_sdk$currentUser15","updatedMessage","updateFileMessage","_sdk$currentUser16","resendMessage","_sdk$currentUser17","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","_sdk$currentUser18","resetWithStartingPoint","Logger","warn","exports"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { BaseMessage, 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\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\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 init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n confirmAndMarkAsRead([channel]);\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 confirmAndMarkAsRead([channel]);\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 as BaseMessage], 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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","ignoreList":[]}