@sendbird/uikit-chat-hooks 2.1.0 → 2.2.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.
Files changed (40) hide show
  1. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +21 -13
  2. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  3. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +5 -7
  4. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  5. package/lib/commonjs/common/useTotalUnreadChannelCount.js +1 -1
  6. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +1 -1
  7. package/lib/commonjs/common/useTotalUnreadMessageCount.js +1 -1
  8. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  9. package/lib/commonjs/common/useUserList.js +8 -8
  10. package/lib/commonjs/common/useUserList.js.map +1 -1
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/types.js.map +1 -1
  13. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +21 -13
  14. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  15. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +5 -7
  16. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  17. package/lib/module/common/useTotalUnreadChannelCount.js +2 -2
  18. package/lib/module/common/useTotalUnreadChannelCount.js.map +1 -1
  19. package/lib/module/common/useTotalUnreadMessageCount.js +2 -2
  20. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  21. package/lib/module/common/useUserList.js +8 -8
  22. package/lib/module/common/useUserList.js.map +1 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/types.js.map +1 -1
  25. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  26. package/lib/typescript/src/common/useMessageOutgoingStatus.d.ts +1 -1
  27. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +1 -1
  28. package/lib/typescript/src/common/useTotalUnreadMessageCount.d.ts +1 -1
  29. package/lib/typescript/src/common/useUserList.d.ts +2 -2
  30. package/lib/typescript/src/index.d.ts +1 -1
  31. package/lib/typescript/src/model/CustomQuery.d.ts +1 -1
  32. package/lib/typescript/src/types.d.ts +4 -7
  33. package/package.json +4 -4
  34. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +23 -11
  35. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +4 -6
  36. package/src/common/useTotalUnreadChannelCount.ts +2 -2
  37. package/src/common/useTotalUnreadMessageCount.ts +2 -2
  38. package/src/common/useUserList.ts +10 -10
  39. package/src/index.ts +0 -1
  40. package/src/types.ts +1 -4
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","MessageCollectionInitPolicy","MessageEventSource","MessageFilter","Logger","confirmAndMarkAsRead","isDifferentChannel","useForceUpdate","useFreshCallback","useChannelHandler","useGroupChannelMessagesReducer","createMessageCollection","channel","creator","filter","limit","HOOK_NAME","useGroupChannelMessagesWithCollection","sdk","userId","options","forceUpdate","collectionRef","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAs","e","warn","init","uid","callback","current","dispose","collectionCreator","currentUser","setMessageCollectionHandler","onMessagesAdded","_","__","source","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","onMessagesUpdated","onMessagesDeleted","messageIds","onChannelDeleted","onChannelUpdated","eventChannel","isGroupChannel","onHugeGapDetected","initialize","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","length","pendingMessages","failedMessages","onApiResult","url","onUserBanned","bannedUser","setTimeout","refresh","prev","hasPrevious","list","loadPrevious","next","messageCandidates","hasNext","fetchedList","loadNext","push","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","_failedMessage","sendFileMessage","isFileMessage","updateUserMessage","messageId","updatedMessage","updateFileMessage","resendMessage","failedMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","removeFailedMessage","reqId"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessageCollection,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useForceUpdate,\n useFreshCallback,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['collectionCreator'],\n) => {\n if (creator) return creator();\n const filter = new MessageFilter();\n return channel.createMessageCollection({ filter, limit: 100 });\n};\n\nconst HOOK_NAME = 'useGroupChannelMessagesWithCollection';\n\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAs = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn(`[${HOOK_NAME}/channelMarkAs/Read]`, e);\n }\n };\n\n const init = useCallback(\n async (uid?: string, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createMessageCollection(channel, options?.collectionCreator);\n updateNextMessages([], true, sdk.currentUser.userId);\n channelMarkAs();\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (_, __, messages) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n channelMarkAs();\n break;\n }\n updateNextMessages(messages, false, sdk.currentUser.userId);\n },\n onMessagesUpdated: (_, __, messages) => {\n // NOTE: v4 MESSAGE_RECEIVED is called twice from onMessagesAdded and onMessagesUpdated when receiving new message.\n // This is not intended behavior but not bugs.\n if (_.source !== MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateMessages(messages, false, sdk.currentUser.userId);\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNextMessages(messageIds, []);\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(uid);\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(`[${HOOK_NAME}/onCacheResult]`, err);\n else {\n Logger.debug(`[${HOOK_NAME}/onCacheResult]`, 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.pendingMessages ?? [], false, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.failedMessages ?? [], false, sdk.currentUser.userId);\n }\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn(`[${HOOK_NAME}/onApiResult]`, err);\n else {\n Logger.debug(`[${HOOK_NAME}/onApiResult]`, 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n if (sdk.isCacheEnabled) {\n updateMessages(collectionRef.current?.pendingMessages ?? [], false, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.failedMessages ?? [], false, sdk.currentUser.userId);\n }\n }\n callback?.();\n });\n }\n },\n [sdk, channel.url, options?.collectionCreator],\n );\n\n useChannelHandler(sdk, HOOK_NAME, {\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(userId, () => updateLoading(false));\n }, 0);\n }, [init, userId]);\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(userId, () => 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 next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n const messageCandidates: SendbirdBaseMessage[] = [];\n\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n messageCandidates.push(...fetchedList);\n } catch {}\n }\n\n if (nextMessages.length > 0) {\n messageCandidates.push(...nextMessages);\n }\n\n if (messageCandidates.length > 0) {\n updateMessages(messageCandidates, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\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 // updateMessages([failedMessage], 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 as SendbirdFileMessage);\n }\n })\n .onFailed((err, _failedMessage) => {\n // updateMessages([failedMessage], 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 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\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","MessageCollectionInitPolicy","MessageEventSource","MessageFilter","Logger","confirmAndMarkAsRead","isDifferentChannel","useForceUpdate","useFreshCallback","useChannelHandler","useGroupChannelMessagesReducer","createMessageCollection","channel","creator","filter","limit","HOOK_NAME","useGroupChannelMessagesWithCollection","sdk","userId","options","forceUpdate","collectionRef","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","source","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","e","warn","init","uid","callback","current","dispose","collectionCreator","currentUser","setMessageCollectionHandler","onMessagesAdded","_","__","onMessagesUpdated","nextMessageIds","map","it","messageId","nonAddedMessagesFromReceivedEvent","indexOf","onMessagesDeleted","messageIds","onChannelDeleted","onChannelUpdated","eventChannel","isGroupChannel","onHugeGapDetected","initialize","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","length","pendingMessages","failedMessages","onApiResult","url","onUserBanned","bannedUser","setTimeout","refresh","prev","hasPrevious","list","loadPrevious","next","messageCandidates","hasNext","fetchedList","loadNext","push","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","_failedMessage","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","removeFailedMessage","reqId"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessageCollection,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useForceUpdate,\n useFreshCallback,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['collectionCreator'],\n) => {\n if (creator) return creator();\n const filter = new MessageFilter();\n return channel.createMessageCollection({ filter, limit: 100 });\n};\n\nconst HOOK_NAME = 'useGroupChannelMessagesWithCollection';\n\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async (source?: MessageEventSource) => {\n try {\n switch (source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn(`[${HOOK_NAME}/channelMarkAsRead]`, e);\n }\n };\n\n const init = useCallback(\n async (uid?: string, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createMessageCollection(channel, options?.collectionCreator);\n updateNextMessages([], true, sdk.currentUser.userId);\n channelMarkAsRead();\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (_, __, messages) => {\n channelMarkAsRead(_.source);\n updateNextMessages(messages, false, sdk.currentUser.userId);\n },\n onMessagesUpdated: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n if (_.source === MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n const nextMessageIds = nextMessages.map((it) => it.messageId);\n const nonAddedMessagesFromReceivedEvent = messages.filter(\n (it) => nextMessageIds.indexOf(it.messageId) === -1,\n );\n updateNextMessages(nonAddedMessagesFromReceivedEvent, false, sdk.currentUser.userId);\n }\n\n // NOTE: v4 MESSAGE_RECEIVED is called twice from onMessagesAdded and onMessagesUpdated when receiving new message.\n // This is not intended behavior but not bugs.\n if (_.source !== MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateMessages(messages, false, sdk.currentUser.userId);\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNextMessages(messageIds, []);\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(uid);\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(`[${HOOK_NAME}/onCacheResult]`, err);\n else {\n Logger.debug(`[${HOOK_NAME}/onCacheResult]`, 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.pendingMessages ?? [], false, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.failedMessages ?? [], false, sdk.currentUser.userId);\n }\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn(`[${HOOK_NAME}/onApiResult]`, err);\n else {\n Logger.debug(`[${HOOK_NAME}/onApiResult]`, 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n if (sdk.isCacheEnabled) {\n updateMessages(collectionRef.current?.pendingMessages ?? [], false, sdk.currentUser.userId);\n updateMessages(collectionRef.current?.failedMessages ?? [], false, sdk.currentUser.userId);\n }\n }\n callback?.();\n });\n }\n },\n [sdk, channel.url, options?.collectionCreator],\n );\n\n useChannelHandler(sdk, HOOK_NAME, {\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(userId, () => updateLoading(false));\n }, 0);\n }, [init, userId]);\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(userId, () => 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 next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n const messageCandidates: SendbirdBaseMessage[] = [];\n\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n messageCandidates.push(...fetchedList);\n } catch {}\n }\n\n if (nextMessages.length > 0) {\n messageCandidates.push(...nextMessages);\n }\n\n if (messageCandidates.length > 0) {\n updateMessages(messageCandidates, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\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 // updateMessages([failedMessage], 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 as SendbirdFileMessage);\n }\n })\n .onFailed((err, _failedMessage) => {\n // updateMessages([failedMessage], 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 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\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,MAAjC,QAA+C,OAA/C;AAEA,SAASC,2BAAT,EAAsCC,kBAAtC,EAA0DC,aAA1D,QAA+E,6BAA/E;AAOA,SACEC,MADF,EAEEC,oBAFF,EAGEC,kBAHF,EAIEC,cAJF,EAKEC,gBALF,QAMO,uBANP;AAQA,SAASC,iBAAT,QAAkC,iCAAlC;AAEA,SAASC,8BAAT,QAA+C,WAA/C;;AAEA,MAAMC,uBAAuB,GAAG,CAC9BC,OAD8B,EAE9BC,OAF8B,KAG3B;EACH,IAAIA,OAAJ,EAAa,OAAOA,OAAO,EAAd;EACb,MAAMC,MAAM,GAAG,IAAIX,aAAJ,EAAf;EACA,OAAOS,OAAO,CAACD,uBAAR,CAAgC;IAAEG,MAAF;IAAUC,KAAK,EAAE;EAAjB,CAAhC,CAAP;AACD,CAPD;;AASA,MAAMC,SAAS,GAAG,uCAAlB;AAEA,OAAO,MAAMC,qCAA8D,GAAG,CAACC,GAAD,EAAMN,OAAN,EAAeO,MAAf,EAAuBC,OAAvB,KAAmC;EAC/G,MAAMC,WAAW,GAAGd,cAAc,EAAlC;EACA,MAAMe,aAAa,GAAGtB,MAAM,EAA5B;EAEA,MAAM;IACJuB,OADI;IAEJC,UAFI;IAGJC,QAHI;IAIJC,YAJI;IAKJC,sBALI;IAMJC,cANI;IAOJC,kBAPI;IAQJC,kBARI;IASJC,cATI;IAUJC,aAVI;IAWJC;EAXI,IAYFvB,8BAA8B,CAACS,MAAD,EAASC,OAAT,aAASA,OAAT,uBAASA,OAAO,CAAEc,cAAlB,CAZlC;;EAcA,MAAMC,iBAAiB,GAAG,MAAOC,MAAP,IAAuC;IAC/D,IAAI;MACF,QAAQA,MAAR;QACE,KAAKlC,kBAAkB,CAACmC,sBAAxB;QACA,KAAKnC,kBAAkB,CAACoC,0BAAxB;QACA,KAAKpC,kBAAkB,CAACqC,iBAAxB;QACA,KAAKC,SAAL;UACE,MAAMnC,oBAAoB,CAAC,CAACO,OAAD,CAAD,CAA1B;UACA;MANJ;IAQD,CATD,CASE,OAAO6B,CAAP,EAAU;MACVrC,MAAM,CAACsC,IAAP,CAAa,IAAG1B,SAAU,qBAA1B,EAAgDyB,CAAhD;IACD;EACF,CAbD;;EAeA,MAAME,IAAI,GAAG7C,WAAW,CACtB,OAAO8C,GAAP,EAAqBC,QAArB,KAA+C;IAAA;;IAC7C,IAAIvB,aAAa,CAACwB,OAAlB,EAA2B,yBAAAxB,aAAa,CAACwB,OAAd,gFAAuBC,OAAvB;;IAE3B,IAAIH,GAAJ,EAAS;MAAA;;MACPtB,aAAa,CAACwB,OAAd,GAAwBnC,uBAAuB,CAACC,OAAD,EAAUQ,OAAV,aAAUA,OAAV,uBAAUA,OAAO,CAAE4B,iBAAnB,CAA/C;MACAnB,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWX,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA3B,CAAlB;MACAgB,iBAAiB;MAEjB,0BAAAb,aAAa,CAACwB,OAAd,kFAAuBI,2BAAvB,CAAmD;QACjDC,eAAe,EAAE,CAACC,CAAD,EAAIC,EAAJ,EAAQ5B,QAAR,KAAqB;UACpCU,iBAAiB,CAACiB,CAAC,CAAChB,MAAH,CAAjB;UACAP,kBAAkB,CAACJ,QAAD,EAAW,KAAX,EAAkBP,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAlC,CAAlB;QACD,CAJgD;QAKjDmC,iBAAiB,EAAE,CAACF,CAAD,EAAIC,EAAJ,EAAQ5B,QAAR,KAAqB;UACtCU,iBAAiB,CAACiB,CAAC,CAAChB,MAAH,CAAjB,CADsC,CAGtC;;UACA,IAAIgB,CAAC,CAAChB,MAAF,KAAalC,kBAAkB,CAACmC,sBAApC,EAA4D;YAC1D,MAAMkB,cAAc,GAAG7B,YAAY,CAAC8B,GAAb,CAAkBC,EAAD,IAAQA,EAAE,CAACC,SAA5B,CAAvB;YACA,MAAMC,iCAAiC,GAAGlC,QAAQ,CAACX,MAAT,CACvC2C,EAAD,IAAQF,cAAc,CAACK,OAAf,CAAuBH,EAAE,CAACC,SAA1B,MAAyC,CAAC,CADV,CAA1C;YAGA7B,kBAAkB,CAAC8B,iCAAD,EAAoC,KAApC,EAA2CzC,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA3D,CAAlB;UACD,CAVqC,CAYtC;UACA;;;UACA,IAAIiC,CAAC,CAAChB,MAAF,KAAalC,kBAAkB,CAACmC,sBAApC,EAA4D;YAC1DT,cAAc,CAACH,QAAD,EAAW,KAAX,EAAkBP,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAlC,CAAd;UACD;QACF,CAtBgD;QAuBjD0C,iBAAiB,EAAE,CAACT,CAAD,EAAIC,EAAJ,EAAQS,UAAR,KAAuB;UACxC/B,cAAc,CAAC+B,UAAD,EAAa,EAAb,CAAd;UACAhC,kBAAkB,CAACgC,UAAD,EAAa,EAAb,CAAlB;QACD,CA1BgD;QA2BjDC,gBAAgB,EAAE,MAAM;UAAA;;UACtB3C,OAAO,SAAP,IAAAA,OAAO,WAAP,qCAAAA,OAAO,CAAE2C,gBAAT,qFAAA3C,OAAO;QACR,CA7BgD;QA8BjD4C,gBAAgB,EAAE,CAACZ,CAAD,EAAIa,YAAJ,KAAqB;UACrC,IAAIA,YAAY,CAACC,cAAb,MAAiC,CAAC5D,kBAAkB,CAAC2D,YAAD,EAAerD,OAAf,CAAxD,EAAiF;YAC/ES,WAAW;UACZ;QACF,CAlCgD;QAmCjD8C,iBAAiB,EAAE,MAAM;UACvBxB,IAAI,CAACC,GAAD,CAAJ;QACD;MArCgD,CAAnD;MAwCAtB,aAAa,CAACwB,OAAd,CACGsB,UADH,CACcnE,2BAA2B,CAACoE,wBAD1C,EAEGC,aAFH,CAEiB,CAACC,GAAD,EAAM9C,QAAN,KAAmB;QAChC,IAAI8C,GAAJ,EAASrD,GAAG,CAACsD,cAAJ,IAAsBpE,MAAM,CAACqE,KAAP,CAAc,IAAGzD,SAAU,iBAA3B,EAA6CuD,GAA7C,CAAtB,CAAT,KACK;UAAA;;UACHnE,MAAM,CAACsE,KAAP,CAAc,IAAG1D,SAAU,iBAA3B,EAA6C,iBAA7C,EAAgES,QAAQ,CAACkD,MAAzE;UAEA/C,cAAc,CAACH,QAAD,EAAW,IAAX,EAAiBP,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAjC,CAAd;UACAS,cAAc,CAAC,2BAAAN,aAAa,CAACwB,OAAd,kFAAuB8B,eAAvB,KAA0C,EAA3C,EAA+C,KAA/C,EAAsD1D,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAtE,CAAd;UACAS,cAAc,CAAC,2BAAAN,aAAa,CAACwB,OAAd,kFAAuB+B,cAAvB,KAAyC,EAA1C,EAA8C,KAA9C,EAAqD3D,GAAG,CAAC+B,WAAJ,CAAgB9B,MAArE,CAAd;QACD;QACD0B,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ;MACT,CAZH,EAaGiC,WAbH,CAae,CAACP,GAAD,EAAM9C,QAAN,KAAmB;QAC9B,IAAI8C,GAAJ,EAASnE,MAAM,CAACsC,IAAP,CAAa,IAAG1B,SAAU,eAA1B,EAA0CuD,GAA1C,EAAT,KACK;UACHnE,MAAM,CAACsE,KAAP,CAAc,IAAG1D,SAAU,eAA3B,EAA2C,iBAA3C,EAA8DS,QAAQ,CAACkD,MAAvE;UAEA/C,cAAc,CAACH,QAAD,EAAW,IAAX,EAAiBP,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAjC,CAAd;;UACA,IAAID,GAAG,CAACsD,cAAR,EAAwB;YAAA;;YACtB5C,cAAc,CAAC,2BAAAN,aAAa,CAACwB,OAAd,kFAAuB8B,eAAvB,KAA0C,EAA3C,EAA+C,KAA/C,EAAsD1D,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAtE,CAAd;YACAS,cAAc,CAAC,2BAAAN,aAAa,CAACwB,OAAd,kFAAuB+B,cAAvB,KAAyC,EAA1C,EAA8C,KAA9C,EAAqD3D,GAAG,CAAC+B,WAAJ,CAAgB9B,MAArE,CAAd;UACD;QACF;QACD0B,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ;MACT,CAzBH;IA0BD;EACF,CA5EqB,EA6EtB,CAAC3B,GAAD,EAAMN,OAAO,CAACmE,GAAd,EAAmB3D,OAAnB,aAAmBA,OAAnB,uBAAmBA,OAAO,CAAE4B,iBAA5B,CA7EsB,CAAxB;EAgFAvC,iBAAiB,CAACS,GAAD,EAAMF,SAAN,EAAiB;IAChCgE,YAAY,CAACpE,OAAD,EAAUqE,UAAV,EAAsB;MAChC,IAAIrE,OAAO,CAACsD,cAAR,MAA4B,CAAC5D,kBAAkB,CAACM,OAAD,EAAUA,OAAV,CAAnD,EAAuE;QACrE,IAAIqE,UAAU,CAAC9D,MAAX,KAAsBD,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA1C,EAAkD;UAAA;;UAChDC,OAAO,SAAP,IAAAA,OAAO,WAAP,sCAAAA,OAAO,CAAE2C,gBAAT,uFAAA3C,OAAO;QACR,CAFD,MAEO;UACLC,WAAW;QACZ;MACF;IACF;;EAT+B,CAAjB,CAAjB;EAYAtB,SAAS,CAAC,MAAM;IACd;IACAmF,UAAU,CAAC,YAAY;MACrBlD,aAAa,CAAC,IAAD,CAAb;MACAW,IAAI,CAACxB,MAAD,EAAS,MAAMa,aAAa,CAAC,KAAD,CAA5B,CAAJ;IACD,CAHS,EAGP,CAHO,CAAV;EAID,CANQ,EAMN,CAACW,IAAD,EAAOxB,MAAP,CANM,CAAT;EAQApB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MAAA;;MACX,IAAIuB,aAAa,CAACwB,OAAlB,EAA2B,0BAAAxB,aAAa,CAACwB,OAAd,kFAAuBC,OAAvB;IAC5B,CAFD;EAGD,CAJQ,EAIN,EAJM,CAAT;EAMA,MAAMoC,OAAuD,GAAG3E,gBAAgB,CAAC,YAAY;IAC3FyB,gBAAgB,CAAC,IAAD,CAAhB;IACAU,IAAI,CAACxB,MAAD,EAAS,MAAMc,gBAAgB,CAAC,KAAD,CAA/B,CAAJ;EACD,CAH+E,CAAhF;EAKA,MAAMmD,IAAiD,GAAG5E,gBAAgB,CAAC,YAAY;IAAA;;IACrF,IAAIc,aAAa,CAACwB,OAAd,8BAAyBxB,aAAa,CAACwB,OAAvC,mDAAyB,uBAAuBuC,WAApD,EAAiE;MAC/D,IAAI;QAAA;;QACF,MAAMC,IAAI,GAAG,iCAAMhE,aAAa,CAACwB,OAApB,2DAAM,uBAAuByC,YAAvB,EAAN,CAAb;QACA3D,cAAc,CAAC0D,IAAD,EAAO,KAAP,EAAcpE,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA9B,CAAd;MACD,CAHD,CAGE,MAAM,CAAE;IACX;EACF,CAPyE,CAA1E;EASA,MAAMqE,IAAiD,GAAGhF,gBAAgB,CAAC,YAAY;IAAA;;IACrF,MAAMiF,iBAAwC,GAAG,EAAjD;;IAEA,IAAInE,aAAa,CAACwB,OAAd,+BAAyBxB,aAAa,CAACwB,OAAvC,oDAAyB,wBAAuB4C,OAApD,EAA6D;MAC3D,IAAI;QAAA;;QACF,MAAMC,WAAW,GAAG,kCAAMrE,aAAa,CAACwB,OAApB,4DAAM,wBAAuB8C,QAAvB,EAAN,CAApB;QACAH,iBAAiB,CAACI,IAAlB,CAAuB,GAAGF,WAA1B;MACD,CAHD,CAGE,MAAM,CAAE;IACX;;IAED,IAAIjE,YAAY,CAACiD,MAAb,GAAsB,CAA1B,EAA6B;MAC3Bc,iBAAiB,CAACI,IAAlB,CAAuB,GAAGnE,YAA1B;IACD;;IAED,IAAI+D,iBAAiB,CAACd,MAAlB,GAA2B,CAA/B,EAAkC;MAChC/C,cAAc,CAAC6D,iBAAD,EAAoB,KAApB,EAA2BvE,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA3C,CAAd;MACAU,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWX,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA3B,CAAlB;IACD;EACF,CAlByE,CAA1E;EAoBA,MAAM2E,eAAuE,GAAGtF,gBAAgB,CAC9F,CAACuF,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCvF,OAAO,CACJkF,eADH,CACmBC,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACC,aAAf,EAAJ,EAAoC;UAClCL,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;UACAxE,cAAc,CAAC,CAACwE,cAAD,CAAD,EAAmB,KAAnB,EAA0BlF,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA1C,CAAd;QACD;MACF,CAPH,EAQGmF,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACF,aAAZ,EAAJ,EAAiC;UAC/BzE,cAAc,CAAC,CAAC2E,WAAD,CAAD,EAAgB,KAAhB,EAAuBrF,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAvC,CAAd;UACA+E,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACjC,GAAD,EAAMkC,cAAN,KAAyB;QACjC;QACAN,MAAM,CAAC5B,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtB6F,CAAhG;EAwBA,MAAMmC,eAAuE,GAAGlG,gBAAgB,CAC9F,CAACuF,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCvF,OAAO,CACJ8F,eADH,CACmBX,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACO,aAAf,EAAJ,EAAoC;UAClC/E,cAAc,CAAC,CAACwE,cAAD,CAAD,EAAmB,KAAnB,EAA0BlF,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA1C,CAAd;UACA6E,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACI,aAAZ,EAAJ,EAAiC;UAC/B/E,cAAc,CAAC,CAAC2E,WAAD,CAAD,EAAgB,KAAhB,EAAuBrF,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAvC,CAAd;UACA+E,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACjC,GAAD,EAAMkC,cAAN,KAAyB;QACjC;QACAN,MAAM,CAAC5B,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtB6F,CAAhG;EAwBA,MAAMqC,iBAA2E,GAAGpG,gBAAgB,CAClG,OAAOkD,SAAP,EAAkBqC,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMjG,OAAO,CAACgG,iBAAR,CAA0BlD,SAA1B,EAAqCqC,MAArC,CAA7B;IACAnE,cAAc,CAAC,CAACiF,cAAD,CAAD,EAAmB,KAAnB,EAA0B3F,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA1C,CAAd;IACA,OAAO0F,cAAP;EACD,CALiG,CAApG;EAOA,MAAMC,iBAA2E,GAAGtG,gBAAgB,CAClG,OAAOkD,SAAP,EAAkBqC,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMjG,OAAO,CAACkG,iBAAR,CAA0BpD,SAA1B,EAAqCqC,MAArC,CAA7B;IACAnE,cAAc,CAAC,CAACiF,cAAD,CAAD,EAAmB,KAAnB,EAA0B3F,GAAG,CAAC+B,WAAJ,CAAgB9B,MAA1C,CAAd;IACA,OAAO0F,cAAP;EACD,CALiG,CAApG;EAOA,MAAME,aAAmE,GAAGvG,gBAAgB,CAC1F,MAAOwG,aAAP,IAAyB;IACvB,MAAMC,aAAa,GAAG,MAAM,CAAC,MAAM;MACjC,IAAID,aAAa,CAACX,aAAd,EAAJ,EAAmC,OAAOzF,OAAO,CAACsG,iBAAR,CAA0BF,aAA1B,CAAP;MACnC,IAAIA,aAAa,CAACL,aAAd,EAAJ,EAAmC,OAAO/F,OAAO,CAACuG,iBAAR,CAA0BH,aAA1B,CAAP;MACnC,OAAO,IAAP;IACD,CAJ2B,GAA5B;IAMA,IAAIC,aAAJ,EAAmBrF,cAAc,CAAC,CAACqF,aAAD,CAAD,EAAkB,KAAlB,EAAyB/F,GAAG,CAAC+B,WAAJ,CAAgB9B,MAAzC,CAAd;EACpB,CATyF,CAA5F;EAWA,MAAMiG,aAAmE,GAAG5G,gBAAgB,CAAC,MAAO6G,OAAP,IAAmB;IAC9G,IAAIA,OAAO,CAACC,aAAR,KAA0B,WAA9B,EAA2C;MACzC,IAAID,OAAO,CAAChB,aAAR,EAAJ,EAA6B,MAAMzF,OAAO,CAACwG,aAAR,CAAsBC,OAAtB,CAAN;MAC7B,IAAIA,OAAO,CAACV,aAAR,EAAJ,EAA6B,MAAM/F,OAAO,CAACwG,aAAR,CAAsBC,OAAtB,CAAN;IAC9B,CAHD,MAGO;MACL,IAAI;QAAA;;QACF,kCAAM/F,aAAa,CAACwB,OAApB,4DAAM,wBAAuByE,mBAAvB,CAA2CF,OAAO,CAACG,KAAnD,CAAN;MACD,CAFD,SAEU;QACRzF,cAAc,CAAC,CAACsF,OAAO,CAAC3D,SAAT,CAAD,EAAsB,CAAC2D,OAAO,CAACG,KAAT,CAAtB,CAAd;MACD;IACF;EACF,CAX2F,CAA5F;EAaA,OAAO;IACLjG,OADK;IAELC,UAFK;IAGL2D,OAHK;IAIL1D,QAJK;IAKLC,YALK;IAMLC,sBANK;IAOL6D,IAPK;IAQLJ,IARK;IASLU,eATK;IAULY,eAVK;IAWLE,iBAXK;IAYLE,iBAZK;IAaLC,aAbK;IAcLK;EAdK,CAAP;AAgBD,CAnRM"}
@@ -29,11 +29,11 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
29
29
  updateRefreshing
30
30
  } = useGroupChannelMessagesReducer(userId, options === null || options === void 0 ? void 0 : options.sortComparator);
31
31
 
32
- const channelMarkAs = async () => {
32
+ const channelMarkAsRead = async () => {
33
33
  try {
34
34
  await confirmAndMarkAsRead([channel]);
35
35
  } catch (e) {
36
- Logger.warn(`[${HOOK_NAME}/channelMarkAs/Read]`, e);
36
+ Logger.warn(`[${HOOK_NAME}/channelMarkAsRead]`, e);
37
37
  }
38
38
  };
39
39
 
@@ -42,7 +42,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
42
42
  var _queryRef$current;
43
43
 
44
44
  queryRef.current = createMessageQuery(channel, options === null || options === void 0 ? void 0 : options.queryCreator);
45
- channelMarkAs().catch();
45
+ channelMarkAsRead().catch();
46
46
 
47
47
  if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
48
48
  var _queryRef$current2;
@@ -65,7 +65,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
65
65
  // Messages
66
66
  onMessageReceived(eventChannel, message) {
67
67
  if (isDifferentChannel(channel, eventChannel)) return;
68
- channelMarkAs();
68
+ channelMarkAsRead();
69
69
  updateNextMessages([message], false, sdk.currentUser.userId);
70
70
  },
71
71
 
@@ -192,9 +192,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
192
192
  }, [channel]);
193
193
  const resendMessage = useCallback(async failedMessage => {
194
194
  const message = await (() => {
195
- if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage); // FIXME: v4 bugs
196
- // @ts-ignore
197
-
195
+ if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
198
196
  if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
199
197
  return null;
200
198
  })();
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useRef","Logger","confirmAndMarkAsRead","isDifferentChannel","useAsyncEffect","useForceUpdate","useChannelHandler","useGroupChannelMessagesReducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","HOOK_NAME","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","forceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAs","e","warn","init","uid","current","queryCreator","catch","hasNext","list","load","currentUser","url","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","refresh","prev","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\nconst HOOK_NAME = 'useGroupChannelMessagesWithQuery';\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAs = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn(`[${HOOK_NAME}/channelMarkAs/Read]`, e);\n }\n };\n\n const init = useCallback(\n async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAs().catch();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n },\n [sdk, channel.url, options?.queryCreator],\n );\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, HOOK_NAME, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n channelMarkAs();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\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 }, [init, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n }, [init, userId]);\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useCallback(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\n const next: ReturnType<UseGroupChannelMessages>['next'] = useCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n }, [nextMessages.length]);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err) => {\n reject(err);\n });\n });\n },\n [channel],\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err) => {\n reject(err);\n });\n });\n },\n [channel],\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n // FIXME: v4 bugs\n // @ts-ignore\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateNextMessages([message], false, sdk.currentUser.userId);\n },\n [channel],\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useCallback(\n 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 [channel],\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useRef","Logger","confirmAndMarkAsRead","isDifferentChannel","useAsyncEffect","useForceUpdate","useChannelHandler","useGroupChannelMessagesReducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","HOOK_NAME","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","forceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","current","queryCreator","catch","hasNext","list","load","currentUser","url","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","refresh","prev","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\nconst HOOK_NAME = 'useGroupChannelMessagesWithQuery';\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn(`[${HOOK_NAME}/channelMarkAsRead]`, e);\n }\n };\n\n const init = useCallback(\n async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAsRead().catch();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n },\n [sdk, channel.url, options?.queryCreator],\n );\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, HOOK_NAME, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n channelMarkAsRead();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\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 }, [init, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n }, [init, userId]);\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useCallback(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\n const next: ReturnType<UseGroupChannelMessages>['next'] = useCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n }, [nextMessages.length]);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err) => {\n reject(err);\n });\n });\n },\n [channel],\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err) => {\n reject(err);\n });\n });\n },\n [channel],\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useCallback(\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) updateNextMessages([message], false, sdk.currentUser.userId);\n },\n [channel],\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useCallback(\n 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 [channel],\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,MAAtB,QAAoC,OAApC;AAOA,SACEC,MADF,EAEEC,oBAFF,EAGEC,kBAHF,EAIEC,cAJF,EAKEC,cALF,QAMO,uBANP;AAQA,SAASC,iBAAT,QAAkC,iCAAlC;AAEA,SAASC,8BAAT,QAA+C,WAA/C;;AAEA,MAAMC,kBAAkB,GAAG,CACzBC,OADyB,EAEzBC,OAFyB,KAGtB;EACH,IAAIA,OAAJ,EAAa,OAAOA,OAAO,EAAd;EACb,OAAOD,OAAO,CAACE,8BAAR,CAAuC;IAC5CC,KAAK,EAAE,GADqC;IAE5CC,OAAO,EAAE;EAFmC,CAAvC,CAAP;AAID,CATD;;AAWA,MAAMC,SAAS,GAAG,kCAAlB;AACA,OAAO,MAAMC,gCAAyD,GAAG,CAACC,GAAD,EAAMP,OAAN,EAAeQ,MAAf,EAAuBC,OAAvB,KAAmC;EAC1G,MAAMC,QAAQ,GAAGnB,MAAM,EAAvB;EAEA,MAAMoB,WAAW,GAAGf,cAAc,EAAlC;EAEA,MAAM;IACJgB,OADI;IAEJC,UAFI;IAGJC,QAHI;IAIJC,YAJI;IAKJC,sBALI;IAMJC,cANI;IAOJC,kBAPI;IAQJC,kBARI;IASJC,cATI;IAUJC,aAVI;IAWJC;EAXI,IAYFxB,8BAA8B,CAACU,MAAD,EAASC,OAAT,aAASA,OAAT,uBAASA,OAAO,CAAEc,cAAlB,CAZlC;;EAcA,MAAMC,iBAAiB,GAAG,YAAY;IACpC,IAAI;MACF,MAAM/B,oBAAoB,CAAC,CAACO,OAAD,CAAD,CAA1B;IACD,CAFD,CAEE,OAAOyB,CAAP,EAAU;MACVjC,MAAM,CAACkC,IAAP,CAAa,IAAGrB,SAAU,qBAA1B,EAAgDoB,CAAhD;IACD;EACF,CAND;;EAQA,MAAME,IAAI,GAAGrC,WAAW,CACtB,MAAOsC,GAAP,IAAwB;IACtB,IAAIA,GAAJ,EAAS;MAAA;;MACPlB,QAAQ,CAACmB,OAAT,GAAmB9B,kBAAkB,CAACC,OAAD,EAAUS,OAAV,aAAUA,OAAV,uBAAUA,OAAO,CAAEqB,YAAnB,CAArC;MACAN,iBAAiB,GAAGO,KAApB;;MACA,yBAAIrB,QAAQ,CAACmB,OAAb,8CAAI,kBAAkBG,OAAtB,EAA+B;QAAA;;QAC7B,MAAMC,IAAI,GAAG,6BAAMvB,QAAQ,CAACmB,OAAf,uDAAM,mBAAkBK,IAAlB,EAAN,CAAb;QACAjB,cAAc,CAACgB,IAAD,EAAO,IAAP,EAAa1B,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA7B,CAAd;MACD;;MACDU,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWX,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA3B,CAAlB;IACD;EACF,CAXqB,EAYtB,CAACD,GAAD,EAAMP,OAAO,CAACoC,GAAd,EAAmB3B,OAAnB,aAAmBA,OAAnB,uBAAmBA,OAAO,CAAEqB,YAA5B,CAZsB,CAAxB;;EAeA,MAAMO,cAAc,GAAIrC,OAAD,IAAkC;IACvD,IAAIA,OAAO,CAACsC,cAAR,MAA4B,CAAC5C,kBAAkB,CAACM,OAAD,EAAUA,OAAV,CAAnD,EAAuE;MACrEW,WAAW;IACZ;EACF,CAJD;;EAMAd,iBAAiB,CAACU,GAAD,EAAMF,SAAN,EAAiB;IAChC;IACAkC,iBAAiB,CAACC,YAAD,EAAeC,OAAf,EAAwB;MACvC,IAAI/C,kBAAkB,CAACM,OAAD,EAAUwC,YAAV,CAAtB,EAA+C;MAC/ChB,iBAAiB;MACjBN,kBAAkB,CAAC,CAACuB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAlB;IACD,CAN+B;;IAOhCkC,gBAAgB,CAACF,YAAD,EAAeC,OAAf,EAAwB;MACtC,IAAI/C,kBAAkB,CAACM,OAAD,EAAUwC,YAAV,CAAtB,EAA+C;MAC/CvB,cAAc,CAAC,CAACwB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAd;IACD,CAV+B;;IAWhCmC,gBAAgB,CAACH,YAAD,EAAeI,SAAf,EAA0B;MACxC,IAAIlD,kBAAkB,CAACM,OAAD,EAAUwC,YAAV,CAAtB,EAA+C;MAC/CpB,cAAc,CAAC,CAACwB,SAAD,CAAD,EAAc,EAAd,CAAd;MACAzB,kBAAkB,CAAC,CAACyB,SAAD,CAAD,EAAc,EAAd,CAAlB;IACD,CAf+B;;IAgBhC;IACAC,gBAAgB,EAAER,cAjBc;IAkBhCS,eAAe,EAAET,cAlBe;IAmBhCU,iBAAiB,EAAEV,cAnBa;IAoBhCW,eAAe,EAAEX,cApBe;;IAqBhCY,2BAA2B,CAACC,QAAD,EAAW;MACpC,MAAMC,YAAY,GAAGD,QAAQ,CAACE,IAAT,CAAeC,CAAD,IAAO,CAAC3D,kBAAkB,CAAC2D,CAAD,EAAIrD,OAAJ,CAAxC,CAArB;MACA,IAAImD,YAAJ,EAAkBd,cAAc,CAACc,YAAD,CAAd;IACnB,CAxB+B;;IAyBhCG,gBAAgB,CAACC,UAAD,EAAqB;MAAA;;MACnC,IAAIvD,OAAO,CAACoC,GAAR,KAAgBmB,UAApB,EAAgC9C,OAAO,SAAP,IAAAA,OAAO,WAAP,qCAAAA,OAAO,CAAE6C,gBAAT,qFAAA7C,OAAO;IACxC,CA3B+B;;IA4BhC;IACA+C,iBAAiB,EAAEnB,cA7Ba;IA8BhCoB,UAAU,EAAEpB,cA9BoB;IA+BhC;IACA;IACAqB,YAAY,EAAErB,cAjCkB;IAkChCsB,cAAc,EAAEtB,cAlCgB;IAmChCuB,WAAW,EAAEvB,cAnCmB;IAoChCwB,aAAa,EAAExB,cApCiB;;IAqChCyB,YAAY,CAACtB,YAAD,EAAeuB,UAAf,EAA2B;MACrC,IAAIrE,kBAAkB,CAACM,OAAD,EAAUwC,YAAV,CAAtB,EAA+C;;MAE/C,IAAIuB,UAAU,CAACvD,MAAX,KAAsBD,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,EAAkD;QAAA;;QAChDC,OAAO,SAAP,IAAAA,OAAO,WAAP,sCAAAA,OAAO,CAAE6C,gBAAT,uFAAA7C,OAAO;MACR,CAFD,MAEO;QACL4B,cAAc,CAACG,YAAD,CAAd;MACD;IACF;;EA7C+B,CAAjB,CAAjB;EAgDA7C,cAAc,CAAC,YAAY;IACzB0B,aAAa,CAAC,IAAD,CAAb;IACA,MAAMM,IAAI,CAACnB,MAAD,CAAV;IACAa,aAAa,CAAC,KAAD,CAAb;EACD,CAJa,EAIX,CAACM,IAAD,EAAOnB,MAAP,CAJW,CAAd;EAMA,MAAMwD,OAAuD,GAAG1E,WAAW,CAAC,YAAY;IACtFgC,gBAAgB,CAAC,IAAD,CAAhB;IACA,MAAMK,IAAI,CAACnB,MAAD,CAAV;IACAc,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAJ0E,EAIxE,CAACK,IAAD,EAAOnB,MAAP,CAJwE,CAA3E;EAMA,MAAMyD,IAAiD,GAAG3E,WAAW,CAAC,YAAY;IAAA;;IAChF,IAAIoB,QAAQ,CAACmB,OAAT,0BAAoBnB,QAAQ,CAACmB,OAA7B,+CAAoB,mBAAkBG,OAA1C,EAAmD;MAAA;;MACjD,MAAMC,IAAI,GAAG,6BAAMvB,QAAQ,CAACmB,OAAf,uDAAM,mBAAkBK,IAAlB,EAAN,CAAb;MACAjB,cAAc,CAACgB,IAAD,EAAO,KAAP,EAAc1B,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA9B,CAAd;IACD;EACF,CALoE,EAKlE,EALkE,CAArE;EAOA,MAAM0D,IAAiD,GAAG5E,WAAW,CAAC,YAAY;IAChF,IAAIyB,YAAY,CAACoD,MAAb,GAAsB,CAA1B,EAA6B;MAC3BlD,cAAc,CAACF,YAAD,EAAe,KAAf,EAAsBR,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAtC,CAAd;MACAU,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWX,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA3B,CAAlB;IACD;EACF,CALoE,EAKlE,CAACO,YAAY,CAACoD,MAAd,CALkE,CAArE;EAOA,MAAMC,eAAuE,GAAG9E,WAAW,CACzF,CAAC+E,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCzE,OAAO,CACJoE,eADH,CACmBC,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACC,aAAf,EAAJ,EAAoC;UAClCzD,kBAAkB,CAAC,CAACwD,cAAD,CAAD,EAAmB,KAAnB,EAA0BnE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAlB;UACA8D,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACF,aAAZ,EAAJ,EAAiC;UAC/BzD,kBAAkB,CAAC,CAAC2D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;UACAgE,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcaC,GAAD,IAAS;QACjBN,MAAM,CAACM,GAAD,CAAN;MACD,CAhBH;IAiBD,CAlBM,CAAP;EAmBD,CArBwF,EAsBzF,CAAC/E,OAAD,CAtByF,CAA3F;EAwBA,MAAMgF,eAAuE,GAAG1F,WAAW,CACzF,CAAC+E,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCzE,OAAO,CACJgF,eADH,CACmBX,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACO,aAAf,EAAJ,EAAoC;UAClC/D,kBAAkB,CAAC,CAACwD,cAAD,CAAD,EAAmB,KAAnB,EAA0BnE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAlB;UACA8D,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACI,aAAZ,EAAJ,EAAiC;UAC/B/D,kBAAkB,CAAC,CAAC2D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;UACAgE,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcaC,GAAD,IAAS;QACjBN,MAAM,CAACM,GAAD,CAAN;MACD,CAhBH;IAiBD,CAlBM,CAAP;EAmBD,CArBwF,EAsBzF,CAAC/E,OAAD,CAtByF,CAA3F;EAwBA,MAAMkF,iBAA2E,GAAG5F,WAAW,CAC7F,OAAOsD,SAAP,EAAkByB,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMnF,OAAO,CAACkF,iBAAR,CAA0BtC,SAA1B,EAAqCyB,MAArC,CAA7B;IACApD,cAAc,CAAC,CAACkE,cAAD,CAAD,EAAmB,KAAnB,EAA0B5E,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAd;IACA,OAAO2E,cAAP;EACD,CAL4F,EAM7F,CAACnF,OAAD,CAN6F,CAA/F;EAQA,MAAMoF,iBAA2E,GAAG9F,WAAW,CAC7F,OAAOsD,SAAP,EAAkByB,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMnF,OAAO,CAACoF,iBAAR,CAA0BxC,SAA1B,EAAqCyB,MAArC,CAA7B;IACApD,cAAc,CAAC,CAACkE,cAAD,CAAD,EAAmB,KAAnB,EAA0B5E,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAd;IACA,OAAO2E,cAAP;EACD,CAL4F,EAM7F,CAACnF,OAAD,CAN6F,CAA/F;EAQA,MAAMqF,aAAmE,GAAG/F,WAAW,CACrF,MAAOgG,aAAP,IAAyB;IACvB,MAAM7C,OAAO,GAAG,MAAM,CAAC,MAAM;MAC3B,IAAI6C,aAAa,CAACX,aAAd,EAAJ,EAAmC,OAAO3E,OAAO,CAACuF,iBAAR,CAA0BD,aAA1B,CAAP;MACnC,IAAIA,aAAa,CAACL,aAAd,EAAJ,EAAmC,OAAOjF,OAAO,CAACwF,iBAAR,CAA0BF,aAA1B,CAAP;MACnC,OAAO,IAAP;IACD,CAJqB,GAAtB;IAMA,IAAI7C,OAAJ,EAAavB,kBAAkB,CAAC,CAACuB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAlB;EACd,CAToF,EAUrF,CAACR,OAAD,CAVqF,CAAvF;EAYA,MAAMyF,aAAmE,GAAGnG,WAAW,CACrF,MAAOmD,OAAP,IAAmB;IACjB,IAAIA,OAAO,CAACiD,aAAR,KAA0B,WAA9B,EAA2C;MACzC,IAAIjD,OAAO,CAACkC,aAAR,EAAJ,EAA6B,MAAM3E,OAAO,CAACyF,aAAR,CAAsBhD,OAAtB,CAAN;MAC7B,IAAIA,OAAO,CAACwC,aAAR,EAAJ,EAA6B,MAAMjF,OAAO,CAACyF,aAAR,CAAsBhD,OAAtB,CAAN;IAC9B,CAHD,MAGO;MACLrB,cAAc,CAAC,CAACqB,OAAO,CAACG,SAAT,CAAD,EAAsB,CAACH,OAAO,CAACkD,KAAT,CAAtB,CAAd;IACD;EACF,CARoF,EASrF,CAAC3F,OAAD,CATqF,CAAvF;EAYA,OAAO;IACLY,OADK;IAELC,UAFK;IAGLmD,OAHK;IAILlD,QAJK;IAKLC,YALK;IAMLC,sBANK;IAOLkD,IAPK;IAQLD,IARK;IASLG,eATK;IAULY,eAVK;IAWLE,iBAXK;IAYLE,iBAZK;IAaLC,aAbK;IAcLI;EAdK,CAAP;AAgBD,CAlOM"}
@@ -1,5 +1,5 @@
1
1
  import { useState } from 'react';
2
- import { truncatedBadgeCount, useAsyncEffect } from '@sendbird/uikit-utils';
2
+ import { truncatedCount, useAsyncEffect } from '@sendbird/uikit-utils';
3
3
  import { useUniqId } from '@sendbird/uikit-utils';
4
4
  import { useUserEventHandler } from '../handler/useUserEventHandler';
5
5
  const HOOK_NAME = 'useTotalUnreadChannelCount';
@@ -14,6 +14,6 @@ export const useTotalUnreadChannelCount = (sdk, params) => {
14
14
  setUnreadChannelCount(await sdk.groupChannel.getTotalUnreadChannelCount());
15
15
  }
16
16
  });
17
- return truncatedBadgeCount(unreadChannelCount, params === null || params === void 0 ? void 0 : params.maxCount);
17
+ return truncatedCount(unreadChannelCount, params === null || params === void 0 ? void 0 : params.maxCount);
18
18
  };
19
19
  //# sourceMappingURL=useTotalUnreadChannelCount.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","truncatedBadgeCount","useAsyncEffect","useUniqId","useUserEventHandler","HOOK_NAME","useTotalUnreadChannelCount","sdk","params","id","unreadChannelCount","setUnreadChannelCount","groupChannel","getTotalUnreadChannelCount","onTotalUnreadMessageCountUpdated","maxCount"],"sources":["useTotalUnreadChannelCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedBadgeCount, useAsyncEffect } from '@sendbird/uikit-utils';\nimport { useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Params = {\n maxCount?: number;\n};\nconst HOOK_NAME = 'useTotalUnreadChannelCount';\nexport const useTotalUnreadChannelCount = (sdk: SendbirdChatSDK, params?: Params) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadChannelCount, setUnreadChannelCount] = useState(0);\n\n useAsyncEffect(async () => {\n setUnreadChannelCount(await sdk.groupChannel.getTotalUnreadChannelCount());\n }, [sdk]);\n\n useUserEventHandler(sdk, HOOK_NAME + id, {\n onTotalUnreadMessageCountUpdated: async () => {\n setUnreadChannelCount(await sdk.groupChannel.getTotalUnreadChannelCount());\n },\n });\n\n return truncatedBadgeCount(unreadChannelCount, params?.maxCount);\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,OAAzB;AAGA,SAASC,mBAAT,EAA8BC,cAA9B,QAAoD,uBAApD;AACA,SAASC,SAAT,QAA0B,uBAA1B;AAEA,SAASC,mBAAT,QAAoC,gCAApC;AAKA,MAAMC,SAAS,GAAG,4BAAlB;AACA,OAAO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,MAAvB,KAA2C;EACnF,MAAMC,EAAE,GAAGN,SAAS,CAACE,SAAD,CAApB;EACA,MAAM,CAACK,kBAAD,EAAqBC,qBAArB,IAA8CX,QAAQ,CAAC,CAAD,CAA5D;EAEAE,cAAc,CAAC,YAAY;IACzBS,qBAAqB,CAAC,MAAMJ,GAAG,CAACK,YAAJ,CAAiBC,0BAAjB,EAAP,CAArB;EACD,CAFa,EAEX,CAACN,GAAD,CAFW,CAAd;EAIAH,mBAAmB,CAACG,GAAD,EAAMF,SAAS,GAAGI,EAAlB,EAAsB;IACvCK,gCAAgC,EAAE,YAAY;MAC5CH,qBAAqB,CAAC,MAAMJ,GAAG,CAACK,YAAJ,CAAiBC,0BAAjB,EAAP,CAArB;IACD;EAHsC,CAAtB,CAAnB;EAMA,OAAOZ,mBAAmB,CAACS,kBAAD,EAAqBF,MAArB,aAAqBA,MAArB,uBAAqBA,MAAM,CAAEO,QAA7B,CAA1B;AACD,CAfM"}
1
+ {"version":3,"names":["useState","truncatedCount","useAsyncEffect","useUniqId","useUserEventHandler","HOOK_NAME","useTotalUnreadChannelCount","sdk","params","id","unreadChannelCount","setUnreadChannelCount","groupChannel","getTotalUnreadChannelCount","onTotalUnreadMessageCountUpdated","maxCount"],"sources":["useTotalUnreadChannelCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedCount, useAsyncEffect } from '@sendbird/uikit-utils';\nimport { useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Params = {\n maxCount?: number;\n};\nconst HOOK_NAME = 'useTotalUnreadChannelCount';\nexport const useTotalUnreadChannelCount = (sdk: SendbirdChatSDK, params?: Params) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadChannelCount, setUnreadChannelCount] = useState(0);\n\n useAsyncEffect(async () => {\n setUnreadChannelCount(await sdk.groupChannel.getTotalUnreadChannelCount());\n }, [sdk]);\n\n useUserEventHandler(sdk, HOOK_NAME + id, {\n onTotalUnreadMessageCountUpdated: async () => {\n setUnreadChannelCount(await sdk.groupChannel.getTotalUnreadChannelCount());\n },\n });\n\n return truncatedCount(unreadChannelCount, params?.maxCount);\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,OAAzB;AAGA,SAASC,cAAT,EAAyBC,cAAzB,QAA+C,uBAA/C;AACA,SAASC,SAAT,QAA0B,uBAA1B;AAEA,SAASC,mBAAT,QAAoC,gCAApC;AAKA,MAAMC,SAAS,GAAG,4BAAlB;AACA,OAAO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,MAAvB,KAA2C;EACnF,MAAMC,EAAE,GAAGN,SAAS,CAACE,SAAD,CAApB;EACA,MAAM,CAACK,kBAAD,EAAqBC,qBAArB,IAA8CX,QAAQ,CAAC,CAAD,CAA5D;EAEAE,cAAc,CAAC,YAAY;IACzBS,qBAAqB,CAAC,MAAMJ,GAAG,CAACK,YAAJ,CAAiBC,0BAAjB,EAAP,CAArB;EACD,CAFa,EAEX,CAACN,GAAD,CAFW,CAAd;EAIAH,mBAAmB,CAACG,GAAD,EAAMF,SAAS,GAAGI,EAAlB,EAAsB;IACvCK,gCAAgC,EAAE,YAAY;MAC5CH,qBAAqB,CAAC,MAAMJ,GAAG,CAACK,YAAJ,CAAiBC,0BAAjB,EAAP,CAArB;IACD;EAHsC,CAAtB,CAAnB;EAMA,OAAOZ,cAAc,CAACS,kBAAD,EAAqBF,MAArB,aAAqBA,MAArB,uBAAqBA,MAAM,CAAEO,QAA7B,CAArB;AACD,CAfM"}
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react';
2
2
  import { SuperChannelFilter } from '@sendbird/chat/groupChannel';
3
- import { truncatedBadgeCount, useAsyncEffect, useUniqId } from '@sendbird/uikit-utils';
3
+ import { truncatedCount, useAsyncEffect, useUniqId } from '@sendbird/uikit-utils';
4
4
  import { useUserEventHandler } from '../handler/useUserEventHandler';
5
5
  const HOOK_NAME = 'useTotalUnreadMessageCount';
6
6
  export const useTotalUnreadMessageCount = (sdk, options) => {
@@ -18,6 +18,6 @@ export const useTotalUnreadMessageCount = (sdk, options) => {
18
18
  useUserEventHandler(sdk, `${HOOK_NAME}_${id}`, {
19
19
  onTotalUnreadMessageCountUpdated: totalCount => setUnreadMessageCount(totalCount)
20
20
  });
21
- return truncatedBadgeCount(unreadMessageCount, options === null || options === void 0 ? void 0 : options.maxCount);
21
+ return truncatedCount(unreadMessageCount, options === null || options === void 0 ? void 0 : options.maxCount);
22
22
  };
23
23
  //# sourceMappingURL=useTotalUnreadMessageCount.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","SuperChannelFilter","truncatedBadgeCount","useAsyncEffect","useUniqId","useUserEventHandler","HOOK_NAME","useTotalUnreadMessageCount","sdk","options","id","unreadMessageCount","setUnreadMessageCount","unreadCount","groupChannel","getTotalUnreadMessageCount","superChannelFilter","ALL","params","channelCustomTypesFilter","onTotalUnreadMessageCountUpdated","totalCount","maxCount"],"sources":["useTotalUnreadMessageCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SuperChannelFilter, TotalUnreadMessageCountParams } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedBadgeCount, useAsyncEffect, useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Options = {\n params?: TotalUnreadMessageCountParams;\n maxCount?: number;\n};\n\nconst HOOK_NAME = 'useTotalUnreadMessageCount';\nexport const useTotalUnreadMessageCount = (sdk: SendbirdChatSDK, options?: Options) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n useAsyncEffect(async () => {\n const unreadCount = await sdk.groupChannel.getTotalUnreadMessageCount({\n superChannelFilter: SuperChannelFilter.ALL,\n ...options?.params,\n });\n setUnreadMessageCount(unreadCount);\n }, [sdk, options?.params?.superChannelFilter, options?.params?.channelCustomTypesFilter]);\n\n useUserEventHandler(sdk, `${HOOK_NAME}_${id}`, {\n onTotalUnreadMessageCountUpdated: (totalCount: number) => setUnreadMessageCount(totalCount),\n });\n\n return truncatedBadgeCount(unreadMessageCount, options?.maxCount);\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,OAAzB;AAEA,SAASC,kBAAT,QAAkE,6BAAlE;AAEA,SAASC,mBAAT,EAA8BC,cAA9B,EAA8CC,SAA9C,QAA+D,uBAA/D;AAEA,SAASC,mBAAT,QAAoC,gCAApC;AAOA,MAAMC,SAAS,GAAG,4BAAlB;AACA,OAAO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,OAAvB,KAA6C;EAAA;;EACrF,MAAMC,EAAE,GAAGN,SAAS,CAACE,SAAD,CAApB;EACA,MAAM,CAACK,kBAAD,EAAqBC,qBAArB,IAA8CZ,QAAQ,CAAC,CAAD,CAA5D;EAEAG,cAAc,CAAC,YAAY;IACzB,MAAMU,WAAW,GAAG,MAAML,GAAG,CAACM,YAAJ,CAAiBC,0BAAjB,CAA4C;MACpEC,kBAAkB,EAAEf,kBAAkB,CAACgB,GAD6B;MAEpE,IAAGR,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAES,MAAZ;IAFoE,CAA5C,CAA1B;IAIAN,qBAAqB,CAACC,WAAD,CAArB;EACD,CANa,EAMX,CAACL,GAAD,EAAMC,OAAN,aAAMA,OAAN,0CAAMA,OAAO,CAAES,MAAf,oDAAM,gBAAiBF,kBAAvB,EAA2CP,OAA3C,aAA2CA,OAA3C,2CAA2CA,OAAO,CAAES,MAApD,qDAA2C,iBAAiBC,wBAA5D,CANW,CAAd;EAQAd,mBAAmB,CAACG,GAAD,EAAO,GAAEF,SAAU,IAAGI,EAAG,EAAzB,EAA4B;IAC7CU,gCAAgC,EAAGC,UAAD,IAAwBT,qBAAqB,CAACS,UAAD;EADlC,CAA5B,CAAnB;EAIA,OAAOnB,mBAAmB,CAACS,kBAAD,EAAqBF,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEa,QAA9B,CAA1B;AACD,CAjBM"}
1
+ {"version":3,"names":["useState","SuperChannelFilter","truncatedCount","useAsyncEffect","useUniqId","useUserEventHandler","HOOK_NAME","useTotalUnreadMessageCount","sdk","options","id","unreadMessageCount","setUnreadMessageCount","unreadCount","groupChannel","getTotalUnreadMessageCount","superChannelFilter","ALL","params","channelCustomTypesFilter","onTotalUnreadMessageCountUpdated","totalCount","maxCount"],"sources":["useTotalUnreadMessageCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SuperChannelFilter, TotalUnreadMessageCountParams } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedCount, useAsyncEffect, useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Options = {\n params?: TotalUnreadMessageCountParams;\n maxCount?: number;\n};\n\nconst HOOK_NAME = 'useTotalUnreadMessageCount';\nexport const useTotalUnreadMessageCount = (sdk: SendbirdChatSDK, options?: Options) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n useAsyncEffect(async () => {\n const unreadCount = await sdk.groupChannel.getTotalUnreadMessageCount({\n superChannelFilter: SuperChannelFilter.ALL,\n ...options?.params,\n });\n setUnreadMessageCount(unreadCount);\n }, [sdk, options?.params?.superChannelFilter, options?.params?.channelCustomTypesFilter]);\n\n useUserEventHandler(sdk, `${HOOK_NAME}_${id}`, {\n onTotalUnreadMessageCountUpdated: (totalCount: number) => setUnreadMessageCount(totalCount),\n });\n\n return truncatedCount(unreadMessageCount, options?.maxCount);\n};\n"],"mappings":"AAAA,SAASA,QAAT,QAAyB,OAAzB;AAEA,SAASC,kBAAT,QAAkE,6BAAlE;AAEA,SAASC,cAAT,EAAyBC,cAAzB,EAAyCC,SAAzC,QAA0D,uBAA1D;AAEA,SAASC,mBAAT,QAAoC,gCAApC;AAOA,MAAMC,SAAS,GAAG,4BAAlB;AACA,OAAO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,OAAvB,KAA6C;EAAA;;EACrF,MAAMC,EAAE,GAAGN,SAAS,CAACE,SAAD,CAApB;EACA,MAAM,CAACK,kBAAD,EAAqBC,qBAArB,IAA8CZ,QAAQ,CAAC,CAAD,CAA5D;EAEAG,cAAc,CAAC,YAAY;IACzB,MAAMU,WAAW,GAAG,MAAML,GAAG,CAACM,YAAJ,CAAiBC,0BAAjB,CAA4C;MACpEC,kBAAkB,EAAEf,kBAAkB,CAACgB,GAD6B;MAEpE,IAAGR,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAES,MAAZ;IAFoE,CAA5C,CAA1B;IAIAN,qBAAqB,CAACC,WAAD,CAArB;EACD,CANa,EAMX,CAACL,GAAD,EAAMC,OAAN,aAAMA,OAAN,0CAAMA,OAAO,CAAES,MAAf,oDAAM,gBAAiBF,kBAAvB,EAA2CP,OAA3C,aAA2CA,OAA3C,2CAA2CA,OAAO,CAAES,MAApD,qDAA2C,iBAAiBC,wBAA5D,CANW,CAAd;EAQAd,mBAAmB,CAACG,GAAD,EAAO,GAAEF,SAAU,IAAGI,EAAG,EAAzB,EAA4B;IAC7CU,gCAAgC,EAAGC,UAAD,IAAwBT,qBAAqB,CAACS,UAAD;EADlC,CAA5B,CAAnB;EAIA,OAAOnB,cAAc,CAACS,kBAAD,EAAqBF,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEa,QAA9B,CAArB;AACD,CAjBM"}
@@ -68,10 +68,10 @@ export const useUserList = (sdk, options) => {
68
68
  if ((_query$current = query.current) !== null && _query$current !== void 0 && _query$current.hasNext) {
69
69
  var _query$current2;
70
70
 
71
- const users = await ((_query$current2 = query.current) === null || _query$current2 === void 0 ? void 0 : _query$current2.next().catch(err => {
72
- Logger.error(error);
73
- if (err.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);
74
- throw error;
71
+ const users = await ((_query$current2 = query.current) === null || _query$current2 === void 0 ? void 0 : _query$current2.next().catch(e => {
72
+ Logger.error(e);
73
+ if (e.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);
74
+ throw e;
75
75
  }));
76
76
  updateUsers(users, true);
77
77
  }
@@ -104,10 +104,10 @@ export const useUserList = (sdk, options) => {
104
104
  var _query$current3;
105
105
 
106
106
  if (query.current && (_query$current3 = query.current) !== null && _query$current3 !== void 0 && _query$current3.hasNext) {
107
- const nextUsers = await query.current.next().catch(err => {
108
- Logger.error(error);
109
- if (err.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);
110
- throw error;
107
+ const nextUsers = await query.current.next().catch(e => {
108
+ Logger.error(e);
109
+ if (e.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);
110
+ throw e;
111
111
  });
112
112
  updateUsers(nextUsers, false);
113
113
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useRef","useState","Logger","SBErrorCode","SBErrorMessage","useAsyncEffect","useFreshCallback","createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","error","setError","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","sortComparator","sort","upsertUser","user","draft","userIdx","findIndex","it","userId","push","deleteUser","splice","updateUsers","clearPrev","prev","concat","init","current","hasNext","next","catch","err","code","NON_AUTHORIZED","warn","ACL","e","refresh","nextUsers"],"sources":["useUserList.ts"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\n\nimport type { Optional, SendbirdChatSDK, SendbirdUser } from '@sendbird/uikit-utils';\nimport { Logger, SBErrorCode, SBErrorMessage, useAsyncEffect, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn, UserStruct } from '../types';\n\nconst createUserQuery = <User extends UserStruct>(\n sdk: SendbirdChatSDK,\n queryCreator?: UseUserListOptions<User>['queryCreator'],\n) => {\n if (queryCreator) return queryCreator();\n // In order to use the API, the option must be turned on in the dashboard.\n return sdk.createApplicationUserListQuery() as unknown as CustomQueryInterface<User>;\n};\n\n/**\n * Get user list from query.\n * default query uses 'instance.createApplicationUserListQuery'\n * The response type of hook is depends on return type of 'query.next()'\n *\n * You can call hook with your custom query using {@link CustomQuery}\n * Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'\n *\n * ```example\n * const { users } = useUserList(sdk, {\n * queryCreator: () => {\n * const friendQuery = sdk.createFriendListQuery();\n * return new CustomQuery({\n * next: () => friendQuery.next(),\n * isLoading: () => friendQuery.isLoading,\n * hasNext: () => friendQuery.hasMore,\n * });\n * }\n * })\n * ```\n * */\nexport const useUserList = <\n Options extends UseUserListOptions<QueriedUser>,\n QueriedUser extends UserStruct = Options['queryCreator'] extends Optional<\n () => CustomQueryInterface<infer User extends UserStruct>\n >\n ? User\n : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: Options,\n): UseUserListReturn<QueriedUser> => {\n const query = useRef<CustomQueryInterface<QueriedUser>>();\n\n const [error, setError] = useState<unknown>(null);\n const [loading, setLoading] = useState(false);\n const [refreshing, setRefreshing] = useState(false);\n\n const [users, setUsers] = useState<QueriedUser[]>([]);\n const sortedUsers = useMemo((): QueriedUser[] => {\n if (options?.sortComparator) return users.sort(options.sortComparator);\n return users;\n }, [users, options?.sortComparator]);\n\n const upsertUser = useFreshCallback((user: QueriedUser) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === user.userId);\n if (userIdx > -1) draft[userIdx] = user;\n else draft.push(user);\n return draft;\n });\n });\n\n const deleteUser = useFreshCallback((userId: QueriedUser['userId']) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === userId);\n if (userIdx > -1) draft.splice(userIdx, 1);\n return draft;\n });\n });\n\n const updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useFreshCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next().catch((err) => {\n Logger.error(error);\n if (err.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);\n throw error;\n });\n updateUsers(users, true);\n }\n });\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const refresh = useFreshCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (query.current && query.current?.hasNext) {\n const nextUsers = await query.current.next().catch((err) => {\n Logger.error(error);\n if (err.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);\n throw error;\n });\n updateUsers(nextUsers, false);\n }\n });\n\n return {\n loading,\n error,\n users: sortedUsers,\n upsertUser,\n deleteUser,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useMemo","useRef","useState","Logger","SBErrorCode","SBErrorMessage","useAsyncEffect","useFreshCallback","createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","error","setError","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","sortComparator","sort","upsertUser","user","draft","userIdx","findIndex","it","userId","push","deleteUser","splice","updateUsers","clearPrev","prev","concat","init","current","hasNext","next","catch","e","code","NON_AUTHORIZED","warn","ACL","refresh","nextUsers"],"sources":["useUserList.ts"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\n\nimport type { Optional, SendbirdChatSDK, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\nimport { Logger, SBErrorCode, SBErrorMessage, useAsyncEffect, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';\n\nconst createUserQuery = <User extends UserStruct>(\n sdk: SendbirdChatSDK,\n queryCreator?: UseUserListOptions<User>['queryCreator'],\n) => {\n if (queryCreator) return queryCreator();\n // In order to use the API, the option must be turned on in the dashboard.\n return sdk.createApplicationUserListQuery() as unknown as CustomQueryInterface<User>;\n};\n\n/**\n * Get user list from query.\n * default query uses 'instance.createApplicationUserListQuery'\n * The response type of hook is depends on return type of 'query.next()'\n *\n * You can call hook with your custom query using {@link CustomQuery}\n * Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'\n *\n * ```example\n * const { users } = useUserList(sdk, {\n * queryCreator: () => {\n * const friendQuery = sdk.createFriendListQuery();\n * return new CustomQuery({\n * next: () => friendQuery.next(),\n * isLoading: () => friendQuery.isLoading,\n * hasNext: () => friendQuery.hasMore,\n * });\n * }\n * })\n * ```\n * */\nexport const useUserList = <\n Options extends UseUserListOptions<QueriedUser>,\n QueriedUser extends UserStruct = Options['queryCreator'] extends Optional<\n () => CustomQueryInterface<infer User extends UserStruct>\n >\n ? User\n : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: Options,\n): UseUserListReturn<QueriedUser> => {\n const query = useRef<CustomQueryInterface<QueriedUser>>();\n\n const [error, setError] = useState<unknown>(null);\n const [loading, setLoading] = useState(false);\n const [refreshing, setRefreshing] = useState(false);\n\n const [users, setUsers] = useState<QueriedUser[]>([]);\n const sortedUsers = useMemo((): QueriedUser[] => {\n if (options?.sortComparator) return users.sort(options.sortComparator);\n return users;\n }, [users, options?.sortComparator]);\n\n const upsertUser = useFreshCallback((user: QueriedUser) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === user.userId);\n if (userIdx > -1) draft[userIdx] = user;\n else draft.push(user);\n return draft;\n });\n });\n\n const deleteUser = useFreshCallback((userId: QueriedUser['userId']) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === userId);\n if (userIdx > -1) draft.splice(userIdx, 1);\n return draft;\n });\n });\n\n const updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useFreshCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(users, true);\n }\n });\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const refresh = useFreshCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (query.current && query.current?.hasNext) {\n const nextUsers = await query.current.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.NON_AUTHORIZED) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(nextUsers, false);\n }\n });\n\n return {\n loading,\n error,\n users: sortedUsers,\n upsertUser,\n deleteUser,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["useGroupChannelList","useGroupChannelMessages","useActiveGroupChannel","useGroupChannel","useAppFeatures","useMessageOutgoingStatus","usePushTrigger","useTotalUnreadChannelCount","useTotalUnreadMessageCount","useUserList","useChannelHandler","useConnectionHandler","useUserEventHandler","CustomQuery"],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useActiveGroupChannel } from './channel/useActiveGroupChannel';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadChannelCount } from './common/useTotalUnreadChannelCount';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useUserList } from './common/useUserList';\n\nexport { useChannelHandler } from './handler/useChannelHandler';\nexport { useConnectionHandler } from './handler/useConnectionHandler';\nexport { useUserEventHandler } from './handler/useUserEventHandler';\n\nexport { CustomQuery } from './model/CustomQuery';\n\nexport type {\n UseGroupChannelList,\n UseGroupChannelListOptions,\n UseGroupChannelMessages,\n UseGroupChannelMessagesOptions,\n UserStruct,\n UseUserListOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n} from './types';\n"],"mappings":"AAAA,SAASA,mBAAT,QAAoC,+BAApC;AACA,SAASC,uBAAT,QAAwC,mCAAxC;AACA,SAASC,qBAAT,QAAsC,iCAAtC;AACA,SAASC,eAAT,QAAgC,2BAAhC;AAEA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,wBAAT,QAAyC,mCAAzC;AACA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,0BAAT,QAA2C,qCAA3C;AACA,SAASC,0BAAT,QAA2C,qCAA3C;AACA,SAASC,WAAT,QAA4B,sBAA5B;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,oBAAT,QAAqC,gCAArC;AACA,SAASC,mBAAT,QAAoC,+BAApC;AAEA,SAASC,WAAT,QAA4B,qBAA5B"}
1
+ {"version":3,"names":["useGroupChannelList","useGroupChannelMessages","useActiveGroupChannel","useGroupChannel","useAppFeatures","useMessageOutgoingStatus","usePushTrigger","useTotalUnreadChannelCount","useTotalUnreadMessageCount","useUserList","useChannelHandler","useConnectionHandler","useUserEventHandler","CustomQuery"],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useActiveGroupChannel } from './channel/useActiveGroupChannel';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadChannelCount } from './common/useTotalUnreadChannelCount';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useUserList } from './common/useUserList';\n\nexport { useChannelHandler } from './handler/useChannelHandler';\nexport { useConnectionHandler } from './handler/useConnectionHandler';\nexport { useUserEventHandler } from './handler/useUserEventHandler';\n\nexport { CustomQuery } from './model/CustomQuery';\n\nexport type {\n UseGroupChannelList,\n UseGroupChannelListOptions,\n UseGroupChannelMessages,\n UseGroupChannelMessagesOptions,\n UseUserListOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n} from './types';\n"],"mappings":"AAAA,SAASA,mBAAT,QAAoC,+BAApC;AACA,SAASC,uBAAT,QAAwC,mCAAxC;AACA,SAASC,qBAAT,QAAsC,iCAAtC;AACA,SAASC,eAAT,QAAgC,2BAAhC;AAEA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,wBAAT,QAAyC,mCAAzC;AACA,SAASC,cAAT,QAA+B,yBAA/B;AACA,SAASC,0BAAT,QAA2C,qCAA3C;AACA,SAASC,0BAAT,QAA2C,qCAA3C;AACA,SAASC,WAAT,QAA4B,sBAA5B;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,oBAAT,QAAqC,gCAArC;AACA,SAASC,mBAAT,QAAoC,+BAApC;AAEA,SAASC,WAAT,QAA4B,qBAA5B"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users -> append to state(nextMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> nextMessages append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Get messages, this state is for temporary data before render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * */\n nextMessages: SendbirdMessage[];\n\n /**\n * Get new messages from nextMessages\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessagesFromMembers: SendbirdMessage[];\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageCreateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageCreateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: () => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n};\n\nexport interface UserStruct {\n userId: string;\n}\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users -> append to state(nextMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> nextMessages append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Get messages, this state is for temporary data before render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * */\n nextMessages: SendbirdMessage[];\n\n /**\n * Get new messages from nextMessages\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessagesFromMembers: SendbirdMessage[];\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageCreateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageCreateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: () => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import type { SendbirdChannel } from '@sendbird/uikit-utils';
2
- declare type Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';
2
+ type Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';
3
3
  export declare const useGroupChannelListReducer: (order?: Order) => {
4
4
  updateLoading: (status: boolean) => void;
5
5
  updateRefreshing: (status: boolean) => void;
@@ -1,3 +1,3 @@
1
1
  import type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMessage } from '@sendbird/uikit-utils';
2
- export declare type SBUOutgoingStatus = 'NONE' | 'PENDING' | 'FAILED' | 'UNDELIVERED' | 'DELIVERED' | 'UNREAD' | 'READ';
2
+ export type SBUOutgoingStatus = 'NONE' | 'PENDING' | 'FAILED' | 'UNDELIVERED' | 'DELIVERED' | 'UNREAD' | 'READ';
3
3
  export declare const useMessageOutgoingStatus: (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, message?: SendbirdMessage | null) => SBUOutgoingStatus;
@@ -1,5 +1,5 @@
1
1
  import type { SendbirdChatSDK } from '@sendbird/uikit-utils';
2
- declare type Params = {
2
+ type Params = {
3
3
  maxCount?: number;
4
4
  };
5
5
  export declare const useTotalUnreadChannelCount: (sdk: SendbirdChatSDK, params?: Params) => string;
@@ -1,6 +1,6 @@
1
1
  import { TotalUnreadMessageCountParams } from '@sendbird/chat/groupChannel';
2
2
  import type { SendbirdChatSDK } from '@sendbird/uikit-utils';
3
- declare type Options = {
3
+ type Options = {
4
4
  params?: TotalUnreadMessageCountParams;
5
5
  maxCount?: number;
6
6
  };
@@ -1,5 +1,5 @@
1
- import type { Optional, SendbirdChatSDK } from '@sendbird/uikit-utils';
2
- import type { CustomQueryInterface, UseUserListOptions, UseUserListReturn, UserStruct } from '../types';
1
+ import type { Optional, SendbirdChatSDK, UserStruct } from '@sendbird/uikit-utils';
2
+ import type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';
3
3
  /**
4
4
  * Get user list from query.
5
5
  * default query uses 'instance.createApplicationUserListQuery'
@@ -12,4 +12,4 @@ export { useChannelHandler } from './handler/useChannelHandler';
12
12
  export { useConnectionHandler } from './handler/useConnectionHandler';
13
13
  export { useUserEventHandler } from './handler/useUserEventHandler';
14
14
  export { CustomQuery } from './model/CustomQuery';
15
- export type { UseGroupChannelList, UseGroupChannelListOptions, UseGroupChannelMessages, UseGroupChannelMessagesOptions, UserStruct, UseUserListOptions, UseUserListReturn, CustomQueryInterface, CustomBidirectionalQueryInterface, } from './types';
15
+ export type { UseGroupChannelList, UseGroupChannelListOptions, UseGroupChannelMessages, UseGroupChannelMessagesOptions, UseUserListOptions, UseUserListReturn, CustomQueryInterface, CustomBidirectionalQueryInterface, } from './types';
@@ -1,5 +1,5 @@
1
1
  import type { CustomQueryInterface } from '../types';
2
- declare type ConstructorParams<T> = {
2
+ type ConstructorParams<T> = {
3
3
  next: () => Promise<T[]>;
4
4
  isLoading: () => boolean;
5
5
  hasNext: () => boolean;
@@ -1,4 +1,4 @@
1
- import type { SendbirdChatSDK, SendbirdError, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdGroupChannel, SendbirdGroupChannelCollection, SendbirdGroupChannelListQuery, SendbirdMessage, SendbirdMessageCollection, SendbirdPreviousMessageListQuery, SendbirdUserMessage, SendbirdUserMessageCreateParams } from '@sendbird/uikit-utils';
1
+ import type { SendbirdChatSDK, SendbirdError, SendbirdFileMessage, SendbirdFileMessageCreateParams, SendbirdGroupChannel, SendbirdGroupChannelCollection, SendbirdGroupChannelListQuery, SendbirdMessage, SendbirdMessageCollection, SendbirdPreviousMessageListQuery, SendbirdUserMessage, SendbirdUserMessageCreateParams, UserStruct } from '@sendbird/uikit-utils';
2
2
  export interface CustomQueryInterface<Data> {
3
3
  isLoading: boolean;
4
4
  next: () => Promise<Data[]>;
@@ -41,7 +41,7 @@ export interface UseGroupChannelList {
41
41
  next: () => Promise<void>;
42
42
  };
43
43
  }
44
- export declare type UseGroupChannelListOptions = {
44
+ export type UseGroupChannelListOptions = {
45
45
  queryCreator?: () => SendbirdGroupChannelListQuery;
46
46
  collectionCreator?: () => SendbirdGroupChannelCollection;
47
47
  enableCollectionWithoutLocalCache?: boolean;
@@ -141,16 +141,13 @@ export interface UseGroupChannelMessages {
141
141
  deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;
142
142
  };
143
143
  }
144
- export declare type UseGroupChannelMessagesOptions = {
144
+ export type UseGroupChannelMessagesOptions = {
145
145
  sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;
146
146
  queryCreator?: () => SendbirdPreviousMessageListQuery;
147
147
  collectionCreator?: () => SendbirdMessageCollection;
148
148
  enableCollectionWithoutLocalCache?: boolean;
149
149
  onChannelDeleted?: () => void;
150
150
  };
151
- export interface UserStruct {
152
- userId: string;
153
- }
154
151
  /**
155
152
  * @interface UseUserListReturn
156
153
  * @description interface for user list hook return value
@@ -191,7 +188,7 @@ export interface UseUserListReturn<User extends UserStruct> {
191
188
  * */
192
189
  next: () => Promise<void>;
193
190
  }
194
- export declare type UseUserListOptions<User extends UserStruct> = {
191
+ export type UseUserListOptions<User extends UserStruct> = {
195
192
  sortComparator?: (a: User, b: User) => number;
196
193
  queryCreator?: () => CustomQueryInterface<User>;
197
194
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-chat-hooks",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "React hooks that built with SendbirdChat SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -38,13 +38,13 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@sendbird/uikit-utils": "2.1.0"
41
+ "@sendbird/uikit-utils": "2.2.0"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/react": "*",
45
45
  "react": "^16.13.1",
46
46
  "react-native-builder-bob": "^0.18.0",
47
- "typescript": "^4.1.3"
47
+ "typescript": "4.9.4"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@sendbird/chat": "^4.0.13",
@@ -69,5 +69,5 @@
69
69
  "readmeFile": "./README.md",
70
70
  "displayName": "@sendbird/uikit-chat-hooks"
71
71
  },
72
- "gitHead": "c778a84a632487047fe532db188b32dfa6e93a7f"
72
+ "gitHead": "bd7ab217a07e91ba644c0cb69694a92b123326bf"
73
73
  }