@sendbird/uikit-chat-hooks 3.7.6 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/lib/commonjs/channel/useChannelMessagesReducer.js +3 -4
  2. package/lib/commonjs/channel/useChannelMessagesReducer.js.map +1 -1
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  5. package/lib/commonjs/channel/useGroupChannelList/reducer.js +3 -4
  6. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +3 -3
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  11. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +13 -13
  12. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -4
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  15. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  16. package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
  17. package/lib/commonjs/channel/useOpenChannelList/reducer.js +3 -4
  18. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  19. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
  21. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +6 -6
  22. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  23. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  24. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  25. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  26. package/lib/commonjs/common/useTotalUnreadMessageCount.js +1 -1
  27. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  28. package/lib/commonjs/common/useUserList.js +2 -4
  29. package/lib/commonjs/common/useUserList.js.map +1 -1
  30. package/lib/commonjs/handler/useChannelHandler.js +3 -7
  31. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  32. package/lib/commonjs/handler/useConnectionHandler.js +2 -5
  33. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  34. package/lib/commonjs/handler/useUserEventHandler.js +2 -5
  35. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  38. package/lib/commonjs/types.js.map +1 -1
  39. package/lib/module/channel/useChannelMessagesReducer.js +3 -4
  40. package/lib/module/channel/useChannelMessagesReducer.js.map +1 -1
  41. package/lib/module/channel/useGroupChannel.js.map +1 -1
  42. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  43. package/lib/module/channel/useGroupChannelList/reducer.js +3 -4
  44. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  45. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +3 -3
  46. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  47. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  48. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  49. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +13 -13
  50. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  51. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -4
  52. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  53. package/lib/module/channel/useOpenChannel.js.map +1 -1
  54. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  55. package/lib/module/channel/useOpenChannelList/reducer.js +3 -4
  56. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  57. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  58. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  59. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +6 -6
  60. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  61. package/lib/module/common/useAppFeatures.js.map +1 -1
  62. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  63. package/lib/module/common/usePushTrigger.js.map +1 -1
  64. package/lib/module/common/useTotalUnreadMessageCount.js +1 -1
  65. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  66. package/lib/module/common/useUserList.js +2 -4
  67. package/lib/module/common/useUserList.js.map +1 -1
  68. package/lib/module/handler/useChannelHandler.js +3 -7
  69. package/lib/module/handler/useChannelHandler.js.map +1 -1
  70. package/lib/module/handler/useConnectionHandler.js +2 -5
  71. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  72. package/lib/module/handler/useUserEventHandler.js +2 -5
  73. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/model/CustomQuery.js.map +1 -1
  76. package/lib/module/types.js.map +1 -1
  77. package/package.json +5 -5
@@ -7,10 +7,9 @@ exports.useChannelMessagesReducer = void 0;
7
7
  var _react = require("react");
8
8
  var _message = require("@sendbird/chat/message");
9
9
  var _uikitUtils = require("@sendbird/uikit-utils");
10
- const defaultReducer = (_ref, action) => {
11
- let {
12
- ...draft
13
- } = _ref;
10
+ const defaultReducer = ({
11
+ ...draft
12
+ }, action) => {
14
13
  switch (action.type) {
15
14
  case 'update_refreshing':
16
15
  {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_message","_uikitUtils","defaultReducer","_ref","action","draft","type","value","status","userId","currentUserId","clearBeforeAction","messagesToObject","messages","nextMessages","filter","next","isMyMessage","prev","reqId","messageId","shouldUpdate","shouldUpdateMessage","obj","newMessages","it","isNewMessage","arrayToMapWithGetter","getMessageUniqId","messageKeys","map","forEach","key","messageIds","msgId","message","isSendableMessage","reqIds","reduce","accum","curr","sendingStatus","SendingStatus","SUCCEEDED","useChannelMessagesReducer","sortComparator","loading","refreshing","messageMap","newMessageMap","dispatch","useReducer","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useIIFE","Array","from","Set","Object","values","sort","exports"],"sources":["useChannelMessagesReducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendableMessage } from '@sendbird/chat/lib/__definition';\nimport { SendingStatus } from '@sendbird/chat/message';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport {\n SendbirdMessage,\n arrayToMapWithGetter,\n getMessageUniqId,\n isMyMessage,\n isNewMessage,\n isSendableMessage,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\ntype Options = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n};\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_new_messages';\n value: { messages: SendbirdBaseMessage[]; clearBeforeAction: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_new_messages';\n value: { messageIds: (string | number)[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n newMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing': {\n draft['refreshing'] = action.value.status;\n return draft;\n }\n case 'update_loading': {\n draft['loading'] = action.value.status;\n return draft;\n }\n case 'update_messages': {\n const userId = action.value.currentUserId;\n\n if (action.value.clearBeforeAction) {\n draft['messageMap'] = messagesToObject(action.value.messages);\n } else {\n // Filtering meaningless message updates\n const nextMessages = action.value.messages.filter((next) => {\n if (isMyMessage(next, userId)) {\n const prev = draft['messageMap'][next.reqId] ?? draft['messageMap'][next.messageId];\n if (isMyMessage(prev, userId)) {\n const shouldUpdate = shouldUpdateMessage(prev, next);\n if (shouldUpdate) {\n // Remove existing messages before update to prevent duplicate display\n delete draft['messageMap'][prev.reqId];\n delete draft['messageMap'][prev.messageId];\n }\n return shouldUpdate;\n }\n }\n return true;\n });\n\n const obj = messagesToObject(nextMessages);\n draft['messageMap'] = { ...draft['messageMap'], ...obj };\n }\n\n return draft;\n }\n case 'update_new_messages': {\n const userId = action.value.currentUserId;\n const newMessages = action.value.messages.filter((it) => isNewMessage(it, userId));\n\n if (action.value.clearBeforeAction) {\n draft['newMessageMap'] = arrayToMapWithGetter(newMessages, getMessageUniqId);\n } else {\n // Remove existing messages before update to prevent duplicate display\n const messageKeys = newMessages.map((it) => it.messageId);\n messageKeys.forEach((key) => delete draft['newMessageMap'][key]);\n\n draft['newMessageMap'] = {\n ...draft['newMessageMap'],\n ...arrayToMapWithGetter(newMessages, getMessageUniqId),\n };\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_new_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'newMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => {\n const message = draft[key][msgId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n action.value.reqIds.forEach((reqId) => {\n const message = draft[key][reqId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n\n return draft;\n }\n }\n};\n\nconst messagesToObject = (messages: SendbirdBaseMessage[]) => {\n return messages.reduce((accum, curr) => {\n if (isSendableMessage(curr)) {\n accum[curr.reqId] = curr;\n if (curr.sendingStatus === SendingStatus.SUCCEEDED) {\n accum[curr.messageId] = curr;\n }\n } else {\n accum[curr.messageId] = curr;\n }\n return accum;\n }, {} as Record<string, SendbirdBaseMessage>);\n};\n\nconst shouldUpdateMessage = (prev: SendableMessage, next: SendableMessage) => {\n // message data update (e.g. reactions)\n if (prev.sendingStatus === SendingStatus.SUCCEEDED) return next.sendingStatus === SendingStatus.SUCCEEDED;\n\n // message sending status update\n return prev.sendingStatus !== next.sendingStatus;\n};\n\nexport const useChannelMessagesReducer = (sortComparator?: Options['sortComparator']) => {\n const [{ loading, refreshing, messageMap, newMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n newMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteMessages = (messageIds: (string | number)[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNewMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_new_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteNewMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_new_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Array.from(new Set(Object.values(messageMap))).sort(sortComparator);\n return Array.from(new Set(Object.values(messageMap)));\n });\n const newMessages = Object.values(newMessageMap);\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n deleteMessages,\n\n loading,\n refreshing,\n messages,\n\n newMessages,\n updateNewMessages,\n deleteNewMessages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_message","_uikitUtils","defaultReducer","draft","action","type","value","status","userId","currentUserId","clearBeforeAction","messagesToObject","messages","nextMessages","filter","next","isMyMessage","prev","reqId","messageId","shouldUpdate","shouldUpdateMessage","obj","newMessages","it","isNewMessage","arrayToMapWithGetter","getMessageUniqId","messageKeys","map","forEach","key","messageIds","msgId","message","isSendableMessage","reqIds","reduce","accum","curr","sendingStatus","SendingStatus","SUCCEEDED","useChannelMessagesReducer","sortComparator","loading","refreshing","messageMap","newMessageMap","dispatch","useReducer","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useIIFE","Array","from","Set","Object","values","sort","exports"],"sources":["useChannelMessagesReducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendableMessage } from '@sendbird/chat/lib/__definition';\nimport { SendingStatus } from '@sendbird/chat/message';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport {\n SendbirdMessage,\n arrayToMapWithGetter,\n getMessageUniqId,\n isMyMessage,\n isNewMessage,\n isSendableMessage,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\ntype Options = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n};\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_new_messages';\n value: { messages: SendbirdBaseMessage[]; clearBeforeAction: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_new_messages';\n value: { messageIds: (string | number)[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n newMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing': {\n draft['refreshing'] = action.value.status;\n return draft;\n }\n case 'update_loading': {\n draft['loading'] = action.value.status;\n return draft;\n }\n case 'update_messages': {\n const userId = action.value.currentUserId;\n\n if (action.value.clearBeforeAction) {\n draft['messageMap'] = messagesToObject(action.value.messages);\n } else {\n // Filtering meaningless message updates\n const nextMessages = action.value.messages.filter((next) => {\n if (isMyMessage(next, userId)) {\n const prev = draft['messageMap'][next.reqId] ?? draft['messageMap'][next.messageId];\n if (isMyMessage(prev, userId)) {\n const shouldUpdate = shouldUpdateMessage(prev, next);\n if (shouldUpdate) {\n // Remove existing messages before update to prevent duplicate display\n delete draft['messageMap'][prev.reqId];\n delete draft['messageMap'][prev.messageId];\n }\n return shouldUpdate;\n }\n }\n return true;\n });\n\n const obj = messagesToObject(nextMessages);\n draft['messageMap'] = { ...draft['messageMap'], ...obj };\n }\n\n return draft;\n }\n case 'update_new_messages': {\n const userId = action.value.currentUserId;\n const newMessages = action.value.messages.filter((it) => isNewMessage(it, userId));\n\n if (action.value.clearBeforeAction) {\n draft['newMessageMap'] = arrayToMapWithGetter(newMessages, getMessageUniqId);\n } else {\n // Remove existing messages before update to prevent duplicate display\n const messageKeys = newMessages.map((it) => it.messageId);\n messageKeys.forEach((key) => delete draft['newMessageMap'][key]);\n\n draft['newMessageMap'] = {\n ...draft['newMessageMap'],\n ...arrayToMapWithGetter(newMessages, getMessageUniqId),\n };\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_new_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'newMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => {\n const message = draft[key][msgId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n action.value.reqIds.forEach((reqId) => {\n const message = draft[key][reqId];\n if (message) {\n if (isSendableMessage(message)) delete draft[key][message.reqId];\n delete draft[key][message.messageId];\n }\n });\n\n return draft;\n }\n }\n};\n\nconst messagesToObject = (messages: SendbirdBaseMessage[]) => {\n return messages.reduce((accum, curr) => {\n if (isSendableMessage(curr)) {\n accum[curr.reqId] = curr;\n if (curr.sendingStatus === SendingStatus.SUCCEEDED) {\n accum[curr.messageId] = curr;\n }\n } else {\n accum[curr.messageId] = curr;\n }\n return accum;\n }, {} as Record<string, SendbirdBaseMessage>);\n};\n\nconst shouldUpdateMessage = (prev: SendableMessage, next: SendableMessage) => {\n // message data update (e.g. reactions)\n if (prev.sendingStatus === SendingStatus.SUCCEEDED) return next.sendingStatus === SendingStatus.SUCCEEDED;\n\n // message sending status update\n return prev.sendingStatus !== next.sendingStatus;\n};\n\nexport const useChannelMessagesReducer = (sortComparator?: Options['sortComparator']) => {\n const [{ loading, refreshing, messageMap, newMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n newMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteMessages = (messageIds: (string | number)[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNewMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_new_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteNewMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_new_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Array.from(new Set(Object.values(messageMap))).sort(sortComparator);\n return Array.from(new Set(Object.values(messageMap)));\n });\n const newMessages = Object.values(newMessageMap);\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n deleteMessages,\n\n loading,\n refreshing,\n messages,\n\n newMessages,\n updateNewMessages,\n deleteNewMessages,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","initialState","loading","error","undefined","channel","reducer","state","nextState","useGroupChannel","sdk","channelUrl","setState","useReducer","useAsyncEffect","groupChannel","getChannel","e","exports"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdGroupChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n useAsyncEffect(async () => {\n setState(initialState);\n\n try {\n setState({ channel: await sdk.groupChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAIA,MAAME,YAAmB,GAAG;EAAEC,OAAO,EAAE,IAAI;EAAEC,KAAK,EAAEC,SAAS;EAAEC,OAAO,EAAED;AAAU,CAAC;AACnF,MAAME,OAAO,GAAGA,CAACC,KAAY,EAAEC,SAAyB,MAAM;EAAE,GAAGD,KAAK;EAAE,GAAGC;AAAU,CAAC,CAAC;AAElF,MAAMC,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACP,OAAO,EAAEL,YAAY,CAAC;EAE3D,IAAAa,0BAAc,EAAC,YAAY;IACzBF,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACK,YAAY,CAACC,UAAU,CAACL,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,OAAOe,CAAC,EAAE;MACVL,QAAQ,CAAC;QAAET,KAAK,EAAEc,CAAC;QAAEf,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC;AAACW,OAAA,CAAAT,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","initialState","loading","error","undefined","channel","reducer","state","nextState","useGroupChannel","sdk","channelUrl","setState","useReducer","useAsyncEffect","groupChannel","getChannel","e","exports"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdGroupChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n useAsyncEffect(async () => {\n setState(initialState);\n\n try {\n setState({ channel: await sdk.groupChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAIA,MAAME,YAAmB,GAAG;EAAEC,OAAO,EAAE,IAAI;EAAEC,KAAK,EAAEC,SAAS;EAAEC,OAAO,EAAED;AAAU,CAAC;AACnF,MAAME,OAAO,GAAGA,CAACC,KAAY,EAAEC,SAAyB,MAAM;EAAE,GAAGD,KAAK;EAAE,GAAGC;AAAU,CAAC,CAAC;AAElF,MAAMC,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACP,OAAO,EAAEL,YAAY,CAAC;EAE3D,IAAAa,0BAAc,EAAC,YAAY;IACzBF,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACK,YAAY,CAACC,UAAU,CAACL,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,OAAOe,CAAC,EAAE;MACVL,QAAQ,CAAC;QAAET,KAAK,EAAEc,CAAC;QAAEf,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC;AAACW,OAAA,CAAAT,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_useGroupChannelListWithCollection","_useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelListWithCollection","useGroupChannelListWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,kCAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,kBAAM,CAACC,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAO,IAAAC,oEAAiC,EAACR,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAO,IAAAO,0DAA4B,EAACT,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC;AAACQ,OAAA,CAAAX,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_uikitUtils","require","_useGroupChannelListWithCollection","_useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelListWithCollection","useGroupChannelListWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,kCAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,kBAAM,CAACC,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAO,IAAAC,oEAAiC,EAACR,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAO,IAAAO,0DAA4B,EAACT,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC;AAACQ,OAAA,CAAAX,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -6,10 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useGroupChannelListReducer = void 0;
7
7
  var _react = require("react");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
- const defaultReducer = (_ref, action) => {
10
- let {
11
- ...draft
12
- } = _ref;
9
+ const defaultReducer = ({
10
+ ...draft
11
+ }, action) => {
13
12
  const compareByOrder = createCompareByOrder(draft.order);
14
13
  switch (action.type) {
15
14
  case 'update_refreshing':
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","mergeObjectArrays","useGroupChannelListReducer","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateOrder","exports","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels, mergeObjectArrays } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'append_channels': {\n const groupChannels = getGroupChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.groupChannels = groupChannels;\n } else {\n draft.groupChannels = mergeObjectArrays(draft.groupChannels, groupChannels, 'url');\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","draft","action","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","mergeObjectArrays","useGroupChannelListReducer","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateOrder","exports","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels, mergeObjectArrays } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'append_channels': {\n const groupChannels = getGroupChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.groupChannels = groupChannels;\n } else {\n draft.groupChannels = mergeObjectArrays(draft.groupChannels, groupChannels, 'url');\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -58,11 +58,11 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
58
58
  };
59
59
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
60
60
  var _collectionRef$curren2;
61
- if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.dispose();
61
+ if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 || _collectionRef$curren2.dispose();
62
62
  if (uid) {
63
63
  var _collectionRef$curren3, _collectionRef$curren4;
64
64
  collectionRef.current = createGroupChannelListCollection(sdk, options === null || options === void 0 ? void 0 : options.collectionCreator);
65
- (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.setGroupChannelCollectionHandler({
65
+ (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 || _collectionRef$curren3.setGroupChannelCollectionHandler({
66
66
  onChannelsAdded: (context, channels) => {
67
67
  updateChannelsAndMarkAsDelivered(true, context.source, channels);
68
68
  },
@@ -83,7 +83,7 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
83
83
  (0, _react.useEffect)(() => {
84
84
  return () => {
85
85
  var _collectionRef$curren6;
86
- if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 ? void 0 : _collectionRef$curren6.dispose();
86
+ if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 || _collectionRef$curren6.dispose();
87
87
  };
88
88
  }, []);
89
89
  (0, _uikitUtils.useAsyncEffect)(async () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports","Logger","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,EAAE;IAChD,OAAO,IAAAC,4EAAqC,EAACR,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAM,kEAAgC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACO,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEF,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;EAChCI,kBAAM,CAACC,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
1
+ {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports","Logger","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,CAAC,CAAC;IAChD,OAAO,IAAAC,4EAAqC,EAACR,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAM,kEAAgC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACO,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEF,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;EAChCI,kBAAM,CAACC,IAAI,CACT,kGAAkG,GAChG,uCACJ,CAAC;AACH,CAAC","ignoreList":[]}
@@ -78,7 +78,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
78
78
  {
79
79
  var _options$shouldCountN, _sdk$currentUser2, _options$onMessagesRe;
80
80
  if (options !== null && options !== void 0 && (_options$shouldCountN = options.shouldCountNewMessages) !== null && _options$shouldCountN !== void 0 && _options$shouldCountN.call(options)) updateNewMessages(incomingMessages, false, (_sdk$currentUser2 = sdk.currentUser) === null || _sdk$currentUser2 === void 0 ? void 0 : _sdk$currentUser2.userId);
81
- options === null || options === void 0 ? void 0 : (_options$onMessagesRe = options.onMessagesReceived) === null || _options$onMessagesRe === void 0 ? void 0 : _options$onMessagesRe.call(options, incomingMessages);
81
+ options === null || options === void 0 || (_options$onMessagesRe = options.onMessagesReceived) === null || _options$onMessagesRe === void 0 || _options$onMessagesRe.call(options, incomingMessages);
82
82
  break;
83
83
  }
84
84
  }
@@ -95,7 +95,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
95
95
  };
96
96
  const init = (0, _uikitUtils.useFreshCallback)((startingPoint, limit, callback) => {
97
97
  var _collectionRef$curren, _sdk$currentUser5, _collectionRef$curren2;
98
- if (collectionRef.current) (_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.dispose();
98
+ if (collectionRef.current) (_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 || _collectionRef$curren.dispose();
99
99
  channelMarkAsRead();
100
100
  updateNewMessages([], true, (_sdk$currentUser5 = sdk.currentUser) === null || _sdk$currentUser5 === void 0 ? void 0 : _sdk$currentUser5.userId);
101
101
  collectionInitializedRef.current = false;
@@ -103,7 +103,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
103
103
  ...options,
104
104
  startingPoint
105
105
  });
106
- (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.setMessageCollectionHandler({
106
+ (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 || _collectionRef$curren2.setMessageCollectionHandler({
107
107
  onMessagesAdded: (ctx, __, messages) => {
108
108
  var _sdk$currentUser6;
109
109
  channelMarkAsRead(ctx.source);
@@ -118,7 +118,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
118
118
  updateMessages(messages, false, (_sdk$currentUser7 = sdk.currentUser) === null || _sdk$currentUser7 === void 0 ? void 0 : _sdk$currentUser7.userId);
119
119
  if (ctx.source === _chat.CollectionEventSource.EVENT_MESSAGE_UPDATED) {
120
120
  var _options$onMessagesUp;
121
- options === null || options === void 0 ? void 0 : (_options$onMessagesUp = options.onMessagesUpdated) === null || _options$onMessagesUp === void 0 ? void 0 : _options$onMessagesUp.call(options, messages);
121
+ options === null || options === void 0 || (_options$onMessagesUp = options.onMessagesUpdated) === null || _options$onMessagesUp === void 0 || _options$onMessagesUp.call(options, messages);
122
122
  }
123
123
  },
124
124
  onMessagesDeleted: (_, __, ___, messages) => {
@@ -129,7 +129,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
129
129
  },
130
130
  onChannelDeleted: () => {
131
131
  var _options$onChannelDel;
132
- options === null || options === void 0 ? void 0 : (_options$onChannelDel = options.onChannelDeleted) === null || _options$onChannelDel === void 0 ? void 0 : _options$onChannelDel.call(options);
132
+ options === null || options === void 0 || (_options$onChannelDel = options.onChannelDeleted) === null || _options$onChannelDel === void 0 || _options$onChannelDel.call(options);
133
133
  },
134
134
  onChannelUpdated: (_, eventChannel) => {
135
135
  if (eventChannel.isGroupChannel() && !(0, _uikitUtils.isDifferentChannel)(eventChannel, channel)) {
@@ -147,17 +147,17 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
147
147
  updateMessages(messages, true, (_sdk$currentUser8 = sdk.currentUser) === null || _sdk$currentUser8 === void 0 ? void 0 : _sdk$currentUser8.userId);
148
148
  updateUnsentMessages();
149
149
  }
150
- callback === null || callback === void 0 ? void 0 : callback();
150
+ callback === null || callback === void 0 || callback();
151
151
  }).onApiResult((err, messages) => {
152
152
  if (err) _uikitUtils.Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);else if (messages) {
153
153
  var _sdk$currentUser9, _options$onMessagesRe2;
154
154
  _uikitUtils.Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);
155
155
  updateMessages(messages, true, (_sdk$currentUser9 = sdk.currentUser) === null || _sdk$currentUser9 === void 0 ? void 0 : _sdk$currentUser9.userId);
156
- if (!(options !== null && options !== void 0 && options.startingPoint)) options === null || options === void 0 ? void 0 : (_options$onMessagesRe2 = options.onMessagesReceived) === null || _options$onMessagesRe2 === void 0 ? void 0 : _options$onMessagesRe2.call(options, messages);
156
+ if (!(options !== null && options !== void 0 && options.startingPoint)) options === null || options === void 0 || (_options$onMessagesRe2 = options.onMessagesReceived) === null || _options$onMessagesRe2 === void 0 || _options$onMessagesRe2.call(options, messages);
157
157
  if (sdk.isCacheEnabled) updateUnsentMessages();
158
158
  }
159
159
  collectionInitializedRef.current = true;
160
- callback === null || callback === void 0 ? void 0 : callback();
160
+ callback === null || callback === void 0 || callback();
161
161
  });
162
162
  });
163
163
  (0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
@@ -166,7 +166,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
166
166
  var _sdk$currentUser10;
167
167
  if (bannedUser.userId === ((_sdk$currentUser10 = sdk.currentUser) === null || _sdk$currentUser10 === void 0 ? void 0 : _sdk$currentUser10.userId)) {
168
168
  var _options$onChannelDel2;
169
- options === null || options === void 0 ? void 0 : (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 ? void 0 : _options$onChannelDel2.call(options);
169
+ options === null || options === void 0 || (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 || _options$onChannelDel2.call(options);
170
170
  } else {
171
171
  forceUpdate();
172
172
  }
@@ -183,7 +183,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
183
183
  (0, _react.useEffect)(() => {
184
184
  return () => {
185
185
  var _collectionRef$curren3;
186
- if (collectionRef.current) (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.dispose();
186
+ if (collectionRef.current) (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 || _collectionRef$curren3.dispose();
187
187
  };
188
188
  }, []);
189
189
  const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
@@ -229,7 +229,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
229
229
  channel.sendUserMessage(params).onPending(pendingMessage => {
230
230
  if (pendingMessage.isUserMessage()) {
231
231
  var _sdk$currentUser13;
232
- onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
232
+ onPending === null || onPending === void 0 || onPending(pendingMessage);
233
233
  updateMessages([pendingMessage], false, (_sdk$currentUser13 = sdk.currentUser) === null || _sdk$currentUser13 === void 0 ? void 0 : _sdk$currentUser13.userId);
234
234
  }
235
235
  }).onSucceeded(sentMessage => {
@@ -253,7 +253,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
253
253
  if (pendingMessage.isFileMessage()) {
254
254
  var _sdk$currentUser16;
255
255
  updateMessages([pendingMessage], false, (_sdk$currentUser16 = sdk.currentUser) === null || _sdk$currentUser16 === void 0 ? void 0 : _sdk$currentUser16.userId);
256
- onPending === null || onPending === void 0 ? void 0 : onPending(pendingMessage);
256
+ onPending === null || onPending === void 0 || onPending(pendingMessage);
257
257
  }
258
258
  }).onSucceeded(sentMessage => {
259
259
  if (sentMessage.isFileMessage()) {
@@ -315,7 +315,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
315
315
  updateMessages([], true, (_sdk$currentUser23 = sdk.currentUser) === null || _sdk$currentUser23 === void 0 ? void 0 : _sdk$currentUser23.userId);
316
316
  init(startingPoint, limit, () => {
317
317
  updateLoading(false);
318
- callback === null || callback === void 0 ? void 0 : callback();
318
+ callback === null || callback === void 0 || callback();
319
319
  });
320
320
  });
321
321
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","Logger","error","_sdk$currentUser8","debug","onApiResult","warn","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser10","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser11","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser12","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser13","onSucceeded","sentMessage","_sdk$currentUser14","onFailed","failedMessage","_sdk$currentUser15","sendFileMessage","isFileMessage","_sdk$currentUser16","_sdk$currentUser17","_sdk$currentUser18","updateUserMessage","_sdk$currentUser19","updatedMessage","updateFileMessage","_sdk$currentUser20","resendMessage","_sdk$currentUser21","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser22","resetWithStartingPoint","_sdk$currentUser23","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = (source?: CollectionEventSource) => {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n confirmAndMarkAsRead([channel]);\n break;\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback((startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser?.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n ...options,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","Logger","error","_sdk$currentUser8","debug","onApiResult","warn","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser10","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser11","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser12","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser13","onSucceeded","sentMessage","_sdk$currentUser14","onFailed","failedMessage","_sdk$currentUser15","sendFileMessage","isFileMessage","_sdk$currentUser16","_sdk$currentUser17","_sdk$currentUser18","updateUserMessage","_sdk$currentUser19","updatedMessage","updateFileMessage","_sdk$currentUser20","resendMessage","_sdk$currentUser21","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser22","resetWithStartingPoint","_sdk$currentUser23","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = (source?: CollectionEventSource) => {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n confirmAndMarkAsRead([channel]);\n break;\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback((startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser?.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n ...options,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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","ignoreList":[]}