@sendbird/uikit-chat-hooks 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/channel/useGroupChannel.js +0 -4
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js +0 -5
  5. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/reducer.js +12 -29
  7. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -22
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -18
  11. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/index.js +0 -5
  13. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +18 -28
  15. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +8 -37
  17. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  18. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +21 -49
  19. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannel.js +0 -4
  21. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  22. package/lib/commonjs/channel/useOpenChannelList/index.js +0 -3
  23. package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
  24. package/lib/commonjs/channel/useOpenChannelList/reducer.js +2 -21
  25. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  26. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -18
  27. package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  28. package/lib/commonjs/channel/useOpenChannelMessages/index.js +0 -3
  29. package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
  30. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +18 -28
  31. package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +1 -1
  32. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -30
  33. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  34. package/lib/commonjs/common/useAppFeatures.js +0 -3
  35. package/lib/commonjs/common/useAppFeatures.js.map +1 -1
  36. package/lib/commonjs/common/useMessageOutgoingStatus.js +0 -11
  37. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  38. package/lib/commonjs/common/usePushTrigger.js +0 -6
  39. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  40. package/lib/commonjs/common/useTotalUnreadMessageCount.js +0 -7
  41. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  42. package/lib/commonjs/common/useUserList.js +3 -18
  43. package/lib/commonjs/common/useUserList.js.map +1 -1
  44. package/lib/commonjs/handler/useChannelHandler.js +15 -41
  45. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  46. package/lib/commonjs/handler/useConnectionHandler.js +14 -11
  47. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  48. package/lib/commonjs/handler/useUserEventHandler.js +0 -8
  49. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  50. package/lib/commonjs/index.js +0 -23
  51. package/lib/commonjs/index.js.map +1 -1
  52. package/lib/commonjs/model/CustomQuery.js +0 -6
  53. package/lib/commonjs/model/CustomQuery.js.map +1 -1
  54. package/lib/module/channel/useGroupChannel.js.map +1 -1
  55. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  56. package/lib/module/channel/useGroupChannelList/reducer.js +12 -26
  57. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  58. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -15
  59. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  60. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -11
  61. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  62. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  63. package/lib/module/channel/useGroupChannelMessages/reducer.js +18 -25
  64. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
  65. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +9 -30
  66. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  67. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +23 -46
  68. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  69. package/lib/module/channel/useOpenChannel.js.map +1 -1
  70. package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
  71. package/lib/module/channel/useOpenChannelList/reducer.js +2 -18
  72. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  73. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -13
  74. package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
  75. package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
  76. package/lib/module/channel/useOpenChannelMessages/reducer.js +18 -25
  77. package/lib/module/channel/useOpenChannelMessages/reducer.js.map +1 -1
  78. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -25
  79. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  80. package/lib/module/common/useAppFeatures.js.map +1 -1
  81. package/lib/module/common/useMessageOutgoingStatus.js +0 -6
  82. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  83. package/lib/module/common/usePushTrigger.js.map +1 -1
  84. package/lib/module/common/useTotalUnreadMessageCount.js +0 -1
  85. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  86. package/lib/module/common/useUserList.js +3 -13
  87. package/lib/module/common/useUserList.js.map +1 -1
  88. package/lib/module/handler/useChannelHandler.js +15 -35
  89. package/lib/module/handler/useChannelHandler.js.map +1 -1
  90. package/lib/module/handler/useConnectionHandler.js +15 -6
  91. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  92. package/lib/module/handler/useUserEventHandler.js +0 -2
  93. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  94. package/lib/module/index.js +0 -1
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/model/CustomQuery.js +0 -4
  97. package/lib/module/model/CustomQuery.js.map +1 -1
  98. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  99. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +2 -2
  100. package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +2 -2
  101. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  102. package/lib/typescript/src/handler/useChannelHandler.d.ts +1 -1
  103. package/lib/typescript/src/handler/useConnectionHandler.d.ts +1 -2
  104. package/lib/typescript/src/index.d.ts +0 -1
  105. package/package.json +15 -9
  106. package/src/channel/useGroupChannelList/reducer.ts +11 -7
  107. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +1 -1
  108. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +1 -1
  109. package/src/channel/useGroupChannelMessages/reducer.ts +11 -10
  110. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +69 -72
  111. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +32 -42
  112. package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -1
  113. package/src/channel/useOpenChannelMessages/reducer.ts +11 -10
  114. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +1 -1
  115. package/src/common/useUserList.ts +2 -2
  116. package/src/handler/useChannelHandler.ts +11 -24
  117. package/src/handler/useConnectionHandler.ts +11 -5
  118. package/src/index.ts +0 -1
  119. package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
  120. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
  121. package/lib/module/common/useTotalUnreadChannelCount.js +0 -17
  122. package/lib/module/common/useTotalUnreadChannelCount.js.map +0 -1
  123. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
  124. package/src/common/useTotalUnreadChannelCount.ts +0 -26
@@ -1,20 +1,21 @@
1
1
  import { useReducer } from 'react';
2
2
  import { getGroupChannels } from '@sendbird/uikit-utils';
3
-
4
3
  const defaultReducer = (_ref, action) => {
5
- let { ...draft
4
+ let {
5
+ ...draft
6
6
  } = _ref;
7
7
  const compareByOrder = createCompareByOrder(draft.order);
8
-
9
8
  switch (action.type) {
10
9
  case 'update_refreshing':
10
+ {
11
+ draft.refreshing = action.value.status;
12
+ break;
13
+ }
11
14
  case 'update_loading':
12
15
  {
13
- const key = action.type === 'update_loading' ? 'loading' : 'refreshing';
14
- draft[key] = action.value.status;
16
+ draft.loading = action.value.status;
15
17
  break;
16
18
  }
17
-
18
19
  case 'update_channels':
19
20
  {
20
21
  getGroupChannels(action.value.channels).forEach(freshChannel => {
@@ -24,7 +25,6 @@ const defaultReducer = (_ref, action) => {
24
25
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
25
26
  break;
26
27
  }
27
-
28
28
  case 'delete_channels':
29
29
  {
30
30
  action.value.channelUrls.forEach(url => {
@@ -34,29 +34,26 @@ const defaultReducer = (_ref, action) => {
34
34
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
35
35
  break;
36
36
  }
37
-
38
37
  case 'set_channels':
39
38
  {
40
- if (action.value.clearPrev) {
39
+ if (action.value.clearBeforeAction) {
41
40
  draft.groupChannels = getGroupChannels(action.value.channels);
42
41
  } else {
43
42
  draft.groupChannels = [...draft.groupChannels, ...getGroupChannels(action.value.channels)];
44
43
  }
45
-
46
44
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
47
45
  break;
48
46
  }
49
-
50
47
  case 'update_order':
51
48
  {
52
49
  draft.order = action.value.order;
50
+ const compareByOrder = createCompareByOrder(draft.order);
51
+ compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
53
52
  break;
54
53
  }
55
54
  }
56
-
57
55
  return draft;
58
56
  };
59
-
60
57
  export const useGroupChannelListReducer = order => {
61
58
  const [{
62
59
  loading,
@@ -68,7 +65,6 @@ export const useGroupChannelListReducer = order => {
68
65
  groupChannels: [],
69
66
  order
70
67
  });
71
-
72
68
  const updateChannels = channels => {
73
69
  dispatch({
74
70
  type: 'update_channels',
@@ -77,7 +73,6 @@ export const useGroupChannelListReducer = order => {
77
73
  }
78
74
  });
79
75
  };
80
-
81
76
  const deleteChannels = channelUrls => {
82
77
  dispatch({
83
78
  type: 'delete_channels',
@@ -86,17 +81,15 @@ export const useGroupChannelListReducer = order => {
86
81
  }
87
82
  });
88
83
  };
89
-
90
- const setChannels = (channels, clearPrev) => {
84
+ const setChannels = (channels, clearBeforeAction) => {
91
85
  dispatch({
92
86
  type: 'set_channels',
93
87
  value: {
94
88
  channels,
95
- clearPrev
89
+ clearBeforeAction
96
90
  }
97
91
  });
98
92
  };
99
-
100
93
  const updateLoading = status => {
101
94
  dispatch({
102
95
  type: 'update_loading',
@@ -105,7 +98,6 @@ export const useGroupChannelListReducer = order => {
105
98
  }
106
99
  });
107
100
  };
108
-
109
101
  const updateRefreshing = status => {
110
102
  dispatch({
111
103
  type: 'update_refreshing',
@@ -114,7 +106,6 @@ export const useGroupChannelListReducer = order => {
114
106
  }
115
107
  });
116
108
  };
117
-
118
109
  const updateOrder = order => {
119
110
  dispatch({
120
111
  type: 'update_order',
@@ -123,7 +114,6 @@ export const useGroupChannelListReducer = order => {
123
114
  }
124
115
  });
125
116
  };
126
-
127
117
  return {
128
118
  updateLoading,
129
119
  updateRefreshing,
@@ -136,7 +126,6 @@ export const useGroupChannelListReducer = order => {
136
126
  groupChannels
137
127
  };
138
128
  };
139
-
140
129
  const createCompareByOrder = order => {
141
130
  if (!order) return undefined;
142
131
  return (channel1, channel2) => {
@@ -153,17 +142,14 @@ const createCompareByOrder = order => {
153
142
  return channel2.createdAt - channel1.createdAt;
154
143
  }
155
144
  }
156
-
157
145
  case 'chronological':
158
146
  {
159
147
  return channel2.createdAt - channel1.createdAt;
160
148
  }
161
-
162
149
  case 'channel_name_alphabetical':
163
150
  {
164
151
  return channel1.name.localeCompare(channel2.name);
165
152
  }
166
-
167
153
  default:
168
154
  {
169
155
  return 0;
@@ -1 +1 @@
1
- {"version":3,"names":["useReducer","getGroupChannels","defaultReducer","action","draft","compareByOrder","createCompareByOrder","order","type","key","value","status","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearPrev","useGroupChannelListReducer","loading","refreshing","dispatch","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":["useReducer","getGroupChannels","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","useGroupChannelListReducer","dispatch","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[]; 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":"AAAA,SAASA,UAAU,QAAQ,OAAO;AAGlC,SAA+BC,gBAAgB,QAAQ,uBAAuB;AAiC9E,MAAMC,cAAc,GAAGA,CAAAC,IAAA,EAAsBC,MAAc,KAAK;EAAA,IAAxC;IAAE,GAAGC;EAAa,CAAC,GAAAF,IAAA;EACzC,MAAMG,cAAc,GAAGC,oBAAoB,CAACF,KAAK,CAACG,KAAK,CAAC;EAExD,QAAQJ,MAAM,CAACK,IAAI;IACjB,KAAK,mBAAmB;MAAE;QACxBJ,KAAK,CAACK,UAAU,GAAGN,MAAM,CAACO,KAAK,CAACC,MAAM;QACtC;MACF;IACA,KAAK,gBAAgB;MAAE;QACrBP,KAAK,CAACQ,OAAO,GAAGT,MAAM,CAACO,KAAK,CAACC,MAAM;QACnC;MACF;IACA,KAAK,iBAAiB;MAAE;QACtBX,gBAAgB,CAACG,MAAM,CAACO,KAAK,CAACG,QAAQ,CAAC,CAACC,OAAO,CAAEC,YAAY,IAAK;UAChE,MAAMC,GAAG,GAAGZ,KAAK,CAACa,aAAa,CAACC,SAAS,CAAEC,YAAY,IAAKA,YAAY,CAACC,GAAG,KAAKL,YAAY,CAACK,GAAG,CAAC;UAClG,IAAIJ,GAAG,GAAG,CAAC,CAAC,EAAEZ,KAAK,CAACa,aAAa,CAACD,GAAG,CAAC,GAAGD,YAAY;QACvD,CAAC,CAAC;QAEFV,cAAc,KAAKD,KAAK,CAACa,aAAa,GAAGb,KAAK,CAACa,aAAa,CAACI,IAAI,CAAChB,cAAc,CAAC,CAAC;QAClF;MACF;IACA,KAAK,iBAAiB;MAAE;QACtBF,MAAM,CAACO,KAAK,CAACY,WAAW,CAACR,OAAO,CAAEM,GAAG,IAAK;UACxC,MAAMJ,GAAG,GAAGZ,KAAK,CAACa,aAAa,CAACC,SAAS,CAAEK,CAAC,IAAKA,CAAC,CAACH,GAAG,KAAKA,GAAG,CAAC;UAC/D,IAAIJ,GAAG,GAAG,CAAC,CAAC,EAAEZ,KAAK,CAACa,aAAa,CAACO,MAAM,CAACR,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC;QAEFX,cAAc,KAAKD,KAAK,CAACa,aAAa,GAAGb,KAAK,CAACa,aAAa,CAACI,IAAI,CAAChB,cAAc,CAAC,CAAC;QAClF;MACF;IACA,KAAK,cAAc;MAAE;QACnB,IAAIF,MAAM,CAACO,KAAK,CAACe,iBAAiB,EAAE;UAClCrB,KAAK,CAACa,aAAa,GAAGjB,gBAAgB,CAACG,MAAM,CAACO,KAAK,CAACG,QAAQ,CAAC;QAC/D,CAAC,MAAM;UACLT,KAAK,CAACa,aAAa,GAAG,CAAC,GAAGb,KAAK,CAACa,aAAa,EAAE,GAAGjB,gBAAgB,CAACG,MAAM,CAACO,KAAK,CAACG,QAAQ,CAAC,CAAC;QAC5F;QAEAR,cAAc,KAAKD,KAAK,CAACa,aAAa,GAAGb,KAAK,CAACa,aAAa,CAACI,IAAI,CAAChB,cAAc,CAAC,CAAC;QAClF;MACF;IACA,KAAK,cAAc;MAAE;QACnBD,KAAK,CAACG,KAAK,GAAGJ,MAAM,CAACO,KAAK,CAACH,KAAK;QAChC,MAAMF,cAAc,GAAGC,oBAAoB,CAACF,KAAK,CAACG,KAAK,CAAC;QACxDF,cAAc,KAAKD,KAAK,CAACa,aAAa,GAAGb,KAAK,CAACa,aAAa,CAACI,IAAI,CAAChB,cAAc,CAAC,CAAC;QAClF;MACF;EAAC;EAEH,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAMsB,0BAA0B,GAAInB,KAAa,IAAK;EAC3D,MAAM,CAAC;IAAEK,OAAO;IAAEH,UAAU;IAAEQ;EAAc,CAAC,EAAEU,QAAQ,CAAC,GAAG5B,UAAU,CAACE,cAAc,EAAE;IACpFW,OAAO,EAAE,IAAI;IACbH,UAAU,EAAE,KAAK;IACjBQ,aAAa,EAAE,EAAE;IACjBV;EACF,CAAC,CAAC;EAEF,MAAMqB,cAAc,GAAIf,QAA2B,IAAK;IACtDc,QAAQ,CAAC;MAAEnB,IAAI,EAAE,iBAAiB;MAAEE,KAAK,EAAE;QAAEG;MAAS;IAAE,CAAC,CAAC;EAC5D,CAAC;EACD,MAAMgB,cAAc,GAAIP,WAAqB,IAAK;IAChDK,QAAQ,CAAC;MAAEnB,IAAI,EAAE,iBAAiB;MAAEE,KAAK,EAAE;QAAEY;MAAY;IAAE,CAAC,CAAC;EAC/D,CAAC;EACD,MAAMQ,WAAW,GAAGA,CAACjB,QAA2B,EAAEY,iBAA0B,KAAK;IAC/EE,QAAQ,CAAC;MAAEnB,IAAI,EAAE,cAAc;MAAEE,KAAK,EAAE;QAAEG,QAAQ;QAAEY;MAAkB;IAAE,CAAC,CAAC;EAC5E,CAAC;EACD,MAAMM,aAAa,GAAIpB,MAAe,IAAK;IACzCgB,QAAQ,CAAC;MAAEnB,IAAI,EAAE,gBAAgB;MAAEE,KAAK,EAAE;QAAEC;MAAO;IAAE,CAAC,CAAC;EACzD,CAAC;EACD,MAAMqB,gBAAgB,GAAIrB,MAAe,IAAK;IAC5CgB,QAAQ,CAAC;MAAEnB,IAAI,EAAE,mBAAmB;MAAEE,KAAK,EAAE;QAAEC;MAAO;IAAE,CAAC,CAAC;EAC5D,CAAC;EACD,MAAMsB,WAAW,GAAI1B,KAAa,IAAK;IACrCoB,QAAQ,CAAC;MAAEnB,IAAI,EAAE,cAAc;MAAEE,KAAK,EAAE;QAAEH;MAAM;IAAE,CAAC,CAAC;EACtD,CAAC;EAED,OAAO;IACLwB,aAAa;IACbC,gBAAgB;IAChBJ,cAAc;IACdC,cAAc;IACdC,WAAW;IAEXG,WAAW;IAEXrB,OAAO;IACPH,UAAU;IACVQ;EACF,CAAC;AACH,CAAC;AAED,MAAMX,oBAAoB,GAAIC,KAAa,IAAK;EAC9C,IAAI,CAACA,KAAK,EAAE,OAAO2B,SAAS;EAE5B,OAAO,CAACC,QAA8B,EAAEC,QAA8B,KAAa;IACjF,QAAQ7B,KAAK;MACX,KAAK,qBAAqB;QAAE;UAC1B,IAAI4B,QAAQ,CAACE,WAAW,IAAID,QAAQ,CAACC,WAAW,EAAE;YAChD,OAAOD,QAAQ,CAACC,WAAW,CAACC,SAAS,GAAGH,QAAQ,CAACE,WAAW,CAACC,SAAS;UACxE,CAAC,MAAM,IAAIH,QAAQ,CAACE,WAAW,EAAE;YAC/B,OAAO,CAAC,CAAC;UACX,CAAC,MAAM,IAAID,QAAQ,CAACC,WAAW,EAAE;YAC/B,OAAO,CAAC;UACV,CAAC,MAAM;YACL,OAAOD,QAAQ,CAACE,SAAS,GAAGH,QAAQ,CAACG,SAAS;UAChD;QACF;MAEA,KAAK,eAAe;QAAE;UACpB,OAAOF,QAAQ,CAACE,SAAS,GAAGH,QAAQ,CAACG,SAAS;QAChD;MAEA,KAAK,2BAA2B;QAAE;UAChC,OAAOH,QAAQ,CAACI,IAAI,CAACC,aAAa,CAACJ,QAAQ,CAACG,IAAI,CAAC;QACnD;MACA;QAAS;UACP,OAAO,CAAC;QACV;IAAC;EAEL,CAAC;AACH,CAAC"}
@@ -4,7 +4,6 @@ import { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHan
4
4
  import { useAppFeatures } from '../../common/useAppFeatures';
5
5
  import { useChannelHandler } from '../../handler/useChannelHandler';
6
6
  import { useGroupChannelListReducer } from './reducer';
7
-
8
7
  const createGroupChannelListCollection = (sdk, collectionCreator) => {
9
8
  const passedCollection = collectionCreator === null || collectionCreator === void 0 ? void 0 : collectionCreator();
10
9
  if (passedCollection) return passedCollection;
@@ -16,7 +15,6 @@ const createGroupChannelListCollection = (sdk, collectionCreator) => {
16
15
  order: GroupChannelListOrder.LATEST_LAST_MESSAGE
17
16
  });
18
17
  };
19
-
20
18
  export const useGroupChannelListWithCollection = (sdk, userId, options) => {
21
19
  const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');
22
20
  const {
@@ -32,13 +30,10 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
32
30
  updateRefreshing,
33
31
  updateLoading
34
32
  } = useGroupChannelListReducer();
35
-
36
33
  const updateChannelsAndMarkAsDelivered = (markAsDelivered, source, updatedChannels) => {
37
34
  var _collectionRef$curren;
38
-
39
35
  const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channels) ?? [];
40
36
  setChannels(channels, true);
41
-
42
37
  if (markAsDelivered && deliveryReceiptEnabled) {
43
38
  switch (source) {
44
39
  case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:
@@ -51,15 +46,11 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
51
46
  }
52
47
  }
53
48
  };
54
-
55
49
  const init = useFreshCallback(async uid => {
56
50
  var _collectionRef$curren2;
57
-
58
51
  if (collectionRef.current) (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.dispose();
59
-
60
52
  if (uid) {
61
53
  var _collectionRef$curren3, _collectionRef$curren4;
62
-
63
54
  collectionRef.current = createGroupChannelListCollection(sdk, options === null || options === void 0 ? void 0 : options.collectionCreator);
64
55
  (_collectionRef$curren3 = collectionRef.current) === null || _collectionRef$curren3 === void 0 ? void 0 : _collectionRef$curren3.setGroupChannelCollectionHandler({
65
56
  onChannelsAdded: (context, channels) => {
@@ -72,10 +63,8 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
72
63
  updateChannelsAndMarkAsDelivered(false);
73
64
  }
74
65
  });
75
-
76
66
  if ((_collectionRef$curren4 = collectionRef.current) !== null && _collectionRef$curren4 !== void 0 && _collectionRef$curren4.hasMore) {
77
67
  var _collectionRef$curren5;
78
-
79
68
  await ((_collectionRef$curren5 = collectionRef.current) === null || _collectionRef$curren5 === void 0 ? void 0 : _collectionRef$curren5.loadMore());
80
69
  updateChannelsAndMarkAsDelivered(true);
81
70
  }
@@ -84,7 +73,6 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
84
73
  useEffect(() => {
85
74
  return () => {
86
75
  var _collectionRef$curren6;
87
-
88
76
  if (collectionRef.current) (_collectionRef$curren6 = collectionRef.current) === null || _collectionRef$curren6 === void 0 ? void 0 : _collectionRef$curren6.dispose();
89
77
  };
90
78
  }, []);
@@ -92,7 +80,7 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
92
80
  updateLoading(true);
93
81
  await init(userId);
94
82
  updateLoading(false);
95
- }, [init, userId]);
83
+ }, [userId]);
96
84
  useChannelHandler(sdk, handlerId, {
97
85
  onUserBanned: (channel, user) => {
98
86
  const isMe = user.userId === userId;
@@ -106,10 +94,8 @@ export const useGroupChannelListWithCollection = (sdk, userId, options) => {
106
94
  });
107
95
  const next = useFreshCallback(async () => {
108
96
  var _collectionRef$curren7;
109
-
110
97
  if ((_collectionRef$curren7 = collectionRef.current) !== null && _collectionRef$curren7 !== void 0 && _collectionRef$curren7.hasMore) {
111
98
  var _collectionRef$curren8;
112
-
113
99
  await ((_collectionRef$curren8 = collectionRef.current) === null || _collectionRef$curren8 === void 0 ? void 0 : _collectionRef$curren8.loadMore());
114
100
  updateChannelsAndMarkAsDelivered(true);
115
101
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","dispose","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","loadMore","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":"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"}
1
+ {"version":3,"names":["useEffect","useRef","GroupChannelEventSource","GroupChannelFilter","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","deliveryReceiptEnabled","collectionRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","init","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","_collectionRef$curren6","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8"],"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,7 +4,6 @@ import { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHan
4
4
  import { useAppFeatures } from '../../common/useAppFeatures';
5
5
  import { useChannelHandler } from '../../handler/useChannelHandler';
6
6
  import { useGroupChannelListReducer } from './reducer';
7
-
8
7
  const createGroupChannelListQuery = (sdk, queryCreator) => {
9
8
  const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
10
9
  if (passedQuery) return passedQuery;
@@ -14,7 +13,6 @@ const createGroupChannelListQuery = (sdk, queryCreator) => {
14
13
  order: GroupChannelListOrder.LATEST_LAST_MESSAGE
15
14
  });
16
15
  };
17
-
18
16
  export const useGroupChannelListWithQuery = (sdk, userId, options) => {
19
17
  const {
20
18
  deliveryReceiptEnabled
@@ -32,19 +30,15 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
32
30
  updateLoading,
33
31
  updateOrder
34
32
  } = useGroupChannelListReducer();
35
-
36
33
  const updateChannelsAndMarkAsDelivered = channels => {
37
34
  updateChannels(channels);
38
35
  if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);
39
36
  };
40
-
41
37
  const init = useFreshCallback(async uid => {
42
38
  if (uid) {
43
39
  var _queryRef$current, _queryRef$current2;
44
-
45
40
  queryRef.current = createGroupChannelListQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
46
41
  updateOrder((_queryRef$current = queryRef.current) === null || _queryRef$current === void 0 ? void 0 : _queryRef$current.order);
47
-
48
42
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
49
43
  const channels = await queryRef.current.next();
50
44
  setChannels(channels, true);
@@ -56,7 +50,7 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
56
50
  updateLoading(true);
57
51
  await init(userId);
58
52
  updateLoading(false);
59
- }, [init, userId]);
53
+ }, [userId]);
60
54
  useChannelHandler(sdk, handlerId, {
61
55
  onChannelChanged: channel => updateChannels([channel]),
62
56
  onChannelFrozen: channel => updateChannels([channel]),
@@ -68,16 +62,13 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
68
62
  const isMe = user.userId === userId;
69
63
  if (isMe) deleteChannels([channel.url]);else updateChannels([channel]);
70
64
  },
71
-
72
65
  onUserBanned(channel, user) {
73
66
  const isMe = user.userId === userId;
74
67
  if (isMe) deleteChannels([channel.url]);else updateChannels([channel]);
75
68
  },
76
-
77
69
  onMessageReceived(channel) {
78
70
  updateChannelsAndMarkAsDelivered([channel]);
79
71
  }
80
-
81
72
  });
82
73
  const refresh = useFreshCallback(async () => {
83
74
  updateRefreshing(true);
@@ -86,7 +77,6 @@ export const useGroupChannelListWithQuery = (sdk, userId, options) => {
86
77
  });
87
78
  const next = useFreshCallback(async () => {
88
79
  var _queryRef$current3;
89
-
90
80
  if ((_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
91
81
  const channels = await queryRef.current.next();
92
82
  setChannels(channels, false);
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","current","hasNext","next","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":["useRef","GroupChannelListOrder","confirmAndMarkAsDelivered","useAsyncEffect","useFreshCallback","useUniqHandlerId","useAppFeatures","useChannelHandler","useGroupChannelListReducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","queryRef","handlerId","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","updateChannelsAndMarkAsDelivered","channels","init","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3"],"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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"}
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,uBAAvB;AAGA,SAASC,qCAAT,QAAsD,yCAAtD;AACA,SAASC,gCAAT,QAAiD,oCAAjD;AAEA,OAAO,MAAMC,uBAAgD,GAAG,CAACC,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,KAAmC;EACjG,IAAIH,GAAG,CAACI,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,IAAIF,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEG,YAAb,EAA2BV,MAAM,CAACW,IAAP,CAAY,oEAAZ;IAC3B,OAAOV,qCAAqC,CAACG,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,CAA5C;EACD,CAHD,MAGO;IACL,OAAOL,gCAAgC,CAACE,GAAD,EAAMC,OAAN,EAAeC,MAAf,EAAuBC,OAAvB,CAAvC;EACD;AACF,CAPM"}
1
+ {"version":3,"names":["Logger","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,uBAAuB;AAG9C,SAASC,qCAAqC,QAAQ,yCAAyC;AAC/F,SAASC,gCAAgC,QAAQ,oCAAoC;AAErF,OAAO,MAAMC,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEV,MAAM,CAACW,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAOV,qCAAqC,CAACG,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAOL,gCAAgC,CAACE,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC"}
@@ -1,45 +1,46 @@
1
1
  import { useReducer } from 'react';
2
2
  import { arrayToMapWithGetter, getMessageUniqId, isMyMessage, isNewMessage, useIIFE } from '@sendbird/uikit-utils';
3
-
4
3
  const defaultReducer = (_ref, action) => {
5
- let { ...draft
4
+ let {
5
+ ...draft
6
6
  } = _ref;
7
-
8
7
  switch (action.type) {
9
8
  case 'update_refreshing':
9
+ {
10
+ draft['refreshing'] = action.value.status;
11
+ return draft;
12
+ }
10
13
  case 'update_loading':
11
14
  {
12
- const key = action.type === 'update_loading' ? 'loading' : 'refreshing';
13
- draft[key] = action.value.status;
15
+ draft['loading'] = action.value.status;
14
16
  return draft;
15
17
  }
16
-
17
18
  case 'update_messages':
18
19
  case 'update_next_messages':
19
20
  {
20
21
  const key = action.type === 'update_messages' ? 'messageMap' : 'nextMessageMap';
21
22
  const receivedMessagesAsMap = arrayToMapWithGetter(action.value.messages, getMessageUniqId);
22
-
23
- if (action.value.clearPrev) {
23
+ if (action.value.clearBeforeAction) {
24
24
  draft[key] = receivedMessagesAsMap;
25
25
  } else {
26
- draft[key] = { ...draft[key],
26
+ draft[key] = {
27
+ ...draft[key],
27
28
  ...receivedMessagesAsMap
28
- }; // NOTE: Replace pending message to succeeded message
29
+ };
29
30
 
31
+ // NOTE: Replace pending message to succeeded message
30
32
  action.value.messages.filter(m => {
31
33
  return (m.isFileMessage() || m.isUserMessage()) && Boolean(draft[key][m.reqId]) && m.sendingStatus === 'succeeded' && isMyMessage(m, action.value.currentUserId);
32
34
  }).forEach(m => delete draft[key][m.reqId]);
33
35
  }
34
-
35
36
  return draft;
36
37
  }
37
-
38
38
  case 'delete_messages':
39
39
  case 'delete_next_messages':
40
40
  {
41
41
  const key = action.type === 'delete_messages' ? 'messageMap' : 'nextMessageMap';
42
- draft[key] = { ...draft[key]
42
+ draft[key] = {
43
+ ...draft[key]
43
44
  };
44
45
  action.value.messageIds.forEach(msgId => delete draft[key][msgId]);
45
46
  action.value.reqIds.forEach(reqId => delete draft[key][reqId]);
@@ -47,7 +48,6 @@ const defaultReducer = (_ref, action) => {
47
48
  }
48
49
  }
49
50
  };
50
-
51
51
  export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
52
52
  const [{
53
53
  loading,
@@ -60,18 +60,16 @@ export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
60
60
  messageMap: {},
61
61
  nextMessageMap: {}
62
62
  });
63
-
64
- const updateMessages = (messages, clearPrev, currentUserId) => {
63
+ const updateMessages = (messages, clearBeforeAction, currentUserId) => {
65
64
  dispatch({
66
65
  type: 'update_messages',
67
66
  value: {
68
67
  messages,
69
- clearPrev,
68
+ clearBeforeAction,
70
69
  currentUserId
71
70
  }
72
71
  });
73
72
  };
74
-
75
73
  const deleteMessages = (messageIds, reqIds) => {
76
74
  dispatch({
77
75
  type: 'delete_messages',
@@ -81,18 +79,16 @@ export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
81
79
  }
82
80
  });
83
81
  };
84
-
85
- const updateNextMessages = (messages, clearPrev, currentUserId) => {
82
+ const updateNextMessages = (messages, clearBeforeAction, currentUserId) => {
86
83
  dispatch({
87
84
  type: 'update_next_messages',
88
85
  value: {
89
86
  messages,
90
- clearPrev,
87
+ clearBeforeAction,
91
88
  currentUserId
92
89
  }
93
90
  });
94
91
  };
95
-
96
92
  const deleteNextMessages = (messageIds, reqIds) => {
97
93
  dispatch({
98
94
  type: 'delete_next_messages',
@@ -102,7 +98,6 @@ export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
102
98
  }
103
99
  });
104
100
  };
105
-
106
101
  const updateLoading = status => {
107
102
  dispatch({
108
103
  type: 'update_loading',
@@ -111,7 +106,6 @@ export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
111
106
  }
112
107
  });
113
108
  };
114
-
115
109
  const updateRefreshing = status => {
116
110
  dispatch({
117
111
  type: 'update_refreshing',
@@ -120,7 +114,6 @@ export const useGroupChannelMessagesReducer = (userId, sortComparator) => {
120
114
  }
121
115
  });
122
116
  };
123
-
124
117
  const messages = useIIFE(() => {
125
118
  if (sortComparator) return Object.values(messageMap).sort(sortComparator);
126
119
  return Object.values(messageMap);