@sendbird/uikit-chat-hooks 2.4.1 → 2.5.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 (134) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/channel/useChannelMessagesReducer.js +153 -0
  3. package/lib/commonjs/channel/useChannelMessagesReducer.js.map +1 -0
  4. package/lib/commonjs/channel/useGroupChannel.js +0 -4
  5. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/index.js +0 -5
  7. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/reducer.js +12 -29
  9. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -22
  11. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -18
  13. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/index.js +0 -5
  15. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +172 -131
  17. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  18. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +76 -73
  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 -22
  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/useOpenChannelMessagesWithQuery.js +128 -57
  31. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  32. package/lib/commonjs/common/useAppFeatures.js +0 -3
  33. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  34. package/lib/commonjs/common/useMessageOutgoingStatus.js +0 -11
  35. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  36. package/lib/commonjs/common/usePushTrigger.js +0 -6
  37. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  38. package/lib/commonjs/common/useTotalUnreadMessageCount.js +0 -7
  39. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  40. package/lib/commonjs/common/useUserList.js +5 -20
  41. package/lib/commonjs/common/useUserList.js.map +1 -1
  42. package/lib/commonjs/handler/useChannelHandler.js +15 -41
  43. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  44. package/lib/commonjs/handler/useConnectionHandler.js +14 -11
  45. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  46. package/lib/commonjs/handler/useUserEventHandler.js +0 -8
  47. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  48. package/lib/commonjs/index.js +0 -23
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/model/CustomQuery.js +0 -6
  51. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  52. package/lib/commonjs/types.js.map +1 -1
  53. package/lib/module/channel/useChannelMessagesReducer.js +146 -0
  54. package/lib/module/channel/useChannelMessagesReducer.js.map +1 -0
  55. package/lib/module/channel/useGroupChannel.js.map +1 -1
  56. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  57. package/lib/module/channel/useGroupChannelList/reducer.js +12 -26
  58. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  59. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -15
  60. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  61. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -11
  62. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  63. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  64. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +174 -125
  65. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  66. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +78 -70
  67. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  68. package/lib/module/channel/useOpenChannel.js.map +1 -1
  69. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  70. package/lib/module/channel/useOpenChannelList/reducer.js +2 -18
  71. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  72. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -17
  73. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  74. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  75. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +129 -53
  76. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  77. package/lib/module/common/useAppFeatures.js.map +1 -1
  78. package/lib/module/common/useMessageOutgoingStatus.js +0 -6
  79. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  80. package/lib/module/common/usePushTrigger.js.map +1 -1
  81. package/lib/module/common/useTotalUnreadMessageCount.js +0 -1
  82. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  83. package/lib/module/common/useUserList.js +5 -15
  84. package/lib/module/common/useUserList.js.map +1 -1
  85. package/lib/module/handler/useChannelHandler.js +15 -35
  86. package/lib/module/handler/useChannelHandler.js.map +1 -1
  87. package/lib/module/handler/useConnectionHandler.js +15 -6
  88. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  89. package/lib/module/handler/useUserEventHandler.js +0 -2
  90. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  91. package/lib/module/index.js +0 -1
  92. package/lib/module/index.js.map +1 -1
  93. package/lib/module/model/CustomQuery.js +0 -4
  94. package/lib/module/model/CustomQuery.js.map +1 -1
  95. package/lib/module/types.js.map +1 -1
  96. package/lib/typescript/src/channel/useChannelMessagesReducer.d.ts +18 -0
  97. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  98. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  99. package/lib/typescript/src/handler/useChannelHandler.d.ts +1 -1
  100. package/lib/typescript/src/handler/useConnectionHandler.d.ts +1 -2
  101. package/lib/typescript/src/index.d.ts +0 -1
  102. package/lib/typescript/src/types.d.ts +51 -20
  103. package/package.json +15 -10
  104. package/src/channel/useChannelMessagesReducer.ts +143 -0
  105. package/src/channel/useGroupChannelList/reducer.ts +11 -7
  106. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +1 -1
  107. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +1 -1
  108. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +174 -105
  109. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +90 -63
  110. package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -5
  111. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +143 -26
  112. package/src/common/useUserList.ts +4 -4
  113. package/src/handler/useChannelHandler.ts +11 -24
  114. package/src/handler/useConnectionHandler.ts +11 -5
  115. package/src/index.ts +0 -1
  116. package/src/types.ts +58 -20
  117. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +0 -154
  118. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +0 -1
  119. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +0 -154
  120. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +0 -1
  121. package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
  122. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
  123. package/lib/module/channel/useGroupChannelMessages/reducer.js +0 -144
  124. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +0 -1
  125. package/lib/module/channel/useOpenChannelMessages/reducer.js +0 -144
  126. package/lib/module/channel/useOpenChannelMessages/reducer.js.map +0 -1
  127. package/lib/module/common/useTotalUnreadChannelCount.js +0 -17
  128. package/lib/module/common/useTotalUnreadChannelCount.js.map +0 -1
  129. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +0 -15
  130. package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +0 -15
  131. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
  132. package/src/channel/useGroupChannelMessages/reducer.ts +0 -125
  133. package/src/channel/useOpenChannelMessages/reducer.ts +0 -125
  134. package/src/common/useTotalUnreadChannelCount.ts +0 -26
@@ -4,22 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useOpenChannelListReducer = 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
-
16
13
  switch (action.type) {
17
14
  case 'update_error':
18
15
  {
19
16
  draft.error = action.value.error;
20
17
  break;
21
18
  }
22
-
23
19
  case 'update_refreshing':
24
20
  case 'update_loading':
25
21
  {
@@ -27,7 +23,6 @@ const defaultReducer = (_ref, action) => {
27
23
  draft[key] = action.value.status;
28
24
  break;
29
25
  }
30
-
31
26
  case 'update_channels':
32
27
  {
33
28
  (0, _uikitUtils.getOpenChannels)(action.value.channels).forEach(freshChannel => {
@@ -36,7 +31,6 @@ const defaultReducer = (_ref, action) => {
36
31
  });
37
32
  break;
38
33
  }
39
-
40
34
  case 'delete_channels':
41
35
  {
42
36
  action.value.channelUrls.forEach(url => {
@@ -45,24 +39,19 @@ const defaultReducer = (_ref, action) => {
45
39
  });
46
40
  break;
47
41
  }
48
-
49
42
  case 'append_channels':
50
43
  {
51
44
  const openChannels = (0, _uikitUtils.getOpenChannels)(action.value.channels);
52
-
53
45
  if (action.value.clearBeforeAction) {
54
46
  draft.openChannels = openChannels;
55
47
  } else {
56
48
  draft.openChannels = [...draft.openChannels, ...openChannels];
57
49
  }
58
-
59
50
  break;
60
51
  }
61
52
  }
62
-
63
53
  return draft;
64
54
  };
65
-
66
55
  const useOpenChannelListReducer = () => {
67
56
  const [{
68
57
  error,
@@ -75,7 +64,6 @@ const useOpenChannelListReducer = () => {
75
64
  openChannels: [],
76
65
  error: null
77
66
  });
78
-
79
67
  const updateChannels = channels => {
80
68
  dispatch({
81
69
  type: 'update_channels',
@@ -84,7 +72,6 @@ const useOpenChannelListReducer = () => {
84
72
  }
85
73
  });
86
74
  };
87
-
88
75
  const deleteChannels = channelUrls => {
89
76
  dispatch({
90
77
  type: 'delete_channels',
@@ -93,7 +80,6 @@ const useOpenChannelListReducer = () => {
93
80
  }
94
81
  });
95
82
  };
96
-
97
83
  const appendChannels = (channels, clearBeforeAction) => {
98
84
  dispatch({
99
85
  type: 'append_channels',
@@ -103,7 +89,6 @@ const useOpenChannelListReducer = () => {
103
89
  }
104
90
  });
105
91
  };
106
-
107
92
  const updateLoading = status => {
108
93
  dispatch({
109
94
  type: 'update_loading',
@@ -112,7 +97,6 @@ const useOpenChannelListReducer = () => {
112
97
  }
113
98
  });
114
99
  };
115
-
116
100
  const updateRefreshing = status => {
117
101
  dispatch({
118
102
  type: 'update_refreshing',
@@ -121,7 +105,6 @@ const useOpenChannelListReducer = () => {
121
105
  }
122
106
  });
123
107
  };
124
-
125
108
  const updateError = error => {
126
109
  dispatch({
127
110
  type: 'update_error',
@@ -130,7 +113,6 @@ const useOpenChannelListReducer = () => {
130
113
  }
131
114
  });
132
115
  };
133
-
134
116
  return {
135
117
  updateError,
136
118
  updateLoading,
@@ -144,6 +126,5 @@ const useOpenChannelListReducer = () => {
144
126
  openChannels
145
127
  };
146
128
  };
147
-
148
129
  exports.useOpenChannelListReducer = useOpenChannelListReducer;
149
130
  //# sourceMappingURL=reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defaultReducer","action","draft","type","error","value","key","status","getOpenChannels","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n };\n\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = [...draft.openChannels, ...openChannels];\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","type","error","value","key","status","getOpenChannels","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError","exports"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n };\n\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = [...draft.openChannels, ...openChannels];\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":"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"}
@@ -4,21 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useOpenChannelListWithQuery = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _uikitUtils = require("@sendbird/uikit-utils");
11
-
12
9
  var _useChannelHandler = require("../../handler/useChannelHandler");
13
-
14
10
  var _reducer = require("./reducer");
15
-
16
11
  const createOpenChannelListQuery = (sdk, queryCreator) => {
17
12
  const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
18
13
  if (passedQuery) return passedQuery;
19
14
  return sdk.openChannel.createOpenChannelListQuery({});
20
15
  };
21
-
22
16
  const useOpenChannelListWithQuery = (sdk, userId, options) => {
23
17
  const queryRef = (0, _react.useRef)();
24
18
  const handlerId = (0, _uikitUtils.useUniqHandlerId)('useOpenChannelListWithQuery');
@@ -37,34 +31,23 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
37
31
  const init = (0, _uikitUtils.useFreshCallback)(async uid => {
38
32
  if (uid) {
39
33
  var _queryRef$current;
40
-
41
34
  queryRef.current = createOpenChannelListQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
42
-
43
35
  if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
44
36
  const channels = await queryRef.current.next();
45
37
  appendChannels(channels, true);
46
38
  }
47
39
  }
48
40
  });
49
-
50
41
  const updateChannel = channel => {
51
42
  if (channel.isOpenChannel()) updateChannels([channel]);
52
43
  };
53
-
54
44
  (0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
55
45
  onChannelChanged: updateChannel,
56
46
  onChannelFrozen: updateChannel,
57
47
  onChannelUnfrozen: updateChannel,
58
48
  onChannelDeleted: url => deleteChannels([url]),
59
-
60
- onUserBanned(channel, user) {
61
- const isMe = user.userId === userId;
62
- if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);
63
- },
64
-
65
49
  onUserEntered: (channel, user) => {
66
50
  const isMe = user.userId === userId;
67
-
68
51
  if (isMe && channel.isOpenChannel() && !openChannels.find(it => it.url === channel.url)) {
69
52
  appendChannels([], true);
70
53
  refresh();
@@ -74,7 +57,6 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
74
57
  (0, _uikitUtils.useAsyncEffect)(async () => {
75
58
  updateLoading(true);
76
59
  updateError(null);
77
-
78
60
  try {
79
61
  await init(userId);
80
62
  } catch (e) {
@@ -83,11 +65,10 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
83
65
  } finally {
84
66
  updateLoading(false);
85
67
  }
86
- }, [init, userId]);
68
+ }, [userId]);
87
69
  const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
88
70
  updateRefreshing(true);
89
71
  updateError(null);
90
-
91
72
  try {
92
73
  await init(userId);
93
74
  } catch (e) {
@@ -99,7 +80,6 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
99
80
  });
100
81
  const next = (0, _uikitUtils.useFreshCallback)(async () => {
101
82
  var _queryRef$current2;
102
-
103
83
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
104
84
  const channels = await queryRef.current.next();
105
85
  appendChannels(channels, false);
@@ -114,6 +94,5 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
114
94
  next
115
95
  };
116
96
  };
117
-
118
97
  exports.useOpenChannelListWithQuery = useOpenChannelListWithQuery;
119
98
  //# sourceMappingURL=useOpenChannelListWithQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createOpenChannelListQuery","sdk","queryCreator","passedQuery","openChannel","useOpenChannelListWithQuery","userId","options","queryRef","useRef","handlerId","useUniqHandlerId","error","loading","openChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateError","useOpenChannelListReducer","init","useFreshCallback","uid","current","hasNext","channels","next","updateChannel","channel","isOpenChannel","useChannelHandler","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelDeleted","url","onUserBanned","user","isMe","onUserEntered","find","it","refresh","useAsyncEffect","e"],"sources":["useOpenChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdOpenChannelListQuery } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseOpenChannelList, UseOpenChannelListOptions } from '../../types';\nimport { useOpenChannelListReducer } from './reducer';\n\nconst createOpenChannelListQuery = (sdk: SendbirdChatSDK, queryCreator: UseOpenChannelListOptions['queryCreator']) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n return sdk.openChannel.createOpenChannelListQuery({});\n};\n\nexport const useOpenChannelListWithQuery: UseOpenChannelList = (sdk, userId, options) => {\n const queryRef = useRef<SendbirdOpenChannelListQuery>();\n const handlerId = useUniqHandlerId('useOpenChannelListWithQuery');\n\n const {\n error,\n loading,\n openChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateError,\n } = useOpenChannelListReducer();\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createOpenChannelListQuery(sdk, options?.queryCreator);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, true);\n }\n }\n });\n\n const updateChannel = (channel: SendbirdBaseChannel) => {\n if (channel.isOpenChannel()) updateChannels([channel]);\n };\n\n useChannelHandler(\n sdk,\n handlerId,\n {\n onChannelChanged: updateChannel,\n onChannelFrozen: updateChannel,\n onChannelUnfrozen: updateChannel,\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);\n },\n onUserEntered: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel() && !openChannels.find((it) => it.url === channel.url)) {\n appendChannels([], true);\n refresh();\n }\n },\n },\n 'open',\n );\n\n useAsyncEffect(async () => {\n updateLoading(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateLoading(false);\n }\n }, [init, userId]);\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n }\n });\n\n return {\n error,\n loading,\n openChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_reducer","createOpenChannelListQuery","sdk","queryCreator","passedQuery","openChannel","useOpenChannelListWithQuery","userId","options","queryRef","useRef","handlerId","useUniqHandlerId","error","loading","openChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateError","useOpenChannelListReducer","init","useFreshCallback","uid","_queryRef$current","current","hasNext","channels","next","updateChannel","channel","isOpenChannel","useChannelHandler","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelDeleted","url","onUserEntered","user","isMe","find","it","refresh","useAsyncEffect","e","_queryRef$current2","exports"],"sources":["useOpenChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdOpenChannelListQuery } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseOpenChannelList, UseOpenChannelListOptions } from '../../types';\nimport { useOpenChannelListReducer } from './reducer';\n\nconst createOpenChannelListQuery = (sdk: SendbirdChatSDK, queryCreator: UseOpenChannelListOptions['queryCreator']) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n return sdk.openChannel.createOpenChannelListQuery({});\n};\n\nexport const useOpenChannelListWithQuery: UseOpenChannelList = (sdk, userId, options) => {\n const queryRef = useRef<SendbirdOpenChannelListQuery>();\n const handlerId = useUniqHandlerId('useOpenChannelListWithQuery');\n\n const {\n error,\n loading,\n openChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateError,\n } = useOpenChannelListReducer();\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createOpenChannelListQuery(sdk, options?.queryCreator);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, true);\n }\n }\n });\n\n const updateChannel = (channel: SendbirdBaseChannel) => {\n if (channel.isOpenChannel()) updateChannels([channel]);\n };\n\n useChannelHandler(\n sdk,\n handlerId,\n {\n onChannelChanged: updateChannel,\n onChannelFrozen: updateChannel,\n onChannelUnfrozen: updateChannel,\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserEntered: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe && channel.isOpenChannel() && !openChannels.find((it) => it.url === channel.url)) {\n appendChannels([], true);\n refresh();\n }\n },\n },\n 'open',\n );\n\n useAsyncEffect(async () => {\n updateLoading(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateLoading(false);\n }\n }, [userId]);\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n updateError(null);\n try {\n await init(userId);\n } catch (e) {\n updateError(e);\n appendChannels([], true);\n } finally {\n updateRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n }\n });\n\n return {\n error,\n loading,\n openChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useOpenChannelMessages = void 0;
7
-
8
7
  var _useOpenChannelMessagesWithQuery = require("./useOpenChannelMessagesWithQuery");
9
-
10
8
  const useOpenChannelMessages = (sdk, channel, userId, options) => {
11
9
  return (0, _useOpenChannelMessagesWithQuery.useOpenChannelMessagesWithQuery)(sdk, channel, userId, options);
12
10
  };
13
-
14
11
  exports.useOpenChannelMessages = useOpenChannelMessages;
15
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useOpenChannelMessages","sdk","channel","userId","options","useOpenChannelMessagesWithQuery"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelMessages } from '../../types';\nimport { useOpenChannelMessagesWithQuery } from './useOpenChannelMessagesWithQuery';\n\nexport const useOpenChannelMessages: UseOpenChannelMessages = (sdk, channel, userId, options) => {\n return useOpenChannelMessagesWithQuery(sdk, channel, userId, options);\n};\n"],"mappings":";;;;;;;AACA;;AAEO,MAAMA,sBAA8C,GAAG,CAACC,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,KAAmC;EAC/F,OAAO,IAAAC,gEAAA,EAAgCJ,GAAhC,EAAqCC,OAArC,EAA8CC,MAA9C,EAAsDC,OAAtD,CAAP;AACD,CAFM"}
1
+ {"version":3,"names":["_useOpenChannelMessagesWithQuery","require","useOpenChannelMessages","sdk","channel","userId","options","useOpenChannelMessagesWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelMessages } from '../../types';\nimport { useOpenChannelMessagesWithQuery } from './useOpenChannelMessagesWithQuery';\n\nexport const useOpenChannelMessages: UseOpenChannelMessages = (sdk, channel, userId, options) => {\n return useOpenChannelMessagesWithQuery(sdk, channel, userId, options);\n};\n"],"mappings":";;;;;;AACA,IAAAA,gCAAA,GAAAC,OAAA;AAEO,MAAMC,sBAA8C,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAC/F,OAAO,IAAAC,gEAA+B,EAACJ,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;AACvE,CAAC;AAACE,OAAA,CAAAN,sBAAA,GAAAA,sBAAA"}