@sendbird/uikit-chat-hooks 2.4.0 → 2.4.2

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 (124) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/channel/useGroupChannel.js +0 -4
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js +0 -5
  5. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/reducer.js +12 -29
  7. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -22
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -18
  11. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/index.js +0 -5
  13. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +18 -28
  15. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +8 -37
  17. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  18. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +21 -49
  19. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannel.js +0 -4
  21. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  22. package/lib/commonjs/channel/useOpenChannelList/index.js +0 -3
  23. package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
  24. package/lib/commonjs/channel/useOpenChannelList/reducer.js +2 -21
  25. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  26. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -18
  27. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  28. package/lib/commonjs/channel/useOpenChannelMessages/index.js +0 -3
  29. package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
  30. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +18 -28
  31. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +1 -1
  32. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -30
  33. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  34. package/lib/commonjs/common/useAppFeatures.js +0 -3
  35. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  36. package/lib/commonjs/common/useMessageOutgoingStatus.js +0 -11
  37. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  38. package/lib/commonjs/common/usePushTrigger.js +0 -6
  39. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  40. package/lib/commonjs/common/useTotalUnreadMessageCount.js +0 -7
  41. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  42. package/lib/commonjs/common/useUserList.js +3 -18
  43. package/lib/commonjs/common/useUserList.js.map +1 -1
  44. package/lib/commonjs/handler/useChannelHandler.js +15 -41
  45. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  46. package/lib/commonjs/handler/useConnectionHandler.js +14 -11
  47. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  48. package/lib/commonjs/handler/useUserEventHandler.js +0 -8
  49. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  50. package/lib/commonjs/index.js +0 -23
  51. package/lib/commonjs/index.js.map +1 -1
  52. package/lib/commonjs/model/CustomQuery.js +0 -6
  53. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  54. package/lib/module/channel/useGroupChannel.js.map +1 -1
  55. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  56. package/lib/module/channel/useGroupChannelList/reducer.js +12 -26
  57. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  58. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -15
  59. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  60. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -11
  61. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  62. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  63. package/lib/module/channel/useGroupChannelMessages/reducer.js +18 -25
  64. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
  65. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +9 -30
  66. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  67. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +23 -46
  68. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  69. package/lib/module/channel/useOpenChannel.js.map +1 -1
  70. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  71. package/lib/module/channel/useOpenChannelList/reducer.js +2 -18
  72. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  73. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -13
  74. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  75. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  76. package/lib/module/channel/useOpenChannelMessages/reducer.js +18 -25
  77. package/lib/module/channel/useOpenChannelMessages/reducer.js.map +1 -1
  78. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -25
  79. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  80. package/lib/module/common/useAppFeatures.js.map +1 -1
  81. package/lib/module/common/useMessageOutgoingStatus.js +0 -6
  82. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  83. package/lib/module/common/usePushTrigger.js.map +1 -1
  84. package/lib/module/common/useTotalUnreadMessageCount.js +0 -1
  85. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  86. package/lib/module/common/useUserList.js +3 -13
  87. package/lib/module/common/useUserList.js.map +1 -1
  88. package/lib/module/handler/useChannelHandler.js +15 -35
  89. package/lib/module/handler/useChannelHandler.js.map +1 -1
  90. package/lib/module/handler/useConnectionHandler.js +15 -6
  91. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  92. package/lib/module/handler/useUserEventHandler.js +0 -2
  93. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  94. package/lib/module/index.js +0 -1
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/model/CustomQuery.js +0 -4
  97. package/lib/module/model/CustomQuery.js.map +1 -1
  98. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  99. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +2 -2
  100. package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +2 -2
  101. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  102. package/lib/typescript/src/handler/useChannelHandler.d.ts +1 -1
  103. package/lib/typescript/src/handler/useConnectionHandler.d.ts +1 -2
  104. package/lib/typescript/src/index.d.ts +0 -1
  105. package/package.json +15 -9
  106. package/src/channel/useGroupChannelList/reducer.ts +11 -7
  107. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +1 -1
  108. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +1 -1
  109. package/src/channel/useGroupChannelMessages/reducer.ts +11 -10
  110. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +69 -72
  111. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +32 -42
  112. package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -1
  113. package/src/channel/useOpenChannelMessages/reducer.ts +11 -10
  114. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +1 -1
  115. package/src/common/useUserList.ts +2 -2
  116. package/src/handler/useChannelHandler.ts +11 -24
  117. package/src/handler/useConnectionHandler.ts +11 -5
  118. package/src/index.ts +0 -1
  119. package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
  120. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
  121. package/lib/module/common/useTotalUnreadChannelCount.js +0 -17
  122. package/lib/module/common/useTotalUnreadChannelCount.js.map +0 -1
  123. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
  124. package/src/common/useTotalUnreadChannelCount.ts +0 -26
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useRef","Logger","confirmAndMarkAsRead","isDifferentChannel","useAsyncEffect","useForceUpdate","useUniqHandlerId","useChannelHandler","useGroupChannelMessagesReducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","handlerId","forceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","current","queryCreator","hasNext","list","load","currentUser","url","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","refresh","prev","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\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 nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useCallback(\n async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAsRead();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n },\n [sdk, channel.url, options?.queryCreator],\n );\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n channelMarkAsRead();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n }, [init, userId]);\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n }, []);\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n }, [nextMessages.length]);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n [channel],\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n [channel],\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateNextMessages([message], false, sdk.currentUser.userId);\n },\n [channel],\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useCallback(\n async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n },\n [channel],\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,MAAtB,QAAoC,OAApC;AAOA,SACEC,MADF,EAEEC,oBAFF,EAGEC,kBAHF,EAIEC,cAJF,EAKEC,cALF,EAMEC,gBANF,QAOO,uBAPP;AASA,SAASC,iBAAT,QAAkC,iCAAlC;AAEA,SAASC,8BAAT,QAA+C,WAA/C;;AAEA,MAAMC,kBAAkB,GAAG,CACzBC,OADyB,EAEzBC,OAFyB,KAGtB;EACH,IAAIA,OAAJ,EAAa,OAAOA,OAAO,EAAd;EACb,OAAOD,OAAO,CAACE,8BAAR,CAAuC;IAC5CC,KAAK,EAAE,GADqC;IAE5CC,OAAO,EAAE;EAFmC,CAAvC,CAAP;AAID,CATD;;AAWA,OAAO,MAAMC,gCAAyD,GAAG,CAACC,GAAD,EAAMN,OAAN,EAAeO,MAAf,EAAuBC,OAAvB,KAAmC;EAC1G,MAAMC,QAAQ,GAAGnB,MAAM,EAAvB;EACA,MAAMoB,SAAS,GAAGd,gBAAgB,CAAC,kCAAD,CAAlC;EAEA,MAAMe,WAAW,GAAGhB,cAAc,EAAlC;EAEA,MAAM;IACJiB,OADI;IAEJC,UAFI;IAGJC,QAHI;IAIJC,YAJI;IAKJC,sBALI;IAMJC,cANI;IAOJC,kBAPI;IAQJC,kBARI;IASJC,cATI;IAUJC,aAVI;IAWJC;EAXI,IAYFxB,8BAA8B,CAACS,MAAD,EAASC,OAAT,aAASA,OAAT,uBAASA,OAAO,CAAEe,cAAlB,CAZlC;;EAcA,MAAMC,iBAAiB,GAAG,YAAY;IACpC,IAAI;MACF,MAAMhC,oBAAoB,CAAC,CAACQ,OAAD,CAAD,CAA1B;IACD,CAFD,CAEE,OAAOyB,CAAP,EAAU;MACVlC,MAAM,CAACmC,IAAP,CAAY,sDAAZ,EAAoED,CAApE;IACD;EACF,CAND;;EAQA,MAAME,IAAI,GAAGtC,WAAW,CACtB,MAAOuC,GAAP,IAAwB;IACtB,IAAIA,GAAJ,EAAS;MAAA;;MACPnB,QAAQ,CAACoB,OAAT,GAAmB9B,kBAAkB,CAACC,OAAD,EAAUQ,OAAV,aAAUA,OAAV,uBAAUA,OAAO,CAAEsB,YAAnB,CAArC;MACAN,iBAAiB;;MACjB,yBAAIf,QAAQ,CAACoB,OAAb,8CAAI,kBAAkBE,OAAtB,EAA+B;QAAA;;QAC7B,MAAMC,IAAI,GAAG,6BAAMvB,QAAQ,CAACoB,OAAf,uDAAM,mBAAkBI,IAAlB,EAAN,CAAb;QACAhB,cAAc,CAACe,IAAD,EAAO,IAAP,EAAa1B,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA7B,CAAd;MACD;;MACDW,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWZ,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA3B,CAAlB;IACD;EACF,CAXqB,EAYtB,CAACD,GAAD,EAAMN,OAAO,CAACmC,GAAd,EAAmB3B,OAAnB,aAAmBA,OAAnB,uBAAmBA,OAAO,CAAEsB,YAA5B,CAZsB,CAAxB;;EAeA,MAAMM,cAAc,GAAIpC,OAAD,IAAkC;IACvD,IAAIA,OAAO,CAACqC,cAAR,MAA4B,CAAC5C,kBAAkB,CAACO,OAAD,EAAUA,OAAV,CAAnD,EAAuE;MACrEW,WAAW;IACZ;EACF,CAJD;;EAMAd,iBAAiB,CAACS,GAAD,EAAMI,SAAN,EAAiB;IAChC;IACA4B,iBAAiB,CAACC,YAAD,EAAeC,OAAf,EAAwB;MACvC,IAAI/C,kBAAkB,CAACO,OAAD,EAAUuC,YAAV,CAAtB,EAA+C;MAC/Cf,iBAAiB;MACjBN,kBAAkB,CAAC,CAACsB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAlB;IACD,CAN+B;;IAOhCkC,gBAAgB,CAACF,YAAD,EAAeC,OAAf,EAAwB;MACtC,IAAI/C,kBAAkB,CAACO,OAAD,EAAUuC,YAAV,CAAtB,EAA+C;MAC/CtB,cAAc,CAAC,CAACuB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAd;IACD,CAV+B;;IAWhCmC,gBAAgB,CAACH,YAAD,EAAeI,SAAf,EAA0B;MACxC,IAAIlD,kBAAkB,CAACO,OAAD,EAAUuC,YAAV,CAAtB,EAA+C;MAC/CnB,cAAc,CAAC,CAACuB,SAAD,CAAD,EAAc,EAAd,CAAd;MACAxB,kBAAkB,CAAC,CAACwB,SAAD,CAAD,EAAc,EAAd,CAAlB;IACD,CAf+B;;IAgBhC;IACAC,gBAAgB,EAAER,cAjBc;IAkBhCS,eAAe,EAAET,cAlBe;IAmBhCU,iBAAiB,EAAEV,cAnBa;IAoBhCW,eAAe,EAAEX,cApBe;;IAqBhCY,2BAA2B,CAACC,QAAD,EAAW;MACpC,MAAMC,YAAY,GAAGD,QAAQ,CAACE,IAAT,CAAeC,CAAD,IAAO,CAAC3D,kBAAkB,CAAC2D,CAAD,EAAIpD,OAAJ,CAAxC,CAArB;MACA,IAAIkD,YAAJ,EAAkBd,cAAc,CAACc,YAAD,CAAd;IACnB,CAxB+B;;IAyBhCG,gBAAgB,CAACC,UAAD,EAAqB;MAAA;;MACnC,IAAItD,OAAO,CAACmC,GAAR,KAAgBmB,UAApB,EAAgC9C,OAAO,SAAP,IAAAA,OAAO,WAAP,qCAAAA,OAAO,CAAE6C,gBAAT,qFAAA7C,OAAO;IACxC,CA3B+B;;IA4BhC;IACA+C,iBAAiB,EAAEnB,cA7Ba;IA8BhCoB,UAAU,EAAEpB,cA9BoB;IA+BhC;IACA;IACAqB,YAAY,EAAErB,cAjCkB;IAkChCsB,cAAc,EAAEtB,cAlCgB;IAmChCuB,WAAW,EAAEvB,cAnCmB;IAoChCwB,aAAa,EAAExB,cApCiB;;IAqChCyB,YAAY,CAACtB,YAAD,EAAeuB,UAAf,EAA2B;MACrC,IAAIrE,kBAAkB,CAACO,OAAD,EAAUuC,YAAV,CAAtB,EAA+C;;MAE/C,IAAIuB,UAAU,CAACvD,MAAX,KAAsBD,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,EAAkD;QAAA;;QAChDC,OAAO,SAAP,IAAAA,OAAO,WAAP,sCAAAA,OAAO,CAAE6C,gBAAT,uFAAA7C,OAAO;MACR,CAFD,MAEO;QACL4B,cAAc,CAACG,YAAD,CAAd;MACD;IACF;;EA7C+B,CAAjB,CAAjB;EAgDA7C,cAAc,CAAC,YAAY;IACzB2B,aAAa,CAAC,IAAD,CAAb;IACA,MAAMM,IAAI,CAACpB,MAAD,CAAV;IACAc,aAAa,CAAC,KAAD,CAAb;EACD,CAJa,EAIX,CAACM,IAAD,EAAOpB,MAAP,CAJW,CAAd;EAMA,MAAMwD,OAAuD,GAAG1E,WAAW,CAAC,YAAY;IACtFiC,gBAAgB,CAAC,IAAD,CAAhB;IACA,MAAMK,IAAI,CAACpB,MAAD,CAAV;IACAe,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAJ0E,EAIxE,CAACK,IAAD,EAAOpB,MAAP,CAJwE,CAA3E;EAMA,MAAMyD,IAAiD,GAAG3E,WAAW,CAAC,YAAY;IAAA;;IAChF,IAAIoB,QAAQ,CAACoB,OAAT,0BAAoBpB,QAAQ,CAACoB,OAA7B,+CAAoB,mBAAkBE,OAA1C,EAAmD;MAAA;;MACjD,MAAMC,IAAI,GAAG,6BAAMvB,QAAQ,CAACoB,OAAf,uDAAM,mBAAkBI,IAAlB,EAAN,CAAb;MACAhB,cAAc,CAACe,IAAD,EAAO,KAAP,EAAc1B,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA9B,CAAd;IACD;EACF,CALoE,EAKlE,EALkE,CAArE;EAOA,MAAM0D,IAAiD,GAAG5E,WAAW,CAAC,YAAY;IAChF,IAAI0B,YAAY,CAACmD,MAAb,GAAsB,CAA1B,EAA6B;MAC3BjD,cAAc,CAACF,YAAD,EAAe,KAAf,EAAsBT,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAtC,CAAd;MACAW,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWZ,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA3B,CAAlB;IACD;EACF,CALoE,EAKlE,CAACQ,YAAY,CAACmD,MAAd,CALkE,CAArE;EAOA,MAAMC,eAAuE,GAAG9E,WAAW,CACzF,CAAC+E,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCxE,OAAO,CACJmE,eADH,CACmBC,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACC,aAAf,EAAJ,EAAoC;UAClCxD,kBAAkB,CAAC,CAACuD,cAAD,CAAD,EAAmB,KAAnB,EAA0BnE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAlB;UACA8D,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACF,aAAZ,EAAJ,EAAiC;UAC/BxD,kBAAkB,CAAC,CAAC0D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;UACAgE,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACC,GAAD,EAAMF,WAAN,KAAsB;QAC9B1D,kBAAkB,CAAC,CAAC0D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;QACAiE,MAAM,CAACM,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtBwF,EAuBzF,CAAC9E,OAAD,CAvByF,CAA3F;EAyBA,MAAM+E,eAAuE,GAAG1F,WAAW,CACzF,CAAC+E,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtCxE,OAAO,CACJ+E,eADH,CACmBX,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACO,aAAf,EAAJ,EAAoC;UAClC9D,kBAAkB,CAAC,CAACuD,cAAD,CAAD,EAAmB,KAAnB,EAA0BnE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAlB;UACA8D,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACI,aAAZ,EAAJ,EAAiC;UAC/B9D,kBAAkB,CAAC,CAAC0D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;UACAgE,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACC,GAAD,EAAMF,WAAN,KAAsB;QAC9B1D,kBAAkB,CAAC,CAAC0D,WAAD,CAAD,EAAgB,KAAhB,EAAuBtE,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAvC,CAAlB;QACAiE,MAAM,CAACM,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtBwF,EAuBzF,CAAC9E,OAAD,CAvByF,CAA3F;EAyBA,MAAMiF,iBAA2E,GAAG5F,WAAW,CAC7F,OAAOsD,SAAP,EAAkByB,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMlF,OAAO,CAACiF,iBAAR,CAA0BtC,SAA1B,EAAqCyB,MAArC,CAA7B;IACAnD,cAAc,CAAC,CAACiE,cAAD,CAAD,EAAmB,KAAnB,EAA0B5E,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAd;IACA,OAAO2E,cAAP;EACD,CAL4F,EAM7F,CAAClF,OAAD,CAN6F,CAA/F;EAQA,MAAMmF,iBAA2E,GAAG9F,WAAW,CAC7F,OAAOsD,SAAP,EAAkByB,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAMlF,OAAO,CAACmF,iBAAR,CAA0BxC,SAA1B,EAAqCyB,MAArC,CAA7B;IACAnD,cAAc,CAAC,CAACiE,cAAD,CAAD,EAAmB,KAAnB,EAA0B5E,GAAG,CAAC4B,WAAJ,CAAgB3B,MAA1C,CAAd;IACA,OAAO2E,cAAP;EACD,CAL4F,EAM7F,CAAClF,OAAD,CAN6F,CAA/F;EAQA,MAAMoF,aAAmE,GAAG/F,WAAW,CACrF,MAAOgG,aAAP,IAAyB;IACvB,MAAM7C,OAAO,GAAG,MAAM,CAAC,MAAM;MAC3B,IAAI6C,aAAa,CAACX,aAAd,EAAJ,EAAmC,OAAO1E,OAAO,CAACsF,iBAAR,CAA0BD,aAA1B,CAAP;MACnC,IAAIA,aAAa,CAACL,aAAd,EAAJ,EAAmC,OAAOhF,OAAO,CAACuF,iBAAR,CAA0BF,aAA1B,CAAP;MACnC,OAAO,IAAP;IACD,CAJqB,GAAtB;IAMA,IAAI7C,OAAJ,EAAatB,kBAAkB,CAAC,CAACsB,OAAD,CAAD,EAAY,KAAZ,EAAmBlC,GAAG,CAAC4B,WAAJ,CAAgB3B,MAAnC,CAAlB;EACd,CAToF,EAUrF,CAACP,OAAD,CAVqF,CAAvF;EAYA,MAAMwF,aAAmE,GAAGnG,WAAW,CACrF,MAAOmD,OAAP,IAAmB;IACjB,IAAIA,OAAO,CAACiD,aAAR,KAA0B,WAA9B,EAA2C;MACzC,IAAIjD,OAAO,CAACkC,aAAR,EAAJ,EAA6B,MAAM1E,OAAO,CAACwF,aAAR,CAAsBhD,OAAtB,CAAN;MAC7B,IAAIA,OAAO,CAACwC,aAAR,EAAJ,EAA6B,MAAMhF,OAAO,CAACwF,aAAR,CAAsBhD,OAAtB,CAAN;IAC9B,CAHD,MAGO;MACLpB,cAAc,CAAC,CAACoB,OAAO,CAACG,SAAT,CAAD,EAAsB,CAACH,OAAO,CAACkD,KAAT,CAAtB,CAAd;IACD;EACF,CARoF,EASrF,CAAC1F,OAAD,CATqF,CAAvF;EAYA,OAAO;IACLY,OADK;IAELC,UAFK;IAGLkD,OAHK;IAILjD,QAJK;IAKLC,YALK;IAMLC,sBANK;IAOLiD,IAPK;IAQLD,IARK;IASLG,eATK;IAULY,eAVK;IAWLE,iBAXK;IAYLE,iBAZK;IAaLC,aAbK;IAcLI;EAdK,CAAP;AAgBD,CArOM"}
1
+ {"version":3,"names":["useRef","Logger","confirmAndMarkAsRead","isDifferentChannel","useAsyncEffect","useForceUpdate","useFreshCallback","useUniqHandlerId","useChannelHandler","useGroupChannelMessagesReducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","handlerId","forceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","sortComparator","channelMarkAsRead","e","warn","init","uid","_queryRef$current","current","queryCreator","hasNext","_queryRef$current2","list","load","currentUser","channelUpdater","isGroupChannel","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","_options$onChannelDel","url","call","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_options$onChannelDel2","refresh","prev","_queryRef$current3","_queryRef$current4","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\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 nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAsRead();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n });\n\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 channelMarkAsRead();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [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\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([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 updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([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) updateNextMessages([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\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"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"}
@@ -1 +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,QAAT,QAAyB,OAAzB;AAEA,SAA+CC,cAA/C,QAAqE,uBAArE;AAEA,OAAO,MAAMC,cAAc,GAAG,CAACC,GAAD,EAAuBC,UAAvB,KAA8C;EAC1E,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBN,QAAQ,EAAtC;EACA,MAAM,CAACO,OAAD,EAAUC,UAAV,IAAwBR,QAAQ,CAAC,IAAD,CAAtC;EACA,MAAM,CAACS,KAAD,EAAQC,QAAR,IAAoBV,QAAQ,EAAlC;EAEAC,cAAc,CAAC,YAAY;IACzB,IAAI;MACFK,UAAU,CAAC,MAAMH,GAAG,CAACQ,WAAJ,CAAgBC,UAAhB,CAA2BR,UAA3B,CAAP,CAAV;IACD,CAFD,CAEE,OAAOS,CAAP,EAAU;MACVH,QAAQ,CAACG,CAAD,CAAR;IACD,CAJD,SAIU;MACRL,UAAU,CAAC,KAAD,CAAV;IACD;EACF,CARa,EAQX,EARW,CAAd;EAUA,OAAO;IAAEH,OAAF;IAAWE,OAAX;IAAoBE;EAApB,CAAP;AACD,CAhBM"}
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 +1 @@
1
- {"version":3,"names":["useOpenChannelListWithQuery","useOpenChannelList","sdk","userId","options"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelList } from '../../types';\nimport { useOpenChannelListWithQuery } from './useOpenChannelListWithQuery';\n\nexport const useOpenChannelList: UseOpenChannelList = (sdk, userId, options) => {\n return useOpenChannelListWithQuery(sdk, userId, options);\n};\n"],"mappings":"AACA,SAASA,2BAAT,QAA4C,+BAA5C;AAEA,OAAO,MAAMC,kBAAsC,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,OAAd,KAA0B;EAC9E,OAAOJ,2BAA2B,CAACE,GAAD,EAAMC,MAAN,EAAcC,OAAd,CAAlC;AACD,CAFM"}
1
+ {"version":3,"names":["useOpenChannelListWithQuery","useOpenChannelList","sdk","userId","options"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelList } from '../../types';\nimport { useOpenChannelListWithQuery } from './useOpenChannelListWithQuery';\n\nexport const useOpenChannelList: UseOpenChannelList = (sdk, userId, options) => {\n return useOpenChannelListWithQuery(sdk, userId, options);\n};\n"],"mappings":"AACA,SAASA,2BAA2B,QAAQ,+BAA+B;AAE3E,OAAO,MAAMC,kBAAsC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAC9E,OAAOJ,2BAA2B,CAACE,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;AAC1D,CAAC"}
@@ -1,17 +1,15 @@
1
1
  import { useReducer } from 'react';
2
2
  import { getOpenChannels } from '@sendbird/uikit-utils';
3
-
4
3
  const defaultReducer = (_ref, action) => {
5
- let { ...draft
4
+ let {
5
+ ...draft
6
6
  } = _ref;
7
-
8
7
  switch (action.type) {
9
8
  case 'update_error':
10
9
  {
11
10
  draft.error = action.value.error;
12
11
  break;
13
12
  }
14
-
15
13
  case 'update_refreshing':
16
14
  case 'update_loading':
17
15
  {
@@ -19,7 +17,6 @@ const defaultReducer = (_ref, action) => {
19
17
  draft[key] = action.value.status;
20
18
  break;
21
19
  }
22
-
23
20
  case 'update_channels':
24
21
  {
25
22
  getOpenChannels(action.value.channels).forEach(freshChannel => {
@@ -28,7 +25,6 @@ const defaultReducer = (_ref, action) => {
28
25
  });
29
26
  break;
30
27
  }
31
-
32
28
  case 'delete_channels':
33
29
  {
34
30
  action.value.channelUrls.forEach(url => {
@@ -37,24 +33,19 @@ const defaultReducer = (_ref, action) => {
37
33
  });
38
34
  break;
39
35
  }
40
-
41
36
  case 'append_channels':
42
37
  {
43
38
  const openChannels = getOpenChannels(action.value.channels);
44
-
45
39
  if (action.value.clearBeforeAction) {
46
40
  draft.openChannels = openChannels;
47
41
  } else {
48
42
  draft.openChannels = [...draft.openChannels, ...openChannels];
49
43
  }
50
-
51
44
  break;
52
45
  }
53
46
  }
54
-
55
47
  return draft;
56
48
  };
57
-
58
49
  export const useOpenChannelListReducer = () => {
59
50
  const [{
60
51
  error,
@@ -67,7 +58,6 @@ export const useOpenChannelListReducer = () => {
67
58
  openChannels: [],
68
59
  error: null
69
60
  });
70
-
71
61
  const updateChannels = channels => {
72
62
  dispatch({
73
63
  type: 'update_channels',
@@ -76,7 +66,6 @@ export const useOpenChannelListReducer = () => {
76
66
  }
77
67
  });
78
68
  };
79
-
80
69
  const deleteChannels = channelUrls => {
81
70
  dispatch({
82
71
  type: 'delete_channels',
@@ -85,7 +74,6 @@ export const useOpenChannelListReducer = () => {
85
74
  }
86
75
  });
87
76
  };
88
-
89
77
  const appendChannels = (channels, clearBeforeAction) => {
90
78
  dispatch({
91
79
  type: 'append_channels',
@@ -95,7 +83,6 @@ export const useOpenChannelListReducer = () => {
95
83
  }
96
84
  });
97
85
  };
98
-
99
86
  const updateLoading = status => {
100
87
  dispatch({
101
88
  type: 'update_loading',
@@ -104,7 +91,6 @@ export const useOpenChannelListReducer = () => {
104
91
  }
105
92
  });
106
93
  };
107
-
108
94
  const updateRefreshing = status => {
109
95
  dispatch({
110
96
  type: 'update_refreshing',
@@ -113,7 +99,6 @@ export const useOpenChannelListReducer = () => {
113
99
  }
114
100
  });
115
101
  };
116
-
117
102
  const updateError = error => {
118
103
  dispatch({
119
104
  type: 'update_error',
@@ -122,7 +107,6 @@ export const useOpenChannelListReducer = () => {
122
107
  }
123
108
  });
124
109
  };
125
-
126
110
  return {
127
111
  updateError,
128
112
  updateLoading,
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","getOpenChannels","defaultReducer","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","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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"}
@@ -2,13 +2,11 @@ import { useRef } from 'react';
2
2
  import { useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';
3
3
  import { useChannelHandler } from '../../handler/useChannelHandler';
4
4
  import { useOpenChannelListReducer } from './reducer';
5
-
6
5
  const createOpenChannelListQuery = (sdk, queryCreator) => {
7
6
  const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
8
7
  if (passedQuery) return passedQuery;
9
8
  return sdk.openChannel.createOpenChannelListQuery({});
10
9
  };
11
-
12
10
  export const useOpenChannelListWithQuery = (sdk, userId, options) => {
13
11
  const queryRef = useRef();
14
12
  const handlerId = useUniqHandlerId('useOpenChannelListWithQuery');
@@ -27,34 +25,27 @@ export const useOpenChannelListWithQuery = (sdk, userId, options) => {
27
25
  const init = useFreshCallback(async uid => {
28
26
  if (uid) {
29
27
  var _queryRef$current;
30
-
31
28
  queryRef.current = createOpenChannelListQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
32
-
33
29
  if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
34
30
  const channels = await queryRef.current.next();
35
31
  appendChannels(channels, true);
36
32
  }
37
33
  }
38
34
  });
39
-
40
35
  const updateChannel = channel => {
41
36
  if (channel.isOpenChannel()) updateChannels([channel]);
42
37
  };
43
-
44
38
  useChannelHandler(sdk, handlerId, {
45
39
  onChannelChanged: updateChannel,
46
40
  onChannelFrozen: updateChannel,
47
41
  onChannelUnfrozen: updateChannel,
48
42
  onChannelDeleted: url => deleteChannels([url]),
49
-
50
43
  onUserBanned(channel, user) {
51
44
  const isMe = user.userId === userId;
52
45
  if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);
53
46
  },
54
-
55
47
  onUserEntered: (channel, user) => {
56
48
  const isMe = user.userId === userId;
57
-
58
49
  if (isMe && channel.isOpenChannel() && !openChannels.find(it => it.url === channel.url)) {
59
50
  appendChannels([], true);
60
51
  refresh();
@@ -64,7 +55,6 @@ export const useOpenChannelListWithQuery = (sdk, userId, options) => {
64
55
  useAsyncEffect(async () => {
65
56
  updateLoading(true);
66
57
  updateError(null);
67
-
68
58
  try {
69
59
  await init(userId);
70
60
  } catch (e) {
@@ -73,11 +63,10 @@ export const useOpenChannelListWithQuery = (sdk, userId, options) => {
73
63
  } finally {
74
64
  updateLoading(false);
75
65
  }
76
- }, [init, userId]);
66
+ }, [userId]);
77
67
  const refresh = useFreshCallback(async () => {
78
68
  updateRefreshing(true);
79
69
  updateError(null);
80
-
81
70
  try {
82
71
  await init(userId);
83
72
  } catch (e) {
@@ -89,7 +78,6 @@ export const useOpenChannelListWithQuery = (sdk, userId, options) => {
89
78
  });
90
79
  const next = useFreshCallback(async () => {
91
80
  var _queryRef$current2;
92
-
93
81
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
94
82
  const channels = await queryRef.current.next();
95
83
  appendChannels(channels, false);
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useAsyncEffect","useFreshCallback","useUniqHandlerId","useChannelHandler","useOpenChannelListReducer","createOpenChannelListQuery","sdk","queryCreator","passedQuery","openChannel","useOpenChannelListWithQuery","userId","options","queryRef","handlerId","error","loading","openChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateError","init","uid","current","hasNext","channels","next","updateChannel","channel","isOpenChannel","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelDeleted","url","onUserBanned","user","isMe","onUserEntered","find","it","refresh","e"],"sources":["useOpenChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdOpenChannelListQuery } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseOpenChannelList, UseOpenChannelListOptions } from '../../types';\nimport { useOpenChannelListReducer } from './reducer';\n\nconst createOpenChannelListQuery = (sdk: SendbirdChatSDK, queryCreator: UseOpenChannelListOptions['queryCreator']) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n return sdk.openChannel.createOpenChannelListQuery({});\n};\n\nexport const useOpenChannelListWithQuery: UseOpenChannelList = (sdk, userId, options) => {\n const queryRef = useRef<SendbirdOpenChannelListQuery>();\n const handlerId = useUniqHandlerId('useOpenChannelListWithQuery');\n\n const {\n error,\n loading,\n openChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateError,\n } = useOpenChannelListReducer();\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createOpenChannelListQuery(sdk, options?.queryCreator);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, true);\n }\n }\n });\n\n const updateChannel = (channel: SendbirdBaseChannel) => {\n if (channel.isOpenChannel()) updateChannels([channel]);\n };\n\n useChannelHandler(\n sdk,\n handlerId,\n {\n onChannelChanged: updateChannel,\n onChannelFrozen: updateChannel,\n onChannelUnfrozen: updateChannel,\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);\n },\n onUserEntered: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel() && !openChannels.find((it) => it.url === channel.url)) {\n appendChannels([], true);\n refresh();\n }\n },\n },\n 'open',\n );\n\n useAsyncEffect(async () => {\n updateLoading(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateLoading(false);\n }\n }, [init, userId]);\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n }\n });\n\n return {\n error,\n loading,\n openChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,OAAvB;AAGA,SAASC,cAAT,EAAyBC,gBAAzB,EAA2CC,gBAA3C,QAAmE,uBAAnE;AAEA,SAASC,iBAAT,QAAkC,iCAAlC;AAEA,SAASC,yBAAT,QAA0C,WAA1C;;AAEA,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,YAAvB,KAAmF;EACpH,MAAMC,WAAW,GAAGD,YAAH,aAAGA,YAAH,uBAAGA,YAAY,EAAhC;EACA,IAAIC,WAAJ,EAAiB,OAAOA,WAAP;EACjB,OAAOF,GAAG,CAACG,WAAJ,CAAgBJ,0BAAhB,CAA2C,EAA3C,CAAP;AACD,CAJD;;AAMA,OAAO,MAAMK,2BAA+C,GAAG,CAACJ,GAAD,EAAMK,MAAN,EAAcC,OAAd,KAA0B;EACvF,MAAMC,QAAQ,GAAGd,MAAM,EAAvB;EACA,MAAMe,SAAS,GAAGZ,gBAAgB,CAAC,6BAAD,CAAlC;EAEA,MAAM;IACJa,KADI;IAEJC,OAFI;IAGJC,YAHI;IAIJC,UAJI;IAKJC,cALI;IAMJC,cANI;IAOJC,cAPI;IAQJC,gBARI;IASJC,aATI;IAUJC;EAVI,IAWFpB,yBAAyB,EAX7B;EAaA,MAAMqB,IAAI,GAAGxB,gBAAgB,CAAC,MAAOyB,GAAP,IAAwB;IACpD,IAAIA,GAAJ,EAAS;MAAA;;MACPb,QAAQ,CAACc,OAAT,GAAmBtB,0BAA0B,CAACC,GAAD,EAAMM,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEL,YAAf,CAA7C;;MAEA,yBAAIM,QAAQ,CAACc,OAAb,8CAAI,kBAAkBC,OAAtB,EAA+B;QAC7B,MAAMC,QAAQ,GAAG,MAAMhB,QAAQ,CAACc,OAAT,CAAiBG,IAAjB,EAAvB;QACAV,cAAc,CAACS,QAAD,EAAW,IAAX,CAAd;MACD;IACF;EACF,CAT4B,CAA7B;;EAWA,MAAME,aAAa,GAAIC,OAAD,IAAkC;IACtD,IAAIA,OAAO,CAACC,aAAR,EAAJ,EAA6Bd,cAAc,CAAC,CAACa,OAAD,CAAD,CAAd;EAC9B,CAFD;;EAIA7B,iBAAiB,CACfG,GADe,EAEfQ,SAFe,EAGf;IACEoB,gBAAgB,EAAEH,aADpB;IAEEI,eAAe,EAAEJ,aAFnB;IAGEK,iBAAiB,EAAEL,aAHrB;IAIEM,gBAAgB,EAAGC,GAAD,IAASjB,cAAc,CAAC,CAACiB,GAAD,CAAD,CAJ3C;;IAKEC,YAAY,CAACP,OAAD,EAAUQ,IAAV,EAAgB;MAC1B,MAAMC,IAAI,GAAGD,IAAI,CAAC7B,MAAL,KAAgBA,MAA7B;MACA,IAAI8B,IAAI,IAAIT,OAAO,CAACC,aAAR,EAAZ,EAAqCZ,cAAc,CAAC,CAACW,OAAO,CAACM,GAAT,CAAD,CAAd;IACtC,CARH;;IASEI,aAAa,EAAE,CAACV,OAAD,EAAUQ,IAAV,KAAmB;MAChC,MAAMC,IAAI,GAAGD,IAAI,CAAC7B,MAAL,KAAgBA,MAA7B;;MACA,IAAI8B,IAAI,IAAIT,OAAO,CAACC,aAAR,EAAR,IAAmC,CAAChB,YAAY,CAAC0B,IAAb,CAAmBC,EAAD,IAAQA,EAAE,CAACN,GAAH,KAAWN,OAAO,CAACM,GAA7C,CAAxC,EAA2F;QACzFlB,cAAc,CAAC,EAAD,EAAK,IAAL,CAAd;QACAyB,OAAO;MACR;IACF;EAfH,CAHe,EAoBf,MApBe,CAAjB;EAuBA7C,cAAc,CAAC,YAAY;IACzBuB,aAAa,CAAC,IAAD,CAAb;IACAC,WAAW,CAAC,IAAD,CAAX;;IACA,IAAI;MACF,MAAMC,IAAI,CAACd,MAAD,CAAV;IACD,CAFD,CAEE,OAAOmC,CAAP,EAAU;MACVtB,WAAW,CAACsB,CAAD,CAAX;MACA1B,cAAc,CAAC,EAAD,EAAK,IAAL,CAAd;IACD,CALD,SAKU;MACRG,aAAa,CAAC,KAAD,CAAb;IACD;EACF,CAXa,EAWX,CAACE,IAAD,EAAOd,MAAP,CAXW,CAAd;EAaA,MAAMkC,OAAO,GAAG5C,gBAAgB,CAAC,YAAY;IAC3CqB,gBAAgB,CAAC,IAAD,CAAhB;IACAE,WAAW,CAAC,IAAD,CAAX;;IACA,IAAI;MACF,MAAMC,IAAI,CAACd,MAAD,CAAV;IACD,CAFD,CAEE,OAAOmC,CAAP,EAAU;MACVtB,WAAW,CAACsB,CAAD,CAAX;MACA1B,cAAc,CAAC,EAAD,EAAK,IAAL,CAAd;IACD,CALD,SAKU;MACRE,gBAAgB,CAAC,KAAD,CAAhB;IACD;EACF,CAX+B,CAAhC;EAaA,MAAMQ,IAAI,GAAG7B,gBAAgB,CAAC,YAAY;IAAA;;IACxC,0BAAIY,QAAQ,CAACc,OAAb,+CAAI,mBAAkBC,OAAtB,EAA+B;MAC7B,MAAMC,QAAQ,GAAG,MAAMhB,QAAQ,CAACc,OAAT,CAAiBG,IAAjB,EAAvB;MACAV,cAAc,CAACS,QAAD,EAAW,KAAX,CAAd;IACD;EACF,CAL4B,CAA7B;EAOA,OAAO;IACLd,KADK;IAELC,OAFK;IAGLC,YAHK;IAIL4B,OAJK;IAKL3B,UALK;IAMLY;EANK,CAAP;AAQD,CAhGM"}
1
+ {"version":3,"names":["useRef","useAsyncEffect","useFreshCallback","useUniqHandlerId","useChannelHandler","useOpenChannelListReducer","createOpenChannelListQuery","sdk","queryCreator","passedQuery","openChannel","useOpenChannelListWithQuery","userId","options","queryRef","handlerId","error","loading","openChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateError","init","uid","_queryRef$current","current","hasNext","channels","next","updateChannel","channel","isOpenChannel","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelDeleted","url","onUserBanned","user","isMe","onUserEntered","find","it","refresh","e","_queryRef$current2"],"sources":["useOpenChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdOpenChannelListQuery } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseOpenChannelList, UseOpenChannelListOptions } from '../../types';\nimport { useOpenChannelListReducer } from './reducer';\n\nconst createOpenChannelListQuery = (sdk: SendbirdChatSDK, queryCreator: UseOpenChannelListOptions['queryCreator']) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n return sdk.openChannel.createOpenChannelListQuery({});\n};\n\nexport const useOpenChannelListWithQuery: UseOpenChannelList = (sdk, userId, options) => {\n const queryRef = useRef<SendbirdOpenChannelListQuery>();\n const handlerId = useUniqHandlerId('useOpenChannelListWithQuery');\n\n const {\n error,\n loading,\n openChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateError,\n } = useOpenChannelListReducer();\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createOpenChannelListQuery(sdk, options?.queryCreator);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, true);\n }\n }\n });\n\n const updateChannel = (channel: SendbirdBaseChannel) => {\n if (channel.isOpenChannel()) updateChannels([channel]);\n };\n\n useChannelHandler(\n sdk,\n handlerId,\n {\n onChannelChanged: updateChannel,\n onChannelFrozen: updateChannel,\n onChannelUnfrozen: updateChannel,\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);\n },\n onUserEntered: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel() && !openChannels.find((it) => it.url === channel.url)) {\n appendChannels([], true);\n refresh();\n }\n },\n },\n 'open',\n );\n\n useAsyncEffect(async () => {\n updateLoading(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateLoading(false);\n }\n }, [userId]);\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n }\n });\n\n return {\n error,\n loading,\n openChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["useOpenChannelMessagesWithQuery","useOpenChannelMessages","sdk","channel","userId","options"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelMessages } from '../../types';\nimport { useOpenChannelMessagesWithQuery } from './useOpenChannelMessagesWithQuery';\n\nexport const useOpenChannelMessages: UseOpenChannelMessages = (sdk, channel, userId, options) => {\n return useOpenChannelMessagesWithQuery(sdk, channel, userId, options);\n};\n"],"mappings":"AACA,SAASA,+BAAT,QAAgD,mCAAhD;AAEA,OAAO,MAAMC,sBAA8C,GAAG,CAACC,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,KAAmC;EAC/F,OAAOL,+BAA+B,CAACE,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,CAAtC;AACD,CAFM"}
1
+ {"version":3,"names":["useOpenChannelMessagesWithQuery","useOpenChannelMessages","sdk","channel","userId","options"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelMessages } from '../../types';\nimport { useOpenChannelMessagesWithQuery } from './useOpenChannelMessagesWithQuery';\n\nexport const useOpenChannelMessages: UseOpenChannelMessages = (sdk, channel, userId, options) => {\n return useOpenChannelMessagesWithQuery(sdk, channel, userId, options);\n};\n"],"mappings":"AACA,SAASA,+BAA+B,QAAQ,mCAAmC;AAEnF,OAAO,MAAMC,sBAA8C,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAC/F,OAAOL,+BAA+B,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;AACvE,CAAC"}
@@ -1,45 +1,46 @@
1
1
  import { useReducer } from 'react';
2
2
  import { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';
3
-
4
3
  const defaultReducer = (_ref, action) => {
5
- let { ...draft
4
+ let {
5
+ ...draft
6
6
  } = _ref;
7
-
8
7
  switch (action.type) {
9
8
  case 'update_refreshing':
9
+ {
10
+ draft['refreshing'] = action.value.status;
11
+ return draft;
12
+ }
10
13
  case 'update_loading':
11
14
  {
12
- const key = action.type === 'update_loading' ? 'loading' : 'refreshing';
13
- draft[key] = action.value.status;
15
+ draft['loading'] = action.value.status;
14
16
  return draft;
15
17
  }
16
-
17
18
  case 'update_messages':
18
19
  case 'update_next_messages':
19
20
  {
20
21
  const key = action.type === 'update_messages' ? 'messageMap' : 'nextMessageMap';
21
22
  const receivedMessagesAsMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);
22
-
23
- if (action.value.clearPrev) {
23
+ if (action.value.clearBeforeAction) {
24
24
  draft[key] = receivedMessagesAsMap;
25
25
  } else {
26
- draft[key] = { ...draft[key],
26
+ draft[key] = {
27
+ ...draft[key],
27
28
  ...receivedMessagesAsMap
28
- }; // NOTE: Replace pending message to succeeded message
29
+ };
29
30
 
31
+ // NOTE: Replace pending message to succeeded message
30
32
  action.value.messages.filter(m => {
31
33
  return (m.isFileMessage() || m.isUserMessage()) && Boolean(draft[key][m.reqId]) && m.sendingStatus === 'succeeded' && isMyMessage(m, action.value.currentUserId);
32
34
  }).forEach(m => delete draft[key][m.reqId]);
33
35
  }
34
-
35
36
  return draft;
36
37
  }
37
-
38
38
  case 'delete_messages':
39
39
  case 'delete_next_messages':
40
40
  {
41
41
  const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';
42
- draft[key] = { ...draft[key]
42
+ draft[key] = {
43
+ ...draft[key]
43
44
  };
44
45
  action.value.messageIds.forEach(msgId => delete draft[key][msgId]);
45
46
  action.value.reqIds.forEach(reqId => delete draft[key][reqId]);
@@ -47,7 +48,6 @@ const defaultReducer = (_ref, action) => {
47
48
  }
48
49
  }
49
50
  };
50
-
51
51
  export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
52
52
  const [{
53
53
  loading,
@@ -60,18 +60,16 @@ export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
60
60
  messageMap: {},
61
61
  nextMessageMap: {}
62
62
  });
63
-
64
- const updateMessages = (messages, clearPrev, currentUserId) => {
63
+ const updateMessages = (messages, clearBeforeAction, currentUserId) => {
65
64
  dispatch({
66
65
  type: 'update_messages',
67
66
  value: {
68
67
  messages,
69
- clearPrev,
68
+ clearBeforeAction,
70
69
  currentUserId
71
70
  }
72
71
  });
73
72
  };
74
-
75
73
  const deleteMessages = (messageIds, reqIds) => {
76
74
  dispatch({
77
75
  type: 'delete_messages',
@@ -81,18 +79,16 @@ export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
81
79
  }
82
80
  });
83
81
  };
84
-
85
- const updateNextMessages = (messages, clearPrev, currentUserId) => {
82
+ const updateNextMessages = (messages, clearBeforeAction, currentUserId) => {
86
83
  dispatch({
87
84
  type: 'update_next_messages',
88
85
  value: {
89
86
  messages,
90
- clearPrev,
87
+ clearBeforeAction,
91
88
  currentUserId
92
89
  }
93
90
  });
94
91
  };
95
-
96
92
  const deleteNextMessages = (messageIds, reqIds) => {
97
93
  dispatch({
98
94
  type: 'delete_next_messages',
@@ -102,7 +98,6 @@ export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
102
98
  }
103
99
  });
104
100
  };
105
-
106
101
  const updateLoading = status => {
107
102
  dispatch({
108
103
  type: 'update_loading',
@@ -111,7 +106,6 @@ export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
111
106
  }
112
107
  });
113
108
  };
114
-
115
109
  const updateRefreshing = status => {
116
110
  dispatch({
117
111
  type: 'update_refreshing',
@@ -120,7 +114,6 @@ export const useOpenChannelMessagesReducer = (userId, sortComparator) => {
120
114
  }
121
115
  });
122
116
  };
123
-
124
117
  const messages = useIIFE(() => {
125
118
  if (sortComparator) return Object.values(messageMap).sort(sortComparator);
126
119
  return Object.values(messageMap);
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","arrayToMapWithGetter","getMessageUniqId","isMyMessage","isNewMessage","useIIFE","defaultReducer","action","draft","type","key","value","status","receivedMessagesAsMap","messages","clearPrev","filter","m","isFileMessage","isUserMessage","Boolean","reqId","sendingStatus","currentUserId","forEach","messageIds","msgId","reqIds","useOpenChannelMessagesReducer","userId","sortComparator","loading","refreshing","messageMap","nextMessageMap","dispatch","updateMessages","deleteMessages","updateNextMessages","deleteNextMessages","updateLoading","updateRefreshing","Object","values","sort","nextMessages","newMessagesFromMembers","msg"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdBaseMessage, SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { UseOpenChannelMessagesOptions } from '../../types';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_next_messages';\n value: { messages: SendbirdBaseMessage[]; clearPrev: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_next_messages';\n value: { messageIds: number[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n nextMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n\n return draft;\n }\n case 'update_messages':\n case 'update_next_messages': {\n const key = action.type === 'update_messages' ? 'messageMap' : 'nextMessageMap';\n const receivedMessagesAsMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);\n if (action.value.clearPrev) {\n draft[key] = receivedMessagesAsMap;\n } else {\n draft[key] = { ...draft[key], ...receivedMessagesAsMap };\n\n // NOTE: Replace pending message to succeeded message\n action.value.messages\n .filter((m): m is SendbirdUserMessage | SendbirdFileMessage => {\n return (\n (m.isFileMessage() || m.isUserMessage()) &&\n Boolean(draft[key][m.reqId]) &&\n m.sendingStatus === 'succeeded' &&\n isMyMessage(m, action.value.currentUserId)\n );\n })\n .forEach((m) => delete draft[key][m.reqId]);\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_next_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => delete draft[key][msgId]);\n action.value.reqIds.forEach((reqId) => delete draft[key][reqId]);\n\n return draft;\n }\n }\n};\n\nexport const useOpenChannelMessagesReducer = (\n userId?: string,\n sortComparator?: UseOpenChannelMessagesOptions['sortComparator'],\n) => {\n const [{ loading, refreshing, messageMap, nextMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n nextMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNextMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_next_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteNextMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_next_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Object.values(messageMap).sort(sortComparator);\n return Object.values(messageMap);\n });\n const nextMessages = Object.values(nextMessageMap);\n const newMessagesFromMembers = nextMessages.filter((msg) => isNewMessage(msg, userId));\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n updateNextMessages,\n deleteMessages,\n deleteNextMessages,\n\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useReducer","arrayToMapWithGetter","getMessageUniqId","isMyMessage","isNewMessage","useIIFE","defaultReducer","_ref","action","draft","type","value","status","key","receivedMessagesAsMap","messages","clearBeforeAction","filter","m","isFileMessage","isUserMessage","Boolean","reqId","sendingStatus","currentUserId","forEach","messageIds","msgId","reqIds","useOpenChannelMessagesReducer","userId","sortComparator","loading","refreshing","messageMap","nextMessageMap","dispatch","updateMessages","deleteMessages","updateNextMessages","deleteNextMessages","updateLoading","updateRefreshing","Object","values","sort","nextMessages","newMessagesFromMembers","msg"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdBaseMessage, SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { UseOpenChannelMessagesOptions } from '../../types';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_next_messages';\n value: { messages: SendbirdBaseMessage[]; clearBeforeAction: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_next_messages';\n value: { messageIds: number[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n nextMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing': {\n draft['refreshing'] = action.value.status;\n return draft;\n }\n case 'update_loading': {\n draft['loading'] = action.value.status;\n return draft;\n }\n case 'update_messages':\n case 'update_next_messages': {\n const key = action.type === 'update_messages' ? 'messageMap' : 'nextMessageMap';\n const receivedMessagesAsMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);\n if (action.value.clearBeforeAction) {\n draft[key] = receivedMessagesAsMap;\n } else {\n draft[key] = { ...draft[key], ...receivedMessagesAsMap };\n\n // NOTE: Replace pending message to succeeded message\n action.value.messages\n .filter((m): m is SendbirdUserMessage | SendbirdFileMessage => {\n return (\n (m.isFileMessage() || m.isUserMessage()) &&\n Boolean(draft[key][m.reqId]) &&\n m.sendingStatus === 'succeeded' &&\n isMyMessage(m, action.value.currentUserId)\n );\n })\n .forEach((m) => delete draft[key][m.reqId]);\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_next_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => delete draft[key][msgId]);\n action.value.reqIds.forEach((reqId) => delete draft[key][reqId]);\n\n return draft;\n }\n }\n};\n\nexport const useOpenChannelMessagesReducer = (\n userId?: string,\n sortComparator?: UseOpenChannelMessagesOptions['sortComparator'],\n) => {\n const [{ loading, refreshing, messageMap, nextMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n nextMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNextMessages = (messages: SendbirdBaseMessage[], clearBeforeAction: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_next_messages', value: { messages, clearBeforeAction, currentUserId } });\n };\n const deleteNextMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_next_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Object.values(messageMap).sort(sortComparator);\n return Object.values(messageMap);\n });\n const nextMessages = Object.values(nextMessageMap);\n const newMessagesFromMembers = nextMessages.filter((msg) => isNewMessage(msg, userId));\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n updateNextMessages,\n deleteMessages,\n deleteNextMessages,\n\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n };\n};\n"],"mappings":"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"}