@sendbird/uikit-chat-hooks 2.5.0 → 3.0.0-rc.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 (59) hide show
  1. package/README.md +4 -0
  2. package/lib/commonjs/channel/useGroupChannel.js +21 -13
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/reducer.js +7 -6
  5. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +2 -2
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +3 -3
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js +4 -1
  11. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +3 -4
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +8 -8
  15. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  16. package/lib/commonjs/channel/useOpenChannel.js +21 -13
  17. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  18. package/lib/commonjs/channel/useOpenChannelList/reducer.js +1 -1
  19. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -3
  21. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  22. package/lib/commonjs/types.js.map +1 -1
  23. package/lib/module/channel/useGroupChannel.js +22 -14
  24. package/lib/module/channel/useGroupChannel.js.map +1 -1
  25. package/lib/module/channel/useGroupChannelList/reducer.js +8 -7
  26. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  27. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +2 -2
  28. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  29. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +3 -3
  30. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  31. package/lib/module/channel/useGroupChannelMessages/index.js +4 -1
  32. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  33. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +3 -4
  34. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  35. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +8 -8
  36. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  37. package/lib/module/channel/useOpenChannel.js +22 -14
  38. package/lib/module/channel/useOpenChannel.js.map +1 -1
  39. package/lib/module/channel/useOpenChannelList/reducer.js +2 -2
  40. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  41. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -3
  42. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  43. package/lib/module/types.js.map +1 -1
  44. package/lib/typescript/src/channel/useGroupChannel.d.ts +2 -2
  45. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  46. package/lib/typescript/src/channel/useOpenChannel.d.ts +2 -2
  47. package/lib/typescript/src/types.d.ts +2 -8
  48. package/package.json +7 -7
  49. package/src/channel/useGroupChannel.ts +13 -10
  50. package/src/channel/useGroupChannelList/reducer.ts +9 -8
  51. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +2 -2
  52. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +3 -3
  53. package/src/channel/useGroupChannelMessages/index.ts +8 -1
  54. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +5 -4
  55. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +9 -13
  56. package/src/channel/useOpenChannel.ts +13 -10
  57. package/src/channel/useOpenChannelList/reducer.ts +2 -2
  58. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +0 -3
  59. package/src/types.ts +2 -10
@@ -25,7 +25,7 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
25
25
  loading,
26
26
  groupChannels,
27
27
  refreshing,
28
- setChannels,
28
+ appendChannels,
29
29
  deleteChannels,
30
30
  updateRefreshing,
31
31
  updateLoading
@@ -33,7 +33,7 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
33
33
  const updateChannelsAndMarkAsDelivered = (markAsDelivered, source, updatedChannels) => {
34
34
  var _collectionRef$curren;
35
35
  const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channels) ?? [];
36
- setChannels(channels, true);
36
+ appendChannels(channels, true);
37
37
  if (markAsDelivered && deliveryReceiptEnabled) {
38
38
  switch (source) {
39
39
  case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","_collectionRef$curren6","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8"],"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\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, setChannels, 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 setChannels(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":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,SAASC,uBAAuB,EAAEC,kBAAkB,EAAEC,qBAAqB,QAAQ,6BAA6B;AAEhH,SAASC,yBAAyB,EAAEC,cAAc,EAAEC,gBAAgB,EAAEC,gBAAgB,QAAQ,uBAAuB;AAErH,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SAASC,iBAAiB,QAAQ,iCAAiC;AAEnE,SAASC,0BAA0B,QAAQ,WAAW;AAEtD,MAAMC,gCAAgC,GAAGA,CACvCC,GAAoB,EACpBC,iBAAkE,KAC/D;EACH,MAAMC,gBAAgB,GAAGD,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,EAAI;EAC9C,IAAIC,gBAAgB,EAAE,OAAOA,gBAAgB;EAE7C,MAAMC,MAAM,GAAG,IAAIb,kBAAkB,EAAE;EACvCa,MAAM,CAACC,YAAY,GAAG,KAAK;EAE3B,OAAOJ,GAAG,CAACK,YAAY,CAACC,4BAA4B,CAAC;IACnDH,MAAM;IACNI,KAAK,EAAE,EAAE;IACTC,KAAK,EAAEjB,qBAAqB,CAACkB;EAC/B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,iCAAsD,GAAGA,CAACV,GAAG,EAAEW,MAAM,EAAEC,OAAO,KAAK;EAC9F,MAAMC,SAAS,GAAGlB,gBAAgB,CAAC,mCAAmC,CAAC;EACvE,MAAM;IAAEmB;EAAuB,CAAC,GAAGlB,cAAc,CAACI,GAAG,CAAC;EAEtD,MAAMe,aAAa,GAAG3B,MAAM,EAAkC;EAE9D,MAAM;IAAE4B,OAAO;IAAEC,aAAa;IAAEC,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,gBAAgB;IAAEC;EAAc,CAAC,GACxGxB,0BAA0B,EAAE;EAE9B,MAAMyB,gCAAgC,GAAGA,CACvCC,eAAwB,EACxBC,MAAgC,EAChCC,eAAuC,KACpC;IAAA,IAAAC,qBAAA;IACH,MAAMC,QAAQ,GAAG,EAAAD,qBAAA,GAAAZ,aAAa,CAACc,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBC,QAAQ,KAAI,EAAE;IACtDT,WAAW,CAACS,QAAQ,EAAE,IAAI,CAAC;IAC3B,IAAIJ,eAAe,IAAIV,sBAAsB,EAAE;MAC7C,QAAQW,MAAM;QACZ,KAAKpC,uBAAuB,CAACyC,sBAAsB;QACnD,KAAKzC,uBAAuB,CAAC0C,kBAAkB;QAC/C,KAAK1C,uBAAuB,CAAC2C,uBAAuB;QACpD,KAAK3C,uBAAuB,CAAC4C,uBAAuB;QACpD,KAAKC,SAAS;UACZ1C,yBAAyB,CAACkC,eAAe,IAAIE,QAAQ,CAAC;UACtD;MAAM;IAEZ;EACF,CAAC;EAED,MAAMO,IAAI,GAAGzC,gBAAgB,CAAC,MAAO0C,GAAY,IAAK;IAAA,IAAAC,sBAAA;IACpD,IAAItB,aAAa,CAACc,OAAO,EAAE,CAAAQ,sBAAA,GAAAtB,aAAa,CAACc,OAAO,cAAAQ,sBAAA,uBAArBA,sBAAA,CAAuBC,OAAO,EAAE;IAE3D,IAAIF,GAAG,EAAE;MAAA,IAAAG,sBAAA,EAAAC,sBAAA;MACPzB,aAAa,CAACc,OAAO,GAAG9B,gCAAgC,CAACC,GAAG,EAAEY,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEX,iBAAiB,CAAC;MAEzF,CAAAsC,sBAAA,GAAAxB,aAAa,CAACc,OAAO,cAAAU,sBAAA,uBAArBA,sBAAA,CAAuBE,gCAAgC,CAAC;QACtDC,eAAe,EAAEA,CAACC,OAAO,EAAEf,QAAQ,KAAK;UACtCL,gCAAgC,CAAC,IAAI,EAAEoB,OAAO,CAAClB,MAAM,EAAEG,QAAQ,CAAC;QAClE,CAAC;QACDgB,iBAAiB,EAAEA,CAACD,OAAO,EAAEf,QAAQ,KAAK;UACxCL,gCAAgC,CAAC,IAAI,EAAEoB,OAAO,CAAClB,MAAM,EAAEG,QAAQ,CAAC;QAClE,CAAC;QACDiB,iBAAiB,EAAEA,CAAA,KAAM;UACvBtB,gCAAgC,CAAC,KAAK,CAAC;QACzC;MACF,CAAC,CAAC;MAEF,KAAAiB,sBAAA,GAAIzB,aAAa,CAACc,OAAO,cAAAW,sBAAA,eAArBA,sBAAA,CAAuBM,OAAO,EAAE;QAAA,IAAAC,sBAAA;QAClC,QAAAA,sBAAA,GAAMhC,aAAa,CAACc,OAAO,cAAAkB,sBAAA,uBAArBA,sBAAA,CAAuBC,QAAQ,EAAE;QACvCzB,gCAAgC,CAAC,IAAI,CAAC;MACxC;IACF;EACF,CAAC,CAAC;EAEFpC,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MAAA,IAAA8D,sBAAA;MACX,IAAIlC,aAAa,CAACc,OAAO,EAAE,CAAAoB,sBAAA,GAAAlC,aAAa,CAACc,OAAO,cAAAoB,sBAAA,uBAArBA,sBAAA,CAAuBX,OAAO,EAAE;IAC7D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN7C,cAAc,CAAC,YAAY;IACzB6B,aAAa,CAAC,IAAI,CAAC;IACnB,MAAMa,IAAI,CAACxB,MAAM,CAAC;IAClBW,aAAa,CAAC,KAAK,CAAC;EACtB,CAAC,EAAE,CAACX,MAAM,CAAC,CAAC;EAEZd,iBAAiB,CAACG,GAAG,EAAEa,SAAS,EAAE;IAChCqC,YAAY,EAAEA,CAACC,OAAO,EAAEC,IAAI,KAAK;MAC/B,MAAMC,IAAI,GAAGD,IAAI,CAACzC,MAAM,KAAKA,MAAM;MACnC,IAAI0C,IAAI,EAAEjC,cAAc,CAAC,CAAC+B,OAAO,CAACG,GAAG,CAAC,CAAC,CAAC,KACnC/B,gCAAgC,CAAC,KAAK,CAAC;IAC9C;EACF,CAAC,CAAC;EAEF,MAAMgC,OAAO,GAAG7D,gBAAgB,CAAC,YAAY;IAC3C2B,gBAAgB,CAAC,IAAI,CAAC;IACtB,MAAMc,IAAI,CAACxB,MAAM,CAAC;IAClBU,gBAAgB,CAAC,KAAK,CAAC;EACzB,CAAC,CAAC;EAEF,MAAMmC,IAAI,GAAG9D,gBAAgB,CAAC,YAAY;IAAA,IAAA+D,sBAAA;IACxC,KAAAA,sBAAA,GAAI1C,aAAa,CAACc,OAAO,cAAA4B,sBAAA,eAArBA,sBAAA,CAAuBX,OAAO,EAAE;MAAA,IAAAY,sBAAA;MAClC,QAAAA,sBAAA,GAAM3C,aAAa,CAACc,OAAO,cAAA6B,sBAAA,uBAArBA,sBAAA,CAAuBV,QAAQ,EAAE;MACvCzB,gCAAgC,CAAC,IAAI,CAAC;IACxC;EACF,CAAC,CAAC;EAEF,OAAO;IACLP,OAAO;IACPC,aAAa;IACbsC,OAAO;IACPrC,UAAU;IACVsC;EACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","_collectionRef$curren6","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8"],"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\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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"}
@@ -24,7 +24,7 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
24
24
  groupChannels,
25
25
  refreshing,
26
26
  updateChannels,
27
- setChannels,
27
+ appendChannels,
28
28
  deleteChannels,
29
29
  updateRefreshing,
30
30
  updateLoading,
@@ -41,7 +41,7 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
41
41
  updateOrder((_queryRef$current = queryRef.current) === null || _queryRef$current === void 0 ? void 0 : _queryRef$current.order);
42
42
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
43
43
  const channels = await queryRef.current.next();
44
- setChannels(channels, true);
44
+ appendChannels(channels, true);
45
45
  if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);
46
46
  }
47
47
  }
@@ -79,7 +79,7 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
79
79
  var _queryRef$current3;
80
80
  if ((_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
81
81
  const channels = await queryRef.current.next();
82
- setChannels(channels, false);
82
+ appendChannels(channels, false);
83
83
  if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);
84
84
  }
85
85
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3"],"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\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 setChannels,\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 setChannels(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 setChannels(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":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3"],"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\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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"}
@@ -3,10 +3,13 @@ import { useGroupChannelMessagesWithCollection } from './useGroupChannelMessages
3
3
  import { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';
4
4
  export const useGroupChannelMessages = (sdk, channel, userId, options) => {
5
5
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
6
- if (options !== null && options !== void 0 && options.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
6
+ if (options !== null && options !== void 0 && options.queryCreator) printIgnoredWarning();
7
7
  return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);
8
8
  } else {
9
9
  return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);
10
10
  }
11
11
  };
12
+ const printIgnoredWarning = () => {
13
+ Logger.warn('If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' + 'Please use collectionCreator instead.');
14
+ };
12
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","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\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,qCAAqC,QAAQ,yCAAyC;AAC/F,SAASC,gCAAgC,QAAQ,oCAAoC;AAErF,OAAO,MAAMC,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,EAAEV,MAAM,CAACW,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOV,qCAAqC,CAACG,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAOL,gCAAgC,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC"}
1
+ {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","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\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,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,qCAAqC,QAAQ,yCAAyC;AAC/F,SAASC,gCAAgC,QAAQ,oCAAoC;AAErF,OAAO,MAAMC,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,OAAOV,qCAAqC,CAACG,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAOL,gCAAgC,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAED,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EAChCX,MAAM,CAACY,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
@@ -12,6 +12,7 @@ const createMessageCollection = (channel, limit, options) => {
12
12
  startingPoint: options === null || options === void 0 ? void 0 : options.startingPoint
13
13
  });
14
14
  const filter = new MessageFilter();
15
+ if (options.replyType) filter.replyType = options.replyType;
15
16
  return channel.createMessageCollection({
16
17
  filter,
17
18
  limit,
@@ -70,7 +71,7 @@ export const useGroupChannelMessagesWithCollection = (sdk, channel, userId, opti
70
71
  updateNewMessages([], true, sdk.currentUser.userId);
71
72
  collectionInitializedRef.current = false;
72
73
  collectionRef.current = createMessageCollection(channel, limit, {
73
- collectionCreator: options === null || options === void 0 ? void 0 : options.collectionCreator,
74
+ ...options,
74
75
  startingPoint
75
76
  });
76
77
  (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.setMessageCollectionHandler({
@@ -317,9 +318,7 @@ export const useGroupChannelMessagesWithCollection = (sdk, channel, userId, opti
317
318
  updateFileMessage,
318
319
  resendMessage,
319
320
  deleteMessage,
320
- resetWithStartingPoint,
321
- nextMessages: newMessages,
322
- newMessagesFromMembers: newMessages
321
+ resetWithStartingPoint
323
322
  };
324
323
  };
325
324
  //# sourceMappingURL=useGroupChannelMessagesWithCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","MessageCollectionInitPolicy","MessageEventSource","MessageFilter","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","isNotEmpty","arr","length","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","collectionRef","collectionInitializedRef","handlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","source","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","e","warn","updateUnsendMessages","pendingMessages","failedMessages","current","currentUser","init","callback","_collectionRef$curren","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","_","__","incomingMessages","it","EVENT_MESSAGE_SENT_PENDING","EVENT_MESSAGE_SENT_FAILED","_options$shouldCountN","shouldCountNewMessages","call","_options$onMessagesRe","onMessagesReceived","onMessagesUpdated","EVENT_MESSAGE_UPDATED","_options$shouldCountN2","onMessagesDeleted","messageIds","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","onHugeGapDetected","initialize","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","onApiResult","_options$onMessagesRe2","onUserBanned","bannedUser","_options$onChannelDel2","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","failedMessage","sendFileMessage","isFileMessage","updateUserMessage","messageId","updatedMessage","updateFileMessage","resendMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","reqId","resetNewMessages","resetWithStartingPoint","nextMessages","newMessagesFromMembers"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\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 const filter = new MessageFilter();\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\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = typeof options?.startingPoint === 'number' ? 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 = async (source?: MessageEventSource) => {\n try {\n switch (source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n\n const updateUnsendMessages = () => {\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(async (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 collectionCreator: options?.collectionCreator,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_SENT_PENDING:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.EVENT_MESSAGE_SENT_FAILED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n updateMessages(incomingMessages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages(incomingMessages, false, sdk.currentUser.userId);\n }\n\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.SYNC_MESSAGE_FILL: {\n options?.onMessagesReceived?.(incomingMessages);\n }\n }\n }\n },\n onMessagesUpdated: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_UPDATED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n updateMessages(messages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n if (_.source === MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateNewMessages(messages, false, sdk.currentUser.userId);\n }\n }\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNewMessages(messageIds, []);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(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 {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateUnsendMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else {\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) updateUnsendMessages();\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]);\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 updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n updateLoading(true);\n updateMessages([], true, sdk.currentUser.userId);\n init(startingPoint, MESSAGE_LIMIT.DEFAULT, () => {\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 nextMessages: newMessages,\n newMessagesFromMembers: newMessages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","MessageCollectionInitPolicy","MessageEventSource","MessageFilter","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","replyType","isNotEmpty","arr","length","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","collectionRef","collectionInitializedRef","handlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","source","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","e","warn","updateUnsendMessages","pendingMessages","failedMessages","current","currentUser","init","callback","_collectionRef$curren","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","_","__","incomingMessages","it","EVENT_MESSAGE_SENT_PENDING","EVENT_MESSAGE_SENT_FAILED","_options$shouldCountN","shouldCountNewMessages","call","_options$onMessagesRe","onMessagesReceived","onMessagesUpdated","EVENT_MESSAGE_UPDATED","_options$shouldCountN2","onMessagesDeleted","messageIds","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","onHugeGapDetected","initialize","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","onApiResult","_options$onMessagesRe2","onUserBanned","bannedUser","_options$onChannelDel2","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","failedMessage","sendFileMessage","isFileMessage","updateUserMessage","messageId","updatedMessage","updateFileMessage","resendMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","reqId","resetNewMessages","resetWithStartingPoint"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\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\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = typeof options?.startingPoint === 'number' ? 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 = async (source?: MessageEventSource) => {\n try {\n switch (source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n\n const updateUnsendMessages = () => {\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(async (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: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_SENT_PENDING:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.EVENT_MESSAGE_SENT_FAILED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n updateMessages(incomingMessages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages(incomingMessages, false, sdk.currentUser.userId);\n }\n\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.SYNC_MESSAGE_FILL: {\n options?.onMessagesReceived?.(incomingMessages);\n }\n }\n }\n },\n onMessagesUpdated: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_UPDATED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n updateMessages(messages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n if (_.source === MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateNewMessages(messages, false, sdk.currentUser.userId);\n }\n }\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNewMessages(messageIds, []);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(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 {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateUnsendMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else {\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) updateUnsendMessages();\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]);\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 updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n updateLoading(true);\n updateMessages([], true, sdk.currentUser.userId);\n init(startingPoint, MESSAGE_LIMIT.DEFAULT, () => {\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":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,SAASC,2BAA2B,EAAEC,kBAAkB,EAAEC,aAAa,QAAQ,6BAA6B;AAE5G,SACEC,MAAM,EACNC,oBAAoB,EACpBC,kBAAkB,EAClBC,WAAW,EACXC,cAAc,EACdC,gBAAgB,EAChBC,gBAAgB,QACX,uBAAuB;AAE9B,SAASC,iBAAiB,QAAQ,iCAAiC;AAEnE,SAASC,yBAAyB,QAAQ,8BAA8B;AAExE,MAAMC,aAAa,GAAG;EACpBC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,uBAAuB,GAAGA,CAC9BC,OAA6B,EAC7BC,KAAa,EACbC,OAAuC,KACpC;EACH,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,iBAAiB,EAAE,OAAOD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,iBAAiB,CAAC;IAAEC,aAAa,EAAEF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE;EAAc,CAAC,CAAC;EAE5G,MAAMC,MAAM,GAAG,IAAInB,aAAa,EAAE;EAClC,IAAIgB,OAAO,CAACI,SAAS,EAAED,MAAM,CAACC,SAAS,GAAGJ,OAAO,CAACI,SAAS;EAE3D,OAAON,OAAO,CAACD,uBAAuB,CAAC;IAAEM,MAAM;IAAEJ,KAAK;IAAEG,aAAa,EAAEF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE;EAAc,CAAC,CAAC;AAClG,CAAC;AAED,SAASG,UAAUA,CAACC,GAAe,EAAoB;EACrD,IAAI,CAACA,GAAG,EAAE,OAAO,KAAK;EACtB,OAAOA,GAAG,CAACC,MAAM,KAAK,CAAC;AACzB;AAEA,OAAO,MAAMC,qCAA8D,GAAGA,CAACC,GAAG,EAAEX,OAAO,EAAEY,MAAM,EAAEV,OAAO,KAAK;EAC/G,MAAMW,oBAAoB,GAAG,CAAAX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,aAAa,KAAIU,MAAM,CAACC,gBAAgB;EAC9E,MAAMC,YAAY,GAAG,QAAOd,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,aAAa,MAAK,QAAQ,GAAGR,aAAa,CAACE,MAAM,GAAGF,aAAa,CAACC,OAAO;EAE9G,MAAMoB,WAAW,GAAG1B,cAAc,EAAE;EACpC,MAAM2B,aAAa,GAAGnC,MAAM,EAA6B;EACzD,MAAMoC,wBAAwB,GAAGpC,MAAM,CAAC,KAAK,CAAC;EAC9C,MAAMqC,SAAS,GAAG3B,gBAAgB,CAAC,uCAAuC,CAAC;EAE3E,MAAM;IACJ4B,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,cAAc;IACdC,aAAa;IACbC;EACF,CAAC,GAAGnC,yBAAyB,CAACO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE6B,cAAc,CAAC;EAEtD,MAAMC,iBAAiB,GAAG,MAAOC,MAA2B,IAAK;IAC/D,IAAI;MACF,QAAQA,MAAM;QACZ,KAAKhD,kBAAkB,CAACiD,sBAAsB;QAC9C,KAAKjD,kBAAkB,CAACkD,0BAA0B;QAClD,KAAKlD,kBAAkB,CAACmD,iBAAiB;QACzC,KAAKC,SAAS;UACZ,MAAMjD,oBAAoB,CAAC,CAACY,OAAO,CAAC,CAAC;UACrC;MAAM;IAEZ,CAAC,CAAC,OAAOsC,CAAC,EAAE;MACVnD,MAAM,CAACoD,IAAI,CAAC,2DAA2D,EAAED,CAAC,CAAC;IAC7E;EACF,CAAC;EAED,MAAME,oBAAoB,GAAGA,CAAA,KAAM;IACjC,MAAM;MAAEC,eAAe;MAAEC;IAAe,CAAC,GAAGxB,aAAa,CAACyB,OAAO,IAAI,CAAC,CAAC;IACvE,IAAIpC,UAAU,CAACkC,eAAe,CAAC,EAAEhB,cAAc,CAACgB,eAAe,EAAE,KAAK,EAAE9B,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;IAC/F,IAAIL,UAAU,CAACmC,cAAc,CAAC,EAAEjB,cAAc,CAACiB,cAAc,EAAE,KAAK,EAAE/B,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;EAC/F,CAAC;EAED,MAAMiC,IAAI,GAAGrD,gBAAgB,CAAC,OAAOY,aAAqB,EAAEH,KAAa,EAAE6C,QAAqB,KAAK;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACnG,IAAI9B,aAAa,CAACyB,OAAO,EAAE,CAAAI,qBAAA,GAAA7B,aAAa,CAACyB,OAAO,cAAAI,qBAAA,uBAArBA,qBAAA,CAAuBE,OAAO,EAAE;IAE3DjB,iBAAiB,EAAE;IACnBN,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAEf,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;IAEnDO,wBAAwB,CAACwB,OAAO,GAAG,KAAK;IACxCzB,aAAa,CAACyB,OAAO,GAAG5C,uBAAuB,CAACC,OAAO,EAAEC,KAAK,EAAE;MAC9D,GAAGC,OAAO;MACVE;IACF,CAAC,CAAC;IAEF,CAAA4C,sBAAA,GAAA9B,aAAa,CAACyB,OAAO,cAAAK,sBAAA,uBAArBA,sBAAA,CAAuBE,2BAA2B,CAAC;MACjDC,eAAe,EAAEA,CAACC,CAAC,EAAEC,EAAE,EAAE9B,QAAQ,KAAK;QACpCS,iBAAiB,CAACoB,CAAC,CAACnB,MAAM,CAAC;QAE3B,MAAMqB,gBAAgB,GAAG/B,QAAQ,CAAClB,MAAM,CAAEkD,EAAE,IAAK;UAC/C,QAAQH,CAAC,CAACnB,MAAM;YACd,KAAKhD,kBAAkB,CAACuE,0BAA0B;YAClD,KAAKvE,kBAAkB,CAACkD,0BAA0B;YAClD,KAAKlD,kBAAkB,CAACwE,yBAAyB;cAC/C,OAAO,CAACnE,WAAW,CAACiE,EAAE,EAAE5C,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;YACjD;cACE,OAAO,IAAI;UAAC;QAElB,CAAC,CAAC;QAEF,IAAI0C,gBAAgB,CAAC7C,MAAM,GAAG,CAAC,EAAE;UAAA,IAAAiD,qBAAA;UAC/BjC,cAAc,CAAC6B,gBAAgB,EAAE,KAAK,EAAE3C,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UAE/D,IAAIV,OAAO,aAAPA,OAAO,gBAAAwD,qBAAA,GAAPxD,OAAO,CAAEyD,sBAAsB,cAAAD,qBAAA,eAA/BA,qBAAA,CAAAE,IAAA,CAAA1D,OAAO,CAA4B,EAAE;YACvCwB,iBAAiB,CAAC4B,gBAAgB,EAAE,KAAK,EAAE3C,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UACpE;UAEA,QAAQwC,CAAC,CAACnB,MAAM;YACd,KAAKhD,kBAAkB,CAACiD,sBAAsB;YAC9C,KAAKjD,kBAAkB,CAACmD,iBAAiB;cAAE;gBAAA,IAAAyB,qBAAA;gBACzC3D,OAAO,aAAPA,OAAO,wBAAA2D,qBAAA,GAAP3D,OAAO,CAAE4D,kBAAkB,cAAAD,qBAAA,uBAA3BA,qBAAA,CAAAD,IAAA,CAAA1D,OAAO,EAAuBoD,gBAAgB,CAAC;cACjD;UAAC;QAEL;MACF,CAAC;MACDS,iBAAiB,EAAEA,CAACX,CAAC,EAAEC,EAAE,EAAE9B,QAAQ,KAAK;QACtCS,iBAAiB,CAACoB,CAAC,CAACnB,MAAM,CAAC;QAE3B,MAAMqB,gBAAgB,GAAG/B,QAAQ,CAAClB,MAAM,CAAEkD,EAAE,IAAK;UAC/C,QAAQH,CAAC,CAACnB,MAAM;YACd,KAAKhD,kBAAkB,CAAC+E,qBAAqB;cAC3C,OAAO,CAAC1E,WAAW,CAACiE,EAAE,EAAE5C,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;YACjD;cACE,OAAO,IAAI;UAAC;QAElB,CAAC,CAAC;QAEF,IAAI0C,gBAAgB,CAAC7C,MAAM,GAAG,CAAC,EAAE;UAAA,IAAAwD,sBAAA;UAC/B;UACAxC,cAAc,CAACF,QAAQ,EAAE,KAAK,EAAEZ,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UAEvD,IAAIV,OAAO,aAAPA,OAAO,gBAAA+D,sBAAA,GAAP/D,OAAO,CAAEyD,sBAAsB,cAAAM,sBAAA,eAA/BA,sBAAA,CAAAL,IAAA,CAAA1D,OAAO,CAA4B,EAAE;YACvC,IAAIkD,CAAC,CAACnB,MAAM,KAAKhD,kBAAkB,CAACiD,sBAAsB,EAAE;cAC1DR,iBAAiB,CAACH,QAAQ,EAAE,KAAK,EAAEZ,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;YAC5D;UACF;QACF;MACF,CAAC;MACDsD,iBAAiB,EAAEA,CAACd,CAAC,EAAEC,EAAE,EAAEc,UAAU,KAAK;QACxCvC,cAAc,CAACuC,UAAU,EAAE,EAAE,CAAC;QAC9BxC,iBAAiB,CAACwC,UAAU,EAAE,EAAE,CAAC;MACnC,CAAC;MACDC,gBAAgB,EAAEA,CAAA,KAAM;QAAA,IAAAC,qBAAA;QACtBnE,OAAO,aAAPA,OAAO,wBAAAmE,qBAAA,GAAPnE,OAAO,CAAEkE,gBAAgB,cAAAC,qBAAA,uBAAzBA,qBAAA,CAAAT,IAAA,CAAA1D,OAAO,CAAsB;MAC/B,CAAC;MACDoE,gBAAgB,EAAEA,CAAClB,CAAC,EAAEmB,YAAY,KAAK;QACrC,IAAIA,YAAY,CAACC,cAAc,EAAE,IAAI,CAACnF,kBAAkB,CAACkF,YAAY,EAAEvE,OAAO,CAAC,EAAE;UAC/EiB,WAAW,EAAE;QACf;MACF,CAAC;MACDwD,iBAAiB,EAAEA,CAAA,KAAM;QACvB5B,IAAI,CAAC/B,MAAM,CAACC,gBAAgB,EAAEnB,aAAa,CAACC,OAAO,CAAC;MACtD;IACF,CAAC,CAAC;IAEFqB,aAAa,CAACyB,OAAO,CAClB+B,UAAU,CAAC1F,2BAA2B,CAAC2F,wBAAwB,CAAC,CAChEC,aAAa,CAAC,CAACC,GAAG,EAAEtD,QAAQ,KAAK;MAChC,IAAIsD,GAAG,EAAElE,GAAG,CAACmE,cAAc,IAAI3F,MAAM,CAAC4F,KAAK,CAAC,uDAAuD,EAAEF,GAAG,CAAC,CAAC,KACrG;QACH1F,MAAM,CAAC6F,KAAK,CAAC,uDAAuD,EAAE,iBAAiB,EAAEzD,QAAQ,CAACd,MAAM,CAAC;QAEzGgB,cAAc,CAACF,QAAQ,EAAE,IAAI,EAAEZ,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;QACtD4B,oBAAoB,EAAE;MACxB;MAEAM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;IACd,CAAC,CAAC,CACDmC,WAAW,CAAC,CAACJ,GAAG,EAAEtD,QAAQ,KAAK;MAC9B,IAAIsD,GAAG,EAAE1F,MAAM,CAACoD,IAAI,CAAC,qDAAqD,EAAEsC,GAAG,CAAC,CAAC,KAC5E;QAAA,IAAAK,sBAAA;QACH/F,MAAM,CAAC6F,KAAK,CAAC,qDAAqD,EAAE,iBAAiB,EAAEzD,QAAQ,CAACd,MAAM,CAAC;QAEvGgB,cAAc,CAACF,QAAQ,EAAE,IAAI,EAAEZ,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;QACtD,IAAI,EAACV,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,aAAa,GAAEF,OAAO,aAAPA,OAAO,wBAAAgF,sBAAA,GAAPhF,OAAO,CAAE4D,kBAAkB,cAAAoB,sBAAA,uBAA3BA,sBAAA,CAAAtB,IAAA,CAAA1D,OAAO,EAAuBqB,QAAQ,CAAC;QACpE,IAAIZ,GAAG,CAACmE,cAAc,EAAEtC,oBAAoB,EAAE;MAChD;MAEArB,wBAAwB,CAACwB,OAAO,GAAG,IAAI;MACvCG,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;IACd,CAAC,CAAC;EACN,CAAC,CAAC;EAEFpD,iBAAiB,CAACiB,GAAG,EAAES,SAAS,EAAE;IAChC+D,YAAYA,CAACnF,OAAO,EAAEoF,UAAU,EAAE;MAChC,IAAIpF,OAAO,CAACwE,cAAc,EAAE,IAAI,CAACnF,kBAAkB,CAACW,OAAO,EAAEA,OAAO,CAAC,EAAE;QACrE,IAAIoF,UAAU,CAACxE,MAAM,KAAKD,GAAG,CAACiC,WAAW,CAAChC,MAAM,EAAE;UAAA,IAAAyE,sBAAA;UAChDnF,OAAO,aAAPA,OAAO,wBAAAmF,sBAAA,GAAPnF,OAAO,CAAEkE,gBAAgB,cAAAiB,sBAAA,uBAAzBA,sBAAA,CAAAzB,IAAA,CAAA1D,OAAO,CAAsB;QAC/B,CAAC,MAAM;UACLe,WAAW,EAAE;QACf;MACF;IACF;EACF,CAAC,CAAC;EAEFnC,SAAS,CAAC,MAAM;IACd;IACAwG,UAAU,CAAC,YAAY;MACrBzD,aAAa,CAAC,IAAI,CAAC;MACnBgB,IAAI,CAAChC,oBAAoB,EAAEG,YAAY,EAAE,MAAMa,aAAa,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC,EAAE,CAAC,CAAC;EACP,CAAC,EAAE,CAAC7B,OAAO,CAACuF,GAAG,EAAE3E,MAAM,CAAC,CAAC;EAEzB9B,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MAAA,IAAA0G,sBAAA;MACX,IAAItE,aAAa,CAACyB,OAAO,EAAE,CAAA6C,sBAAA,GAAAtE,aAAa,CAACyB,OAAO,cAAA6C,sBAAA,uBAArBA,sBAAA,CAAuBvC,OAAO,EAAE;IAC7D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMwC,OAAuD,GAAGjG,gBAAgB,CAAC,YAAY;IAC3FsC,gBAAgB,CAAC,IAAI,CAAC;IACtBe,IAAI,CAAC/B,MAAM,CAACC,gBAAgB,EAAEnB,aAAa,CAACC,OAAO,EAAE,MAAMiC,gBAAgB,CAAC,KAAK,CAAC,CAAC;EACrF,CAAC,CAAC;EAEF,MAAM4D,IAAiD,GAAGlG,gBAAgB,CAAC,YAAY;IAAA,IAAAmG,sBAAA;IACrF,IAAIzE,aAAa,CAACyB,OAAO,KAAAgD,sBAAA,GAAIzE,aAAa,CAACyB,OAAO,cAAAgD,sBAAA,eAArBA,sBAAA,CAAuBC,WAAW,EAAE;MAC/D,IAAI;QAAA,IAAAC,sBAAA;QACF,MAAMC,IAAI,GAAG,QAAAD,sBAAA,GAAM3E,aAAa,CAACyB,OAAO,cAAAkD,sBAAA,uBAArBA,sBAAA,CAAuBE,YAAY,EAAE;QACxDtE,cAAc,CAACqE,IAAI,EAAE,KAAK,EAAEnF,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;MACrD,CAAC,CAAC,MAAM,CAAC;IACX;EACF,CAAC,CAAC;EAEF,MAAMoF,OAAuD,GAAGxG,gBAAgB,CAAC,MAAM;IACrF,IAAI2B,wBAAwB,CAACwB,OAAO,IAAIzB,aAAa,CAACyB,OAAO,EAAE;MAC7D,OAAOzB,aAAa,CAACyB,OAAO,CAACiD,WAAW;IAC1C,CAAC,MAAM;MACL,OAAO,KAAK;IACd;EACF,CAAC,CAAC;EAEF,MAAMK,IAAiD,GAAGzG,gBAAgB,CAAC,YAAY;IAAA,IAAA0G,sBAAA;IACrF,IAAIhF,aAAa,CAACyB,OAAO,KAAAuD,sBAAA,GAAIhF,aAAa,CAACyB,OAAO,cAAAuD,sBAAA,eAArBA,sBAAA,CAAuBC,OAAO,EAAE;MAC3D,IAAI;QAAA,IAAAC,sBAAA;QACF,MAAMC,WAAW,GAAG,QAAAD,sBAAA,GAAMlF,aAAa,CAACyB,OAAO,cAAAyD,sBAAA,uBAArBA,sBAAA,CAAuBE,QAAQ,EAAE;QAC3D7E,cAAc,CAAC4E,WAAW,EAAE,KAAK,EAAE1F,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;MAC5D,CAAC,CAAC,MAAM,CAAC;IACX;EACF,CAAC,CAAC;EAEF,MAAMuF,OAAuD,GAAG3G,gBAAgB,CAAC,MAAM;IACrF,IAAI2B,wBAAwB,CAACwB,OAAO,IAAIzB,aAAa,CAACyB,OAAO,EAAE;MAC7D,OAAOzB,aAAa,CAACyB,OAAO,CAACwD,OAAO;IACtC,CAAC,MAAM;MACL,OAAO,KAAK;IACd;EACF,CAAC,CAAC;EAEF,MAAMI,eAAuE,GAAG/G,gBAAgB,CAC9F,CAACgH,MAAM,EAAEC,SAAS,KAAK;IACrB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC5G,OAAO,CACJuG,eAAe,CAACC,MAAM,CAAC,CACvBC,SAAS,CAAEI,cAAc,IAAK;QAC7B,IAAIA,cAAc,CAACC,aAAa,EAAE,EAAE;UAClCL,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAGI,cAAc,CAAC;UAC3BpF,cAAc,CAAC,CAACoF,cAAc,CAAC,EAAE,KAAK,EAAElG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;QACjE;MACF,CAAC,CAAC,CACDmG,WAAW,CAAEC,WAAW,IAAK;QAC5B,IAAIA,WAAW,CAACF,aAAa,EAAE,EAAE;UAC/BrF,cAAc,CAAC,CAACuF,WAAW,CAAC,EAAE,KAAK,EAAErG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UAC5D+F,OAAO,CAACK,WAAW,CAAC;QACtB;MACF,CAAC,CAAC,CACDC,QAAQ,CAAC,CAACpC,GAAG,EAAEqC,aAAa,KAAK;QAChCzF,cAAc,CAAC,CAACyF,aAAa,CAAC,EAAE,KAAK,EAAEvG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;QAC9DgG,MAAM,CAAC/B,GAAG,CAAC;MACb,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CACF;EACD,MAAMsC,eAAuE,GAAG3H,gBAAgB,CAC9F,CAACgH,MAAM,EAAEC,SAAS,KAAK;IACrB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC5G,OAAO,CACJmH,eAAe,CAACX,MAAM,CAAC,CACvBC,SAAS,CAAEI,cAAc,IAAK;QAC7B,IAAIA,cAAc,CAACO,aAAa,EAAE,EAAE;UAClC3F,cAAc,CAAC,CAACoF,cAAc,CAAC,EAAE,KAAK,EAAElG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UAC/D6F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAGI,cAAc,CAAC;QAC7B;MACF,CAAC,CAAC,CACDE,WAAW,CAAEC,WAAW,IAAK;QAC5B,IAAIA,WAAW,CAACI,aAAa,EAAE,EAAE;UAC/B3F,cAAc,CAAC,CAACuF,WAAW,CAAC,EAAE,KAAK,EAAErG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;UAC5D+F,OAAO,CAACK,WAAW,CAAwB;QAC7C;MACF,CAAC,CAAC,CACDC,QAAQ,CAAC,CAACpC,GAAG,EAAEqC,aAAa,KAAK;QAChCzF,cAAc,CAAC,CAACyF,aAAa,CAAC,EAAE,KAAK,EAAEvG,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;QAC9DgG,MAAM,CAAC/B,GAAG,CAAC;MACb,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CACF;EACD,MAAMwC,iBAA2E,GAAG7H,gBAAgB,CAClG,OAAO8H,SAAS,EAAEd,MAAM,KAAK;IAC3B,MAAMe,cAAc,GAAG,MAAMvH,OAAO,CAACqH,iBAAiB,CAACC,SAAS,EAAEd,MAAM,CAAC;IACzE/E,cAAc,CAAC,CAAC8F,cAAc,CAAC,EAAE,KAAK,EAAE5G,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;IAC/D,OAAO2G,cAAc;EACvB,CAAC,CACF;EACD,MAAMC,iBAA2E,GAAGhI,gBAAgB,CAClG,OAAO8H,SAAS,EAAEd,MAAM,KAAK;IAC3B,MAAMe,cAAc,GAAG,MAAMvH,OAAO,CAACwH,iBAAiB,CAACF,SAAS,EAAEd,MAAM,CAAC;IACzE/E,cAAc,CAAC,CAAC8F,cAAc,CAAC,EAAE,KAAK,EAAE5G,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;IAC/D,OAAO2G,cAAc;EACvB,CAAC,CACF;EACD,MAAME,aAAmE,GAAGjI,gBAAgB,CAC1F,MAAO0H,aAAa,IAAK;IACvB,MAAMQ,aAAa,GAAG,MAAM,CAAC,MAAM;MACjC,IAAIR,aAAa,CAACJ,aAAa,EAAE,EAAE,OAAO9G,OAAO,CAAC2H,iBAAiB,CAACT,aAAa,CAAC;MAClF,IAAIA,aAAa,CAACE,aAAa,EAAE,EAAE,OAAOpH,OAAO,CAAC4H,iBAAiB,CAACV,aAAa,CAAC;MAClF,OAAO,IAAI;IACb,CAAC,GAAG;IAEJ,IAAIQ,aAAa,EAAEjG,cAAc,CAAC,CAACiG,aAAa,CAAC,EAAE,KAAK,EAAE/G,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;EACnF,CAAC,CACF;EACD,MAAMiH,aAAmE,GAAGrI,gBAAgB,CAAC,MAAOsI,OAAO,IAAK;IAC9G,IAAIA,OAAO,CAACC,aAAa,KAAK,WAAW,EAAE;MACzC,IAAID,OAAO,CAAChB,aAAa,EAAE,EAAE,MAAM9G,OAAO,CAAC6H,aAAa,CAACC,OAAO,CAAC;MACjE,IAAIA,OAAO,CAACV,aAAa,EAAE,EAAE,MAAMpH,OAAO,CAAC6H,aAAa,CAACC,OAAO,CAAC;IACnE,CAAC,MAAM;MACL,IAAI;QAAA,IAAAE,sBAAA;QACF,QAAAA,sBAAA,GAAM9G,aAAa,CAACyB,OAAO,cAAAqF,sBAAA,uBAArBA,sBAAA,CAAuBC,mBAAmB,CAACH,OAAO,CAACI,KAAK,CAAC;MACjE,CAAC,SAAS;QACRtG,cAAc,CAAC,CAACkG,OAAO,CAACR,SAAS,CAAC,EAAE,CAACQ,OAAO,CAACI,KAAK,CAAC,CAAC;MACtD;IACF;EACF,CAAC,CAAC;EACF,MAAMC,gBAAyE,GAAG3I,gBAAgB,CAAC,MAAM;IACvGkC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAEf,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;EACrD,CAAC,CAAC;EACF,MAAMwH,sBAAqF,GAAG5I,gBAAgB,CAC5G,CAACY,aAAa,EAAE0C,QAAQ,KAAK;IAC3BjB,aAAa,CAAC,IAAI,CAAC;IACnBJ,cAAc,CAAC,EAAE,EAAE,IAAI,EAAEd,GAAG,CAACiC,WAAW,CAAChC,MAAM,CAAC;IAChDiC,IAAI,CAACzC,aAAa,EAAER,aAAa,CAACC,OAAO,EAAE,MAAM;MAC/CgC,aAAa,CAAC,KAAK,CAAC;MACpBiB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;IACd,CAAC,CAAC;EACJ,CAAC,CACF;EAED,OAAO;IACLzB,OAAO;IACPC,UAAU;IACVmE,OAAO;IACPlE,QAAQ;IACR0E,IAAI;IACJE,OAAO;IACPT,IAAI;IACJM,OAAO;IACPxE,WAAW;IACX2G,gBAAgB;IAChB5B,eAAe;IACfY,eAAe;IACfE,iBAAiB;IACjBG,iBAAiB;IACjBC,aAAa;IACbI,aAAa;IACbO;EACF,CAAC;AACH,CAAC"}
@@ -2,12 +2,14 @@ import { useRef } from 'react';
2
2
  import { ASYNC_NOOP, Logger, confirmAndMarkAsRead, isDifferentChannel, isMyMessage, useAsyncEffect, useForceUpdate, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';
3
3
  import { useChannelHandler } from '../../handler/useChannelHandler';
4
4
  import { useChannelMessagesReducer } from '../useChannelMessagesReducer';
5
- const createMessageQuery = (channel, creator) => {
6
- if (creator) return creator();
7
- return channel.createPreviousMessageListQuery({
5
+ const createMessageQuery = (channel, options) => {
6
+ if (options !== null && options !== void 0 && options.queryCreator) return options.queryCreator();
7
+ const params = {
8
8
  limit: 100,
9
9
  reverse: true
10
- });
10
+ };
11
+ if (options !== null && options !== void 0 && options.replyType) params.replyType = options.replyType;
12
+ return channel.createPreviousMessageListQuery(params);
11
13
  };
12
14
  export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
13
15
  const queryRef = useRef();
@@ -37,7 +39,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
37
39
  var _queryRef$current;
38
40
  channelMarkAsRead();
39
41
  updateNewMessages([], true, sdk.currentUser.userId);
40
- queryRef.current = createMessageQuery(channel, options === null || options === void 0 ? void 0 : options.queryCreator);
42
+ queryRef.current = createMessageQuery(channel, options);
41
43
  if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
42
44
  var _queryRef$current2;
43
45
  const list = await ((_queryRef$current2 = queryRef.current) === null || _queryRef$current2 === void 0 ? void 0 : _queryRef$current2.load());
@@ -228,9 +230,7 @@ export const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options)
228
230
  deleteMessage,
229
231
  resetWithStartingPoint() {
230
232
  Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');
231
- },
232
- nextMessages: newMessages,
233
- newMessagesFromMembers: newMessages
233
+ }
234
234
  };
235
235
  };
236
236
  //# sourceMappingURL=useGroupChannelMessagesWithQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","ASYNC_NOOP","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useAsyncEffect","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","handlerId","forceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","_queryRef$current","currentUser","current","queryCreator","hasNext","_queryRef$current2","list","load","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","_options$shouldCountN","shouldCountNewMessages","call","onMessagesReceived","onMessageUpdated","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_options$onChannelDel2","refresh","prev","_queryRef$current3","_queryRef$current4","hasPrev","_queryRef$current5","next","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","resetWithStartingPoint","nextMessages","newMessagesFromMembers"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n deleteMessages,\n updateNewMessages,\n deleteNewMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser.userId);\n\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n }\n });\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n channelMarkAsRead();\n\n updateMessages([message], false, sdk.currentUser.userId);\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages([message], false, sdk.currentUser.userId);\n }\n if (options?.onMessagesReceived) {\n options.onMessagesReceived([message]);\n }\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNewMessages([messageId], []);\n },\n async onReactionUpdated(eventChannel, reactionEvent) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n const message = await sdk.message.getMessage({\n messageId: reactionEvent.messageId,\n includeReactions: true,\n includeParentMessageInfo: true,\n includeThreadInfo: true,\n includeMetaArray: true,\n channelUrl: channel.url,\n channelType: channel.channelType,\n });\n updateMessages([message], false, sdk.currentUser.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n\n nextMessages: newMessages,\n newMessagesFromMembers: newMessages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useRef","ASYNC_NOOP","Logger","confirmAndMarkAsRead","isDifferentChannel","isMyMessage","useAsyncEffect","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","handlerId","forceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","_queryRef$current","currentUser","current","hasNext","_queryRef$current2","list","load","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","_options$shouldCountN","shouldCountNewMessages","call","onMessagesReceived","onMessageUpdated","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_options$onChannelDel2","refresh","prev","_queryRef$current3","_queryRef$current4","hasPrev","_queryRef$current5","next","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","resetWithStartingPoint"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { PreviousMessageListQueryParams } from '@sendbird/chat/message';\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (channel: SendbirdGroupChannel, options?: UseGroupChannelMessagesOptions) => {\n if (options?.queryCreator) return options.queryCreator();\n\n const params: PreviousMessageListQueryParams = { limit: 100, reverse: true };\n if (options?.replyType) params.replyType = options.replyType;\n\n return channel.createPreviousMessageListQuery(params);\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n deleteMessages,\n updateNewMessages,\n deleteNewMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser.userId);\n\n queryRef.current = createMessageQuery(channel, options);\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n }\n });\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n channelMarkAsRead();\n\n updateMessages([message], false, sdk.currentUser.userId);\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages([message], false, sdk.currentUser.userId);\n }\n if (options?.onMessagesReceived) {\n options.onMessagesReceived([message]);\n }\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (isMyMessage(message, sdk.currentUser.userId)) return;\n\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNewMessages([messageId], []);\n },\n async onReactionUpdated(eventChannel, reactionEvent) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n const message = await sdk.message.getMessage({\n messageId: reactionEvent.messageId,\n includeReactions: true,\n includeParentMessageInfo: true,\n includeThreadInfo: true,\n includeMetaArray: true,\n channelUrl: channel.url,\n channelType: channel.channelType,\n });\n updateMessages([message], false, sdk.currentUser.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n };\n};\n"],"mappings":"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"}
@@ -1,22 +1,30 @@
1
- import { useState } from 'react';
1
+ import { useReducer } from 'react';
2
2
  import { useAsyncEffect } from '@sendbird/uikit-utils';
3
+ const initialState = {
4
+ loading: true,
5
+ error: undefined,
6
+ channel: undefined
7
+ };
8
+ const reducer = (state, nextState) => ({
9
+ ...state,
10
+ ...nextState
11
+ });
3
12
  export const useOpenChannel = (sdk, channelUrl) => {
4
- const [channel, setChannel] = useState();
5
- const [loading, setLoading] = useState(true);
6
- const [error, setError] = useState();
13
+ const [state, setState] = useReducer(reducer, initialState);
7
14
  useAsyncEffect(async () => {
15
+ setState(initialState);
8
16
  try {
9
- setChannel(await sdk.openChannel.getChannel(channelUrl));
17
+ setState({
18
+ channel: await sdk.openChannel.getChannel(channelUrl),
19
+ loading: false
20
+ });
10
21
  } catch (e) {
11
- setError(e);
12
- } finally {
13
- setLoading(false);
22
+ setState({
23
+ error: e,
24
+ loading: false
25
+ });
14
26
  }
15
- }, []);
16
- return {
17
- channel,
18
- loading,
19
- error
20
- };
27
+ }, [channelUrl]);
28
+ return state;
21
29
  };
22
30
  //# sourceMappingURL=useOpenChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useAsyncEffect","useOpenChannel","sdk","channelUrl","channel","setChannel","loading","setLoading","error","setError","openChannel","getChannel","e"],"sources":["useOpenChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdOpenChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useOpenChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdOpenChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.openChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAA+CC,cAAc,QAAQ,uBAAuB;AAE5F,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC1E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGN,QAAQ,EAAuB;EAC7D,MAAM,CAACO,OAAO,EAAEC,UAAU,CAAC,GAAGR,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACS,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,EAAW;EAE7CC,cAAc,CAAC,YAAY;IACzB,IAAI;MACFK,UAAU,CAAC,MAAMH,GAAG,CAACQ,WAAW,CAACC,UAAU,CAACR,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,OAAOS,CAAC,EAAE;MACVH,QAAQ,CAACG,CAAC,CAAC;IACb,CAAC,SAAS;MACRL,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEH,OAAO;IAAEE,OAAO;IAAEE;EAAM,CAAC;AACpC,CAAC"}
1
+ {"version":3,"names":["useReducer","useAsyncEffect","initialState","loading","error","undefined","channel","reducer","state","nextState","useOpenChannel","sdk","channelUrl","setState","openChannel","getChannel","e"],"sources":["useOpenChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdOpenChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdOpenChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useOpenChannel = (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.openChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAElC,SAA+CC,cAAc,QAAQ,uBAAuB;AAI5F,MAAMC,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;AAEzF,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC1E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAGb,UAAU,CAACO,OAAO,EAAEL,YAAY,CAAC;EAE3DD,cAAc,CAAC,YAAY;IACzBY,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACG,WAAW,CAACC,UAAU,CAACH,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACrF,CAAC,CAAC,OAAOa,CAAC,EAAE;MACVH,QAAQ,CAAC;QAAET,KAAK,EAAEY,CAAC;QAAEb,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useReducer } from 'react';
2
- import { getOpenChannels } from '@sendbird/uikit-utils';
2
+ import { getOpenChannels, mergeObjectArrays } from '@sendbird/uikit-utils';
3
3
  const defaultReducer = (_ref, action) => {
4
4
  let {
5
5
  ...draft
@@ -39,7 +39,7 @@ const defaultReducer = (_ref, action) => {
39
39
  if (action.value.clearBeforeAction) {
40
40
  draft.openChannels = openChannels;
41
41
  } else {
42
- draft.openChannels = [...draft.openChannels, ...openChannels];
42
+ draft.openChannels = mergeObjectArrays(draft.openChannels, openChannels, 'url');
43
43
  }
44
44
  break;
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","getOpenChannels","defaultReducer","_ref","action","draft","type","error","value","key","status","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\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\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = [...draft.openChannels, ...openChannels];\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\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\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useReducer","getOpenChannels","mergeObjectArrays","defaultReducer","_ref","action","draft","type","error","value","key","status","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels, mergeObjectArrays } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\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\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = mergeObjectArrays(draft.openChannels, openChannels, 'url');\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\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\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":"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"}