@sendbird/uikit-chat-hooks 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/commonjs/channel/useGroupChannelList/index.js +1 -1
  2. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  3. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +4 -0
  4. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  5. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +4 -0
  6. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  7. package/lib/commonjs/channel/useGroupChannelMessages/index.js +1 -1
  8. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  9. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +4 -0
  10. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  11. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -0
  12. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  13. package/lib/commonjs/handler/useChannelHandler.js +3 -0
  14. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  15. package/lib/commonjs/types.js.map +1 -1
  16. package/lib/module/channel/useGroupChannelList/index.js +1 -1
  17. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  18. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +4 -0
  19. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  20. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +4 -0
  21. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  22. package/lib/module/channel/useGroupChannelMessages/index.js +1 -1
  23. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  24. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +4 -0
  25. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  26. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +4 -0
  27. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  28. package/lib/module/handler/useChannelHandler.js +3 -0
  29. package/lib/module/handler/useChannelHandler.js.map +1 -1
  30. package/lib/module/types.js.map +1 -1
  31. package/lib/typescript/src/channel/useGroupChannelList/index.d.ts +1 -1
  32. package/lib/typescript/src/channel/useGroupChannelList/useGroupChannelListWithCollection.d.ts +3 -0
  33. package/lib/typescript/src/channel/useGroupChannelList/useGroupChannelListWithQuery.d.ts +3 -0
  34. package/lib/typescript/src/channel/useGroupChannelMessages/index.d.ts +1 -1
  35. package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.d.ts +3 -0
  36. package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.d.ts +3 -0
  37. package/lib/typescript/src/handler/useChannelHandler.d.ts +3 -0
  38. package/lib/typescript/src/types.d.ts +2 -2
  39. package/package.json +6 -6
  40. package/src/channel/useGroupChannelList/index.ts +1 -1
  41. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +3 -0
  42. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +3 -0
  43. package/src/channel/useGroupChannelMessages/index.ts +1 -1
  44. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +3 -0
  45. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +3 -0
  46. package/src/handler/useChannelHandler.ts +3 -0
  47. package/src/types.ts +2 -2
@@ -8,7 +8,7 @@ var _uikitUtils = require("@sendbird/uikit-utils");
8
8
  var _useGroupChannelListWithCollection = require("./useGroupChannelListWithCollection");
9
9
  var _useGroupChannelListWithQuery = require("./useGroupChannelListWithQuery");
10
10
  /**
11
- * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.
11
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
12
12
  * */
13
13
  const useGroupChannelList = (sdk, userId, options) => {
14
14
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_useGroupChannelListWithCollection","_useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelListWithCollection","useGroupChannelListWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,kCAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,kBAAM,CAACC,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAO,IAAAC,oEAAiC,EAACR,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAO,IAAAO,0DAA4B,EAACT,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC;AAACQ,OAAA,CAAAX,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_uikitUtils","require","_useGroupChannelListWithCollection","_useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelListWithCollection","useGroupChannelListWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,kCAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,kBAAM,CAACC,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAO,IAAAC,oEAAiC,EAACR,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAO,IAAAO,0DAA4B,EAACT,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC;AAACQ,OAAA,CAAAX,mBAAA,GAAAA,mBAAA"}
@@ -21,6 +21,10 @@ const createGroupChannelListCollection = (sdk, collectionCreator) => {
21
21
  order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
22
22
  });
23
23
  };
24
+
25
+ /**
26
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
27
+ * */
24
28
  const useGroupChannelListWithCollection = (sdk, userId, options) => {
25
29
  const handlerId = (0, _uikitUtils.useUniqHandlerId)('useGroupChannelListWithCollection');
26
30
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -19,6 +19,10 @@ const createGroupChannelListQuery = (sdk, queryCreator) => {
19
19
  order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
20
20
  });
21
21
  };
22
+
23
+ /**
24
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
25
+ * */
22
26
  const useGroupChannelListWithQuery = (sdk, userId, options) => {
23
27
  const {
24
28
  deliveryReceiptEnabled
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ var _uikitUtils = require("@sendbird/uikit-utils");
8
8
  var _useGroupChannelMessagesWithCollection = require("./useGroupChannelMessagesWithCollection");
9
9
  var _useGroupChannelMessagesWithQuery = require("./useGroupChannelMessagesWithQuery");
10
10
  /**
11
- * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.
11
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
12
12
  * */
13
13
  const useGroupChannelMessages = (sdk, channel, userId, options) => {
14
14
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports","Logger","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,EAAE;IAChD,OAAO,IAAAC,4EAAqC,EAACR,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAM,kEAAgC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACO,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEF,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;EAChCI,kBAAM,CAACC,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
1
+ {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports","Logger","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,EAAE;IAChD,OAAO,IAAAC,4EAAqC,EAACR,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAM,kEAAgC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACO,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEF,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;EAChCI,kBAAM,CAACC,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
@@ -33,6 +33,10 @@ function isNotEmpty(arr) {
33
33
  function shouldUseSearchLimit(startingPoint) {
34
34
  return startingPoint < Date.now();
35
35
  }
36
+
37
+ /**
38
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
39
+ * */
36
40
  const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) => {
37
41
  const initialStartingPoint = (options === null || options === void 0 ? void 0 : options.startingPoint) ?? Number.MAX_SAFE_INTEGER;
38
42
  const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","e","Logger","warn","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","_sdk$currentUser8","debug","onApiResult","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser10","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser11","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser12","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser13","onSucceeded","sentMessage","_sdk$currentUser14","onFailed","failedMessage","_sdk$currentUser15","sendFileMessage","isFileMessage","_sdk$currentUser16","_sdk$currentUser17","_sdk$currentUser18","updateUserMessage","_sdk$currentUser19","updatedMessage","updateFileMessage","_sdk$currentUser20","resendMessage","_sdk$currentUser21","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser22","resetWithStartingPoint","_sdk$currentUser23","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async (source?: CollectionEventSource) => {\n try {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback(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: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_chat","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","shouldUseSearchLimit","Date","now","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","CollectionEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","e","Logger","warn","updateNewMessagesReceived","incomingMessages","it","_sdk$currentUser","isMyMessage","currentUser","_options$shouldCountN","_sdk$currentUser2","_options$onMessagesRe","shouldCountNewMessages","call","onMessagesReceived","updateUnsentMessages","_sdk$currentUser3","_sdk$currentUser4","pendingMessages","failedMessages","current","init","useFreshCallback","callback","_collectionRef$curren","_sdk$currentUser5","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","ctx","__","_sdk$currentUser6","onMessagesUpdated","_sdk$currentUser7","EVENT_MESSAGE_UPDATED","_options$onMessagesUp","onMessagesDeleted","_","___","msgIds","map","messageId","reqIds","isSendableMessage","reqId","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","_sdk$currentUser8","debug","onApiResult","_sdk$currentUser9","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_sdk$currentUser10","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","_sdk$currentUser11","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","_sdk$currentUser12","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser13","onSucceeded","sentMessage","_sdk$currentUser14","onFailed","failedMessage","_sdk$currentUser15","sendFileMessage","isFileMessage","_sdk$currentUser16","_sdk$currentUser17","_sdk$currentUser18","updateUserMessage","_sdk$currentUser19","updatedMessage","updateFileMessage","_sdk$currentUser20","resendMessage","_sdk$currentUser21","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","resetNewMessages","_sdk$currentUser22","resetWithStartingPoint","_sdk$currentUser23","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { CollectionEventSource } from '@sendbird/chat';\nimport { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n SendbirdBaseMessage,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n isSendableMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nfunction shouldUseSearchLimit(startingPoint: number) {\n return startingPoint < Date.now();\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = shouldUseSearchLimit(initialStartingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async (source?: CollectionEventSource) => {\n try {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case CollectionEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n const updateNewMessagesReceived = (source: CollectionEventSource, messages: SendbirdBaseMessage[]) => {\n const incomingMessages = messages.filter((it) => !isMyMessage(it, sdk.currentUser?.userId));\n if (incomingMessages.length > 0) {\n switch (source) {\n case CollectionEventSource.EVENT_MESSAGE_RECEIVED:\n case CollectionEventSource.SYNC_MESSAGE_FILL: {\n if (options?.shouldCountNewMessages?.()) updateNewMessages(incomingMessages, false, sdk.currentUser?.userId);\n options?.onMessagesReceived?.(incomingMessages);\n break;\n }\n }\n }\n };\n\n const updateUnsentMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser?.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser?.userId);\n };\n\n const init = useFreshCallback(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: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages);\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n },\n onMessagesUpdated: (ctx, __, messages) => {\n channelMarkAsRead(ctx.source);\n updateNewMessagesReceived(ctx.source, messages); // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n\n updateMessages(messages, false, sdk.currentUser?.userId);\n\n if (ctx.source === CollectionEventSource.EVENT_MESSAGE_UPDATED) {\n options?.onMessagesUpdated?.(messages);\n }\n },\n onMessagesDeleted: (_, __, ___, messages) => {\n const msgIds = messages.map((it) => it.messageId);\n const reqIds = messages.filter(isSendableMessage).map((it) => it.reqId);\n deleteMessages(msgIds, reqIds);\n deleteNewMessages(msgIds, reqIds);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n updateUnsentMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else if (messages) {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser?.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsentMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId, options?.replyType]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser?.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n const limit = shouldUseSearchLimit(startingPoint) ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n updateLoading(true);\n updateMessages([], true, sdk.currentUser?.userId);\n init(startingPoint, limit, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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"}
@@ -17,6 +17,10 @@ const createMessageQuery = (channel, options) => {
17
17
  if (options !== null && options !== void 0 && options.replyType) params.replyType = options.replyType;
18
18
  return channel.createPreviousMessageListQuery(params);
19
19
  };
20
+
21
+ /**
22
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
23
+ * */
20
24
  const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
21
25
  const queryRef = (0, _react.useRef)();
22
26
  const handlerId = (0, _uikitUtils.useUniqHandlerId)('useGroupChannelMessagesWithQuery');
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","confirmAndMarkAsRead","e","Logger","warn","init","useFreshCallback","uid","_sdk$currentUser","_queryRef$current","currentUser","current","hasNext","_queryRef$current2","_sdk$currentUser2","list","load","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","_sdk$currentUser3","_sdk$currentUser4","_options$shouldCountN","isMyMessage","shouldCountNewMessages","call","_sdk$currentUser5","onMessagesReceived","onMessageUpdated","_sdk$currentUser6","_sdk$currentUser7","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","_sdk$currentUser8","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_sdk$currentUser9","_options$onChannelDel2","useAsyncEffect","refresh","prev","_queryRef$current3","_queryRef$current4","_sdk$currentUser10","hasPrev","_queryRef$current5","next","ASYNC_NOOP","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser11","onSucceeded","sentMessage","_sdk$currentUser12","onFailed","err","failedMessage","_sdk$currentUser13","sendFileMessage","isFileMessage","_sdk$currentUser14","_sdk$currentUser15","_sdk$currentUser16","updateUserMessage","_sdk$currentUser17","updatedMessage","updateFileMessage","_sdk$currentUser18","resendMessage","_sdk$currentUser19","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","_sdk$currentUser20","resetWithStartingPoint","exports"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { BaseMessage, PreviousMessageListQueryParams } from '@sendbird/chat/message';\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (channel: SendbirdGroupChannel, options?: UseGroupChannelMessagesOptions) => {\n if (options?.queryCreator) return options.queryCreator();\n\n const params: PreviousMessageListQueryParams = { limit: 100, reverse: true };\n if (options?.replyType) params.replyType = options.replyType;\n\n return channel.createPreviousMessageListQuery(params);\n};\n\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 if (message) updateMessages([message as BaseMessage], false, sdk.currentUser?.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser?.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","createMessageQuery","channel","options","queryCreator","params","limit","reverse","replyType","createPreviousMessageListQuery","useGroupChannelMessagesWithQuery","sdk","userId","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","newMessages","updateMessages","deleteMessages","updateNewMessages","deleteNewMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","confirmAndMarkAsRead","e","Logger","warn","init","useFreshCallback","uid","_sdk$currentUser","_queryRef$current","currentUser","current","hasNext","_queryRef$current2","_sdk$currentUser2","list","load","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","_sdk$currentUser3","_sdk$currentUser4","_options$shouldCountN","isMyMessage","shouldCountNewMessages","call","_sdk$currentUser5","onMessagesReceived","onMessageUpdated","_sdk$currentUser6","_sdk$currentUser7","onMessageDeleted","messageId","onReactionUpdated","reactionEvent","_sdk$currentUser8","getMessage","includeReactions","includeParentMessageInfo","includeThreadInfo","includeMetaArray","channelUrl","url","channelType","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","_options$onChannelDel","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_sdk$currentUser9","_options$onChannelDel2","useAsyncEffect","refresh","prev","_queryRef$current3","_queryRef$current4","_sdk$currentUser10","hasPrev","_queryRef$current5","next","ASYNC_NOOP","sendUserMessage","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","_sdk$currentUser11","onSucceeded","sentMessage","_sdk$currentUser12","onFailed","err","failedMessage","_sdk$currentUser13","sendFileMessage","isFileMessage","_sdk$currentUser14","_sdk$currentUser15","_sdk$currentUser16","updateUserMessage","_sdk$currentUser17","updatedMessage","updateFileMessage","_sdk$currentUser18","resendMessage","_sdk$currentUser19","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","resetNewMessages","_sdk$currentUser20","resetWithStartingPoint","exports"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { BaseMessage, PreviousMessageListQueryParams } from '@sendbird/chat/message';\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n ASYNC_NOOP,\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst createMessageQuery = (channel: SendbirdGroupChannel, options?: UseGroupChannelMessagesOptions) => {\n if (options?.queryCreator) return options.queryCreator();\n\n const params: PreviousMessageListQueryParams = { limit: 100, reverse: true };\n if (options?.replyType) params.replyType = options.replyType;\n\n return channel.createPreviousMessageListQuery(params);\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n deleteMessages,\n updateNewMessages,\n deleteNewMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const 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 if (message) updateMessages([message as BaseMessage], false, sdk.currentUser?.userId);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser?.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser?.userId);\n }\n });\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(\n () => queryRef.current?.hasNext ?? false,\n );\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(ASYNC_NOOP);\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => false);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser?.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser?.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n if (failedMessage) {\n updateMessages([failedMessage], false, sdk.currentUser?.userId);\n }\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser?.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateMessages([message], false, sdk.currentUser?.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser?.userId);\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n newMessages,\n resetNewMessages,\n next,\n hasNext,\n prev,\n hasPrev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint() {\n Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');\n },\n };\n};\n"],"mappings":"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"}
@@ -7,6 +7,9 @@ exports.useChannelHandler = void 0;
7
7
  var _react = require("react");
8
8
  var _groupChannel = require("@sendbird/chat/groupChannel");
9
9
  var _openChannel = require("@sendbird/chat/openChannel");
10
+ /**
11
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
12
+ * */
10
13
  const useChannelHandler = function (sdk, handlerId, hookHandler) {
11
14
  let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'group';
12
15
  const handlerRef = (0, _react.useRef)(hookHandler);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_openChannel","useChannelHandler","sdk","handlerId","hookHandler","type","arguments","length","undefined","handlerRef","useRef","useLayoutEffect","current","useEffect","handlerMapper","handler","handlerKeys","Object","keys","forEach","key","_handlerRef$current","_handlerRef$current$k","_len","args","Array","_key","call","groupChannel","addGroupChannelHandler","GroupChannelHandler","openChannel","addOpenChannelHandler","OpenChannelHandler","removeGroupChannelHandler","removeOpenChannelHandler","exports"],"sources":["useChannelHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\nimport { OpenChannelHandler } from '@sendbird/chat/openChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\ntype ChannelType = 'open' | 'group';\n\nexport const useChannelHandler = <T extends ChannelType = 'group'>(\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<T extends 'group' ? GroupChannelHandler : OpenChannelHandler>,\n type: T = 'group' as T,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n const handlerMapper = <T extends GroupChannelHandler | OpenChannelHandler>(handler: T): T => {\n const handlerKeys = Object.keys(handler) as (keyof T)[];\n handlerKeys.forEach((key) => {\n // @ts-ignore\n handler[key] = (...args: unknown[]) => handlerRef.current?.[key]?.(...args);\n });\n return handler;\n };\n\n if (type === 'group') {\n sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new GroupChannelHandler()));\n } else if (type === 'open') {\n sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new OpenChannelHandler()));\n }\n\n return () => {\n if (type === 'group') {\n sdk.groupChannel.removeGroupChannelHandler(handlerId);\n } else if (type === 'open') {\n sdk.openChannel.removeOpenChannelHandler(handlerId);\n }\n };\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAKO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAoB,EACpBC,SAAiB,EACjBC,WAAkF,EAE/E;EAAA,IADHC,IAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAEjB,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAACN,WAAW,CAAC;EACtC,IAAAO,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGR,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAwDC,OAAU,IAAQ;MAC3F,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAgB;MACvDC,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;QAC3B;QACAL,OAAO,CAACK,GAAG,CAAC,GAAG;UAAA,IAAAC,mBAAA,EAAAC,qBAAA;UAAA,SAAAC,IAAA,GAAAjB,SAAA,CAAAC,MAAA,EAAIiB,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAApB,SAAA,CAAAoB,IAAA;UAAA;UAAA,QAAAL,mBAAA,GAAgBZ,UAAU,CAACG,OAAO,cAAAS,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAqBD,GAAG,CAAC,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAK,IAAA,CAAAN,mBAAA,EAA4B,GAAGG,IAAI,CAAC;QAAA;MAC7E,CAAC,CAAC;MACF,OAAOT,OAAO;IAChB,CAAC;IAED,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpBH,GAAG,CAAC0B,YAAY,CAACC,sBAAsB,CAAC1B,SAAS,EAAEW,aAAa,CAAC,IAAIgB,iCAAmB,EAAE,CAAC,CAAC;IAC9F,CAAC,MAAM,IAAIzB,IAAI,KAAK,MAAM,EAAE;MAC1BH,GAAG,CAAC6B,WAAW,CAACC,qBAAqB,CAAC7B,SAAS,EAAEW,aAAa,CAAC,IAAImB,+BAAkB,EAAE,CAAC,CAAC;IAC3F;IAEA,OAAO,MAAM;MACX,IAAI5B,IAAI,KAAK,OAAO,EAAE;QACpBH,GAAG,CAAC0B,YAAY,CAACM,yBAAyB,CAAC/B,SAAS,CAAC;MACvD,CAAC,MAAM,IAAIE,IAAI,KAAK,MAAM,EAAE;QAC1BH,GAAG,CAAC6B,WAAW,CAACI,wBAAwB,CAAChC,SAAS,CAAC;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACiC,OAAA,CAAAnC,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_openChannel","useChannelHandler","sdk","handlerId","hookHandler","type","arguments","length","undefined","handlerRef","useRef","useLayoutEffect","current","useEffect","handlerMapper","handler","handlerKeys","Object","keys","forEach","key","_handlerRef$current","_handlerRef$current$k","_len","args","Array","_key","call","groupChannel","addGroupChannelHandler","GroupChannelHandler","openChannel","addOpenChannelHandler","OpenChannelHandler","removeGroupChannelHandler","removeOpenChannelHandler","exports"],"sources":["useChannelHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\nimport { OpenChannelHandler } from '@sendbird/chat/openChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\ntype ChannelType = 'open' | 'group';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useChannelHandler = <T extends ChannelType = 'group'>(\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<T extends 'group' ? GroupChannelHandler : OpenChannelHandler>,\n type: T = 'group' as T,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n const handlerMapper = <T extends GroupChannelHandler | OpenChannelHandler>(handler: T): T => {\n const handlerKeys = Object.keys(handler) as (keyof T)[];\n handlerKeys.forEach((key) => {\n // @ts-ignore\n handler[key] = (...args: unknown[]) => handlerRef.current?.[key]?.(...args);\n });\n return handler;\n };\n\n if (type === 'group') {\n sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new GroupChannelHandler()));\n } else if (type === 'open') {\n sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new OpenChannelHandler()));\n }\n\n return () => {\n if (type === 'group') {\n sdk.groupChannel.removeGroupChannelHandler(handlerId);\n } else if (type === 'open') {\n sdk.openChannel.removeOpenChannelHandler(handlerId);\n }\n };\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAKA;AACA;AACA;AACO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAoB,EACpBC,SAAiB,EACjBC,WAAkF,EAE/E;EAAA,IADHC,IAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAEjB,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAACN,WAAW,CAAC;EACtC,IAAAO,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGR,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAwDC,OAAU,IAAQ;MAC3F,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAgB;MACvDC,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;QAC3B;QACAL,OAAO,CAACK,GAAG,CAAC,GAAG;UAAA,IAAAC,mBAAA,EAAAC,qBAAA;UAAA,SAAAC,IAAA,GAAAjB,SAAA,CAAAC,MAAA,EAAIiB,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAApB,SAAA,CAAAoB,IAAA;UAAA;UAAA,QAAAL,mBAAA,GAAgBZ,UAAU,CAACG,OAAO,cAAAS,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAqBD,GAAG,CAAC,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAK,IAAA,CAAAN,mBAAA,EAA4B,GAAGG,IAAI,CAAC;QAAA;MAC7E,CAAC,CAAC;MACF,OAAOT,OAAO;IAChB,CAAC;IAED,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpBH,GAAG,CAAC0B,YAAY,CAACC,sBAAsB,CAAC1B,SAAS,EAAEW,aAAa,CAAC,IAAIgB,iCAAmB,EAAE,CAAC,CAAC;IAC9F,CAAC,MAAM,IAAIzB,IAAI,KAAK,MAAM,EAAE;MAC1BH,GAAG,CAAC6B,WAAW,CAACC,qBAAqB,CAAC7B,SAAS,EAAEW,aAAa,CAAC,IAAImB,+BAAkB,EAAE,CAAC,CAAC;IAC3F;IAEA,OAAO,MAAM;MACX,IAAI5B,IAAI,KAAK,OAAO,EAAE;QACpBH,GAAG,CAAC0B,YAAY,CAACM,yBAAyB,CAAC/B,SAAS,CAAC;MACvD,CAAC,MAAM,IAAIE,IAAI,KAAK,MAAM,EAAE;QAC1BH,GAAG,CAAC6B,WAAW,CAACI,wBAAwB,CAAChC,SAAS,CAAC;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACiC,OAAA,CAAAnC,iBAAA,GAAAA,iBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReplyType } from '@sendbird/chat/message';\nimport type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.\n *\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.\n *\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> fetch next messages and append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * reset message list with starting point\n * */\n resetWithStartingPoint: (startingPoint: number, callback?: () => void) => void;\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n replyType?: ReplyType;\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: (options?: Pick<UseGroupChannelMessagesOptions, 'startingPoint'>) => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n shouldCountNewMessages?: () => boolean;\n startingPoint?: number;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n onMessagesUpdated?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> noop\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n shouldCountNewMessages?: () => boolean;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ReplyType } from '@sendbird/chat/message';\nimport type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n *\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> fetch next messages and append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * reset message list with starting point\n * */\n resetWithStartingPoint: (startingPoint: number, callback?: () => void) => void;\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n replyType?: ReplyType;\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: (options?: Pick<UseGroupChannelMessagesOptions, 'startingPoint'>) => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n shouldCountNewMessages?: () => boolean;\n startingPoint?: number;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n onMessagesUpdated?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> noop\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n shouldCountNewMessages?: () => boolean;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
@@ -3,7 +3,7 @@ import { useGroupChannelListWithCollection } from './useGroupChannelListWithColl
3
3
  import { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';
4
4
 
5
5
  /**
6
- * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.
6
+ * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.
7
7
  * */
8
8
  export const useGroupChannelList = (sdk, userId, options) => {
9
9
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","useGroupChannelListWithCollection","useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the 'uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,iCAAiC,QAAQ,qCAAqC;AACvF,SAASC,4BAA4B,QAAQ,gCAAgC;;AAE7E;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAET,MAAM,CAACU,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOT,iCAAiC,CAACG,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAOJ,4BAA4B,CAACE,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC"}
1
+ {"version":3,"names":["Logger","useGroupChannelListWithCollection","useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\n/**\n * @deprecated This hook is deprecated and will be replaced by the '@sendbird/uikit-tools' package.\n * */\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,iCAAiC,QAAQ,qCAAqC;AACvF,SAASC,4BAA4B,QAAQ,gCAAgC;;AAE7E;AACA;AACA;AACA,OAAO,MAAMC,mBAAwC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAChF,IAAIF,GAAG,CAACG,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAET,MAAM,CAACU,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOT,iCAAiC,CAACG,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAChE,CAAC,MAAM;IACL,OAAOJ,4BAA4B,CAACE,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC3D;AACF,CAAC"}