@sendbird/uikit-chat-hooks 2.5.0-rc.3 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +4 -0
  2. package/lib/commonjs/channel/useGroupChannel.js +21 -13
  3. package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/reducer.js +7 -6
  5. package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +2 -2
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +3 -3
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js +4 -1
  11. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +3 -4
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +8 -8
  15. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  16. package/lib/commonjs/channel/useOpenChannel.js +21 -13
  17. package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
  18. package/lib/commonjs/channel/useOpenChannelList/reducer.js +1 -1
  19. package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
  20. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -3
  21. package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  22. package/lib/commonjs/types.js.map +1 -1
  23. package/lib/module/channel/useGroupChannel.js +22 -14
  24. package/lib/module/channel/useGroupChannel.js.map +1 -1
  25. package/lib/module/channel/useGroupChannelList/reducer.js +8 -7
  26. package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
  27. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +2 -2
  28. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  29. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +3 -3
  30. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  31. package/lib/module/channel/useGroupChannelMessages/index.js +4 -1
  32. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  33. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +3 -4
  34. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  35. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +8 -8
  36. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  37. package/lib/module/channel/useOpenChannel.js +22 -14
  38. package/lib/module/channel/useOpenChannel.js.map +1 -1
  39. package/lib/module/channel/useOpenChannelList/reducer.js +2 -2
  40. package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
  41. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -3
  42. package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
  43. package/lib/module/types.js.map +1 -1
  44. package/lib/typescript/src/channel/useGroupChannel.d.ts +2 -2
  45. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  46. package/lib/typescript/src/channel/useOpenChannel.d.ts +2 -2
  47. package/lib/typescript/src/types.d.ts +2 -8
  48. package/package.json +4 -4
  49. package/src/channel/useGroupChannel.ts +13 -10
  50. package/src/channel/useGroupChannelList/reducer.ts +9 -8
  51. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +2 -2
  52. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +3 -3
  53. package/src/channel/useGroupChannelMessages/index.ts +8 -1
  54. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +5 -4
  55. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +9 -13
  56. package/src/channel/useOpenChannel.ts +13 -10
  57. package/src/channel/useOpenChannelList/reducer.ts +2 -2
  58. package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +0 -3
  59. package/src/types.ts +2 -10
package/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  A set of React hooks for integrating Sendbird chat functionality into your React app.
4
4
 
5
+ This package is created and published for the dependency of UIKit for React-Native.
6
+ Therefore, we do not guarantee that this package will work in other environments.
7
+ If you use this package outside of UIKit for React-Native and encounter any issues, you will need to handle them on your own.
8
+
5
9
  ## Installation
6
10
 
7
11
  ```sh
@@ -6,24 +6,32 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useGroupChannel = void 0;
7
7
  var _react = require("react");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
+ const initialState = {
10
+ loading: true,
11
+ error: undefined,
12
+ channel: undefined
13
+ };
14
+ const reducer = (state, nextState) => ({
15
+ ...state,
16
+ ...nextState
17
+ });
9
18
  const useGroupChannel = (sdk, channelUrl) => {
10
- const [channel, setChannel] = (0, _react.useState)();
11
- const [loading, setLoading] = (0, _react.useState)(true);
12
- const [error, setError] = (0, _react.useState)();
19
+ const [state, setState] = (0, _react.useReducer)(reducer, initialState);
13
20
  (0, _uikitUtils.useAsyncEffect)(async () => {
21
+ setState(initialState);
14
22
  try {
15
- setChannel(await sdk.groupChannel.getChannel(channelUrl));
23
+ setState({
24
+ channel: await sdk.groupChannel.getChannel(channelUrl),
25
+ loading: false
26
+ });
16
27
  } catch (e) {
17
- setError(e);
18
- } finally {
19
- setLoading(false);
28
+ setState({
29
+ error: e,
30
+ loading: false
31
+ });
20
32
  }
21
- }, []);
22
- return {
23
- channel,
24
- loading,
25
- error
26
- };
33
+ }, [channelUrl]);
34
+ return state;
27
35
  };
28
36
  exports.useGroupChannel = useGroupChannel;
29
37
  //# sourceMappingURL=useGroupChannel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","useGroupChannel","sdk","channelUrl","channel","setChannel","useState","loading","setLoading","error","setError","useAsyncEffect","groupChannel","getChannel","e","exports"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdGroupChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.groupChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,GAAwB;EAC9D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,IAAI,CAAC;EAC5C,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAJ,eAAQ,GAAW;EAE7C,IAAAK,0BAAc,EAAC,YAAY;IACzB,IAAI;MACFN,UAAU,CAAC,MAAMH,GAAG,CAACU,YAAY,CAACC,UAAU,CAACV,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,OAAOW,CAAC,EAAE;MACVJ,QAAQ,CAACI,CAAC,CAAC;IACb,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,OAAO;IAAEG,OAAO;IAAEE;EAAM,CAAC;AACpC,CAAC;AAACM,OAAA,CAAAd,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","initialState","loading","error","undefined","channel","reducer","state","nextState","useGroupChannel","sdk","channelUrl","setState","useReducer","useAsyncEffect","groupChannel","getChannel","e","exports"],"sources":["useGroupChannel.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport { SendbirdChatSDK, SendbirdGroupChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype State = { loading: boolean; channel?: SendbirdGroupChannel; error?: unknown };\n\nconst initialState: State = { loading: true, error: undefined, channel: undefined };\nconst reducer = (state: State, nextState: Partial<State>) => ({ ...state, ...nextState });\n\nexport const useGroupChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [state, setState] = useReducer(reducer, initialState);\n\n useAsyncEffect(async () => {\n setState(initialState);\n\n try {\n setState({ channel: await sdk.groupChannel.getChannel(channelUrl), loading: false });\n } catch (e) {\n setState({ error: e, loading: false });\n }\n }, [channelUrl]);\n\n return state;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAIA,MAAME,YAAmB,GAAG;EAAEC,OAAO,EAAE,IAAI;EAAEC,KAAK,EAAEC,SAAS;EAAEC,OAAO,EAAED;AAAU,CAAC;AACnF,MAAME,OAAO,GAAGA,CAACC,KAAY,EAAEC,SAAyB,MAAM;EAAE,GAAGD,KAAK;EAAE,GAAGC;AAAU,CAAC,CAAC;AAElF,MAAMC,eAAe,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC3E,MAAM,CAACJ,KAAK,EAAEK,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACP,OAAO,EAAEL,YAAY,CAAC;EAE3D,IAAAa,0BAAc,EAAC,YAAY;IACzBF,QAAQ,CAACX,YAAY,CAAC;IAEtB,IAAI;MACFW,QAAQ,CAAC;QAAEP,OAAO,EAAE,MAAMK,GAAG,CAACK,YAAY,CAACC,UAAU,CAACL,UAAU,CAAC;QAAET,OAAO,EAAE;MAAM,CAAC,CAAC;IACtF,CAAC,CAAC,OAAOe,CAAC,EAAE;MACVL,QAAQ,CAAC;QAAET,KAAK,EAAEc,CAAC;QAAEf,OAAO,EAAE;MAAM,CAAC,CAAC;IACxC;EACF,CAAC,EAAE,CAACS,UAAU,CAAC,CAAC;EAEhB,OAAOJ,KAAK;AACd,CAAC;AAACW,OAAA,CAAAT,eAAA,GAAAA,eAAA"}
@@ -40,12 +40,13 @@ const defaultReducer = (_ref, action) => {
40
40
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
41
41
  break;
42
42
  }
43
- case 'set_channels':
43
+ case 'append_channels':
44
44
  {
45
+ const groupChannels = (0, _uikitUtils.getGroupChannels)(action.value.channels);
45
46
  if (action.value.clearBeforeAction) {
46
- draft.groupChannels = (0, _uikitUtils.getGroupChannels)(action.value.channels);
47
+ draft.groupChannels = groupChannels;
47
48
  } else {
48
- draft.groupChannels = [...draft.groupChannels, ...(0, _uikitUtils.getGroupChannels)(action.value.channels)];
49
+ draft.groupChannels = (0, _uikitUtils.mergeObjectArrays)(draft.groupChannels, groupChannels, 'url');
49
50
  }
50
51
  compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));
51
52
  break;
@@ -87,9 +88,9 @@ const useGroupChannelListReducer = order => {
87
88
  }
88
89
  });
89
90
  };
90
- const setChannels = (channels, clearBeforeAction) => {
91
+ const appendChannels = (channels, clearBeforeAction) => {
91
92
  dispatch({
92
- type: 'set_channels',
93
+ type: 'append_channels',
93
94
  value: {
94
95
  channels,
95
96
  clearBeforeAction
@@ -125,7 +126,7 @@ const useGroupChannelListReducer = order => {
125
126
  updateRefreshing,
126
127
  updateChannels,
127
128
  deleteChannels,
128
- setChannels,
129
+ appendChannels,
129
130
  updateOrder,
130
131
  loading,
131
132
  refreshing,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","useGroupChannelListReducer","dispatch","useReducer","updateChannels","deleteChannels","setChannels","updateLoading","updateRefreshing","updateOrder","exports","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels } from '@sendbird/uikit-utils';\n\ntype Order = 'latest_last_message' | 'chronological' | 'channel_name_alphabetical' | 'metadata_value_alphabetical';\n\ntype Action =\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'set_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n }\n | {\n type: 'update_order';\n value: { order?: Order };\n };\n\ntype State = {\n loading: boolean;\n refreshing: boolean;\n groupChannels: SendbirdGroupChannel[];\n order?: Order;\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n const compareByOrder = createCompareByOrder(draft.order);\n\n switch (action.type) {\n case 'update_refreshing': {\n draft.refreshing = action.value.status;\n break;\n }\n case 'update_loading': {\n draft.loading = action.value.status;\n break;\n }\n case 'update_channels': {\n getGroupChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.groupChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.groupChannels[idx] = freshChannel;\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.groupChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.groupChannels.splice(idx, 1);\n });\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'set_channels': {\n if (action.value.clearBeforeAction) {\n draft.groupChannels = getGroupChannels(action.value.channels);\n } else {\n draft.groupChannels = [...draft.groupChannels, ...getGroupChannels(action.value.channels)];\n }\n\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n case 'update_order': {\n draft.order = action.value.order;\n const compareByOrder = createCompareByOrder(draft.order);\n compareByOrder && (draft.groupChannels = draft.groupChannels.sort(compareByOrder));\n break;\n }\n }\n return draft;\n};\n\nexport const useGroupChannelListReducer = (order?: Order) => {\n const [{ loading, refreshing, groupChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n groupChannels: [],\n order,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const setChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'set_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n setChannels,\n\n updateOrder,\n\n loading,\n refreshing,\n groupChannels,\n };\n};\n\nconst createCompareByOrder = (order?: Order) => {\n if (!order) return undefined;\n\n return (channel1: SendbirdGroupChannel, channel2: SendbirdGroupChannel): number => {\n switch (order) {\n case 'latest_last_message': {\n if (channel1.lastMessage && channel2.lastMessage) {\n return channel2.lastMessage.createdAt - channel1.lastMessage.createdAt;\n } else if (channel1.lastMessage) {\n return -1;\n } else if (channel2.lastMessage) {\n return 1;\n } else {\n return channel2.createdAt - channel1.createdAt;\n }\n }\n\n case 'chronological': {\n return channel2.createdAt - channel1.createdAt;\n }\n\n case 'channel_name_alphabetical': {\n return channel1.name.localeCompare(channel2.name);\n }\n default: {\n return 0;\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","compareByOrder","createCompareByOrder","order","type","refreshing","value","status","loading","getGroupChannels","channels","forEach","freshChannel","idx","groupChannels","findIndex","staleChannel","url","sort","channelUrls","c","splice","clearBeforeAction","mergeObjectArrays","useGroupChannelListReducer","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateOrder","exports","undefined","channel1","channel2","lastMessage","createdAt","name","localeCompare"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel } from '@sendbird/uikit-utils';\nimport { SendbirdGroupChannel, getGroupChannels, mergeObjectArrays } 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: 'append_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 'append_channels': {\n const groupChannels = getGroupChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.groupChannels = groupChannels;\n } else {\n draft.groupChannels = mergeObjectArrays(draft.groupChannels, groupChannels, 'url');\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 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 const updateOrder = (order?: Order) => {\n dispatch({ type: 'update_order', value: { order } });\n };\n\n return {\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\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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"}
@@ -31,7 +31,7 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
31
31
  loading,
32
32
  groupChannels,
33
33
  refreshing,
34
- setChannels,
34
+ appendChannels,
35
35
  deleteChannels,
36
36
  updateRefreshing,
37
37
  updateLoading
@@ -39,7 +39,7 @@ const useGroupChannelListWithCollection = (sdk, userId, options) => {
39
39
  const updateChannelsAndMarkAsDelivered = (markAsDelivered, source, updatedChannels) => {
40
40
  var _collectionRef$curren;
41
41
  const channels = ((_collectionRef$curren = collectionRef.current) === null || _collectionRef$curren === void 0 ? void 0 : _collectionRef$curren.channels) ?? [];
42
- setChannels(channels, true);
42
+ appendChannels(channels, true);
43
43
  if (markAsDelivered && deliveryReceiptEnabled) {
44
44
  switch (source) {
45
45
  case _groupChannel.GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","setChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, setChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n setChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListCollection","sdk","collectionCreator","passedCollection","filter","GroupChannelFilter","includeEmpty","groupChannel","createGroupChannelCollection","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithCollection","userId","options","handlerId","useUniqHandlerId","deliveryReceiptEnabled","useAppFeatures","collectionRef","useRef","loading","groupChannels","refreshing","appendChannels","deleteChannels","updateRefreshing","updateLoading","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","markAsDelivered","source","updatedChannels","_collectionRef$curren","channels","current","GroupChannelEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT","SYNC_CHANNEL_BACKGROUND","SYNC_CHANNEL_CHANGELOGS","undefined","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_collectionRef$curren2","dispose","_collectionRef$curren3","_collectionRef$curren4","setGroupChannelCollectionHandler","onChannelsAdded","context","onChannelsUpdated","onChannelsDeleted","hasMore","_collectionRef$curren5","loadMore","useEffect","_collectionRef$curren6","useAsyncEffect","useChannelHandler","onUserBanned","channel","user","isMe","url","refresh","next","_collectionRef$curren7","_collectionRef$curren8","exports"],"sources":["useGroupChannelListWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { GroupChannelEventSource, GroupChannelFilter, GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdBaseChannel, SendbirdChatSDK, SendbirdGroupChannelCollection } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListCollection = (\n sdk: SendbirdChatSDK,\n collectionCreator: UseGroupChannelListOptions['collectionCreator'],\n) => {\n const passedCollection = collectionCreator?.();\n if (passedCollection) return passedCollection;\n\n const filter = new GroupChannelFilter();\n filter.includeEmpty = false;\n\n return sdk.groupChannel.createGroupChannelCollection({\n filter,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithCollection: UseGroupChannelList = (sdk, userId, options) => {\n const handlerId = useUniqHandlerId('useGroupChannelListWithCollection');\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n\n const collectionRef = useRef<SendbirdGroupChannelCollection>();\n\n const { loading, groupChannels, refreshing, appendChannels, deleteChannels, updateRefreshing, updateLoading } =\n useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (\n markAsDelivered: boolean,\n source?: GroupChannelEventSource,\n updatedChannels?: SendbirdBaseChannel[],\n ) => {\n const channels = collectionRef.current?.channels ?? [];\n appendChannels(channels, true);\n if (markAsDelivered && deliveryReceiptEnabled) {\n switch (source) {\n case GroupChannelEventSource.EVENT_MESSAGE_RECEIVED:\n case GroupChannelEventSource.EVENT_MESSAGE_SENT:\n case GroupChannelEventSource.SYNC_CHANNEL_BACKGROUND:\n case GroupChannelEventSource.SYNC_CHANNEL_CHANGELOGS:\n case undefined:\n confirmAndMarkAsDelivered(updatedChannels ?? channels);\n break;\n }\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n if (uid) {\n collectionRef.current = createGroupChannelListCollection(sdk, options?.collectionCreator);\n\n collectionRef.current?.setGroupChannelCollectionHandler({\n onChannelsAdded: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsUpdated: (context, channels) => {\n updateChannelsAndMarkAsDelivered(true, context.source, channels);\n },\n onChannelsDeleted: () => {\n updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n }\n });\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannelsAndMarkAsDelivered(false);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (collectionRef.current?.hasMore) {\n await collectionRef.current?.loadMore();\n updateChannelsAndMarkAsDelivered(true);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -30,7 +30,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
30
30
  groupChannels,
31
31
  refreshing,
32
32
  updateChannels,
33
- setChannels,
33
+ appendChannels,
34
34
  deleteChannels,
35
35
  updateRefreshing,
36
36
  updateLoading,
@@ -47,7 +47,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
47
47
  updateOrder((_queryRef$current = queryRef.current) === null || _queryRef$current === void 0 ? void 0 : _queryRef$current.order);
48
48
  if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
49
49
  const channels = await queryRef.current.next();
50
- setChannels(channels, true);
50
+ appendChannels(channels, true);
51
51
  if (deliveryReceiptEnabled) (0, _uikitUtils.confirmAndMarkAsDelivered)(channels);
52
52
  }
53
53
  }
@@ -85,7 +85,7 @@ const useGroupChannelListWithQuery = (sdk, userId, options) => {
85
85
  var _queryRef$current3;
86
86
  if ((_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
87
87
  const channels = await queryRef.current.next();
88
- setChannels(channels, false);
88
+ appendChannels(channels, false);
89
89
  if (deliveryReceiptEnabled) (0, _uikitUtils.confirmAndMarkAsDelivered)(channels);
90
90
  }
91
91
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","setChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n setChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n setChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n setChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useAppFeatures","_useChannelHandler","_reducer","createGroupChannelListQuery","sdk","queryCreator","passedQuery","groupChannel","createMyGroupChannelListQuery","includeEmpty","limit","order","GroupChannelListOrder","LATEST_LAST_MESSAGE","useGroupChannelListWithQuery","userId","options","deliveryReceiptEnabled","useAppFeatures","queryRef","useRef","handlerId","useUniqHandlerId","loading","groupChannels","refreshing","updateChannels","appendChannels","deleteChannels","updateRefreshing","updateLoading","updateOrder","useGroupChannelListReducer","updateChannelsAndMarkAsDelivered","channels","confirmAndMarkAsDelivered","init","useFreshCallback","uid","_queryRef$current","_queryRef$current2","current","hasNext","next","useAsyncEffect","useChannelHandler","onChannelChanged","channel","onChannelFrozen","onChannelUnfrozen","onChannelMemberCountChanged","onChannelDeleted","url","onUserJoined","onUserLeft","user","isMe","onUserBanned","onMessageReceived","refresh","_queryRef$current3","exports"],"sources":["useGroupChannelListWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport { GroupChannelListOrder } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChannel, SendbirdChatSDK, SendbirdGroupChannelListQuery } from '@sendbird/uikit-utils';\nimport { confirmAndMarkAsDelivered, useAsyncEffect, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useAppFeatures } from '../../common/useAppFeatures';\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelList, UseGroupChannelListOptions } from '../../types';\nimport { useGroupChannelListReducer } from './reducer';\n\nconst createGroupChannelListQuery = (\n sdk: SendbirdChatSDK,\n queryCreator: UseGroupChannelListOptions['queryCreator'],\n) => {\n const passedQuery = queryCreator?.();\n if (passedQuery) return passedQuery;\n\n return sdk.groupChannel.createMyGroupChannelListQuery({\n includeEmpty: false,\n limit: 20,\n order: GroupChannelListOrder.LATEST_LAST_MESSAGE,\n });\n};\n\nexport const useGroupChannelListWithQuery: UseGroupChannelList = (sdk, userId, options) => {\n const { deliveryReceiptEnabled } = useAppFeatures(sdk);\n const queryRef = useRef<SendbirdGroupChannelListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelListWithQuery');\n\n const {\n loading,\n groupChannels,\n refreshing,\n updateChannels,\n appendChannels,\n deleteChannels,\n updateRefreshing,\n updateLoading,\n updateOrder,\n } = useGroupChannelListReducer();\n\n const updateChannelsAndMarkAsDelivered = (channels: SendbirdChannel[]) => {\n updateChannels(channels);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createGroupChannelListQuery(sdk, options?.queryCreator);\n updateOrder(queryRef.current?.order);\n\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n\n appendChannels(channels, true);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n }\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [userId]);\n\n useChannelHandler(sdk, handlerId, {\n onChannelChanged: (channel) => updateChannels([channel]),\n onChannelFrozen: (channel) => updateChannels([channel]),\n onChannelUnfrozen: (channel) => updateChannels([channel]),\n onChannelMemberCountChanged: (channels) => updateChannels(channels),\n onChannelDeleted: (url) => deleteChannels([url]),\n onUserJoined: (channel) => updateChannels([channel]),\n onUserLeft: (channel, user) => {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onUserBanned(channel, user) {\n const isMe = user.userId === userId;\n if (isMe) deleteChannels([channel.url]);\n else updateChannels([channel]);\n },\n onMessageReceived(channel) {\n updateChannelsAndMarkAsDelivered([channel]);\n },\n });\n\n const refresh = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const next = useFreshCallback(async () => {\n if (queryRef.current?.hasNext) {\n const channels = await queryRef.current.next();\n appendChannels(channels, false);\n if (deliveryReceiptEnabled) confirmAndMarkAsDelivered(channels);\n }\n });\n\n return {\n loading,\n groupChannels,\n refresh,\n refreshing,\n next,\n };\n};\n"],"mappings":"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"}
@@ -9,11 +9,14 @@ var _useGroupChannelMessagesWithCollection = require("./useGroupChannelMessagesW
9
9
  var _useGroupChannelMessagesWithQuery = require("./useGroupChannelMessagesWithQuery");
10
10
  const useGroupChannelMessages = (sdk, channel, userId, options) => {
11
11
  if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
12
- if (options !== null && options !== void 0 && options.queryCreator) _uikitUtils.Logger.warn('`queryCreator` is ignored, please use `collectionCreator` instead.');
12
+ if (options !== null && options !== void 0 && options.queryCreator) printIgnoredWarning();
13
13
  return (0, _useGroupChannelMessagesWithCollection.useGroupChannelMessagesWithCollection)(sdk, channel, userId, options);
14
14
  } else {
15
15
  return (0, _useGroupChannelMessagesWithQuery.useGroupChannelMessagesWithQuery)(sdk, channel, userId, options);
16
16
  }
17
17
  };
18
18
  exports.useGroupChannelMessages = useGroupChannelMessages;
19
+ const printIgnoredWarning = () => {
20
+ _uikitUtils.Logger.warn('If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' + 'Please use collectionCreator instead.');
21
+ };
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","Logger","warn","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports"],"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,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,kBAAM,CAACC,IAAI,CAAC,oEAAoE,CAAC;IAC5G,OAAO,IAAAC,4EAAqC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAO,kEAAgC,EAACV,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACQ,OAAA,CAAAZ,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_uikitUtils","require","_useGroupChannelMessagesWithCollection","_useGroupChannelMessagesWithQuery","useGroupChannelMessages","sdk","channel","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache","queryCreator","printIgnoredWarning","useGroupChannelMessagesWithCollection","useGroupChannelMessagesWithQuery","exports","Logger","warn"],"sources":["index.ts"],"sourcesContent":["import { Logger } from '@sendbird/uikit-utils';\n\nimport type { UseGroupChannelMessages } from '../../types';\nimport { useGroupChannelMessagesWithCollection } from './useGroupChannelMessagesWithCollection';\nimport { useGroupChannelMessagesWithQuery } from './useGroupChannelMessagesWithQuery';\n\nexport const useGroupChannelMessages: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n if (options?.queryCreator) printIgnoredWarning();\n return useGroupChannelMessagesWithCollection(sdk, channel, userId, options);\n } else {\n return useGroupChannelMessagesWithQuery(sdk, channel, userId, options);\n }\n};\n\nconst printIgnoredWarning = () => {\n Logger.warn(\n 'If sdk.isCacheEnabled or enableCollectionWithoutLocalCache is turned on, queryCreator is ignored' +\n 'Please use collectionCreator instead.',\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA,IAAAC,sCAAA,GAAAD,OAAA;AACA,IAAAE,iCAAA,GAAAF,OAAA;AAEO,MAAMG,uBAAgD,GAAGA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACjG,IAAIH,GAAG,CAACI,cAAc,IAAID,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,iCAAiC,EAAE;IACpE,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,YAAY,EAAEC,mBAAmB,EAAE;IAChD,OAAO,IAAAC,4EAAqC,EAACR,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC7E,CAAC,MAAM;IACL,OAAO,IAAAM,kEAAgC,EAACT,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACxE;AACF,CAAC;AAACO,OAAA,CAAAX,uBAAA,GAAAA,uBAAA;AAEF,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;EAChCI,kBAAM,CAACC,IAAI,CACT,kGAAkG,GAChG,uCAAuC,CAC1C;AACH,CAAC"}
@@ -18,6 +18,7 @@ const createMessageCollection = (channel, limit, options) => {
18
18
  startingPoint: options === null || options === void 0 ? void 0 : options.startingPoint
19
19
  });
20
20
  const filter = new _groupChannel.MessageFilter();
21
+ if (options.replyType) filter.replyType = options.replyType;
21
22
  return channel.createMessageCollection({
22
23
  filter,
23
24
  limit,
@@ -76,7 +77,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
76
77
  updateNewMessages([], true, sdk.currentUser.userId);
77
78
  collectionInitializedRef.current = false;
78
79
  collectionRef.current = createMessageCollection(channel, limit, {
79
- collectionCreator: options === null || options === void 0 ? void 0 : options.collectionCreator,
80
+ ...options,
80
81
  startingPoint
81
82
  });
82
83
  (_collectionRef$curren2 = collectionRef.current) === null || _collectionRef$curren2 === void 0 ? void 0 : _collectionRef$curren2.setMessageCollectionHandler({
@@ -323,9 +324,7 @@ const useGroupChannelMessagesWithCollection = (sdk, channel, userId, options) =>
323
324
  updateFileMessage,
324
325
  resendMessage,
325
326
  deleteMessage,
326
- resetWithStartingPoint,
327
- nextMessages: newMessages,
328
- newMessagesFromMembers: newMessages
327
+ resetWithStartingPoint
329
328
  };
330
329
  };
331
330
  exports.useGroupChannelMessagesWithCollection = useGroupChannelMessagesWithCollection;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","isNotEmpty","arr","length","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","MessageEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","e","Logger","warn","updateUnsendMessages","pendingMessages","failedMessages","current","currentUser","init","useFreshCallback","callback","_collectionRef$curren","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","_","__","incomingMessages","it","EVENT_MESSAGE_SENT_PENDING","EVENT_MESSAGE_SENT_FAILED","isMyMessage","_options$shouldCountN","shouldCountNewMessages","call","_options$onMessagesRe","onMessagesReceived","onMessagesUpdated","EVENT_MESSAGE_UPDATED","_options$shouldCountN2","onMessagesDeleted","messageIds","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","onApiResult","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","failedMessage","sendFileMessage","isFileMessage","updateUserMessage","messageId","updatedMessage","updateFileMessage","resendMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","reqId","resetNewMessages","resetWithStartingPoint","nextMessages","newMessagesFromMembers","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options?: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n const filter = new MessageFilter();\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = typeof options?.startingPoint === 'number' ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async (source?: MessageEventSource) => {\n try {\n switch (source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n\n const updateUnsendMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser.userId);\n };\n\n const init = useFreshCallback(async (startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n collectionCreator: options?.collectionCreator,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_SENT_PENDING:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.EVENT_MESSAGE_SENT_FAILED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n updateMessages(incomingMessages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages(incomingMessages, false, sdk.currentUser.userId);\n }\n\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.SYNC_MESSAGE_FILL: {\n options?.onMessagesReceived?.(incomingMessages);\n }\n }\n }\n },\n onMessagesUpdated: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_UPDATED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n updateMessages(messages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n if (_.source === MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateNewMessages(messages, false, sdk.currentUser.userId);\n }\n }\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNewMessages(messageIds, []);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateUnsendMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsendMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n updateLoading(true);\n updateMessages([], true, sdk.currentUser.userId);\n init(startingPoint, MESSAGE_LIMIT.DEFAULT, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n nextMessages: newMessages,\n newMessagesFromMembers: newMessages,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useChannelHandler","_useChannelMessagesReducer","MESSAGE_LIMIT","DEFAULT","SEARCH","createMessageCollection","channel","limit","options","collectionCreator","startingPoint","filter","MessageFilter","replyType","isNotEmpty","arr","length","useGroupChannelMessagesWithCollection","sdk","userId","initialStartingPoint","Number","MAX_SAFE_INTEGER","initialLimit","forceUpdate","useForceUpdate","collectionRef","useRef","collectionInitializedRef","handlerId","useUniqHandlerId","loading","refreshing","messages","newMessages","updateMessages","updateNewMessages","deleteNewMessages","deleteMessages","updateLoading","updateRefreshing","useChannelMessagesReducer","sortComparator","channelMarkAsRead","source","MessageEventSource","EVENT_MESSAGE_RECEIVED","EVENT_MESSAGE_SENT_SUCCESS","SYNC_MESSAGE_FILL","undefined","confirmAndMarkAsRead","e","Logger","warn","updateUnsendMessages","pendingMessages","failedMessages","current","currentUser","init","useFreshCallback","callback","_collectionRef$curren","_collectionRef$curren2","dispose","setMessageCollectionHandler","onMessagesAdded","_","__","incomingMessages","it","EVENT_MESSAGE_SENT_PENDING","EVENT_MESSAGE_SENT_FAILED","isMyMessage","_options$shouldCountN","shouldCountNewMessages","call","_options$onMessagesRe","onMessagesReceived","onMessagesUpdated","EVENT_MESSAGE_UPDATED","_options$shouldCountN2","onMessagesDeleted","messageIds","onChannelDeleted","_options$onChannelDel","onChannelUpdated","eventChannel","isGroupChannel","isDifferentChannel","onHugeGapDetected","initialize","MessageCollectionInitPolicy","CACHE_AND_REPLACE_BY_API","onCacheResult","err","isCacheEnabled","error","debug","onApiResult","_options$onMessagesRe2","useChannelHandler","onUserBanned","bannedUser","_options$onChannelDel2","useEffect","setTimeout","url","_collectionRef$curren3","refresh","prev","_collectionRef$curren4","hasPrevious","_collectionRef$curren5","list","loadPrevious","hasPrev","next","_collectionRef$curren6","hasNext","_collectionRef$curren7","fetchedList","loadNext","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","failedMessage","sendFileMessage","isFileMessage","updateUserMessage","messageId","updatedMessage","updateFileMessage","resendMessage","resentMessage","resendUserMessage","resendFileMessage","deleteMessage","message","sendingStatus","_collectionRef$curren8","removeFailedMessage","reqId","resetNewMessages","resetWithStartingPoint","exports"],"sources":["useGroupChannelMessagesWithCollection.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';\nimport type { SendbirdFileMessage, SendbirdGroupChannel, SendbirdMessageCollection } from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n isMyMessage,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useChannelMessagesReducer } from '../useChannelMessagesReducer';\n\nconst MESSAGE_LIMIT = {\n DEFAULT: 50,\n SEARCH: 20,\n};\n\nconst createMessageCollection = (\n channel: SendbirdGroupChannel,\n limit: number,\n options: UseGroupChannelMessagesOptions,\n) => {\n if (options?.collectionCreator) return options?.collectionCreator({ startingPoint: options?.startingPoint });\n\n const filter = new MessageFilter();\n if (options.replyType) filter.replyType = options.replyType;\n\n return channel.createMessageCollection({ filter, limit, startingPoint: options?.startingPoint });\n};\n\nfunction isNotEmpty(arr?: unknown[]): arr is unknown[] {\n if (!arr) return false;\n return arr.length !== 0;\n}\n\nexport const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const initialStartingPoint = options?.startingPoint ?? Number.MAX_SAFE_INTEGER;\n const initialLimit = typeof options?.startingPoint === 'number' ? MESSAGE_LIMIT.SEARCH : MESSAGE_LIMIT.DEFAULT;\n\n const forceUpdate = useForceUpdate();\n const collectionRef = useRef<SendbirdMessageCollection>();\n const collectionInitializedRef = useRef(false);\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithCollection');\n\n const {\n loading,\n refreshing,\n messages,\n newMessages,\n updateMessages,\n updateNewMessages,\n deleteNewMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useChannelMessagesReducer(options?.sortComparator);\n\n const channelMarkAsRead = async (source?: MessageEventSource) => {\n try {\n switch (source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.SYNC_MESSAGE_FILL:\n case undefined:\n await confirmAndMarkAsRead([channel]);\n break;\n }\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithCollection/channelMarkAsRead]', e);\n }\n };\n\n const updateUnsendMessages = () => {\n const { pendingMessages, failedMessages } = collectionRef.current ?? {};\n if (isNotEmpty(pendingMessages)) updateMessages(pendingMessages, false, sdk.currentUser.userId);\n if (isNotEmpty(failedMessages)) updateMessages(failedMessages, false, sdk.currentUser.userId);\n };\n\n const init = useFreshCallback(async (startingPoint: number, limit: number, callback?: () => void) => {\n if (collectionRef.current) collectionRef.current?.dispose();\n\n channelMarkAsRead();\n updateNewMessages([], true, sdk.currentUser.userId);\n\n collectionInitializedRef.current = false;\n collectionRef.current = createMessageCollection(channel, limit, {\n ...options,\n startingPoint,\n });\n\n collectionRef.current?.setMessageCollectionHandler({\n onMessagesAdded: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_SENT_PENDING:\n case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:\n case MessageEventSource.EVENT_MESSAGE_SENT_FAILED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n updateMessages(incomingMessages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n updateNewMessages(incomingMessages, false, sdk.currentUser.userId);\n }\n\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_RECEIVED:\n case MessageEventSource.SYNC_MESSAGE_FILL: {\n options?.onMessagesReceived?.(incomingMessages);\n }\n }\n }\n },\n onMessagesUpdated: (_, __, messages) => {\n channelMarkAsRead(_.source);\n\n const incomingMessages = messages.filter((it) => {\n switch (_.source) {\n case MessageEventSource.EVENT_MESSAGE_UPDATED:\n return !isMyMessage(it, sdk.currentUser.userId);\n default:\n return true;\n }\n });\n\n if (incomingMessages.length > 0) {\n // NOTE: admin message is not added via onMessagesAdded handler, not checked yet is this a bug.\n updateMessages(messages, false, sdk.currentUser.userId);\n\n if (options?.shouldCountNewMessages?.()) {\n if (_.source === MessageEventSource.EVENT_MESSAGE_RECEIVED) {\n updateNewMessages(messages, false, sdk.currentUser.userId);\n }\n }\n }\n },\n onMessagesDeleted: (_, __, messageIds) => {\n deleteMessages(messageIds, []);\n deleteNewMessages(messageIds, []);\n },\n onChannelDeleted: () => {\n options?.onChannelDeleted?.();\n },\n onChannelUpdated: (_, eventChannel) => {\n if (eventChannel.isGroupChannel() && !isDifferentChannel(eventChannel, channel)) {\n forceUpdate();\n }\n },\n onHugeGapDetected: () => {\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT);\n },\n });\n\n collectionRef.current\n .initialize(MessageCollectionInitPolicy.CACHE_AND_REPLACE_BY_API)\n .onCacheResult((err, messages) => {\n if (err) sdk.isCacheEnabled && Logger.error('[useGroupChannelMessagesWithCollection/onCacheResult]', err);\n else {\n Logger.debug('[useGroupChannelMessagesWithCollection/onCacheResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n updateUnsendMessages();\n }\n\n callback?.();\n })\n .onApiResult((err, messages) => {\n if (err) Logger.warn('[useGroupChannelMessagesWithCollection/onApiResult]', err);\n else {\n Logger.debug('[useGroupChannelMessagesWithCollection/onApiResult]', 'message length:', messages.length);\n\n updateMessages(messages, true, sdk.currentUser.userId);\n if (!options?.startingPoint) options?.onMessagesReceived?.(messages);\n if (sdk.isCacheEnabled) updateUnsendMessages();\n }\n\n collectionInitializedRef.current = true;\n callback?.();\n });\n });\n\n useChannelHandler(sdk, handlerId, {\n onUserBanned(channel, bannedUser) {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n forceUpdate();\n }\n }\n },\n });\n\n useEffect(() => {\n // NOTE: Cache read is heavy task, and it prevents smooth ui transition\n setTimeout(async () => {\n updateLoading(true);\n init(initialStartingPoint, initialLimit, () => updateLoading(false));\n }, 0);\n }, [channel.url, userId]);\n\n useEffect(() => {\n return () => {\n if (collectionRef.current) collectionRef.current?.dispose();\n };\n }, []);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n init(Number.MAX_SAFE_INTEGER, MESSAGE_LIMIT.DEFAULT, () => updateRefreshing(false));\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasPrevious) {\n try {\n const list = await collectionRef.current?.loadPrevious();\n updateMessages(list, false, sdk.currentUser.userId);\n } catch {}\n }\n });\n\n const hasPrev: ReturnType<UseGroupChannelMessages>['hasPrev'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasPrevious;\n } else {\n return false;\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (collectionRef.current && collectionRef.current?.hasNext) {\n try {\n const fetchedList = await collectionRef.current?.loadNext();\n updateMessages(fetchedList, false, sdk.currentUser.userId);\n } catch {}\n }\n });\n\n const hasNext: ReturnType<UseGroupChannelMessages>['hasNext'] = useFreshCallback(() => {\n if (collectionInitializedRef.current && collectionRef.current) {\n return collectionRef.current.hasNext;\n } else {\n return false;\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n onPending?.(pendingMessage);\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage as SendbirdFileMessage);\n }\n })\n .onFailed((err, failedMessage) => {\n updateMessages([failedMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const resentMessage = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (resentMessage) updateMessages([resentMessage], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n try {\n await collectionRef.current?.removeFailedMessage(message.reqId);\n } finally {\n deleteMessages([message.messageId], [message.reqId]);\n }\n }\n });\n const resetNewMessages: ReturnType<UseGroupChannelMessages>['resetNewMessages'] = useFreshCallback(() => {\n updateNewMessages([], true, sdk.currentUser.userId);\n });\n const resetWithStartingPoint: ReturnType<UseGroupChannelMessages>['resetWithStartingPoint'] = useFreshCallback(\n (startingPoint, callback) => {\n updateLoading(true);\n updateMessages([], true, sdk.currentUser.userId);\n init(startingPoint, MESSAGE_LIMIT.DEFAULT, () => {\n updateLoading(false);\n callback?.();\n });\n },\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n next,\n hasNext,\n prev,\n hasPrev,\n newMessages,\n resetNewMessages,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n };\n};\n"],"mappings":"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"}
@@ -8,12 +8,14 @@ var _react = require("react");
8
8
  var _uikitUtils = require("@sendbird/uikit-utils");
9
9
  var _useChannelHandler = require("../../handler/useChannelHandler");
10
10
  var _useChannelMessagesReducer = require("../useChannelMessagesReducer");
11
- const createMessageQuery = (channel, creator) => {
12
- if (creator) return creator();
13
- return channel.createPreviousMessageListQuery({
11
+ const createMessageQuery = (channel, options) => {
12
+ if (options !== null && options !== void 0 && options.queryCreator) return options.queryCreator();
13
+ const params = {
14
14
  limit: 100,
15
15
  reverse: true
16
- });
16
+ };
17
+ if (options !== null && options !== void 0 && options.replyType) params.replyType = options.replyType;
18
+ return channel.createPreviousMessageListQuery(params);
17
19
  };
18
20
  const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
19
21
  const queryRef = (0, _react.useRef)();
@@ -43,7 +45,7 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
43
45
  var _queryRef$current;
44
46
  channelMarkAsRead();
45
47
  updateNewMessages([], true, sdk.currentUser.userId);
46
- queryRef.current = createMessageQuery(channel, options === null || options === void 0 ? void 0 : options.queryCreator);
48
+ queryRef.current = createMessageQuery(channel, options);
47
49
  if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
48
50
  var _queryRef$current2;
49
51
  const list = await ((_queryRef$current2 = queryRef.current) === null || _queryRef$current2 === void 0 ? void 0 : _queryRef$current2.load());
@@ -234,9 +236,7 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
234
236
  deleteMessage,
235
237
  resetWithStartingPoint() {
236
238
  _uikitUtils.Logger.warn('resetWithStartingPoint is not supported in Query, please use Collection instead.');
237
- },
238
- nextMessages: newMessages,
239
- newMessagesFromMembers: newMessages
239
+ }
240
240
  };
241
241
  };
242
242
  exports.useGroupChannelMessagesWithQuery = useGroupChannelMessagesWithQuery;