@sendbird/uikit-chat-hooks 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/channel/useGroupChannel.js +0 -4
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js +0 -5
  5. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/reducer.js +12 -29
  7. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -22
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -18
  11. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/index.js +0 -5
  13. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +18 -28
  15. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +8 -37
  17. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  18. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +21 -49
  19. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannel.js +0 -4
  21. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  22. package/lib/commonjs/channel/useOpenChannelList/index.js +0 -3
  23. package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
  24. package/lib/commonjs/channel/useOpenChannelList/reducer.js +2 -21
  25. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  26. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -18
  27. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  28. package/lib/commonjs/channel/useOpenChannelMessages/index.js +0 -3
  29. package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
  30. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +18 -28
  31. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +1 -1
  32. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -30
  33. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  34. package/lib/commonjs/common/useAppFeatures.js +0 -3
  35. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  36. package/lib/commonjs/common/useMessageOutgoingStatus.js +0 -11
  37. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  38. package/lib/commonjs/common/usePushTrigger.js +0 -6
  39. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  40. package/lib/commonjs/common/useTotalUnreadMessageCount.js +0 -7
  41. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  42. package/lib/commonjs/common/useUserList.js +3 -18
  43. package/lib/commonjs/common/useUserList.js.map +1 -1
  44. package/lib/commonjs/handler/useChannelHandler.js +15 -41
  45. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  46. package/lib/commonjs/handler/useConnectionHandler.js +14 -11
  47. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  48. package/lib/commonjs/handler/useUserEventHandler.js +0 -8
  49. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  50. package/lib/commonjs/index.js +0 -23
  51. package/lib/commonjs/index.js.map +1 -1
  52. package/lib/commonjs/model/CustomQuery.js +0 -6
  53. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  54. package/lib/module/channel/useGroupChannel.js.map +1 -1
  55. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  56. package/lib/module/channel/useGroupChannelList/reducer.js +12 -26
  57. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  58. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -15
  59. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  60. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -11
  61. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  62. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  63. package/lib/module/channel/useGroupChannelMessages/reducer.js +18 -25
  64. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
  65. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +9 -30
  66. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  67. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +23 -46
  68. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  69. package/lib/module/channel/useOpenChannel.js.map +1 -1
  70. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  71. package/lib/module/channel/useOpenChannelList/reducer.js +2 -18
  72. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  73. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -13
  74. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  75. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  76. package/lib/module/channel/useOpenChannelMessages/reducer.js +18 -25
  77. package/lib/module/channel/useOpenChannelMessages/reducer.js.map +1 -1
  78. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -25
  79. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  80. package/lib/module/common/useAppFeatures.js.map +1 -1
  81. package/lib/module/common/useMessageOutgoingStatus.js +0 -6
  82. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  83. package/lib/module/common/usePushTrigger.js.map +1 -1
  84. package/lib/module/common/useTotalUnreadMessageCount.js +0 -1
  85. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  86. package/lib/module/common/useUserList.js +3 -13
  87. package/lib/module/common/useUserList.js.map +1 -1
  88. package/lib/module/handler/useChannelHandler.js +15 -35
  89. package/lib/module/handler/useChannelHandler.js.map +1 -1
  90. package/lib/module/handler/useConnectionHandler.js +15 -6
  91. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  92. package/lib/module/handler/useUserEventHandler.js +0 -2
  93. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  94. package/lib/module/index.js +0 -1
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/model/CustomQuery.js +0 -4
  97. package/lib/module/model/CustomQuery.js.map +1 -1
  98. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  99. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +2 -2
  100. package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +2 -2
  101. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  102. package/lib/typescript/src/handler/useChannelHandler.d.ts +1 -1
  103. package/lib/typescript/src/handler/useConnectionHandler.d.ts +1 -2
  104. package/lib/typescript/src/index.d.ts +0 -1
  105. package/package.json +15 -9
  106. package/src/channel/useGroupChannelList/reducer.ts +11 -7
  107. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +1 -1
  108. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +1 -1
  109. package/src/channel/useGroupChannelMessages/reducer.ts +11 -10
  110. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +69 -72
  111. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +32 -42
  112. package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -1
  113. package/src/channel/useOpenChannelMessages/reducer.ts +11 -10
  114. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +1 -1
  115. package/src/common/useUserList.ts +2 -2
  116. package/src/handler/useChannelHandler.ts +11 -24
  117. package/src/handler/useConnectionHandler.ts +11 -5
  118. package/src/index.ts +0 -1
  119. package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
  120. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
  121. package/lib/module/common/useTotalUnreadChannelCount.js +0 -17
  122. package/lib/module/common/useTotalUnreadChannelCount.js.map +0 -1
  123. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
  124. package/src/common/useTotalUnreadChannelCount.ts +0 -26
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # @sendbird/uikit-chat-hooks
2
2
 
3
- React custom hooks with Sendbird Chat SDK v4, made for UIKit
3
+ A set of React hooks for integrating Sendbird chat functionality into your React app.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  ```sh
8
- npm i @sendbird/uikit-chat-hooks
8
+ npm i @sendbird/uikit-chat-hooks @sendbird/chat
9
9
  ```
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannel = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _uikitUtils = require("@sendbird/uikit-utils");
11
-
12
9
  const useGroupChannel = (sdk, channelUrl) => {
13
10
  const [channel, setChannel] = (0, _react.useState)();
14
11
  const [loading, setLoading] = (0, _react.useState)(true);
@@ -28,6 +25,5 @@ const useGroupChannel = (sdk, channelUrl) => {
28
25
  error
29
26
  };
30
27
  };
31
-
32
28
  exports.useGroupChannel = useGroupChannel;
33
29
  //# sourceMappingURL=useGroupChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useGroupChannel","sdk","channelUrl","channel","setChannel","useState","loading","setLoading","error","setError","useAsyncEffect","groupChannel","getChannel","e"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdGroupChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.groupChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEO,MAAMA,eAAe,GAAG,CAACC,GAAD,EAAuBC,UAAvB,KAA8C;EAC3E,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,GAA9B;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAF,eAAA,EAAS,IAAT,CAA9B;EACA,MAAM,CAACG,KAAD,EAAQC,QAAR,IAAoB,IAAAJ,eAAA,GAA1B;EAEA,IAAAK,0BAAA,EAAe,YAAY;IACzB,IAAI;MACFN,UAAU,CAAC,MAAMH,GAAG,CAACU,YAAJ,CAAiBC,UAAjB,CAA4BV,UAA5B,CAAP,CAAV;IACD,CAFD,CAEE,OAAOW,CAAP,EAAU;MACVJ,QAAQ,CAACI,CAAD,CAAR;IACD,CAJD,SAIU;MACRN,UAAU,CAAC,KAAD,CAAV;IACD;EACF,CARD,EAQG,EARH;EAUA,OAAO;IAAEJ,OAAF;IAAWG,OAAX;IAAoBE;EAApB,CAAP;AACD,CAhBM"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","useGroupChannel","sdk","channelUrl","channel","setChannel","useState","loading","setLoading","error","setError","useAsyncEffect","groupChannel","getChannel","e","exports"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdGroupChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.groupChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,GAAwB;EAC9D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,IAAI,CAAC;EAC5C,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAJ,eAAQ,GAAW;EAE7C,IAAAK,0BAAc,EAAC,YAAY;IACzB,IAAI;MACFN,UAAU,CAAC,MAAMH,GAAG,CAACU,YAAY,CAACC,UAAU,CAACV,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,OAAOW,CAAC,EAAE;MACVJ,QAAQ,CAACI,CAAC,CAAC;IACb,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,OAAO;IAAEG,OAAO;IAAEE;EAAM,CAAC;AACpC,CAAC;AAACM,OAAA,CAAAd,eAAA,GAAAA,eAAA"}
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannelList = void 0;
7
-
8
7
  var _uikitUtils = require("@sendbird/uikit-utils");
9
-
10
8
  var _useGroupChannelListWithCollection = require("./useGroupChannelListWithCollection");
11
-
12
9
  var _useGroupChannelListWithQuery = require("./useGroupChannelListWithQuery");
13
-
14
10
  const useGroupChannelList = (sdk, userId, options) => {
15
11
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
16
12
  if (options !== null && options !== void 0 && options.queryCreator) _uikitUtils.Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
@@ -19,6 +15,5 @@ const useGroupChannelList = (sdk, userId, options) => {
19
15
  return (0, _useGroupChannelListWithQuery.useGroupChannelListWithQuery)(sdk, userId, options);
20
16
  }
21
17
  };
22
-
23
18
  exports.useGroupChannelList = useGroupChannelList;
24
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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"}
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\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;AAEO,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"}
@@ -4,25 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannelListReducer = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _uikitUtils = require("@sendbird/uikit-utils");
11
-
12
9
  const defaultReducer = (_ref, action) => {
13
- let { ...draft
10
+ let {
11
+ ...draft
14
12
  } = _ref;
15
13
  const compareByOrder = createCompareByOrder(draft.order);
16
-
17
14
  switch (action.type) {
18
15
  case 'update_refreshing':
16
+ {
17
+ draft.refreshing = action.value.status;
18
+ break;
19
+ }
19
20
  case 'update_loading':
20
21
  {
21
- const key = action.type === 'update_loading' ? 'loading' : 'refreshing';
22
- draft[key] = action.value.status;
22
+ draft.loading = action.value.status;
23
23
  break;
24
24
  }
25
-
26
25
  case 'update_channels':
27
26
  {
28
27
  (0, _uikitUtils.getGroupChannels)(action.value.channels).forEach(freshChannel => {
@@ -32,7 +31,6 @@ const defaultReducer = (_ref, action) => {
32
31
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
33
32
  break;
34
33
  }
35
-
36
34
  case 'delete_channels':
37
35
  {
38
36
  action.value.channelUrls.forEach(url => {
@@ -42,29 +40,26 @@ const defaultReducer = (_ref, action) => {
42
40
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
43
41
  break;
44
42
  }
45
-
46
43
  case 'set_channels':
47
44
  {
48
- if (action.value.clearPrev) {
45
+ if (action.value.clearBeforeAction) {
49
46
  draft.groupChannels = (0, _uikitUtils.getGroupChannels)(action.value.channels);
50
47
  } else {
51
48
  draft.groupChannels = [...draft.groupChannels, ...(0, _uikitUtils.getGroupChannels)(action.value.channels)];
52
49
  }
53
-
54
50
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
55
51
  break;
56
52
  }
57
-
58
53
  case 'update_order':
59
54
  {
60
55
  draft.order = action.value.order;
56
+ const compareByOrder = createCompareByOrder(draft.order);
57
+ compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
61
58
  break;
62
59
  }
63
60
  }
64
-
65
61
  return draft;
66
62
  };
67
-
68
63
  const useGroupChannelListReducer = order => {
69
64
  const [{
70
65
  loading,
@@ -76,7 +71,6 @@ const useGroupChannelListReducer = order => {
76
71
  groupChannels: [],
77
72
  order
78
73
  });
79
-
80
74
  const updateChannels = channels => {
81
75
  dispatch({
82
76
  type: 'update_channels',
@@ -85,7 +79,6 @@ const useGroupChannelListReducer = order => {
85
79
  }
86
80
  });
87
81
  };
88
-
89
82
  const deleteChannels = channelUrls => {
90
83
  dispatch({
91
84
  type: 'delete_channels',
@@ -94,17 +87,15 @@ const useGroupChannelListReducer = order => {
94
87
  }
95
88
  });
96
89
  };
97
-
98
- const setChannels = (channels, clearPrev) => {
90
+ const setChannels = (channels, clearBeforeAction) => {
99
91
  dispatch({
100
92
  type: 'set_channels',
101
93
  value: {
102
94
  channels,
103
- clearPrev
95
+ clearBeforeAction
104
96
  }
105
97
  });
106
98
  };
107
-
108
99
  const updateLoading = status => {
109
100
  dispatch({
110
101
  type: 'update_loading',
@@ -113,7 +104,6 @@ const useGroupChannelListReducer = order => {
113
104
  }
114
105
  });
115
106
  };
116
-
117
107
  const updateRefreshing = status => {
118
108
  dispatch({
119
109
  type: 'update_refreshing',
@@ -122,7 +112,6 @@ const useGroupChannelListReducer = order => {
122
112
  }
123
113
  });
124
114
  };
125
-
126
115
  const updateOrder = order => {
127
116
  dispatch({
128
117
  type: 'update_order',
@@ -131,7 +120,6 @@ const useGroupChannelListReducer = order => {
131
120
  }
132
121
  });
133
122
  };
134
-
135
123
  return {
136
124
  updateLoading,
137
125
  updateRefreshing,
@@ -144,9 +132,7 @@ const useGroupChannelListReducer = order => {
144
132
  groupChannels
145
133
  };
146
134
  };
147
-
148
135
  exports.useGroupChannelListReducer = useGroupChannelListReducer;
149
-
150
136
  const createCompareByOrder = order => {
151
137
  if (!order) return undefined;
152
138
  return (channel1, channel2) => {
@@ -163,17 +149,14 @@ const createCompareByOrder = order => {
163
149
  return channel2.createdAt - channel1.createdAt;
164
150
  }
165
151
  }
166
-
167
152
  case 'chronological':
168
153
  {
169
154
  return channel2.createdAt - channel1.createdAt;
170
155
  }
171
-
172
156
  case 'channel_name_alphabetical':
173
157
  {
174
158
  return channel1.name.localeCompare(channel2.name);
175
159
  }
176
-
177
160
  default:
178
161
  {
179
162
  return 0;
@@ -1 +1 @@
1
- {"version":3,"names":["defaultReducer","action","draft","compareByOrder","createCompareByOrder","order","type","key","value","status","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearPrev","useGroupChannelListReducer","loading","refreshing","dispatch","useReducer","updateChannels","deleteChannels","setChannels","updateLoading","updateRefreshing","updateOrder","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'set_channels';\n value: { channels: SendbirdChannel[]; clearPrev: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'set_channels': {\n if (action.value.clearPrev) {\n draft.groupChannels = getGroupChannels(action.value.channels);\n } else {\n draft.groupChannels = [...draft.groupChannels, ...getGroupChannels(action.value.channels)];\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const setChannels = (channels: SendbirdChannel[], clearPrev: boolean) => {\n dispatch({ type: 'set_channels', value: { channels, clearPrev } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n setChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","useGroupChannelListReducer","dispatch","useReducer","updateChannels","deleteChannels","setChannels","updateLoading","updateRefreshing","updateOrder","exports","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'set_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'set_channels': {\n if (action.value.clearBeforeAction) {\n draft.groupChannels = getGroupChannels(action.value.channels);\n } else {\n draft.groupChannels = [...draft.groupChannels, ...getGroupChannels(action.value.channels)];\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const setChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'set_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n setChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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"}
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannelListWithCollection = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _groupChannel = require("@sendbird/chat/groupChannel");
11
-
12
9
  var _uikitUtils = require("@sendbird/uikit-utils");
13
-
14
10
  var _useAppFeatures = require("../../common/useAppFeatures");
15
-
16
11
  var _useChannelHandler = require("../../handler/useChannelHandler");
17
-
18
12
  var _reducer = require("./reducer");
19
-
20
13
  const createGroupChannelListCollection = (sdk, collectionCreator) => {
21
14
  const passedCollection = collectionCreator === null || collectionCreator === void 0 ? void 0 : collectionCreator();
22
15
  if (passedCollection) return passedCollection;
@@ -28,7 +21,6 @@ const createGroupChannelListCollection = (sdk, collectionCreator) => {
28
21
  order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
29
22
  });
30
23
  };
31
-
32
24
  const useGroupChannelListWithCollection = (sdk, userId, options) => {
33
25
  const handlerId = (0, _uikitUtils.useUniqHandlerId)('useGroupChannelListWithCollection');
34
26
  const {
@@ -44,13 +36,10 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
44
36
  updateRefreshing,
45
37
  updateLoading
46
38
  } = (0, _reducer.useGroupChannelListReducer)();
47
-
48
39
  const updateChannelsAndMarkAsDelivered = (markAsDelivered, source, updatedChannels) => {
49
40
  var _collectionRef$curren;
50
-
51
41
  const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channels) ?? [];
52
42
  setChannels(channels, true);
53
-
54
43
  if (markAsDelivered && deliveryReceiptEnabled) {
55
44
  switch (source) {
56
45
  case _groupChannel.GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:
@@ -63,15 +52,11 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
63
52
  }
64
53
  }
65
54
  };
66
-
67
55
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
68
56
  var _collectionRef$curren2;
69
-
70
57
  if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.dispose();
71
-
72
58
  if (uid) {
73
59
  var _collectionRef$curren3, _collectionRef$curren4;
74
-
75
60
  collectionRef.current = createGroupChannelListCollection(sdk, options === null || options === void 0 ? void 0 : options.collectionCreator);
76
61
  (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.setGroupChannelCollectionHandler({
77
62
  onChannelsAdded: (context, channels) => {
@@ -84,10 +69,8 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
84
69
  updateChannelsAndMarkAsDelivered(false);
85
70
  }
86
71
  });
87
-
88
72
  if ((_collectionRef$curren4 = collectionRef.current) !== null && _collectionRef$curren4 !== void 0 && _collectionRef$curren4.hasMore) {
89
73
  var _collectionRef$curren5;
90
-
91
74
  await ((_collectionRef$curren5 = collectionRef.current) === null || _collectionRef$curren5 === void 0 ? void 0 : _collectionRef$curren5.loadMore());
92
75
  updateChannelsAndMarkAsDelivered(true);
93
76
  }
@@ -96,7 +79,6 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
96
79
  (0, _react.useEffect)(() => {
97
80
  return () => {
98
81
  var _collectionRef$curren6;
99
-
100
82
  if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 ? void 0 : _collectionRef$curren6.dispose();
101
83
  };
102
84
  }, []);
@@ -104,7 +86,7 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
104
86
  updateLoading(true);
105
87
  await init(userId);
106
88
  updateLoading(false);
107
- }, [init, userId]);
89
+ }, [userId]);
108
90
  (0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
109
91
  onUserBanned: (channel, user) => {
110
92
  const isMe = user.userId === userId;
@@ -118,10 +100,8 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
118
100
  });
119
101
  const next = (0, _uikitUtils.useFreshCallback)(async () => {
120
102
  var _collectionRef$curren7;
121
-
122
103
  if ((_collectionRef$curren7 = collectionRef.current) !== null && _collectionRef$curren7 !== void 0 && _collectionRef$curren7.hasMore) {
123
104
  var _collectionRef$curren8;
124
-
125
105
  await ((_collectionRef$curren8 = collectionRef.current) === null || _collectionRef$curren8 === void 0 ? void 0 : _collectionRef$curren8.loadMore());
126
106
  updateChannelsAndMarkAsDelivered(true);
127
107
  }
@@ -134,6 +114,5 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
134
114
  next
135
115
  };
136
116
  };
137
-
138
117
  exports.useGroupChannelListWithCollection = useGroupChannelListWithCollection;
139
118
  //# sourceMappingURL=useGroupChannelListWithCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["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","setChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","dispose","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","loadMore","useEffect","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, setChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n setChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AAEA;;AACA;;AAEA;;AAEA,MAAMA,gCAAgC,GAAG,CACvCC,GADuC,EAEvCC,iBAFuC,KAGpC;EACH,MAAMC,gBAAgB,GAAGD,iBAAH,aAAGA,iBAAH,uBAAGA,iBAAiB,EAA1C;EACA,IAAIC,gBAAJ,EAAsB,OAAOA,gBAAP;EAEtB,MAAMC,MAAM,GAAG,IAAIC,gCAAJ,EAAf;EACAD,MAAM,CAACE,YAAP,GAAsB,KAAtB;EAEA,OAAOL,GAAG,CAACM,YAAJ,CAAiBC,4BAAjB,CAA8C;IACnDJ,MADmD;IAEnDK,KAAK,EAAE,EAF4C;IAGnDC,KAAK,EAAEC,mCAAA,CAAsBC;EAHsB,CAA9C,CAAP;AAKD,CAfD;;AAiBO,MAAMC,iCAAsD,GAAG,CAACZ,GAAD,EAAMa,MAAN,EAAcC,OAAd,KAA0B;EAC9F,MAAMC,SAAS,GAAG,IAAAC,4BAAA,EAAiB,mCAAjB,CAAlB;EACA,MAAM;IAAEC;EAAF,IAA6B,IAAAC,8BAAA,EAAelB,GAAf,CAAnC;EAEA,MAAMmB,aAAa,GAAG,IAAAC,aAAA,GAAtB;EAEA,MAAM;IAAEC,OAAF;IAAWC,aAAX;IAA0BC,UAA1B;IAAsCC,WAAtC;IAAmDC,cAAnD;IAAmEC,gBAAnE;IAAqFC;EAArF,IACJ,IAAAC,mCAAA,GADF;;EAGA,MAAMC,gCAAgC,GAAG,CACvCC,eADuC,EAEvCC,MAFuC,EAGvCC,eAHuC,KAIpC;IAAA;;IACH,MAAMC,QAAQ,GAAG,0BAAAd,aAAa,CAACe,OAAd,gFAAuBD,QAAvB,KAAmC,EAApD;IACAT,WAAW,CAACS,QAAD,EAAW,IAAX,CAAX;;IACA,IAAIH,eAAe,IAAIb,sBAAvB,EAA+C;MAC7C,QAAQc,MAAR;QACE,KAAKI,qCAAA,CAAwBC,sBAA7B;QACA,KAAKD,qCAAA,CAAwBE,kBAA7B;QACA,KAAKF,qCAAA,CAAwBG,uBAA7B;QACA,KAAKH,qCAAA,CAAwBI,uBAA7B;QACA,KAAKC,SAAL;UACE,IAAAC,qCAAA,EAA0BT,eAAe,IAAIC,QAA7C;UACA;MAPJ;IASD;EACF,CAlBD;;EAoBA,MAAMS,IAAI,GAAG,IAAAC,4BAAA,EAAiB,MAAOC,GAAP,IAAwB;IAAA;;IACpD,IAAIzB,aAAa,CAACe,OAAlB,EAA2B,0BAAAf,aAAa,CAACe,OAAd,kFAAuBW,OAAvB;;IAE3B,IAAID,GAAJ,EAAS;MAAA;;MACPzB,aAAa,CAACe,OAAd,GAAwBnC,gCAAgC,CAACC,GAAD,EAAMc,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEb,iBAAf,CAAxD;MAEA,0BAAAkB,aAAa,CAACe,OAAd,kFAAuBY,gCAAvB,CAAwD;QACtDC,eAAe,EAAE,CAACC,OAAD,EAAUf,QAAV,KAAuB;UACtCJ,gCAAgC,CAAC,IAAD,EAAOmB,OAAO,CAACjB,MAAf,EAAuBE,QAAvB,CAAhC;QACD,CAHqD;QAItDgB,iBAAiB,EAAE,CAACD,OAAD,EAAUf,QAAV,KAAuB;UACxCJ,gCAAgC,CAAC,IAAD,EAAOmB,OAAO,CAACjB,MAAf,EAAuBE,QAAvB,CAAhC;QACD,CANqD;QAOtDiB,iBAAiB,EAAE,MAAM;UACvBrB,gCAAgC,CAAC,KAAD,CAAhC;QACD;MATqD,CAAxD;;MAYA,8BAAIV,aAAa,CAACe,OAAlB,mDAAI,uBAAuBiB,OAA3B,EAAoC;QAAA;;QAClC,iCAAMhC,aAAa,CAACe,OAApB,2DAAM,uBAAuBkB,QAAvB,EAAN;QACAvB,gCAAgC,CAAC,IAAD,CAAhC;MACD;IACF;EACF,CAvBY,CAAb;EAyBA,IAAAwB,gBAAA,EAAU,MAAM;IACd,OAAO,MAAM;MAAA;;MACX,IAAIlC,aAAa,CAACe,OAAlB,EAA2B,0BAAAf,aAAa,CAACe,OAAd,kFAAuBW,OAAvB;IAC5B,CAFD;EAGD,CAJD,EAIG,EAJH;EAMA,IAAAS,0BAAA,EAAe,YAAY;IACzB3B,aAAa,CAAC,IAAD,CAAb;IACA,MAAMe,IAAI,CAAC7B,MAAD,CAAV;IACAc,aAAa,CAAC,KAAD,CAAb;EACD,CAJD,EAIG,CAACe,IAAD,EAAO7B,MAAP,CAJH;EAMA,IAAA0C,oCAAA,EAAkBvD,GAAlB,EAAuBe,SAAvB,EAAkC;IAChCyC,YAAY,EAAE,CAACC,OAAD,EAAUC,IAAV,KAAmB;MAC/B,MAAMC,IAAI,GAAGD,IAAI,CAAC7C,MAAL,KAAgBA,MAA7B;MACA,IAAI8C,IAAJ,EAAUlC,cAAc,CAAC,CAACgC,OAAO,CAACG,GAAT,CAAD,CAAd,CAAV,KACK/B,gCAAgC,CAAC,KAAD,CAAhC;IACN;EAL+B,CAAlC;EAQA,MAAMgC,OAAO,GAAG,IAAAlB,4BAAA,EAAiB,YAAY;IAC3CjB,gBAAgB,CAAC,IAAD,CAAhB;IACA,MAAMgB,IAAI,CAAC7B,MAAD,CAAV;IACAa,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAJe,CAAhB;EAMA,MAAMoC,IAAI,GAAG,IAAAnB,4BAAA,EAAiB,YAAY;IAAA;;IACxC,8BAAIxB,aAAa,CAACe,OAAlB,mDAAI,uBAAuBiB,OAA3B,EAAoC;MAAA;;MAClC,iCAAMhC,aAAa,CAACe,OAApB,2DAAM,uBAAuBkB,QAAvB,EAAN;MACAvB,gCAAgC,CAAC,IAAD,CAAhC;IACD;EACF,CALY,CAAb;EAOA,OAAO;IACLR,OADK;IAELC,aAFK;IAGLuC,OAHK;IAILtC,UAJK;IAKLuC;EALK,CAAP;AAOD,CA9FM"}
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","setChannels","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, setChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n setChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannelListWithQuery = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _groupChannel = require("@sendbird/chat/groupChannel");
11
-
12
9
  var _uikitUtils = require("@sendbird/uikit-utils");
13
-
14
10
  var _useAppFeatures = require("../../common/useAppFeatures");
15
-
16
11
  var _useChannelHandler = require("../../handler/useChannelHandler");
17
-
18
12
  var _reducer = require("./reducer");
19
-
20
13
  const createGroupChannelListQuery = (sdk, queryCreator) => {
21
14
  const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
22
15
  if (passedQuery) return passedQuery;
@@ -26,7 +19,6 @@ const createGroupChannelListQuery = (sdk, queryCreator) => {
26
19
  order: _groupChannel.GroupChannelListOrder.LATEST_LAST_MESSAGE
27
20
  });
28
21
  };
29
-
30
22
  const useGroupChannelListWithQuery = (sdk, userId, options) => {
31
23
  const {
32
24
  deliveryReceiptEnabled
@@ -44,19 +36,15 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
44
36
  updateLoading,
45
37
  updateOrder
46
38
  } = (0, _reducer.useGroupChannelListReducer)();
47
-
48
39
  const updateChannelsAndMarkAsDelivered = channels => {
49
40
  updateChannels(channels);
50
41
  if (deliveryReceiptEnabled) (0, _uikitUtils.confirmAndMarkAsDelivered)(channels);
51
42
  };
52
-
53
43
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
54
44
  if (uid) {
55
45
  var _queryRef$current, _queryRef$current2;
56
-
57
46
  queryRef.current = createGroupChannelListQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
58
47
  updateOrder((_queryRef$current = queryRef.current) === null || _queryRef$current === void 0 ? void 0 : _queryRef$current.order);
59
-
60
48
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
61
49
  const channels = await queryRef.current.next();
62
50
  setChannels(channels, true);
@@ -68,7 +56,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
68
56
  updateLoading(true);
69
57
  await init(userId);
70
58
  updateLoading(false);
71
- }, [init, userId]);
59
+ }, [userId]);
72
60
  (0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
73
61
  onChannelChanged: channel => updateChannels([channel]),
74
62
  onChannelFrozen: channel => updateChannels([channel]),
@@ -80,16 +68,13 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
80
68
  const isMe = user.userId === userId;
81
69
  if (isMe) deleteChannels([channel.url]);else updateChannels([channel]);
82
70
  },
83
-
84
71
  onUserBanned(channel, user) {
85
72
  const isMe = user.userId === userId;
86
73
  if (isMe) deleteChannels([channel.url]);else updateChannels([channel]);
87
74
  },
88
-
89
75
  onMessageReceived(channel) {
90
76
  updateChannelsAndMarkAsDelivered([channel]);
91
77
  }
92
-
93
78
  });
94
79
  const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
95
80
  updateRefreshing(true);
@@ -98,7 +83,6 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
98
83
  });
99
84
  const next = (0, _uikitUtils.useFreshCallback)(async () => {
100
85
  var _queryRef$current3;
101
-
102
86
  if ((_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
103
87
  const channels = await queryRef.current.next();
104
88
  setChannels(channels, false);
@@ -113,6 +97,5 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
113
97
  next
114
98
  };
115
99
  };
116
-
117
100
  exports.useGroupChannelListWithQuery = useGroupChannelListWithQuery;
118
101
  //# sourceMappingURL=useGroupChannelListWithQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["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","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","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, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n setChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n setChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n setChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_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","setChannels","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 setChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n setChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n setChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGroupChannelMessages = void 0;
7
-
8
7
  var _uikitUtils = require("@sendbird/uikit-utils");
9
-
10
8
  var _useGroupChannelMessagesWithCollection = require("./useGroupChannelMessagesWithCollection");
11
-
12
9
  var _useGroupChannelMessagesWithQuery = require("./useGroupChannelMessagesWithQuery");
13
-
14
10
  const useGroupChannelMessages = (sdk, channel, userId, options) => {
15
11
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
16
12
  if (options !== null && options !== void 0 && options.queryCreator) _uikitUtils.Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
@@ -19,6 +15,5 @@ const useGroupChannelMessages = (sdk, channel, userId, options) => {
19
15
  return (0, _useGroupChannelMessagesWithQuery.useGroupChannelMessagesWithQuery)(sdk, channel, userId, options);
20
16
  }
21
17
  };
22
-
23
18
  exports.useGroupChannelMessages = useGroupChannelMessages;
24
19
  //# sourceMappingURL=index.js.map