@sendbird/uikit-chat-hooks 1.1.1 → 2.0.0-rc.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 (89) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/channel/useActiveGroupChannel.js +1 -1
  3. package/lib/commonjs/channel/useActiveGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js +3 -0
  5. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +26 -27
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +8 -11
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js +3 -0
  11. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +83 -87
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  15. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +32 -20
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  17. package/lib/commonjs/common/useMessageOutgoingStatus.js +8 -4
  18. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  19. package/lib/commonjs/common/usePushTrigger.js +13 -5
  20. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  21. package/lib/commonjs/common/useTotalUnreadChannelCount.js +4 -2
  22. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +1 -1
  23. package/lib/commonjs/common/useTotalUnreadMessageCount.js +12 -15
  24. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  25. package/lib/commonjs/handler/useChannelHandler.js +5 -3
  26. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  27. package/lib/commonjs/handler/useConnectionHandler.js +5 -3
  28. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  29. package/lib/commonjs/handler/useUserEventHandler.js +19 -6
  30. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  31. package/lib/commonjs/types.js.map +1 -1
  32. package/lib/module/channel/useActiveGroupChannel.js +1 -1
  33. package/lib/module/channel/useActiveGroupChannel.js.map +1 -1
  34. package/lib/module/channel/useGroupChannelList/index.js +2 -0
  35. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  36. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +26 -28
  37. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  38. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +8 -12
  39. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  40. package/lib/module/channel/useGroupChannelMessages/index.js +2 -0
  41. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  42. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
  43. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +81 -87
  44. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  45. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +33 -21
  46. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  47. package/lib/module/common/useMessageOutgoingStatus.js +8 -4
  48. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  49. package/lib/module/common/usePushTrigger.js +11 -5
  50. package/lib/module/common/usePushTrigger.js.map +1 -1
  51. package/lib/module/common/useTotalUnreadChannelCount.js +4 -2
  52. package/lib/module/common/useTotalUnreadChannelCount.js.map +1 -1
  53. package/lib/module/common/useTotalUnreadMessageCount.js +12 -17
  54. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  55. package/lib/module/handler/useChannelHandler.js +4 -3
  56. package/lib/module/handler/useChannelHandler.js.map +1 -1
  57. package/lib/module/handler/useConnectionHandler.js +4 -3
  58. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  59. package/lib/module/handler/useUserEventHandler.js +19 -7
  60. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  61. package/lib/module/types.js.map +1 -1
  62. package/lib/typescript/src/channel/useActiveGroupChannel.d.ts +2 -2
  63. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  64. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +4 -4
  65. package/lib/typescript/src/common/useMessageOutgoingStatus.d.ts +2 -2
  66. package/lib/typescript/src/common/usePushTrigger.d.ts +9 -3
  67. package/lib/typescript/src/common/useTotalUnreadMessageCount.d.ts +4 -4
  68. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  69. package/lib/typescript/src/handler/useChannelHandler.d.ts +2 -2
  70. package/lib/typescript/src/handler/useConnectionHandler.d.ts +2 -2
  71. package/lib/typescript/src/handler/useUserEventHandler.d.ts +2 -3
  72. package/lib/typescript/src/types.d.ts +7 -8
  73. package/package.json +5 -5
  74. package/src/channel/useActiveGroupChannel.ts +1 -1
  75. package/src/channel/useGroupChannelList/index.ts +3 -0
  76. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +22 -25
  77. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +10 -15
  78. package/src/channel/useGroupChannelMessages/index.ts +3 -0
  79. package/src/channel/useGroupChannelMessages/reducer.ts +4 -9
  80. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +79 -78
  81. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +59 -34
  82. package/src/common/useMessageOutgoingStatus.ts +8 -13
  83. package/src/common/usePushTrigger.ts +13 -7
  84. package/src/common/useTotalUnreadChannelCount.ts +4 -2
  85. package/src/common/useTotalUnreadMessageCount.ts +14 -25
  86. package/src/handler/useChannelHandler.ts +5 -5
  87. package/src/handler/useConnectionHandler.ts +5 -5
  88. package/src/handler/useUserEventHandler.ts +15 -8
  89. package/src/types.ts +10 -10
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @sendbird/uikit-chat-hooks
2
2
 
3
- React custom hooks with Sendbird Chat SDK v3, made for UIKit
3
+ React custom hooks with Sendbird Chat SDK v4, made for UIKit
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,7 +10,7 @@ var _react = require("react");
10
10
  const useActiveGroupChannel = (sdk, staleChannel) => {
11
11
  const [activeChannel, setActiveChannel] = (0, _react.useState)(() => staleChannel);
12
12
  (0, _react.useEffect)(() => {
13
- sdk.GroupChannel.getChannel(staleChannel.url).then(setActiveChannel);
13
+ sdk.groupChannel.getChannel(staleChannel.url).then(setActiveChannel);
14
14
  }, [staleChannel.url]);
15
15
  return {
16
16
  activeChannel,
@@ -1 +1 @@
1
- {"version":3,"names":["useActiveGroupChannel","sdk","staleChannel","activeChannel","setActiveChannel","useState","useEffect","GroupChannel","getChannel","url","then"],"sources":["useActiveGroupChannel.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { SendbirdChatSDK, SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nexport const useActiveGroupChannel = (sdk: SendbirdChatSDK, staleChannel: SendbirdGroupChannel) => {\n const [activeChannel, setActiveChannel] = useState(() => staleChannel);\n\n useEffect(() => {\n sdk.GroupChannel.getChannel(staleChannel.url).then(setActiveChannel);\n }, [staleChannel.url]);\n\n return { activeChannel, setActiveChannel };\n};\n"],"mappings":";;;;;;;AAAA;;AAIO,MAAMA,qBAAqB,GAAG,CAACC,GAAD,EAAuBC,YAAvB,KAA8D;EACjG,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,IAAAC,eAAA,EAAS,MAAMH,YAAf,CAA1C;EAEA,IAAAI,gBAAA,EAAU,MAAM;IACdL,GAAG,CAACM,YAAJ,CAAiBC,UAAjB,CAA4BN,YAAY,CAACO,GAAzC,EAA8CC,IAA9C,CAAmDN,gBAAnD;EACD,CAFD,EAEG,CAACF,YAAY,CAACO,GAAd,CAFH;EAIA,OAAO;IAAEN,aAAF;IAAiBC;EAAjB,CAAP;AACD,CARM"}
1
+ {"version":3,"names":["useActiveGroupChannel","sdk","staleChannel","activeChannel","setActiveChannel","useState","useEffect","groupChannel","getChannel","url","then"],"sources":["useActiveGroupChannel.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { SendbirdChatSDK, SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nexport const useActiveGroupChannel = (sdk: SendbirdChatSDK, staleChannel: SendbirdGroupChannel) => {\n const [activeChannel, setActiveChannel] = useState(() => staleChannel);\n\n useEffect(() => {\n sdk.groupChannel.getChannel(staleChannel.url).then(setActiveChannel);\n }, [staleChannel.url]);\n\n return { activeChannel, setActiveChannel };\n};\n"],"mappings":";;;;;;;AAAA;;AAIO,MAAMA,qBAAqB,GAAG,CAACC,GAAD,EAAuBC,YAAvB,KAA8D;EACjG,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,IAAAC,eAAA,EAAS,MAAMH,YAAf,CAA1C;EAEA,IAAAI,gBAAA,EAAU,MAAM;IACdL,GAAG,CAACM,YAAJ,CAAiBC,UAAjB,CAA4BN,YAAY,CAACO,GAAzC,EAA8CC,IAA9C,CAAmDN,gBAAnD;EACD,CAFD,EAEG,CAACF,YAAY,CAACO,GAAd,CAFH;EAIA,OAAO;IAAEN,aAAF;IAAiBC;EAAjB,CAAP;AACD,CARM"}
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useGroupChannelList = void 0;
7
7
 
8
+ var _uikitUtils = require("@sendbird/uikit-utils");
9
+
8
10
  var _useGroupChannelListWithCollection = require("./useGroupChannelListWithCollection");
9
11
 
10
12
  var _useGroupChannelListWithQuery = require("./useGroupChannelListWithQuery");
11
13
 
12
14
  const useGroupChannelList = (sdk, userId, options) => {
13
15
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
16
+ if (options !== null && options !== void 0 && options.queryCreator) _uikitUtils.Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
14
17
  return (0, _useGroupChannelListWithCollection.useGroupChannelListWithCollection)(sdk, userId, options);
15
18
  } else {
16
19
  return (0, _useGroupChannelListWithQuery.useGroupChannelListWithQuery)(sdk, userId, options);
@@ -1 +1 @@
1
- {"version":3,"names":["useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","useGroupChannelListWithCollection","useGroupChannelListWithQuery"],"sources":["index.ts"],"sourcesContent":["import type { UseGroupChannelList } from '../../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AAEO,MAAMA,mBAAwC,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,OAAd,KAA0B;EAChF,IAAIF,GAAG,CAACG,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,OAAO,IAAAC,oEAAA,EAAkCL,GAAlC,EAAuCC,MAAvC,EAA+CC,OAA/C,CAAP;EACD,CAFD,MAEO;IACL,OAAO,IAAAI,0DAAA,EAA6BN,GAA7B,EAAkCC,MAAlC,EAA0CC,OAA1C,CAAP;EACD;AACF,CANM"}
1
+ {"version":3,"names":["useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelListWithCollection","useGroupChannelListWithQuery"],"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\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;;AAGA;;AACA;;AAEO,MAAMA,mBAAwC,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,OAAd,KAA0B;EAChF,IAAIF,GAAG,CAACG,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,IAAIF,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEG,YAAb,EAA2BC,kBAAA,CAAOC,IAAP,CAAY,oEAAZ;IAC3B,OAAO,IAAAC,oEAAA,EAAkCR,GAAlC,EAAuCC,MAAvC,EAA+CC,OAA/C,CAAP;EACD,CAHD,MAGO;IACL,OAAO,IAAAO,0DAAA,EAA6BT,GAA7B,EAAkCC,MAAlC,EAA0CC,OAA1C,CAAP;EACD;AACF,CAPM"}
@@ -7,6 +7,8 @@ exports.useGroupChannelListWithCollection = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
+ var _groupChannel = require("@sendbird/chat/groupChannel");
11
+
10
12
  var _uikitUtils = require("@sendbird/uikit-utils");
11
13
 
12
14
  var _useAppFeatures = require("../../common/useAppFeatures");
@@ -20,15 +22,13 @@ const HOOK_NAME = 'useGroupChannelListWithCollection';
20
22
  const createGroupChannelListCollection = (sdk, collectionCreator) => {
21
23
  const passedCollection = collectionCreator === null || collectionCreator === void 0 ? void 0 : collectionCreator();
22
24
  if (passedCollection) return passedCollection;
23
- const defaultOptions = {
24
- includeEmpty: false,
25
- limit: 5,
26
- order: sdk.GroupChannelCollection.GroupChannelOrder.LATEST_LAST_MESSAGE
27
- };
28
- const collectionBuilder = sdk.GroupChannel.createGroupChannelCollection();
29
- const groupChannelFilter = new sdk.GroupChannelFilter();
30
- groupChannelFilter.includeEmpty = defaultOptions.includeEmpty;
31
- return collectionBuilder.setFilter(groupChannelFilter).setLimit(defaultOptions.limit).setOrder(defaultOptions.order).build();
25
+ const filter = new _groupChannel.GroupChannelFilter();
26
+ filter.includeEmpty = false;
27
+ return sdk.groupChannel.createGroupChannelCollection({
28
+ filter,
29
+ limit: 20,
30
+ order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
31
+ });
32
32
  };
33
33
 
34
34
  const useGroupChannelListWithCollection = (sdk, userId, options) => {
@@ -50,9 +50,12 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
50
50
  const updateChannelsAndMarkAsDelivered = markAsDelivered => {
51
51
  var _collectionRef$curren;
52
52
 
53
- const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channelList) ?? [];
53
+ const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channels) ?? [];
54
54
  setChannels(channels, true);
55
- if (markAsDelivered && deliveryReceiptEnabled) channels.forEach(channel => sdk.markAsDelivered(channel.url));
55
+
56
+ if (markAsDelivered && deliveryReceiptEnabled) {
57
+ channels.forEach(channel => (0, _uikitUtils.confirmAndMarkAsDelivered)(sdk, channel));
58
+ }
56
59
  };
57
60
 
58
61
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
@@ -61,31 +64,27 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
61
64
  if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.dispose();
62
65
 
63
66
  if (uid) {
64
- var _collectionRef$curren3, _collectionRef$curren5;
67
+ var _collectionRef$curren3, _collectionRef$curren4;
65
68
 
66
69
  collectionRef.current = createGroupChannelListCollection(sdk, options === null || options === void 0 ? void 0 : options.collectionCreator);
67
-
68
- if ((_collectionRef$curren3 = collectionRef.current) !== null && _collectionRef$curren3 !== void 0 && _collectionRef$curren3.hasMore) {
69
- var _collectionRef$curren4;
70
-
71
- await ((_collectionRef$curren4 = collectionRef.current) === null || _collectionRef$curren4 === void 0 ? void 0 : _collectionRef$curren4.loadMore());
72
- updateChannelsAndMarkAsDelivered(true);
73
- }
74
-
75
- (_collectionRef$curren5 = collectionRef.current) === null || _collectionRef$curren5 === void 0 ? void 0 : _collectionRef$curren5.setGroupChannelCollectionHandler({
76
- onChannelsAdded() {
70
+ (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.setGroupChannelCollectionHandler({
71
+ onChannelsAdded: () => {
77
72
  updateChannelsAndMarkAsDelivered(true);
78
73
  },
79
-
80
- onChannelsUpdated() {
74
+ onChannelsUpdated: () => {
81
75
  updateChannelsAndMarkAsDelivered(true);
82
76
  },
83
-
84
- onChannelsDeleted() {
77
+ onChannelsDeleted: () => {
85
78
  updateChannelsAndMarkAsDelivered(false);
86
79
  }
87
-
88
80
  });
81
+
82
+ if ((_collectionRef$curren4 = collectionRef.current) !== null && _collectionRef$curren4 !== void 0 && _collectionRef$curren4.hasMore) {
83
+ var _collectionRef$curren5;
84
+
85
+ await ((_collectionRef$curren5 = collectionRef.current) === null || _collectionRef$curren5 === void 0 ? void 0 : _collectionRef$curren5.loadMore());
86
+ updateChannelsAndMarkAsDelivered(true);
87
+ }
89
88
  }
90
89
  });
91
90
  (0, _react.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["HOOK_NAME","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","defaultOptions","includeEmpty","limit","order","GroupChannelCollection","GroupChannelOrder","LATEST_LAST_MESSAGE","collectionBuilder","GroupChannel","createGroupChannelCollection","groupChannelFilter","GroupChannelFilter","setFilter","setLimit","setOrder","build","useGroupChannelListWithCollection","userId","options","id","useUniqId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","channels","current","channelList","forEach","channel","url","init","useFreshCallback","uid","dispose","hasMore","loadMore","setGroupChannelCollectionHandler","onChannelsAdded","onChannelsUpdated","onChannelsDeleted","useEffect","useAsyncEffect","useChannelHandler","onUserBanned","user","isMe","refresh","next"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport type { SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback, useUniqId } 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 HOOK_NAME = 'useGroupChannelListWithCollection';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const defaultOptions = {\n includeEmpty: false,\n limit: 5,\n order: sdk.GroupChannelCollection.GroupChannelOrder.LATEST_LAST_MESSAGE,\n };\n const collectionBuilder = sdk.GroupChannel.createGroupChannelCollection();\n const groupChannelFilter = new sdk.GroupChannelFilter();\n groupChannelFilter.includeEmpty = defaultOptions.includeEmpty;\n\n return collectionBuilder\n .setFilter(groupChannelFilter)\n .setLimit(defaultOptions.limit)\n .setOrder(defaultOptions.order)\n .build();\n};\n\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const id = useUniqId(HOOK_NAME);\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, setChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (markAsDelivered: boolean) => {\n const channels = collectionRef.current?.channelList ?? [];\n setChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) channels.forEach((channel) => sdk.markAsDelivered(channel.url));\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 if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded() {\n updateChannelsAndMarkAsDelivered(true);\n },\n onChannelsUpdated() {\n updateChannelsAndMarkAsDelivered(true);\n },\n onChannelsDeleted() {\n updateChannelsAndMarkAsDelivered(false);\n },\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 }, [init, userId]);\n\n useChannelHandler(sdk, `${HOOK_NAME}_${id}`, {\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":["HOOK_NAME","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","id","useUniqId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","channels","current","forEach","channel","confirmAndMarkAsDelivered","init","useFreshCallback","uid","dispose","setGroupChannelCollectionHandler","onChannelsAdded","onChannelsUpdated","onChannelsDeleted","hasMore","loadMore","useEffect","useAsyncEffect","useChannelHandler","onUserBanned","user","isMe","url","refresh","next"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqId } 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 HOOK_NAME = 'useGroupChannelListWithCollection';\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 id = useUniqId(HOOK_NAME);\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, setChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (markAsDelivered: boolean) => {\n const channels = collectionRef.current?.channels ?? [];\n setChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n channels.forEach((channel) => confirmAndMarkAsDelivered(sdk, channel));\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: () => {\n updateChannelsAndMarkAsDelivered(true);\n },\n onChannelsUpdated: () => {\n updateChannelsAndMarkAsDelivered(true);\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 }, [init, userId]);\n\n useChannelHandler(sdk, `${HOOK_NAME}_${id}`, {\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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"}
@@ -7,6 +7,8 @@ exports.useGroupChannelListWithQuery = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
+ var _groupChannel = require("@sendbird/chat/groupChannel");
11
+
10
12
  var _uikitUtils = require("@sendbird/uikit-utils");
11
13
 
12
14
  var _useAppFeatures = require("../../common/useAppFeatures");
@@ -20,16 +22,11 @@ const HOOK_NAME = 'useGroupChannelListWithQuery';
20
22
  const createGroupChannelListQuery = (sdk, queryCreator) => {
21
23
  const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
22
24
  if (passedQuery) return passedQuery;
23
- const defaultOptions = {
25
+ return sdk.groupChannel.createMyGroupChannelListQuery({
24
26
  includeEmpty: false,
25
27
  limit: 20,
26
- order: 'latest_last_message'
27
- };
28
- const defaultQuery = sdk.GroupChannel.createMyGroupChannelListQuery();
29
- defaultQuery.limit = defaultOptions.limit;
30
- defaultQuery.order = defaultOptions.order;
31
- defaultQuery.includeEmpty = defaultOptions.includeEmpty;
32
- return defaultQuery;
28
+ order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
29
+ });
33
30
  };
34
31
 
35
32
  const useGroupChannelListWithQuery = (sdk, userId, options) => {
@@ -51,7 +48,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
51
48
 
52
49
  const updateChannelsAndMarkAsDelivered = channels => {
53
50
  updateChannels(channels);
54
- if (deliveryReceiptEnabled) channels.forEach(channel => sdk.markAsDelivered(channel.url));
51
+ if (deliveryReceiptEnabled) channels.forEach(channel => (0, _uikitUtils.confirmAndMarkAsDelivered)(sdk, channel));
55
52
  };
56
53
 
57
54
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
@@ -64,7 +61,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
64
61
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
65
62
  const channels = await queryRef.current.next();
66
63
  setChannels(channels, true);
67
- if (deliveryReceiptEnabled) channels.forEach(channel => sdk.markAsDelivered(channel.url));
64
+ if (deliveryReceiptEnabled) channels.forEach(channel => (0, _uikitUtils.confirmAndMarkAsDelivered)(sdk, channel));
68
65
  }
69
66
  }
70
67
  });
@@ -102,7 +99,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
102
99
  if ((_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
103
100
  const channels = await queryRef.current.next();
104
101
  setChannels(channels, false);
105
- if (deliveryReceiptEnabled) channels.forEach(channel => sdk.markAsDelivered(channel.url));
102
+ if (deliveryReceiptEnabled) channels.forEach(channel => (0, _uikitUtils.confirmAndMarkAsDelivered)(sdk, channel));
106
103
  }
107
104
  });
108
105
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["HOOK_NAME","createGroupChannelListQuery","sdk","queryCreator","passedQuery","defaultOptions","includeEmpty","limit","order","defaultQuery","GroupChannel","createMyGroupChannelListQuery","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","forEach","channel","markAsDelivered","url","init","useFreshCallback","uid","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","onUserJoined","onUserLeft","user","isMe","onUserBanned","refresh"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\nimport type Sendbird from 'sendbird';\n\nimport type { SendbirdChannel, SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback } 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 HOOK_NAME = 'useGroupChannelListWithQuery';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n const defaultOptions = {\n includeEmpty: false,\n limit: 20,\n order: 'latest_last_message',\n } as const;\n const defaultQuery = sdk.GroupChannel.createMyGroupChannelListQuery();\n defaultQuery.limit = defaultOptions.limit;\n defaultQuery.order = defaultOptions.order;\n defaultQuery.includeEmpty = defaultOptions.includeEmpty;\n return defaultQuery;\n};\n\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<Sendbird.GroupChannelListQuery>();\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n setChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) channels.forEach((channel) => sdk.markAsDelivered(channel.url));\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n setChannels(channels, true);\n if (deliveryReceiptEnabled) channels.forEach((channel) => sdk.markAsDelivered(channel.url));\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n useChannelHandler(sdk, HOOK_NAME, {\n onChannelChanged: (channel) => updateChannelsAndMarkAsDelivered([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannelsAndMarkAsDelivered([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n setChannels(channels, false);\n if (deliveryReceiptEnabled) channels.forEach((channel) => sdk.markAsDelivered(channel.url));\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;AACA;;AAEA;;AAEA,MAAMA,SAAS,GAAG,8BAAlB;;AAEA,MAAMC,2BAA2B,GAAG,CAClCC,GADkC,EAElCC,YAFkC,KAG/B;EACH,MAAMC,WAAW,GAAGD,YAAH,aAAGA,YAAH,uBAAGA,YAAY,EAAhC;EACA,IAAIC,WAAJ,EAAiB,OAAOA,WAAP;EAEjB,MAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,KADO;IAErBC,KAAK,EAAE,EAFc;IAGrBC,KAAK,EAAE;EAHc,CAAvB;EAKA,MAAMC,YAAY,GAAGP,GAAG,CAACQ,YAAJ,CAAiBC,6BAAjB,EAArB;EACAF,YAAY,CAACF,KAAb,GAAqBF,cAAc,CAACE,KAApC;EACAE,YAAY,CAACD,KAAb,GAAqBH,cAAc,CAACG,KAApC;EACAC,YAAY,CAACH,YAAb,GAA4BD,cAAc,CAACC,YAA3C;EACA,OAAOG,YAAP;AACD,CAjBD;;AAmBO,MAAMG,4BAAiD,GAAG,CAACV,GAAD,EAAMW,MAAN,EAAcC,OAAd,KAA0B;EACzF,MAAM;IAAEC;EAAF,IAA6B,IAAAC,8BAAA,EAAed,GAAf,CAAnC;EACA,MAAMe,QAAQ,GAAG,IAAAC,aAAA,GAAjB;EAEA,MAAM;IACJC,OADI;IAEJC,aAFI;IAGJC,UAHI;IAIJC,cAJI;IAKJC,WALI;IAMJC,cANI;IAOJC,gBAPI;IAQJC,aARI;IASJC;EATI,IAUF,IAAAC,mCAAA,GAVJ;;EAYA,MAAMC,gCAAgC,GAAIC,QAAD,IAAiC;IACxER,cAAc,CAACQ,QAAD,CAAd;IACA,IAAIf,sBAAJ,EAA4Be,QAAQ,CAACC,OAAT,CAAkBC,OAAD,IAAa9B,GAAG,CAAC+B,eAAJ,CAAoBD,OAAO,CAACE,GAA5B,CAA9B;EAC7B,CAHD;;EAKA,MAAMC,IAAI,GAAG,IAAAC,4BAAA,EAAiB,MAAOC,GAAP,IAAwB;IACpD,IAAIA,GAAJ,EAAS;MAAA;;MACPpB,QAAQ,CAACqB,OAAT,GAAmBrC,2BAA2B,CAACC,GAAD,EAAMY,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEX,YAAf,CAA9C;MACAwB,WAAW,sBAACV,QAAQ,CAACqB,OAAV,sDAAC,kBAAkB9B,KAAnB,CAAX;;MAEA,0BAAIS,QAAQ,CAACqB,OAAb,+CAAI,mBAAkBC,OAAtB,EAA+B;QAC7B,MAAMT,QAAQ,GAAG,MAAMb,QAAQ,CAACqB,OAAT,CAAiBE,IAAjB,EAAvB;QAEAjB,WAAW,CAACO,QAAD,EAAW,IAAX,CAAX;QACA,IAAIf,sBAAJ,EAA4Be,QAAQ,CAACC,OAAT,CAAkBC,OAAD,IAAa9B,GAAG,CAAC+B,eAAJ,CAAoBD,OAAO,CAACE,GAA5B,CAA9B;MAC7B;IACF;EACF,CAZY,CAAb;EAcA,IAAAO,0BAAA,EAAe,YAAY;IACzBf,aAAa,CAAC,IAAD,CAAb;IACA,MAAMS,IAAI,CAACtB,MAAD,CAAV;IACAa,aAAa,CAAC,KAAD,CAAb;EACD,CAJD,EAIG,CAACS,IAAD,EAAOtB,MAAP,CAJH;EAMA,IAAA6B,oCAAA,EAAkBxC,GAAlB,EAAuBF,SAAvB,EAAkC;IAChC2C,gBAAgB,EAAGX,OAAD,IAAaH,gCAAgC,CAAC,CAACG,OAAD,CAAD,CAD/B;IAEhCY,eAAe,EAAGZ,OAAD,IAAaV,cAAc,CAAC,CAACU,OAAD,CAAD,CAFZ;IAGhCa,iBAAiB,EAAGb,OAAD,IAAaV,cAAc,CAAC,CAACU,OAAD,CAAD,CAHd;IAIhCc,2BAA2B,EAAGhB,QAAD,IAAcR,cAAc,CAACQ,QAAD,CAJzB;IAKhCiB,gBAAgB,EAAGb,GAAD,IAASV,cAAc,CAAC,CAACU,GAAD,CAAD,CALT;IAMhCc,YAAY,EAAGhB,OAAD,IAAaH,gCAAgC,CAAC,CAACG,OAAD,CAAD,CAN3B;IAOhCiB,UAAU,EAAE,CAACjB,OAAD,EAAUkB,IAAV,KAAmB;MAC7B,MAAMC,IAAI,GAAGD,IAAI,CAACrC,MAAL,KAAgBA,MAA7B;MACA,IAAIsC,IAAJ,EAAU3B,cAAc,CAAC,CAACQ,OAAO,CAACE,GAAT,CAAD,CAAd,CAAV,KACKL,gCAAgC,CAAC,CAACG,OAAD,CAAD,CAAhC;IACN,CAX+B;;IAYhCoB,YAAY,CAACpB,OAAD,EAAUkB,IAAV,EAAgB;MAC1B,MAAMC,IAAI,GAAGD,IAAI,CAACrC,MAAL,KAAgBA,MAA7B;MACA,IAAIsC,IAAJ,EAAU3B,cAAc,CAAC,CAACQ,OAAO,CAACE,GAAT,CAAD,CAAd,CAAV,KACKL,gCAAgC,CAAC,CAACG,OAAD,CAAD,CAAhC;IACN;;EAhB+B,CAAlC;EAmBA,MAAMqB,OAAO,GAAG,IAAAjB,4BAAA,EAAiB,YAAY;IAC3CX,gBAAgB,CAAC,IAAD,CAAhB;IACA,MAAMU,IAAI,CAACtB,MAAD,CAAV;IACAY,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAJe,CAAhB;EAMA,MAAMe,IAAI,GAAG,IAAAJ,4BAAA,EAAiB,YAAY;IAAA;;IACxC,0BAAInB,QAAQ,CAACqB,OAAb,+CAAI,mBAAkBC,OAAtB,EAA+B;MAC7B,MAAMT,QAAQ,GAAG,MAAMb,QAAQ,CAACqB,OAAT,CAAiBE,IAAjB,EAAvB;MACAjB,WAAW,CAACO,QAAD,EAAW,KAAX,CAAX;MACA,IAAIf,sBAAJ,EAA4Be,QAAQ,CAACC,OAAT,CAAkBC,OAAD,IAAa9B,GAAG,CAAC+B,eAAJ,CAAoBD,OAAO,CAACE,GAA5B,CAA9B;IAC7B;EACF,CANY,CAAb;EAQA,OAAO;IACLf,OADK;IAELC,aAFK;IAGLiC,OAHK;IAILhC,UAJK;IAKLmB;EALK,CAAP;AAOD,CAjFM"}
1
+ {"version":3,"names":["HOOK_NAME","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","forEach","channel","confirmAndMarkAsDelivered","init","useFreshCallback","uid","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","refresh"],"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 } 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 HOOK_NAME = 'useGroupChannelListWithQuery';\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\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n setChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) channels.forEach((channel) => confirmAndMarkAsDelivered(sdk, channel));\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n setChannels(channels, true);\n if (deliveryReceiptEnabled) channels.forEach((channel) => confirmAndMarkAsDelivered(sdk, channel));\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n useChannelHandler(sdk, HOOK_NAME, {\n onChannelChanged: (channel) => updateChannelsAndMarkAsDelivered([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannelsAndMarkAsDelivered([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n setChannels(channels, false);\n if (deliveryReceiptEnabled) channels.forEach((channel) => confirmAndMarkAsDelivered(sdk, channel));\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useGroupChannelMessages = void 0;
7
7
 
8
+ var _uikitUtils = require("@sendbird/uikit-utils");
9
+
8
10
  var _useGroupChannelMessagesWithCollection = require("./useGroupChannelMessagesWithCollection");
9
11
 
10
12
  var _useGroupChannelMessagesWithQuery = require("./useGroupChannelMessagesWithQuery");
11
13
 
12
14
  const useGroupChannelMessages = (sdk, channel, userId, options) => {
13
15
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
16
+ if (options !== null && options !== void 0 && options.queryCreator) _uikitUtils.Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
14
17
  return (0, _useGroupChannelMessagesWithCollection.useGroupChannelMessagesWithCollection)(sdk, channel, userId, options);
15
18
  } else {
16
19
  return (0, _useGroupChannelMessagesWithQuery.useGroupChannelMessagesWithQuery)(sdk, channel, userId, options);
@@ -1 +1 @@
1
- {"version":3,"names":["useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery"],"sources":["index.ts"],"sourcesContent":["import type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AAEO,MAAMA,uBAAgD,GAAG,CAACC,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,KAAmC;EACjG,IAAIH,GAAG,CAACI,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,OAAO,IAAAC,4EAAA,EAAsCN,GAAtC,EAA2CC,OAA3C,EAAoDC,MAApD,EAA4DC,OAA5D,CAAP;EACD,CAFD,MAEO;IACL,OAAO,IAAAI,kEAAA,EAAiCP,GAAjC,EAAsCC,OAAtC,EAA+CC,MAA/C,EAAuDC,OAAvD,CAAP;EACD;AACF,CANM"}
1
+ {"version":3,"names":["useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n"],"mappings":";;;;;;;AAAA;;AAGA;;AACA;;AAEO,MAAMA,uBAAgD,GAAG,CAACC,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,KAAmC;EACjG,IAAIH,GAAG,CAACI,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,IAAIF,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEG,YAAb,EAA2BC,kBAAA,CAAOC,IAAP,CAAY,oEAAZ;IAC3B,OAAO,IAAAC,4EAAA,EAAsCT,GAAtC,EAA2CC,OAA3C,EAAoDC,MAApD,EAA4DC,OAA5D,CAAP;EACD,CAHD,MAGO;IACL,OAAO,IAAAO,kEAAA,EAAiCV,GAAjC,EAAsCC,OAAtC,EAA+CC,MAA/C,EAAuDC,OAAvD,CAAP;EACD;AACF,CAPM"}
@@ -1 +1 @@
1
- {"version":3,"names":["defaultReducer","action","draft","type","key","value","status","messageMap","arrayToMapWithGetter","messages","getMessageUniqId","clearPrev","filter","m","isFileMessage","isUserMessage","Boolean","reqId","sendingStatus","isMyMessage","currentUserId","forEach","messageIds","msgId","reqIds","useGroupChannelMessagesReducer","userId","sortComparator","loading","refreshing","nextMessageMap","dispatch","useReducer","updateMessages","deleteMessages","updateNextMessages","deleteNextMessages","updateLoading","updateRefreshing","useIIFE","Object","values","sort","nextMessages","newMessagesFromMembers","msg","isNewMessage"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type {\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n} from '@sendbird/uikit-utils';\nimport { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessagesOptions } from '../../types';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_next_messages';\n value: { messages: SendbirdBaseMessage[]; clearPrev: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_next_messages';\n value: { messageIds: number[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdMessage>;\n nextMessageMap: Record<string, SendbirdMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n\n return draft;\n }\n case 'update_messages':\n case 'update_next_messages': {\n const key = action.type === 'update_messages' ? 'messageMap' : 'nextMessageMap';\n const messageMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);\n if (action.value.clearPrev) {\n draft[key] = messageMap;\n } else {\n draft[key] = { ...draft[key], ...messageMap };\n\n // NOTE: Replace pending message to succeeded message\n action.value.messages\n .filter((m): m is SendbirdUserMessage | SendbirdFileMessage => {\n return (\n (m.isFileMessage() || m.isUserMessage()) &&\n Boolean(draft[key][m.reqId]) &&\n m.sendingStatus === 'succeeded' &&\n isMyMessage(m, action.value.currentUserId)\n );\n })\n .forEach((m) => delete draft[key][m.reqId]);\n }\n\n if (action.type === 'update_messages') {\n draft['nextMessageMap'] = {};\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_next_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => delete draft[key][msgId]);\n action.value.reqIds.forEach((reqId) => delete draft[key][reqId]);\n\n return draft;\n }\n }\n};\n\nexport const useGroupChannelMessagesReducer = (\n userId?: string,\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'],\n) => {\n const [{ loading, refreshing, messageMap, nextMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n nextMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNextMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_next_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteNextMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_next_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Object.values(messageMap).sort(sortComparator);\n return Object.values(messageMap);\n });\n const nextMessages = Object.values(nextMessageMap);\n const newMessagesFromMembers = nextMessages.filter((msg) => isNewMessage(msg, userId));\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n updateNextMessages,\n deleteMessages,\n deleteNextMessages,\n\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["defaultReducer","action","draft","type","key","value","status","messageMap","arrayToMapWithGetter","messages","getMessageUniqId","clearPrev","filter","m","isFileMessage","isUserMessage","Boolean","reqId","sendingStatus","isMyMessage","currentUserId","forEach","messageIds","msgId","reqIds","useGroupChannelMessagesReducer","userId","sortComparator","loading","refreshing","nextMessageMap","dispatch","useReducer","updateMessages","deleteMessages","updateNextMessages","deleteNextMessages","updateLoading","updateRefreshing","useIIFE","Object","values","sort","nextMessages","newMessagesFromMembers","msg","isNewMessage"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdBaseMessage, SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessagesOptions } from '../../types';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_messages' | 'update_next_messages';\n value: { messages: SendbirdBaseMessage[]; clearPrev: boolean; currentUserId?: string };\n }\n | {\n type: 'delete_messages' | 'delete_next_messages';\n value: { messageIds: number[]; reqIds: string[] };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n messageMap: Record<string, SendbirdBaseMessage>;\n nextMessageMap: Record<string, SendbirdBaseMessage>;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n\n return draft;\n }\n case 'update_messages':\n case 'update_next_messages': {\n const key = action.type === 'update_messages' ? 'messageMap' : ('nextMessageMap' as const);\n const messageMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);\n if (action.value.clearPrev) {\n draft[key] = messageMap;\n } else {\n draft[key] = { ...draft[key], ...messageMap };\n\n // NOTE: Replace pending message to succeeded message\n action.value.messages\n .filter((m): m is SendbirdUserMessage | SendbirdFileMessage => {\n return (\n (m.isFileMessage() || m.isUserMessage()) &&\n Boolean(draft[key][m.reqId]) &&\n m.sendingStatus === 'succeeded' &&\n isMyMessage(m, action.value.currentUserId)\n );\n })\n .forEach((m) => delete draft[key][m.reqId]);\n }\n\n if (action.type === 'update_messages') {\n draft['nextMessageMap'] = {};\n }\n\n return draft;\n }\n case 'delete_messages':\n case 'delete_next_messages': {\n const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';\n draft[key] = { ...draft[key] };\n action.value.messageIds.forEach((msgId) => delete draft[key][msgId]);\n action.value.reqIds.forEach((reqId) => delete draft[key][reqId]);\n\n return draft;\n }\n }\n};\n\nexport const useGroupChannelMessagesReducer = (\n userId?: string,\n sortComparator?: UseGroupChannelMessagesOptions['sortComparator'],\n) => {\n const [{ loading, refreshing, messageMap, nextMessageMap }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n messageMap: {},\n nextMessageMap: {},\n });\n\n const updateMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_messages', value: { messageIds, reqIds } });\n };\n const updateNextMessages = (messages: SendbirdBaseMessage[], clearPrev: boolean, currentUserId?: string) => {\n dispatch({ type: 'update_next_messages', value: { messages, clearPrev, currentUserId } });\n };\n const deleteNextMessages = (messageIds: number[], reqIds: string[]) => {\n dispatch({ type: 'delete_next_messages', value: { messageIds, reqIds } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const messages = useIIFE(() => {\n if (sortComparator) return Object.values(messageMap).sort(sortComparator);\n return Object.values(messageMap);\n });\n const nextMessages = Object.values(nextMessageMap);\n const newMessagesFromMembers = nextMessages.filter((msg) => isNewMessage(msg, userId));\n\n return {\n updateLoading,\n updateRefreshing,\n updateMessages,\n updateNextMessages,\n deleteMessages,\n deleteNextMessages,\n\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n };\n};\n"],"mappings":"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"}