@sendbird/uikit-react-native 2.4.2 → 2.5.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/lib/commonjs/components/ChannelMessageList/index.js +319 -0
  2. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -0
  3. package/lib/commonjs/components/ChatFlatList.js +30 -50
  4. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  5. package/lib/commonjs/components/MessageSearchResultItem.js +132 -0
  6. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -0
  7. package/lib/commonjs/components/ScrollToBottomButton.js +1 -1
  8. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  9. package/lib/commonjs/constants.js +6 -2
  10. package/lib/commonjs/constants.js.map +1 -1
  11. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +2 -2
  12. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  13. package/lib/commonjs/containers/SendbirdUIKitContainer.js +4 -2
  14. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  15. package/lib/commonjs/contexts/SendbirdChatCtx.js +4 -2
  16. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  17. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +4 -2
  18. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  19. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +84 -301
  20. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  21. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
  22. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  23. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +9 -2
  24. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  25. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  26. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
  27. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  28. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  29. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +105 -0
  30. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
  31. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js +40 -0
  32. package/lib/commonjs/domain/messageSearch/component/MessageSearchList.js.map +1 -0
  33. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js +22 -0
  34. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
  35. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js +26 -0
  36. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
  37. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js +22 -0
  38. package/lib/commonjs/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
  39. package/lib/commonjs/domain/messageSearch/index.js +62 -0
  40. package/lib/commonjs/domain/messageSearch/index.js.map +1 -0
  41. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js +36 -0
  42. package/lib/commonjs/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
  43. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +25 -0
  44. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -0
  45. package/lib/commonjs/domain/messageSearch/types.js +6 -0
  46. package/lib/commonjs/domain/messageSearch/types.js.map +1 -0
  47. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +38 -279
  48. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  49. package/lib/commonjs/domain/openChannel/module/moduleContext.js +9 -2
  50. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  51. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  52. package/lib/commonjs/fragments/createGroupChannelFragment.js +107 -15
  53. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  54. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -0
  55. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  56. package/lib/commonjs/fragments/createMessageSearchFragment.js +145 -0
  57. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -0
  58. package/lib/commonjs/fragments/createOpenChannelFragment.js +40 -8
  59. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  60. package/lib/commonjs/hooks/useMentionSuggestion.js +17 -0
  61. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  62. package/lib/commonjs/index.js +60 -40
  63. package/lib/commonjs/index.js.map +1 -1
  64. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  65. package/lib/commonjs/localization/createBaseStringSet.js +33 -20
  66. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  67. package/lib/commonjs/utils/pubsub.js +21 -0
  68. package/lib/commonjs/utils/pubsub.js.map +1 -0
  69. package/lib/commonjs/version.js +1 -1
  70. package/lib/commonjs/version.js.map +1 -1
  71. package/lib/module/components/ChannelMessageList/index.js +311 -0
  72. package/lib/module/components/ChannelMessageList/index.js.map +1 -0
  73. package/lib/module/components/ChatFlatList.js +32 -52
  74. package/lib/module/components/ChatFlatList.js.map +1 -1
  75. package/lib/module/components/MessageSearchResultItem.js +124 -0
  76. package/lib/module/components/MessageSearchResultItem.js.map +1 -0
  77. package/lib/module/components/ScrollToBottomButton.js +1 -1
  78. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  79. package/lib/module/constants.js +3 -1
  80. package/lib/module/constants.js.map +1 -1
  81. package/lib/module/containers/GroupChannelPreviewContainer.js +2 -2
  82. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  83. package/lib/module/containers/SendbirdUIKitContainer.js +4 -2
  84. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  85. package/lib/module/contexts/SendbirdChatCtx.js +4 -2
  86. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  87. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +4 -2
  88. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  89. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +88 -305
  90. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  91. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +2 -0
  92. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  93. package/lib/module/domain/groupChannel/module/moduleContext.js +9 -2
  94. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  95. package/lib/module/domain/groupChannel/types.js.map +1 -1
  96. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +18 -4
  97. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  98. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  99. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +96 -0
  100. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -0
  101. package/lib/module/domain/messageSearch/component/MessageSearchList.js +32 -0
  102. package/lib/module/domain/messageSearch/component/MessageSearchList.js.map +1 -0
  103. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js +14 -0
  104. package/lib/module/domain/messageSearch/component/MessageSearchStatusEmpty.js.map +1 -0
  105. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js +18 -0
  106. package/lib/module/domain/messageSearch/component/MessageSearchStatusError.js.map +1 -0
  107. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js +14 -0
  108. package/lib/module/domain/messageSearch/component/MessageSearchStatusLoading.js.map +1 -0
  109. package/lib/module/domain/messageSearch/index.js +8 -0
  110. package/lib/module/domain/messageSearch/index.js.map +1 -0
  111. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js +28 -0
  112. package/lib/module/domain/messageSearch/module/createMessageSearchModule.js.map +1 -0
  113. package/lib/module/domain/messageSearch/module/moduleContext.js +14 -0
  114. package/lib/module/domain/messageSearch/module/moduleContext.js.map +1 -0
  115. package/lib/module/domain/messageSearch/types.js +2 -0
  116. package/lib/module/domain/messageSearch/types.js.map +1 -0
  117. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js +40 -281
  118. package/lib/module/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  119. package/lib/module/domain/openChannel/module/moduleContext.js +9 -2
  120. package/lib/module/domain/openChannel/module/moduleContext.js.map +1 -1
  121. package/lib/module/domain/openChannel/types.js.map +1 -1
  122. package/lib/module/fragments/createGroupChannelFragment.js +109 -17
  123. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  124. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -0
  125. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  126. package/lib/module/fragments/createMessageSearchFragment.js +135 -0
  127. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -0
  128. package/lib/module/fragments/createOpenChannelFragment.js +41 -9
  129. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  130. package/lib/module/hooks/useMentionSuggestion.js +18 -1
  131. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  132. package/lib/module/index.js +2 -0
  133. package/lib/module/index.js.map +1 -1
  134. package/lib/module/localization/StringSet.type.js.map +1 -1
  135. package/lib/module/localization/createBaseStringSet.js +34 -21
  136. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  137. package/lib/module/utils/pubsub.js +14 -0
  138. package/lib/module/utils/pubsub.js.map +1 -0
  139. package/lib/module/version.js +1 -1
  140. package/lib/module/version.js.map +1 -1
  141. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +55 -0
  142. package/lib/typescript/src/components/ChatFlatList.d.ts +7 -8
  143. package/lib/typescript/src/components/MessageRenderer/index.d.ts +4 -0
  144. package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -0
  145. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -0
  146. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  147. package/lib/typescript/src/constants.d.ts +3 -1
  148. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +2 -1
  149. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +3 -1
  150. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -1
  151. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +3 -32
  152. package/lib/typescript/src/domain/groupChannel/types.d.ts +23 -35
  153. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  154. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -0
  155. package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +3 -0
  156. package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +3 -0
  157. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusEmpty.d.ts +2 -0
  158. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusError.d.ts +3 -0
  159. package/lib/typescript/src/domain/messageSearch/component/MessageSearchStatusLoading.d.ts +2 -0
  160. package/lib/typescript/src/domain/messageSearch/index.d.ts +7 -0
  161. package/lib/typescript/src/domain/messageSearch/module/createMessageSearchModule.d.ts +3 -0
  162. package/lib/typescript/src/domain/messageSearch/module/moduleContext.d.ts +3 -0
  163. package/lib/typescript/src/domain/messageSearch/types.d.ts +53 -0
  164. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -37
  165. package/lib/typescript/src/domain/openChannel/types.d.ts +17 -36
  166. package/lib/typescript/src/fragments/createMessageSearchFragment.d.ts +3 -0
  167. package/lib/typescript/src/hooks/useMentionSuggestion.d.ts +3 -2
  168. package/lib/typescript/src/index.d.ts +2 -0
  169. package/lib/typescript/src/localization/StringSet.type.d.ts +17 -3
  170. package/lib/typescript/src/utils/pubsub.d.ts +6 -0
  171. package/lib/typescript/src/version.d.ts +1 -1
  172. package/package.json +8 -7
  173. package/src/components/ChannelMessageList/index.tsx +392 -0
  174. package/src/components/ChatFlatList.tsx +33 -51
  175. package/src/components/MessageSearchResultItem.tsx +125 -0
  176. package/src/components/ScrollToBottomButton.tsx +3 -4
  177. package/src/constants.ts +3 -1
  178. package/src/containers/GroupChannelPreviewContainer.tsx +2 -2
  179. package/src/containers/SendbirdUIKitContainer.tsx +2 -0
  180. package/src/contexts/SendbirdChatCtx.tsx +7 -1
  181. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +9 -3
  182. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +73 -316
  183. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +2 -1
  184. package/src/domain/groupChannel/module/moduleContext.tsx +10 -2
  185. package/src/domain/groupChannel/types.ts +49 -38
  186. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +29 -13
  187. package/src/domain/groupChannelSettings/types.ts +2 -0
  188. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +98 -0
  189. package/src/domain/messageSearch/component/MessageSearchList.tsx +26 -0
  190. package/src/domain/messageSearch/component/MessageSearchStatusEmpty.tsx +15 -0
  191. package/src/domain/messageSearch/component/MessageSearchStatusError.tsx +16 -0
  192. package/src/domain/messageSearch/component/MessageSearchStatusLoading.tsx +15 -0
  193. package/src/domain/messageSearch/index.ts +7 -0
  194. package/src/domain/messageSearch/module/createMessageSearchModule.tsx +21 -0
  195. package/src/domain/messageSearch/module/moduleContext.tsx +16 -0
  196. package/src/domain/messageSearch/types.ts +55 -0
  197. package/src/domain/openChannel/component/OpenChannelMessageList.tsx +35 -303
  198. package/src/domain/openChannel/module/moduleContext.tsx +8 -2
  199. package/src/domain/openChannel/types.ts +40 -38
  200. package/src/fragments/createGroupChannelFragment.tsx +114 -17
  201. package/src/fragments/createGroupChannelSettingsFragment.tsx +2 -0
  202. package/src/fragments/createMessageSearchFragment.tsx +159 -0
  203. package/src/fragments/createOpenChannelFragment.tsx +48 -12
  204. package/src/hooks/useMentionSuggestion.ts +23 -3
  205. package/src/index.ts +3 -0
  206. package/src/localization/StringSet.type.ts +20 -2
  207. package/src/localization/createBaseStringSet.ts +22 -2
  208. package/src/utils/pubsub.ts +20 -0
  209. package/src/version.ts +0 -2
@@ -15,6 +15,7 @@ var _StatusComposition = _interopRequireDefault(require("../components/StatusCom
15
15
  var _constants = require("../constants");
16
16
  var _openChannel = require("../domain/openChannel");
17
17
  var _useContext = require("../hooks/useContext");
18
+ var _pubsub = _interopRequireDefault(require("../utils/pubsub"));
18
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -55,12 +56,13 @@ const createOpenChannelFragment = initModule => {
55
56
  const {
56
57
  show: showUserProfile
57
58
  } = (0, _useContext.useUserProfile)();
59
+ const [openChannelPubSub] = (0, _react.useState)(() => (0, _pubsub.default)());
58
60
  const {
59
61
  messages,
60
- nextMessages,
61
- newMessagesFromMembers,
62
+ newMessages,
62
63
  next,
63
64
  prev,
65
+ hasNext,
64
66
  sendFileMessage,
65
67
  sendUserMessage,
66
68
  updateFileMessage,
@@ -75,14 +77,23 @@ const createOpenChannelFragment = initModule => {
75
77
  onError(error) {
76
78
  if (error instanceof _chat.SendbirdError) {
77
79
  switch (error.code) {
78
- case _uikitUtils.SBErrorCode.CHANNEL_NOT_FOUND_SDK:
79
- case _uikitUtils.SBErrorCode.CHANNEL_NOT_FOUND_SERVER:
80
+ case _uikitUtils.SBErrorCode.RESOURCE_NOT_FOUND:
81
+ case _uikitUtils.SBErrorCode.CHANNEL_NOT_FOUND:
82
+ case _uikitUtils.SBErrorCode.BANNED_USER_SEND_MESSAGE_NOT_ALLOWED:
80
83
  {
81
84
  return showToast(STRINGS.TOAST.GET_CHANNEL_ERROR, 'error');
82
85
  }
83
86
  }
84
87
  }
85
88
  showToast(STRINGS.TOAST.UNKNOWN_ERROR, 'error');
89
+ },
90
+ onMessagesReceived(messages) {
91
+ openChannelPubSub.publish({
92
+ type: 'MESSAGES_RECEIVED',
93
+ data: {
94
+ messages
95
+ }
96
+ });
86
97
  }
87
98
  });
88
99
  const isOperator = channel.isOperator((currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ?? _constants.UNKNOWN_USER_ID);
@@ -99,13 +110,31 @@ const createOpenChannelFragment = initModule => {
99
110
  },
100
111
  ...flatListProps
101
112
  }), [loading, flatListProps]);
113
+ const onPending = message => {
114
+ openChannelPubSub.publish({
115
+ type: 'MESSAGE_SENT_PENDING',
116
+ data: {
117
+ message
118
+ }
119
+ });
120
+ };
121
+ const onSent = message => {
122
+ openChannelPubSub.publish({
123
+ type: 'MESSAGE_SENT_SUCCESS',
124
+ data: {
125
+ message
126
+ }
127
+ });
128
+ };
102
129
  const onPressSendUserMessage = (0, _uikitUtils.useFreshCallback)(async params => {
103
130
  const processedParams = await onBeforeSendUserMessage(params);
104
- await sendUserMessage(processedParams);
131
+ const message = await sendUserMessage(processedParams, onPending);
132
+ onSent(message);
105
133
  });
106
134
  const onPressSendFileMessage = (0, _uikitUtils.useFreshCallback)(async params => {
107
135
  const processedParams = await onBeforeSendFileMessage(params);
108
- await sendFileMessage(processedParams);
136
+ const message = await sendFileMessage(processedParams, onPending);
137
+ onSent(message);
109
138
  });
110
139
  const onPressUpdateUserMessage = (0, _uikitUtils.useFreshCallback)(async (message, params) => {
111
140
  const processedParams = await onBeforeUpdateUserMessage(params);
@@ -116,6 +145,7 @@ const createOpenChannelFragment = initModule => {
116
145
  await updateFileMessage(message.messageId, processedParams);
117
146
  });
118
147
  return /*#__PURE__*/_react.default.createElement(OpenChannelModule.Provider, {
148
+ openChannelPubSub: openChannelPubSub,
119
149
  channel: channel,
120
150
  keyboardAvoidOffset: keyboardAvoidOffset
121
151
  }, /*#__PURE__*/_react.default.createElement(OpenChannelModule.Header, {
@@ -127,14 +157,16 @@ const createOpenChannelFragment = initModule => {
127
157
  LoadingComponent: /*#__PURE__*/_react.default.createElement(OpenChannelModule.StatusLoading, null)
128
158
  }, /*#__PURE__*/_react.default.createElement(OpenChannelModule.MessageList, {
129
159
  channel: channel,
160
+ hasNext: hasNext,
130
161
  enableMessageGrouping: enableMessageGrouping,
131
162
  currentUserId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
132
163
  renderMessage: _renderMessage,
133
164
  messages: messages,
134
- nextMessages: nextMessages,
135
- newMessagesFromMembers: newMessagesFromMembers,
165
+ newMessages: newMessages,
136
166
  onTopReached: prev,
137
167
  onBottomReached: next,
168
+ scrolledAwayFromBottom: false,
169
+ onScrolledAwayFromBottom: _uikitUtils.NOOP,
138
170
  renderNewMessagesButton: renderNewMessagesButton,
139
171
  renderScrollToBottomButton: renderScrollToBottomButton,
140
172
  onResendFailedMessage: resendMessage,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_chat","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_OpenChannelMessageRenderer","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_constants","_openChannel","_useContext","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","createOpenChannelFragment","initModule","OpenChannelModule","createOpenChannelModule","_ref","channel","onChannelDeleted","NOOP","onPressHeaderLeft","onPressHeaderRightWithSettings","onPressHeaderRightWithParticipants","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","onPressMediaMessage","renderMessage","renderNewMessagesButton","renderScrollToBottomButton","props","createElement","enableMessageGrouping","keyboardAvoidOffset","flatListProps","queryCreator","sortComparator","messageComparator","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","show","showToast","useToast","showUserProfile","useUserProfile","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useOpenChannelMessages","userId","onError","error","SendbirdError","code","SBErrorCode","CHANNEL_NOT_FOUND_SDK","CHANNEL_NOT_FOUND_SERVER","TOAST","GET_CHANNEL_ERROR","UNKNOWN_ERROR","isOperator","UNKNOWN_USER_ID","_renderMessage","useFreshCallback","onPressAvatar","memoizedFlatListProps","useMemo","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","message","messageId","onPressUpdateFileMessage","Provider","Header","rightIconName","onPressHeaderRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","shouldRenderInput","_default","exports"],"sources":["createOpenChannelFragment.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { SendbirdError } from '@sendbird/chat';\nimport { useOpenChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { useToast } from '@sendbird/uikit-react-native-foundation';\nimport { NOOP, PASS, SBErrorCode, messageComparator, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport OpenChannelMessageRenderer from '../components/OpenChannelMessageRenderer';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport { UNKNOWN_USER_ID } from '../constants';\nimport { createOpenChannelModule } from '../domain/openChannel';\nimport type { OpenChannelFragment, OpenChannelModule, OpenChannelProps } from '../domain/openChannel/types';\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';\n\nconst createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): OpenChannelFragment => {\n const OpenChannelModule = createOpenChannelModule(initModule);\n\n return ({\n channel,\n onChannelDeleted = NOOP,\n onPressHeaderLeft = NOOP,\n onPressHeaderRightWithSettings = NOOP,\n onPressHeaderRightWithParticipants = NOOP,\n\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n onPressMediaMessage = NOOP,\n\n renderMessage,\n renderNewMessagesButton = () => null,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n\n enableMessageGrouping = true,\n keyboardAvoidOffset,\n flatListProps,\n queryCreator,\n sortComparator = messageComparator,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { show: showToast } = useToast();\n const { show: showUserProfile } = useUserProfile();\n\n const {\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useOpenChannelMessages(sdk, channel, currentUser?.userId, {\n queryCreator,\n sortComparator,\n onChannelDeleted,\n onError(error) {\n if (error instanceof SendbirdError) {\n switch (error.code) {\n case SBErrorCode.CHANNEL_NOT_FOUND_SDK:\n case SBErrorCode.CHANNEL_NOT_FOUND_SERVER: {\n return showToast(STRINGS.TOAST.GET_CHANNEL_ERROR, 'error');\n }\n }\n }\n\n showToast(STRINGS.TOAST.UNKNOWN_ERROR, 'error');\n },\n });\n\n const isOperator = channel.isOperator(currentUser?.userId ?? UNKNOWN_USER_ID);\n\n const _renderMessage: OpenChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <OpenChannelMessageRenderer {...props} onPressAvatar={showUserProfile} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <OpenChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onPressSendUserMessage: OpenChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n await sendUserMessage(processedParams);\n },\n );\n const onPressSendFileMessage: OpenChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n await sendFileMessage(processedParams);\n },\n );\n const onPressUpdateUserMessage: OpenChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: OpenChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <OpenChannelModule.Provider channel={channel} keyboardAvoidOffset={keyboardAvoidOffset}>\n <OpenChannelModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n rightIconName={isOperator ? 'info' : 'members'}\n onPressHeaderRight={isOperator ? onPressHeaderRightWithSettings : onPressHeaderRightWithParticipants}\n />\n <StatusComposition loading={loading} LoadingComponent={<OpenChannelModule.StatusLoading />}>\n <OpenChannelModule.MessageList\n channel={channel}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n nextMessages={nextMessages}\n newMessagesFromMembers={newMessagesFromMembers}\n onTopReached={prev}\n onBottomReached={next}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <OpenChannelModule.Input\n shouldRenderInput\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </OpenChannelModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_chat","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_OpenChannelMessageRenderer","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_constants","_openChannel","_useContext","_pubsub","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","createOpenChannelFragment","initModule","OpenChannelModule","createOpenChannelModule","_ref","channel","onChannelDeleted","NOOP","onPressHeaderLeft","onPressHeaderRightWithSettings","onPressHeaderRightWithParticipants","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","onPressMediaMessage","renderMessage","renderNewMessagesButton","renderScrollToBottomButton","props","createElement","enableMessageGrouping","keyboardAvoidOffset","flatListProps","queryCreator","sortComparator","messageComparator","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","show","showToast","useToast","showUserProfile","useUserProfile","openChannelPubSub","useState","pubsub","messages","newMessages","next","prev","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useOpenChannelMessages","userId","onError","error","SendbirdError","code","SBErrorCode","RESOURCE_NOT_FOUND","CHANNEL_NOT_FOUND","BANNED_USER_SEND_MESSAGE_NOT_ALLOWED","TOAST","GET_CHANNEL_ERROR","UNKNOWN_ERROR","onMessagesReceived","publish","type","data","isOperator","UNKNOWN_USER_ID","_renderMessage","useFreshCallback","onPressAvatar","memoizedFlatListProps","useMemo","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onPending","message","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","Provider","Header","rightIconName","onPressHeaderRight","LoadingComponent","StatusLoading","MessageList","currentUserId","onTopReached","onBottomReached","scrolledAwayFromBottom","onScrolledAwayFromBottom","onResendFailedMessage","onDeleteMessage","Input","shouldRenderInput","_default","exports"],"sources":["createOpenChannelFragment.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\n\nimport { SendbirdError } from '@sendbird/chat';\nimport { useOpenChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n PASS,\n SBErrorCode,\n SendbirdFileMessage,\n SendbirdUserMessage,\n messageComparator,\n useFreshCallback,\n} from '@sendbird/uikit-utils';\n\nimport OpenChannelMessageRenderer from '../components/OpenChannelMessageRenderer';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport { UNKNOWN_USER_ID } from '../constants';\nimport { createOpenChannelModule } from '../domain/openChannel';\nimport type {\n OpenChannelFragment,\n OpenChannelModule,\n OpenChannelProps,\n OpenChannelPubSubContextPayload,\n} from '../domain/openChannel/types';\nimport { useLocalization, useSendbirdChat, useUserProfile } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createOpenChannelFragment = (initModule?: Partial<OpenChannelModule>): OpenChannelFragment => {\n const OpenChannelModule = createOpenChannelModule(initModule);\n\n return ({\n channel,\n onChannelDeleted = NOOP,\n onPressHeaderLeft = NOOP,\n onPressHeaderRightWithSettings = NOOP,\n onPressHeaderRightWithParticipants = NOOP,\n\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n onPressMediaMessage = NOOP,\n\n renderMessage,\n renderNewMessagesButton = () => null,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n\n enableMessageGrouping = true,\n keyboardAvoidOffset,\n flatListProps,\n queryCreator,\n sortComparator = messageComparator,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const { STRINGS } = useLocalization();\n const { show: showToast } = useToast();\n const { show: showUserProfile } = useUserProfile();\n\n const [openChannelPubSub] = useState(() => pubsub<OpenChannelPubSubContextPayload>());\n\n const {\n messages,\n newMessages,\n next,\n prev,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useOpenChannelMessages(sdk, channel, currentUser?.userId, {\n queryCreator,\n sortComparator,\n onChannelDeleted,\n onError(error) {\n if (error instanceof SendbirdError) {\n switch (error.code) {\n case SBErrorCode.RESOURCE_NOT_FOUND:\n case SBErrorCode.CHANNEL_NOT_FOUND:\n case SBErrorCode.BANNED_USER_SEND_MESSAGE_NOT_ALLOWED: {\n return showToast(STRINGS.TOAST.GET_CHANNEL_ERROR, 'error');\n }\n }\n }\n\n showToast(STRINGS.TOAST.UNKNOWN_ERROR, 'error');\n },\n onMessagesReceived(messages) {\n openChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n });\n\n const isOperator = channel.isOperator(currentUser?.userId ?? UNKNOWN_USER_ID);\n\n const _renderMessage: OpenChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <OpenChannelMessageRenderer {...props} onPressAvatar={showUserProfile} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <OpenChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n openChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: OpenChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: OpenChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressUpdateUserMessage: OpenChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: OpenChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <OpenChannelModule.Provider\n openChannelPubSub={openChannelPubSub}\n channel={channel}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <OpenChannelModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n rightIconName={isOperator ? 'info' : 'members'}\n onPressHeaderRight={isOperator ? onPressHeaderRightWithSettings : onPressHeaderRightWithParticipants}\n />\n <StatusComposition loading={loading} LoadingComponent={<OpenChannelModule.StatusLoading />}>\n <OpenChannelModule.MessageList\n channel={channel}\n hasNext={hasNext}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={_renderMessage}\n messages={messages}\n newMessages={newMessages}\n onTopReached={prev}\n onBottomReached={next}\n scrolledAwayFromBottom={false}\n onScrolledAwayFromBottom={NOOP}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <OpenChannelModule.Input\n shouldRenderInput\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </OpenChannelModule.Provider>\n );\n };\n};\n\nexport default createOpenChannelFragment;\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
+ var _uikitChatHooks = require("@sendbird/uikit-chat-hooks");
8
9
  var _uikitUtils = require("@sendbird/uikit-utils");
9
10
  var _useContext = require("../hooks/useContext");
10
11
  const useMentionSuggestion = params => {
@@ -18,6 +19,22 @@ const useMentionSuggestion = params => {
18
19
  (0, _uikitUtils.useAsyncEffect)(async () => {
19
20
  setFreshChannel(await channel.refresh());
20
21
  }, [channel.url]);
22
+ const id = (0, _uikitUtils.useUniqHandlerId)('useMentionSuggestion');
23
+ (0, _uikitChatHooks.useChannelHandler)(params.sdk, id, {
24
+ onUserJoined(eventChannel) {
25
+ if ((0, _uikitUtils.isDifferentChannel)(eventChannel, channel)) return;
26
+ setFreshChannel(eventChannel);
27
+ },
28
+ onUserLeft(eventChannel) {
29
+ if ((0, _uikitUtils.isDifferentChannel)(eventChannel, channel)) return;
30
+ setFreshChannel(eventChannel);
31
+ },
32
+ onUserBanned(eventChannel) {
33
+ if ((0, _uikitUtils.isDifferentChannel)(eventChannel, channel)) return;
34
+ if (!eventChannel.isGroupChannel()) return;
35
+ setFreshChannel(eventChannel);
36
+ }
37
+ });
21
38
  const {
22
39
  mentionManager,
23
40
  currentUser
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitUtils","_useContext","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","useState","useAsyncEffect","refresh","url","mentionManager","currentUser","useSendbirdChat","members","setMembers","searchStringRangeRef","useRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","slice","useDebounceEffect","catch","debounceMills","reset","useCallback","searchStringRange","searchLimited","_default","exports","default"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { useAsyncEffect, useDebounceEffect } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n channel: SendbirdGroupChannel;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitChatHooks","_uikitUtils","_useContext","useMentionSuggestion","params","text","selection","channel","mentionedUsers","freshChannel","setFreshChannel","useState","useAsyncEffect","refresh","url","id","useUniqHandlerId","useChannelHandler","sdk","onUserJoined","eventChannel","isDifferentChannel","onUserLeft","onUserBanned","isGroupChannel","mentionManager","currentUser","useSendbirdChat","members","setMembers","searchStringRangeRef","useRef","start","end","searchLimitedRef","updateSearchStringRange","selectionIndex","searchString","current","getSearchStringRangeInText","updateSearchLimited","mentionCount","mentionLimit","resetRefs","fetchMembers","selectionRanged","selectionContainsMentionedUser","some","it","rangeHelpers","overlaps","range","isTriggered","isValidSearchString","getSearchString","limited","length","config","isSuper","createMemberListQuery","nicknameStartsWithFilter","limit","suggestionLimit","next","then","filter","member","userId","sort","a","b","_a$nickname","nickname","localeCompare","_member$nickname","toLowerCase","startsWith","slice","useDebounceEffect","catch","debounceMills","reset","useCallback","searchStringRange","searchLimited","_default","exports","default"],"sources":["useMentionSuggestion.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdMember, SendbirdUser } from '@sendbird/uikit-utils';\nimport { isDifferentChannel, useAsyncEffect, useDebounceEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../hooks/useContext';\nimport type { Range } from '../types';\n\nconst useMentionSuggestion = (params: {\n text: string;\n selection: Range;\n mentionedUsers: { user: SendbirdUser; range: Range }[];\n sdk: SendbirdChatSDK;\n channel: SendbirdGroupChannel;\n}) => {\n const { text, selection, channel, mentionedUsers } = params;\n\n const [freshChannel, setFreshChannel] = useState(channel);\n\n useAsyncEffect(async () => {\n setFreshChannel(await channel.refresh());\n }, [channel.url]);\n\n const id = useUniqHandlerId('useMentionSuggestion');\n\n useChannelHandler(params.sdk, id, {\n onUserJoined(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserLeft(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n setFreshChannel(eventChannel);\n },\n onUserBanned(eventChannel) {\n if (isDifferentChannel(eventChannel, channel)) return;\n if (!eventChannel.isGroupChannel()) return;\n setFreshChannel(eventChannel);\n },\n });\n\n const { mentionManager, currentUser } = useSendbirdChat();\n const [members, setMembers] = useState<SendbirdMember[]>([]);\n\n const searchStringRangeRef = useRef<Range>({ start: 0, end: 0 });\n const searchLimitedRef = useRef(false);\n\n const updateSearchStringRange = (selectionIndex: number, searchString: string) => {\n searchStringRangeRef.current = mentionManager.getSearchStringRangeInText(selectionIndex, searchString);\n return searchStringRangeRef.current;\n };\n const updateSearchLimited = (mentionCount: number, mentionLimit: number) => {\n searchLimitedRef.current = mentionCount >= mentionLimit;\n return searchLimitedRef.current;\n };\n const resetRefs = () => {\n searchLimitedRef.current = false;\n searchStringRangeRef.current = { start: 0, end: 0 };\n };\n\n const fetchMembers = async (): Promise<SendbirdMember[]> => {\n resetRefs();\n\n const selectionRanged = selection.start !== selection.end;\n if (selectionRanged) return [];\n\n const selectionContainsMentionedUser = mentionedUsers.some((it) =>\n mentionManager.rangeHelpers.overlaps(it.range, selection, 'underMore'),\n );\n if (selectionContainsMentionedUser) return [];\n\n const { isTriggered, isValidSearchString, searchString } = mentionManager.getSearchString(text, selection.start);\n if (!isTriggered() || !isValidSearchString()) return [];\n\n const limited = updateSearchLimited(mentionedUsers.length, mentionManager.config.mentionLimit);\n if (limited) return [];\n\n updateSearchStringRange(selection.start, searchString);\n\n if (freshChannel.isSuper) {\n return freshChannel\n .createMemberListQuery({\n nicknameStartsWithFilter: searchString,\n limit: mentionManager.config.suggestionLimit + 1,\n })\n .next()\n .then((members) => members.filter((member) => member.userId !== currentUser?.userId));\n } else {\n return freshChannel.members\n .sort((a, b) => a.nickname?.localeCompare(b.nickname))\n .filter(\n (member) =>\n member.nickname?.toLowerCase().startsWith(searchString.toLowerCase()) &&\n member.userId !== currentUser?.userId,\n )\n .slice(0, mentionManager.config.suggestionLimit);\n }\n };\n\n useDebounceEffect(\n () => {\n return fetchMembers()\n .then(setMembers)\n .catch(() => setMembers([]));\n },\n mentionManager.config.debounceMills,\n [text, selection],\n );\n\n return {\n members,\n reset: useCallback(() => setMembers([]), []),\n searchStringRange: searchStringRangeRef.current,\n searchLimited: searchLimitedRef.current,\n };\n};\n\nexport default useMentionSuggestion;\n"],"mappings":"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"}
@@ -31,6 +31,7 @@ var _exportNames = {
31
31
  createGroupChannelMutedMembersFragment: true,
32
32
  createGroupChannelBannedUsersFragment: true,
33
33
  createGroupChannelNotificationsFragment: true,
34
+ createMessageSearchFragment: true,
34
35
  createOpenChannelFragment: true,
35
36
  createOpenChannelParticipantsFragment: true,
36
37
  createOpenChannelSettingsFragment: true,
@@ -336,6 +337,12 @@ Object.defineProperty(exports, "createGroupChannelSettingsFragment", {
336
337
  return _createGroupChannelSettingsFragment.default;
337
338
  }
338
339
  });
340
+ Object.defineProperty(exports, "createMessageSearchFragment", {
341
+ enumerable: true,
342
+ get: function () {
343
+ return _createMessageSearchFragment.default;
344
+ }
345
+ });
339
346
  Object.defineProperty(exports, "createNativeClipboardService", {
340
347
  enumerable: true,
341
348
  get: function () {
@@ -461,6 +468,7 @@ var _createGroupChannelRegisterOperatorFragment = _interopRequireDefault(require
461
468
  var _createGroupChannelMutedMembersFragment = _interopRequireDefault(require("./fragments/createGroupChannelMutedMembersFragment"));
462
469
  var _createGroupChannelBannedUsersFragment = _interopRequireDefault(require("./fragments/createGroupChannelBannedUsersFragment"));
463
470
  var _createGroupChannelNotificationsFragment = _interopRequireDefault(require("./fragments/createGroupChannelNotificationsFragment"));
471
+ var _createMessageSearchFragment = _interopRequireDefault(require("./fragments/createMessageSearchFragment"));
464
472
  var _createOpenChannelFragment = _interopRequireDefault(require("./fragments/createOpenChannelFragment"));
465
473
  var _createOpenChannelParticipantsFragment = _interopRequireDefault(require("./fragments/createOpenChannelParticipantsFragment"));
466
474
  var _createOpenChannelSettingsFragment = _interopRequireDefault(require("./fragments/createOpenChannelSettingsFragment"));
@@ -655,6 +663,18 @@ Object.keys(_types7).forEach(function (key) {
655
663
  }
656
664
  });
657
665
  });
666
+ var _types8 = require("./domain/messageSearch/types");
667
+ Object.keys(_types8).forEach(function (key) {
668
+ if (key === "default" || key === "__esModule") return;
669
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
670
+ if (key in exports && exports[key] === _types8[key]) return;
671
+ Object.defineProperty(exports, key, {
672
+ enumerable: true,
673
+ get: function () {
674
+ return _types8[key];
675
+ }
676
+ });
677
+ });
658
678
  var _openChannel = require("./domain/openChannel");
659
679
  Object.keys(_openChannel).forEach(function (key) {
660
680
  if (key === "default" || key === "__esModule") return;
@@ -667,15 +687,15 @@ Object.keys(_openChannel).forEach(function (key) {
667
687
  }
668
688
  });
669
689
  });
670
- var _types8 = require("./domain/openChannel/types");
671
- Object.keys(_types8).forEach(function (key) {
690
+ var _types9 = require("./domain/openChannel/types");
691
+ Object.keys(_types9).forEach(function (key) {
672
692
  if (key === "default" || key === "__esModule") return;
673
693
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
674
- if (key in exports && exports[key] === _types8[key]) return;
694
+ if (key in exports && exports[key] === _types9[key]) return;
675
695
  Object.defineProperty(exports, key, {
676
696
  enumerable: true,
677
697
  get: function () {
678
- return _types8[key];
698
+ return _types9[key];
679
699
  }
680
700
  });
681
701
  });
@@ -691,15 +711,15 @@ Object.keys(_openChannelSettings).forEach(function (key) {
691
711
  }
692
712
  });
693
713
  });
694
- var _types9 = require("./domain/openChannelSettings/types");
695
- Object.keys(_types9).forEach(function (key) {
714
+ var _types10 = require("./domain/openChannelSettings/types");
715
+ Object.keys(_types10).forEach(function (key) {
696
716
  if (key === "default" || key === "__esModule") return;
697
717
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
698
- if (key in exports && exports[key] === _types9[key]) return;
718
+ if (key in exports && exports[key] === _types10[key]) return;
699
719
  Object.defineProperty(exports, key, {
700
720
  enumerable: true,
701
721
  get: function () {
702
- return _types9[key];
722
+ return _types10[key];
703
723
  }
704
724
  });
705
725
  });
@@ -715,15 +735,15 @@ Object.keys(_openChannelList).forEach(function (key) {
715
735
  }
716
736
  });
717
737
  });
718
- var _types10 = require("./domain/openChannelList/types");
719
- Object.keys(_types10).forEach(function (key) {
738
+ var _types11 = require("./domain/openChannelList/types");
739
+ Object.keys(_types11).forEach(function (key) {
720
740
  if (key === "default" || key === "__esModule") return;
721
741
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
722
- if (key in exports && exports[key] === _types10[key]) return;
742
+ if (key in exports && exports[key] === _types11[key]) return;
723
743
  Object.defineProperty(exports, key, {
724
744
  enumerable: true,
725
745
  get: function () {
726
- return _types10[key];
746
+ return _types11[key];
727
747
  }
728
748
  });
729
749
  });
@@ -739,15 +759,15 @@ Object.keys(_openChannelCreate).forEach(function (key) {
739
759
  }
740
760
  });
741
761
  });
742
- var _types11 = require("./domain/openChannelCreate/types");
743
- Object.keys(_types11).forEach(function (key) {
762
+ var _types12 = require("./domain/openChannelCreate/types");
763
+ Object.keys(_types12).forEach(function (key) {
744
764
  if (key === "default" || key === "__esModule") return;
745
765
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
746
- if (key in exports && exports[key] === _types11[key]) return;
766
+ if (key in exports && exports[key] === _types12[key]) return;
747
767
  Object.defineProperty(exports, key, {
748
768
  enumerable: true,
749
769
  get: function () {
750
- return _types11[key];
770
+ return _types12[key];
751
771
  }
752
772
  });
753
773
  });
@@ -763,15 +783,15 @@ Object.keys(_openChannelModeration).forEach(function (key) {
763
783
  }
764
784
  });
765
785
  });
766
- var _types12 = require("./domain/openChannelModeration/types");
767
- Object.keys(_types12).forEach(function (key) {
786
+ var _types13 = require("./domain/openChannelModeration/types");
787
+ Object.keys(_types13).forEach(function (key) {
768
788
  if (key === "default" || key === "__esModule") return;
769
789
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
770
- if (key in exports && exports[key] === _types12[key]) return;
790
+ if (key in exports && exports[key] === _types13[key]) return;
771
791
  Object.defineProperty(exports, key, {
772
792
  enumerable: true,
773
793
  get: function () {
774
- return _types12[key];
794
+ return _types13[key];
775
795
  }
776
796
  });
777
797
  });
@@ -787,15 +807,15 @@ Object.keys(_openChannelBannedUsers).forEach(function (key) {
787
807
  }
788
808
  });
789
809
  });
790
- var _types13 = require("./domain/openChannelBannedUsers/types");
791
- Object.keys(_types13).forEach(function (key) {
810
+ var _types14 = require("./domain/openChannelBannedUsers/types");
811
+ Object.keys(_types14).forEach(function (key) {
792
812
  if (key === "default" || key === "__esModule") return;
793
813
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
794
- if (key in exports && exports[key] === _types13[key]) return;
814
+ if (key in exports && exports[key] === _types14[key]) return;
795
815
  Object.defineProperty(exports, key, {
796
816
  enumerable: true,
797
817
  get: function () {
798
- return _types13[key];
818
+ return _types14[key];
799
819
  }
800
820
  });
801
821
  });
@@ -811,15 +831,15 @@ Object.keys(_openChannelMutedParticipants).forEach(function (key) {
811
831
  }
812
832
  });
813
833
  });
814
- var _types14 = require("./domain/openChannelMutedParticipants/types");
815
- Object.keys(_types14).forEach(function (key) {
834
+ var _types15 = require("./domain/openChannelMutedParticipants/types");
835
+ Object.keys(_types15).forEach(function (key) {
816
836
  if (key === "default" || key === "__esModule") return;
817
837
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
818
- if (key in exports && exports[key] === _types14[key]) return;
838
+ if (key in exports && exports[key] === _types15[key]) return;
819
839
  Object.defineProperty(exports, key, {
820
840
  enumerable: true,
821
841
  get: function () {
822
- return _types14[key];
842
+ return _types15[key];
823
843
  }
824
844
  });
825
845
  });
@@ -835,42 +855,42 @@ Object.keys(_openChannelOperators).forEach(function (key) {
835
855
  }
836
856
  });
837
857
  });
838
- var _types15 = require("./domain/openChannelOperators/types");
839
- Object.keys(_types15).forEach(function (key) {
858
+ var _types16 = require("./domain/openChannelOperators/types");
859
+ Object.keys(_types16).forEach(function (key) {
840
860
  if (key === "default" || key === "__esModule") return;
841
861
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
842
- if (key in exports && exports[key] === _types15[key]) return;
862
+ if (key in exports && exports[key] === _types16[key]) return;
843
863
  Object.defineProperty(exports, key, {
844
864
  enumerable: true,
845
865
  get: function () {
846
- return _types15[key];
866
+ return _types16[key];
847
867
  }
848
868
  });
849
869
  });
850
- var _types16 = require("./domain/openChannelUserList/types");
851
- Object.keys(_types16).forEach(function (key) {
870
+ var _types17 = require("./domain/openChannelUserList/types");
871
+ Object.keys(_types17).forEach(function (key) {
852
872
  if (key === "default" || key === "__esModule") return;
853
873
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
854
- if (key in exports && exports[key] === _types16[key]) return;
874
+ if (key in exports && exports[key] === _types17[key]) return;
855
875
  Object.defineProperty(exports, key, {
856
876
  enumerable: true,
857
877
  get: function () {
858
- return _types16[key];
878
+ return _types17[key];
859
879
  }
860
880
  });
861
881
  });
862
882
  var _SendbirdUIKitContainer = _interopRequireWildcard(require("./containers/SendbirdUIKitContainer"));
863
883
  var _SBUError = _interopRequireDefault(require("./libs/SBUError"));
864
884
  var _SBUUtils = _interopRequireDefault(require("./libs/SBUUtils"));
865
- var _types17 = require("./types");
866
- Object.keys(_types17).forEach(function (key) {
885
+ var _types18 = require("./types");
886
+ Object.keys(_types18).forEach(function (key) {
867
887
  if (key === "default" || key === "__esModule") return;
868
888
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
869
- if (key in exports && exports[key] === _types17[key]) return;
889
+ if (key in exports && exports[key] === _types18[key]) return;
870
890
  Object.defineProperty(exports, key, {
871
891
  enumerable: true,
872
892
  get: function () {
873
- return _types17[key];
893
+ return _types18[key];
874
894
  }
875
895
  });
876
896
  });