stream-chat-react 6.9.1 → 6.12.1
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.
- package/README.md +1 -1
- package/dist/browser.full-bundle.js +2053 -667
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +4 -4
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/Card.d.ts.map +1 -1
- package/dist/components/Attachment/Card.js +2 -4
- package/dist/components/AutoCompleteTextarea/Header.d.ts +2 -0
- package/dist/components/AutoCompleteTextarea/Header.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Header.js +10 -9
- package/dist/components/AutoCompleteTextarea/List.js +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +23 -13
- package/dist/components/Channel/Channel.d.ts +8 -3
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +26 -12
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +2 -10
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +11 -5
- package/dist/components/Channel/hooks/useEditMessageHandler.js +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.js +3 -3
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +5 -8
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +2 -0
- package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +1 -1
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +1 -1
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +1 -1
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +1 -1
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +1 -1
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.js +1 -1
- package/dist/components/ChannelList/hooks/useMessageNewListener.js +1 -1
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +1 -1
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +1 -1
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +1 -0
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +2 -2
- package/dist/components/ChannelPreview/hooks/useIsChannelMuted.js +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.js +1 -1
- package/dist/components/ChannelSearch/SearchInput.js +1 -1
- package/dist/components/ChannelSearch/SearchResults.js +1 -1
- package/dist/components/Chat/Chat.d.ts +1 -1
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/Chat.js +2 -1
- package/dist/components/Chat/hooks/useChat.d.ts +2 -1
- package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChat.js +13 -6
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useCreateChatContext.js +3 -2
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +4 -4
- package/dist/components/ChatDown/ChatDown.js +1 -1
- package/dist/components/DateSeparator/DateSeparator.js +1 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -1
- package/dist/components/EventComponent/EventComponent.js +1 -1
- package/dist/components/Gallery/Gallery.js +1 -1
- package/dist/components/Loading/LoadingErrorIndicator.js +1 -1
- package/dist/components/MML/MML.js +1 -1
- package/dist/components/Message/FixedHeightMessage.js +4 -4
- package/dist/components/Message/Message.d.ts.map +1 -1
- package/dist/components/Message/Message.js +3 -6
- package/dist/components/Message/MessageCommerce.js +2 -2
- package/dist/components/Message/MessageDeleted.js +1 -1
- package/dist/components/Message/MessageLivestream.d.ts.map +1 -1
- package/dist/components/Message/MessageLivestream.js +5 -6
- package/dist/components/Message/MessageOptions.js +1 -1
- package/dist/components/Message/MessageRepliesCountButton.js +1 -1
- package/dist/components/Message/MessageSimple.js +2 -2
- package/dist/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/components/Message/MessageStatus.js +4 -4
- package/dist/components/Message/MessageTeam.js +3 -3
- package/dist/components/Message/MessageText.d.ts.map +1 -1
- package/dist/components/Message/MessageText.js +3 -3
- package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
- package/dist/components/Message/MessageTimestamp.js +2 -2
- package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/components/Message/QuotedMessage.js +5 -4
- package/dist/components/Message/hooks/useActionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useActionHandler.js +2 -2
- package/dist/components/Message/hooks/useDeleteHandler.js +3 -3
- package/dist/components/Message/hooks/useFlagHandler.js +2 -2
- package/dist/components/Message/hooks/useMentionsHandler.js +1 -1
- package/dist/components/Message/hooks/useMuteHandler.js +3 -3
- package/dist/components/Message/hooks/useOpenThreadHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useOpenThreadHandler.js +1 -1
- package/dist/components/Message/hooks/usePinHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/usePinHandler.js +10 -17
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.js +18 -16
- package/dist/components/Message/hooks/useRetryHandler.js +1 -1
- package/dist/components/Message/hooks/useUserRole.d.ts +2 -2
- package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/components/Message/hooks/useUserRole.js +8 -6
- package/dist/components/Message/types.d.ts +1 -1
- package/dist/components/Message/types.d.ts.map +1 -1
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +9 -4
- package/dist/components/MessageActions/MessageActions.js +2 -2
- package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActionsBox.js +3 -3
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
- package/dist/components/MessageInput/DropzoneProvider.d.ts +5 -0
- package/dist/components/MessageInput/DropzoneProvider.d.ts.map +1 -0
- package/dist/components/MessageInput/DropzoneProvider.js +31 -0
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +4 -4
- package/dist/components/MessageInput/EmojiPicker.js +3 -3
- package/dist/components/MessageInput/MessageInput.d.ts +4 -2
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInput.js +17 -7
- package/dist/components/MessageInput/MessageInputFlat.js +4 -4
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +4 -4
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview.js +4 -4
- package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
- package/dist/components/MessageInput/UploadsPreview.js +2 -2
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.js +4 -2
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +2 -3
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +2 -2
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +6 -1
- package/dist/components/MessageInput/hooks/useEmojiIndex.js +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.js +12 -4
- package/dist/components/MessageInput/hooks/useFileUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useFileUploads.js +32 -16
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useImageUploads.js +32 -16
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +14 -3
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +16 -8
- package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +3 -3
- package/dist/components/MessageInput/hooks/useUserTrigger.js +3 -2
- package/dist/components/MessageInput/hooks/utils.d.ts +15 -1
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/utils.js +60 -4
- package/dist/components/MessageInput/icons.js +5 -5
- package/dist/components/MessageList/ConnectionStatus.js +2 -2
- package/dist/components/MessageList/MessageList.d.ts +4 -9
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +11 -18
- package/dist/components/MessageList/MessageListNotifications.d.ts +11 -0
- package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -0
- package/dist/components/MessageList/MessageListNotifications.js +12 -0
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +13 -14
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts +1 -0
- package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useEnrichedMessages.js +5 -4
- package/dist/components/MessageList/hooks/useGiphyPreview.js +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.js +3 -3
- package/dist/components/MessageList/hooks/useMessageListScrollManager.js +1 -1
- package/dist/components/MessageList/index.d.ts +1 -0
- package/dist/components/MessageList/index.d.ts.map +1 -1
- package/dist/components/MessageList/index.js +1 -0
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionSelector.js +3 -3
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.js +2 -2
- package/dist/components/Reactions/SimpleReactionsList.js +2 -2
- package/dist/components/Thread/Thread.d.ts.map +1 -1
- package/dist/components/Thread/Thread.js +8 -9
- package/dist/components/TypingIndicator/TypingIndicator.d.ts +3 -3
- package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.js +7 -4
- package/dist/components/Window/Window.js +1 -1
- package/dist/context/ChannelActionContext.d.ts +1 -1
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelActionContext.js +3 -5
- package/dist/context/ChannelStateContext.d.ts +4 -2
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.js +3 -5
- package/dist/context/ChatContext.d.ts +4 -2
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ChatContext.js +3 -5
- package/dist/context/ComponentContext.d.ts +3 -3
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.js +3 -5
- package/dist/context/EmojiContext.d.ts +1 -1
- package/dist/context/EmojiContext.d.ts.map +1 -1
- package/dist/context/EmojiContext.js +3 -4
- package/dist/context/MessageContext.d.ts +2 -2
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageContext.js +3 -5
- package/dist/context/MessageInputContext.d.ts +3 -3
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.js +3 -5
- package/dist/context/TranslationContext.d.ts +1 -1
- package/dist/context/TranslationContext.d.ts.map +1 -1
- package/dist/context/TranslationContext.js +3 -2
- package/dist/context/TypingContext.d.ts +1 -1
- package/dist/context/TypingContext.d.ts.map +1 -1
- package/dist/context/TypingContext.js +3 -5
- package/dist/css/index.css +1 -1
- package/dist/i18n/Streami18n.d.ts +1 -0
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/Streami18n.js +7 -7
- package/dist/i18n/de.json +5 -4
- package/dist/i18n/en.json +1 -0
- package/dist/i18n/es.json +1 -0
- package/dist/i18n/fr.json +1 -0
- package/dist/i18n/hi.json +1 -0
- package/dist/i18n/it.json +1 -0
- package/dist/i18n/ja.json +1 -0
- package/dist/i18n/ko.json +1 -0
- package/dist/i18n/nl.json +1 -0
- package/dist/i18n/pt.json +1 -0
- package/dist/i18n/ru.json +1 -0
- package/dist/i18n/tr.json +1 -0
- package/dist/index.cjs.js +615 -435
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Card.scss +10 -0
- package/dist/scss/ChannelListMessenger.scss +4 -0
- package/dist/scss/ChannelSearch.scss +1 -1
- package/dist/scss/EditMessageForm.scss +4 -0
- package/dist/scss/LoadMoreButton.scss +5 -0
- package/dist/scss/Message.scss +10 -5
- package/dist/scss/MessageActions.scss +12 -0
- package/dist/scss/MessageInput.scss +15 -0
- package/dist/scss/MessageInputFlat.scss +12 -1
- package/dist/scss/Modal.scss +7 -2
- package/dist/scss/_base.scss +14 -0
- package/dist/scss/_variables.scss +2 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -6
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +14 -10
package/dist/index.cjs.js
CHANGED
|
@@ -278,8 +278,6 @@ var UnMemoizedSafeAnchor = function (props) {
|
|
|
278
278
|
};
|
|
279
279
|
var SafeAnchor = React__default['default'].memo(UnMemoizedSafeAnchor);
|
|
280
280
|
|
|
281
|
-
var img$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAkCAYAAAB/up84AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABVhJREFUeNrsW6GS20AMdToGBgEGAQYBBgEBBQYFgQcP5hMO9jP6CYWFBwsPBgYUGBQEFAQUGAQYBBgYGHjmutt5O6NupbXXcZJrx5rJXGyv11o96Ukr52avr6/BJG9HZmMBMpvNYnxt1JzNZNoRAYFxM2Z8rT6FuueMcaH6s1KfhBn3U42r1Jg1rrfq+Bt5xgf1Z64+uQFQndNzLc1Ydfwg6F2p6wd1PVXfU+b6Gc9vHGuh8+jrsXVN61Sq64XggNw95tlH9XmP6y3W2OI+qvN3db6mN7/zBFAb8L2aNMJxRsDQC6jIuEyN039LnAvV8QJKRRijZUHmT8iiLpEFDHKJaB1TGN732WuAokEIDQCwhwGjsMEIMNgp6qY9JlsTgyXquCFG1d54IsbOsKAVPLDBcQJjUxB0RJwAltGntNQ46GhzqPnb0y0954RG/1iLQ7SRCkR+guiPtW6GFRg5gAlCrFvbJEZ0ngDAUn0/Y77fDCJFXuiB/AmGDC3PLg0YWLRW5CcJWWPglNxDKS6C59AcZBs/sYxbOQBqHHkuZYCsGCds4SQJDDx3RK3RjUb9EfMUcLQ57BHS64MAIYtYkvEt+d4wCzqr++ipkoTtkihOI2chREfA5KiC0GOAaMig05zoWJPjgMk39jxcPphDR0mSDrtq438g51iq8omQlEnYJfHoiAFxYQGko6bCPSmZ5wS+TRx0Zc5R4CtmHbEVJT+0p1uOYdNE1SMfOKNO0zXWEmItptApsfYa1LV0UZUPIHSCmlRYJhfokNWhX5IcsmIWbEAMCQWerWirhZK57MghNQyzgke3QuQWPUv4EAac9wCuJjmkNmvUNEwiobX+DgdEWoQGgNDPGtTWWhRRWONX5JlnePCZhP1JUCOzPN1O0C2MohP7xuiko8Qy9INUDBg2YPJMlzP8pRv0qYeUdu+Cy+RAKIYmtVqojM5kkS0DwkXlLuY0ICzgAEOlAd8fPe+rYJdppz61TiZ5G4AgcScWz05RcUtAkOwyJMtI4FzNt3suCWKfwLUhdqRC0yA/enB1CZ4vBZ2fhIptJ4x/5PYVavyzQ39N0V8ddnsQ+m3sfX02hjo3bIVJ7d5PhqojZxYdC3NEdv9oQMQWFFjHHqpLEsc9BZyF23c9cG0ZOJjUIN15V1mY8OOAhW0E77yWaP2eoO9VBFG/d6yX6/xuHT2z3AsQ5ImnjrZBF6XcUiKAEl0RlJzZ7ZtnbxmqSgRqfxmyD9k6wNDGzuExecB3Z1/ukBOjQH73MZbspChFp9nQ/EYY9+LaaIYOqlo7JjwISX+LcBwbjAOz2ZKS7BpOcq0o0R2HvZAbHpHPJGc+dm00paQuedmOA4O0WD5fyQ4V08Ip4ATxhYl8CCh76/0QLVyehlBVFyCpYJTcKmPjHoY8XNE2VQ8dbIkdr4Z95npBwcNVahKzNEMBSYSyz46iLm8sLunreG5O+xYTsaMUHYu6bMn79sRCT2+8l6SMV2cCT5e3UspBXbbd9n3nDIN/Q1KP3JDfWLcd8kZwCVX12hjeOlmOIMe+L6FGjJLC4QS5rz6hg/tThjZiU0Pr/g7D65/uCUafKgaUJu0lHjvox/XsjXA+GAOQUogIXV8/v7GoKOGJfYuHxvHjt7t3rEMHD2+E5PoR+5GCLCS+8g6Z2xgGt6anuwGC99MSKAl6RrfUs/ofje+b1PcjlJBlMMk4gKBUe77AqKVP/T1Jj30IQPmCTdkm6NeKb5BkJzCGdCA8XuFGZIOWCBEh/mwGiZ/rFZXk3xHEdkjHb6MknVOhypJe+Sac03XlL4fe3r81mH518q9GyCS3kV8CDADlsrVaJhTLAgAAAABJRU5ErkJggg==";
|
|
282
|
-
|
|
283
281
|
var getDisplayName = function (Component) {
|
|
284
282
|
return Component.displayName || Component.name || 'Component';
|
|
285
283
|
};
|
|
@@ -308,10 +306,11 @@ var TranslationProvider = function (_a) {
|
|
|
308
306
|
var children = _a.children, value = _a.value;
|
|
309
307
|
return (React__default['default'].createElement(TranslationContext.Provider, { value: value }, children));
|
|
310
308
|
};
|
|
311
|
-
var useTranslationContext = function () {
|
|
309
|
+
var useTranslationContext = function (componentName) {
|
|
312
310
|
var contextValue = React.useContext(TranslationContext);
|
|
313
311
|
if (!contextValue) {
|
|
314
|
-
|
|
312
|
+
console.warn("The useTranslationContext hook was called outside of the TranslationContext provider. Make sure this hook is called within a child of the Chat component. The errored call is located in the " + componentName + " component.");
|
|
313
|
+
return {};
|
|
315
314
|
}
|
|
316
315
|
return contextValue;
|
|
317
316
|
};
|
|
@@ -326,7 +325,7 @@ var withTranslationContext = function (Component) {
|
|
|
326
325
|
|
|
327
326
|
var UnMemoizedCard = function (props) {
|
|
328
327
|
var image_url = props.image_url, og_scrape_url = props.og_scrape_url, text = props.text, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
|
|
329
|
-
var t = useTranslationContext().t;
|
|
328
|
+
var t = useTranslationContext('Card').t;
|
|
330
329
|
var image = thumb_url || image_url;
|
|
331
330
|
var trimUrl = function (url) {
|
|
332
331
|
if (url !== undefined && url !== null) {
|
|
@@ -350,8 +349,7 @@ var UnMemoizedCard = function (props) {
|
|
|
350
349
|
React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--flex' },
|
|
351
350
|
title && React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--title' }, title),
|
|
352
351
|
text && React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--text' }, text),
|
|
353
|
-
(title_link || og_scrape_url) && (React__default['default'].createElement(SafeAnchor, { className: 'str-chat__message-attachment-card--url', href: title_link || og_scrape_url, rel: 'noopener noreferrer', target: '_blank' }, trimUrl(title_link || og_scrape_url))))
|
|
354
|
-
type === 'giphy' && (React__default['default'].createElement("img", { alt: 'giphy logo', className: 'str-chat__message-attachment-card__giphy-logo', "data-testid": 'card-giphy', src: img$1 })))));
|
|
352
|
+
(title_link || og_scrape_url) && (React__default['default'].createElement(SafeAnchor, { className: 'str-chat__message-attachment-card--url', href: title_link || og_scrape_url, rel: 'noopener noreferrer', target: '_blank' }, trimUrl(title_link || og_scrape_url)))))));
|
|
355
353
|
};
|
|
356
354
|
/**
|
|
357
355
|
* Simple Card Layout for displaying links
|
|
@@ -387,7 +385,7 @@ var UnMemoizedGallery = function (props) {
|
|
|
387
385
|
var images = props.images;
|
|
388
386
|
var _a = React.useState(0), index = _a[0], setIndex = _a[1];
|
|
389
387
|
var _b = React.useState(false), modalOpen = _b[0], setModalOpen = _b[1];
|
|
390
|
-
var t = useTranslationContext().t;
|
|
388
|
+
var t = useTranslationContext('Gallery').t;
|
|
391
389
|
var toggleModal = function (selectedIndex) {
|
|
392
390
|
if (modalOpen) {
|
|
393
391
|
setModalOpen(false);
|
|
@@ -621,10 +619,11 @@ var ComponentProvider = function (_a) {
|
|
|
621
619
|
var children = _a.children, value = _a.value;
|
|
622
620
|
return (React__default['default'].createElement(ComponentContext.Provider, { value: value }, children));
|
|
623
621
|
};
|
|
624
|
-
var useComponentContext = function () {
|
|
622
|
+
var useComponentContext = function (componentName) {
|
|
625
623
|
var contextValue = React.useContext(ComponentContext);
|
|
626
624
|
if (!contextValue) {
|
|
627
|
-
|
|
625
|
+
console.warn("The useComponentContext hook was called outside of the ComponentContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
626
|
+
return {};
|
|
628
627
|
}
|
|
629
628
|
return contextValue;
|
|
630
629
|
};
|
|
@@ -766,7 +765,7 @@ var renderText = function (text, mentioned_users, options) {
|
|
|
766
765
|
if (noParsingNeeded.length > 0 || linkIsInBlock)
|
|
767
766
|
return;
|
|
768
767
|
var displayLink = type === 'email' ? value : value.replace(detectHttp, '');
|
|
769
|
-
newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[" + displayLink + "](" + encodeURI(href) + ")");
|
|
768
|
+
newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[" + displayLink + "](" + encodeURI(decodeURI(href)) + ")");
|
|
770
769
|
});
|
|
771
770
|
var plugins = [emojiMarkdownPlugin];
|
|
772
771
|
if (mentioned_users === null || mentioned_users === void 0 ? void 0 : mentioned_users.length) {
|
|
@@ -815,26 +814,27 @@ var getWholeChar = function (str, i) {
|
|
|
815
814
|
return '';
|
|
816
815
|
};
|
|
817
816
|
|
|
818
|
-
var DefaultSuggestionListHeader = function (
|
|
819
|
-
var value =
|
|
820
|
-
var t = useTranslationContext().t;
|
|
821
|
-
|
|
817
|
+
var DefaultSuggestionListHeader = function (props) {
|
|
818
|
+
var currentTrigger = props.currentTrigger, value = props.value;
|
|
819
|
+
var t = useTranslationContext('DefaultSuggestionListHeader').t;
|
|
820
|
+
var triggerIndex = value.lastIndexOf(currentTrigger);
|
|
821
|
+
if (currentTrigger === '/') {
|
|
822
822
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
823
823
|
t('Commands matching'),
|
|
824
824
|
" ",
|
|
825
|
-
React__default['default'].createElement("strong", null, value.
|
|
825
|
+
React__default['default'].createElement("strong", null, value.slice(triggerIndex + 1))));
|
|
826
826
|
}
|
|
827
|
-
if (
|
|
827
|
+
if (currentTrigger === ':') {
|
|
828
828
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
829
829
|
t('Emoji matching'),
|
|
830
830
|
" ",
|
|
831
|
-
React__default['default'].createElement("strong", null, value.
|
|
831
|
+
React__default['default'].createElement("strong", null, value.slice(triggerIndex + 1))));
|
|
832
832
|
}
|
|
833
|
-
if (
|
|
833
|
+
if (currentTrigger === '@') {
|
|
834
834
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
835
835
|
t('People matching'),
|
|
836
836
|
" ",
|
|
837
|
-
React__default['default'].createElement("strong", null, value.
|
|
837
|
+
React__default['default'].createElement("strong", null, value.slice(triggerIndex + 1))));
|
|
838
838
|
}
|
|
839
839
|
return null;
|
|
840
840
|
};
|
|
@@ -1062,6 +1062,7 @@ var List = function List(props) {
|
|
|
1062
1062
|
}, /*#__PURE__*/React__default['default'].createElement("li", {
|
|
1063
1063
|
className: "rta__list-header"
|
|
1064
1064
|
}, /*#__PURE__*/React__default['default'].createElement(SuggestionHeader, {
|
|
1065
|
+
currentTrigger: currentTrigger,
|
|
1065
1066
|
value: propValue
|
|
1066
1067
|
})), values.map(function (item, i) {
|
|
1067
1068
|
return /*#__PURE__*/React__default['default'].createElement(SuggestionItem, {
|
|
@@ -1152,6 +1153,54 @@ var UnMemoizedCommandItem = function (props) {
|
|
|
1152
1153
|
};
|
|
1153
1154
|
var CommandItem = React__default['default'].memo(UnMemoizedCommandItem);
|
|
1154
1155
|
|
|
1156
|
+
/**
|
|
1157
|
+
* A round avatar image with fallback to username's first letter
|
|
1158
|
+
*/
|
|
1159
|
+
var Avatar = function (props) {
|
|
1160
|
+
var image = props.image, name = props.name, _a = props.onClick, onClick = _a === void 0 ? function () { return undefined; } : _a, _b = props.onMouseOver, onMouseOver = _b === void 0 ? function () { return undefined; } : _b, _c = props.shape, shape = _c === void 0 ? 'circle' : _c, _d = props.size, size = _d === void 0 ? 32 : _d;
|
|
1161
|
+
var _e = React.useState(false), error = _e[0], setError = _e[1];
|
|
1162
|
+
var _f = React.useState(false), loaded = _f[0], setLoaded = _f[1];
|
|
1163
|
+
React.useEffect(function () {
|
|
1164
|
+
setError(false);
|
|
1165
|
+
setLoaded(false);
|
|
1166
|
+
}, [image]);
|
|
1167
|
+
var nameStr = (name === null || name === void 0 ? void 0 : name.toString()) || '';
|
|
1168
|
+
var initials = getWholeChar(nameStr, 0);
|
|
1169
|
+
return (React__default['default'].createElement("div", { className: "str-chat__avatar str-chat__avatar--" + shape, "data-testid": 'avatar', onClick: onClick, onMouseOver: onMouseOver, style: {
|
|
1170
|
+
flexBasis: size + "px",
|
|
1171
|
+
fontSize: size / 2 + "px",
|
|
1172
|
+
height: size + "px",
|
|
1173
|
+
lineHeight: size + "px",
|
|
1174
|
+
width: size + "px",
|
|
1175
|
+
}, title: name }, image && !error ? (React__default['default'].createElement("img", { alt: initials, className: "str-chat__avatar-image" + (loaded ? ' str-chat__avatar-image--loaded' : ''), "data-testid": 'avatar-img', onError: function () { return setError(true); }, onLoad: function () { return setLoaded(true); }, src: image, style: {
|
|
1176
|
+
flexBasis: size + "px",
|
|
1177
|
+
height: size + "px",
|
|
1178
|
+
objectFit: 'cover',
|
|
1179
|
+
width: size + "px",
|
|
1180
|
+
} })) : (React__default['default'].createElement("div", { className: 'str-chat__avatar-fallback', "data-testid": 'avatar-fallback' }, initials))));
|
|
1181
|
+
};
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* UI component for mentions rendered in suggestion list
|
|
1185
|
+
*/
|
|
1186
|
+
var UnMemoizedUserItem = function (props) {
|
|
1187
|
+
var _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, entity = props.entity;
|
|
1188
|
+
var hasEntity = Object.keys(entity).length;
|
|
1189
|
+
var itemParts = entity === null || entity === void 0 ? void 0 : entity.itemNameParts;
|
|
1190
|
+
var renderName = function () {
|
|
1191
|
+
if (!hasEntity)
|
|
1192
|
+
return null;
|
|
1193
|
+
return (hasEntity &&
|
|
1194
|
+
itemParts.parts.map(function (part, i) {
|
|
1195
|
+
return part.toLowerCase() === itemParts.match.toLowerCase() ? (React__default['default'].createElement("span", { className: 'str-chat__emoji-item--highlight', key: "part-" + i }, part)) : (React__default['default'].createElement("span", { className: 'str-chat__emoji-item--part', key: "part-" + i }, part));
|
|
1196
|
+
}));
|
|
1197
|
+
};
|
|
1198
|
+
return (React__default['default'].createElement("div", { className: 'str-chat__user-item' },
|
|
1199
|
+
React__default['default'].createElement(Avatar$1, { image: entity.image, name: entity.name || entity.id, size: 20 }),
|
|
1200
|
+
React__default['default'].createElement("span", { className: 'str-chat__user-item--name', "data-testid": 'user-item-name' }, renderName())));
|
|
1201
|
+
};
|
|
1202
|
+
var UserItem = React__default['default'].memo(UnMemoizedUserItem);
|
|
1203
|
+
|
|
1155
1204
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1156
1205
|
|
|
1157
1206
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -1288,13 +1337,15 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1288
1337
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_onSelect", function (newToken) {
|
|
1289
1338
|
var _this$props = _this.props,
|
|
1290
1339
|
closeCommandsList = _this$props.closeCommandsList,
|
|
1340
|
+
closeMentionsList = _this$props.closeMentionsList,
|
|
1291
1341
|
onChange = _this$props.onChange,
|
|
1292
|
-
showCommandsList = _this$props.showCommandsList
|
|
1342
|
+
showCommandsList = _this$props.showCommandsList,
|
|
1343
|
+
showMentionsList = _this$props.showMentionsList;
|
|
1293
1344
|
var _this$state = _this.state,
|
|
1294
1345
|
stateTrigger = _this$state.currentTrigger,
|
|
1295
1346
|
selectionEnd = _this$state.selectionEnd,
|
|
1296
1347
|
textareaValue = _this$state.value;
|
|
1297
|
-
var currentTrigger = showCommandsList ? '/' : stateTrigger;
|
|
1348
|
+
var currentTrigger = showCommandsList ? '/' : showMentionsList ? '@' : stateTrigger;
|
|
1298
1349
|
if (!currentTrigger) return;
|
|
1299
1350
|
|
|
1300
1351
|
var computeCaretPosition = function computeCaretPosition(position, token, startToken) {
|
|
@@ -1315,7 +1366,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1315
1366
|
}
|
|
1316
1367
|
};
|
|
1317
1368
|
|
|
1318
|
-
var textToModify = showCommandsList ? '/' : textareaValue.slice(0, selectionEnd);
|
|
1369
|
+
var textToModify = showCommandsList ? '/' : showMentionsList ? '@' : textareaValue.slice(0, selectionEnd);
|
|
1319
1370
|
var startOfTokenPosition = textToModify.lastIndexOf(currentTrigger); // we add space after emoji is selected if a caret position is next
|
|
1320
1371
|
|
|
1321
1372
|
var newTokenString = newToken.caretPosition === 'next' ? "".concat(newToken.text, " ") : newToken.text;
|
|
@@ -1341,7 +1392,8 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1341
1392
|
|
|
1342
1393
|
_this._closeAutocomplete();
|
|
1343
1394
|
|
|
1344
|
-
closeCommandsList();
|
|
1395
|
+
if (showCommandsList) closeCommandsList();
|
|
1396
|
+
if (showMentionsList) closeMentionsList();
|
|
1345
1397
|
});
|
|
1346
1398
|
|
|
1347
1399
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_getItemOnSelect", function (paramTrigger) {
|
|
@@ -1502,7 +1554,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1502
1554
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_cleanUpProps", function () {
|
|
1503
1555
|
var props = _objectSpread({}, _this.props);
|
|
1504
1556
|
|
|
1505
|
-
var notSafe = ['additionalTextareaProps', 'className', 'closeCommandsList', 'closeOnClickOutside', 'containerClassName', 'containerStyle', 'disableMentions', 'dropdownClassName', 'dropdownStyle', 'grow', 'handleSubmit', 'innerRef', 'itemClassName', 'itemStyle', 'keycodeSubmitKeys', 'listClassName', 'listStyle', 'loaderClassName', 'loaderStyle', 'loadingComponent', 'minChar', 'movePopupAsYouType', 'onCaretPositionChange', 'onChange', 'ref', 'replaceWord', 'scrollToItem', 'showCommandsList', 'SuggestionItem', 'SuggestionList', 'trigger', 'value']; // eslint-disable-next-line
|
|
1557
|
+
var notSafe = ['additionalTextareaProps', 'className', 'closeCommandsList', 'closeMentionsList', 'closeOnClickOutside', 'containerClassName', 'containerStyle', 'disableMentions', 'dropdownClassName', 'dropdownStyle', 'grow', 'handleSubmit', 'innerRef', 'itemClassName', 'itemStyle', 'keycodeSubmitKeys', 'listClassName', 'listStyle', 'loaderClassName', 'loaderStyle', 'loadingComponent', 'minChar', 'movePopupAsYouType', 'onCaretPositionChange', 'onChange', 'ref', 'replaceWord', 'scrollToItem', 'showCommandsList', 'showMentionsList', 'SuggestionItem', 'SuggestionList', 'trigger', 'value']; // eslint-disable-next-line
|
|
1506
1558
|
|
|
1507
1559
|
for (var prop in props) {
|
|
1508
1560
|
if (notSafe.includes(prop)) delete props[prop];
|
|
@@ -1659,6 +1711,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1659
1711
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getTriggerProps", function () {
|
|
1660
1712
|
var _this$props5 = _this.props,
|
|
1661
1713
|
showCommandsList = _this$props5.showCommandsList,
|
|
1714
|
+
showMentionsList = _this$props5.showMentionsList,
|
|
1662
1715
|
trigger = _this$props5.trigger;
|
|
1663
1716
|
var _this$state6 = _this.state,
|
|
1664
1717
|
component = _this$state6.component,
|
|
@@ -1682,18 +1735,18 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1682
1735
|
values: suggestionData
|
|
1683
1736
|
};
|
|
1684
1737
|
|
|
1685
|
-
if (showCommandsList && trigger['/']) {
|
|
1738
|
+
if (showCommandsList && trigger['/'] || showMentionsList && trigger['@']) {
|
|
1686
1739
|
var currentCommands;
|
|
1687
|
-
var getCommands = trigger['/'].dataProvider;
|
|
1688
|
-
getCommands === null || getCommands === void 0 ? void 0 : getCommands('', '/', function (data) {
|
|
1740
|
+
var getCommands = trigger[showCommandsList ? '/' : '@'].dataProvider;
|
|
1741
|
+
getCommands === null || getCommands === void 0 ? void 0 : getCommands('', showCommandsList ? '/' : '@', function (data) {
|
|
1689
1742
|
currentCommands = data;
|
|
1690
1743
|
});
|
|
1691
|
-
triggerProps.component = CommandItem;
|
|
1692
|
-
triggerProps.currentTrigger = '/';
|
|
1693
|
-
triggerProps.getTextToReplace = _this._getTextToReplace('/');
|
|
1694
|
-
triggerProps.getSelectedItem = _this._getItemOnSelect('/');
|
|
1744
|
+
triggerProps.component = showCommandsList ? CommandItem : UserItem;
|
|
1745
|
+
triggerProps.currentTrigger = showCommandsList ? '/' : '@';
|
|
1746
|
+
triggerProps.getTextToReplace = _this._getTextToReplace(showCommandsList ? '/' : '@');
|
|
1747
|
+
triggerProps.getSelectedItem = _this._getItemOnSelect(showCommandsList ? '/' : '@');
|
|
1695
1748
|
triggerProps.selectionEnd = 1;
|
|
1696
|
-
triggerProps.value = '/';
|
|
1749
|
+
triggerProps.value = showCommandsList ? '/' : '@';
|
|
1697
1750
|
triggerProps.values = currentCommands;
|
|
1698
1751
|
}
|
|
1699
1752
|
|
|
@@ -1908,33 +1961,6 @@ ReactTextareaAutocomplete.propTypes = {
|
|
|
1908
1961
|
value: PropTypes__default['default'].string
|
|
1909
1962
|
};
|
|
1910
1963
|
|
|
1911
|
-
/**
|
|
1912
|
-
* A round avatar image with fallback to username's first letter
|
|
1913
|
-
*/
|
|
1914
|
-
var Avatar = function (props) {
|
|
1915
|
-
var image = props.image, name = props.name, _a = props.onClick, onClick = _a === void 0 ? function () { return undefined; } : _a, _b = props.onMouseOver, onMouseOver = _b === void 0 ? function () { return undefined; } : _b, _c = props.shape, shape = _c === void 0 ? 'circle' : _c, _d = props.size, size = _d === void 0 ? 32 : _d;
|
|
1916
|
-
var _e = React.useState(false), error = _e[0], setError = _e[1];
|
|
1917
|
-
var _f = React.useState(false), loaded = _f[0], setLoaded = _f[1];
|
|
1918
|
-
React.useEffect(function () {
|
|
1919
|
-
setError(false);
|
|
1920
|
-
setLoaded(false);
|
|
1921
|
-
}, [image]);
|
|
1922
|
-
var nameStr = (name === null || name === void 0 ? void 0 : name.toString()) || '';
|
|
1923
|
-
var initials = getWholeChar(nameStr, 0);
|
|
1924
|
-
return (React__default['default'].createElement("div", { className: "str-chat__avatar str-chat__avatar--" + shape, "data-testid": 'avatar', onClick: onClick, onMouseOver: onMouseOver, style: {
|
|
1925
|
-
flexBasis: size + "px",
|
|
1926
|
-
fontSize: size / 2 + "px",
|
|
1927
|
-
height: size + "px",
|
|
1928
|
-
lineHeight: size + "px",
|
|
1929
|
-
width: size + "px",
|
|
1930
|
-
}, title: name }, image && !error ? (React__default['default'].createElement("img", { alt: initials, className: "str-chat__avatar-image" + (loaded ? ' str-chat__avatar-image--loaded' : ''), "data-testid": 'avatar-img', onError: function () { return setError(true); }, onLoad: function () { return setLoaded(true); }, src: image, style: {
|
|
1931
|
-
flexBasis: size + "px",
|
|
1932
|
-
height: size + "px",
|
|
1933
|
-
objectFit: 'cover',
|
|
1934
|
-
width: size + "px",
|
|
1935
|
-
} })) : (React__default['default'].createElement("div", { className: 'str-chat__avatar-fallback', "data-testid": 'avatar-fallback' }, initials))));
|
|
1936
|
-
};
|
|
1937
|
-
|
|
1938
1964
|
var channelReducer = function (state, action) {
|
|
1939
1965
|
var _a;
|
|
1940
1966
|
switch (action.type) {
|
|
@@ -2039,7 +2065,7 @@ var getStrippedEmojiData = function (data) { return (__assign(__assign({}, data)
|
|
|
2039
2065
|
|
|
2040
2066
|
var useCreateChannelStateContext = function (value) {
|
|
2041
2067
|
var _a;
|
|
2042
|
-
var acceptedFiles = value.acceptedFiles, channel = value.channel, channelConfig = value.channelConfig, error = value.error, hasMore = value.hasMore, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members,
|
|
2068
|
+
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, dragAndDropWindow = value.dragAndDropWindow, error = value.error, hasMore = value.hasMore, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _c = value.messages, messages = _c === void 0 ? [] : _c, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _d = value.read, read = _d === void 0 ? {} : _d, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _e = value.threadMessages, threadMessages = _e === void 0 ? [] : _e, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
|
|
2043
2069
|
var channelId = channel.cid;
|
|
2044
2070
|
var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
|
|
2045
2071
|
var membersLength = Object.keys(members || []).length;
|
|
@@ -2051,34 +2077,40 @@ var useCreateChannelStateContext = function (value) {
|
|
|
2051
2077
|
return last_read.toISOString();
|
|
2052
2078
|
}).join();
|
|
2053
2079
|
var threadMessagesLength = threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length;
|
|
2080
|
+
var channelCapabilities = {};
|
|
2081
|
+
channelCapabilitiesArray.forEach(function (capability) {
|
|
2082
|
+
channelCapabilities[capability] = true;
|
|
2083
|
+
});
|
|
2054
2084
|
var memoizedMessageData = skipMessageDataMemoization
|
|
2055
2085
|
? messages
|
|
2056
2086
|
: messages
|
|
2057
2087
|
.map(function (_a) {
|
|
2058
|
-
var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, reply_count = _a.reply_count, status = _a.status, updated_at = _a.updated_at;
|
|
2088
|
+
var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, reply_count = _a.reply_count, status = _a.status, updated_at = _a.updated_at, user = _a.user;
|
|
2059
2089
|
return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
|
|
2060
2090
|
var type = _a.type;
|
|
2061
2091
|
return type;
|
|
2062
2092
|
}).join() : '') + pinned + reply_count + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
|
|
2063
2093
|
? updated_at.toISOString()
|
|
2064
|
-
: updated_at || '');
|
|
2094
|
+
: updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
|
|
2065
2095
|
})
|
|
2066
2096
|
.join();
|
|
2067
2097
|
var memoizedThreadMessageData = threadMessages
|
|
2068
2098
|
.map(function (_a) {
|
|
2069
|
-
var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, status = _a.status, updated_at = _a.updated_at;
|
|
2099
|
+
var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, status = _a.status, updated_at = _a.updated_at, user = _a.user;
|
|
2070
2100
|
return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
|
|
2071
2101
|
var type = _a.type;
|
|
2072
2102
|
return type;
|
|
2073
2103
|
}).join() : '') + pinned + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
|
|
2074
2104
|
? updated_at.toISOString()
|
|
2075
|
-
: updated_at || '');
|
|
2105
|
+
: updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
|
|
2076
2106
|
})
|
|
2077
2107
|
.join();
|
|
2078
2108
|
var channelStateContext = React.useMemo(function () { return ({
|
|
2079
2109
|
acceptedFiles: acceptedFiles,
|
|
2080
2110
|
channel: channel,
|
|
2111
|
+
channelCapabilities: channelCapabilities,
|
|
2081
2112
|
channelConfig: channelConfig,
|
|
2113
|
+
dragAndDropWindow: dragAndDropWindow,
|
|
2082
2114
|
error: error,
|
|
2083
2115
|
hasMore: hasMore,
|
|
2084
2116
|
loading: loading,
|
|
@@ -2137,10 +2169,11 @@ var ChatProvider = function (_a) {
|
|
|
2137
2169
|
var children = _a.children, value = _a.value;
|
|
2138
2170
|
return (React__default['default'].createElement(ChatContext.Provider, { value: value }, children));
|
|
2139
2171
|
};
|
|
2140
|
-
var useChatContext = function () {
|
|
2172
|
+
var useChatContext = function (componentName) {
|
|
2141
2173
|
var contextValue = React.useContext(ChatContext);
|
|
2142
2174
|
if (!contextValue) {
|
|
2143
|
-
|
|
2175
|
+
console.warn("The useChatContext hook was called outside of the ChatContext provider. Make sure this hook is called within a child of the Chat component. The errored call is located in the " + componentName + " component.");
|
|
2176
|
+
return {};
|
|
2144
2177
|
}
|
|
2145
2178
|
return contextValue;
|
|
2146
2179
|
};
|
|
@@ -2159,7 +2192,7 @@ var withChatContext = function (Component) {
|
|
|
2159
2192
|
};
|
|
2160
2193
|
|
|
2161
2194
|
var useEditMessageHandler = function (doUpdateMessageRequest) {
|
|
2162
|
-
var _a = useChatContext(), channel = _a.channel, client = _a.client;
|
|
2195
|
+
var _a = useChatContext('useEditMessageHandler'), channel = _a.channel, client = _a.client;
|
|
2163
2196
|
return function (updatedMessage) {
|
|
2164
2197
|
if (doUpdateMessageRequest && channel) {
|
|
2165
2198
|
return Promise.resolve(doUpdateMessageRequest(channel.cid, updatedMessage));
|
|
@@ -2220,7 +2253,7 @@ var LoadingChannels = React__default['default'].memo(UnMemoizedLoadingChannels);
|
|
|
2220
2253
|
*/
|
|
2221
2254
|
var UnMemoizedLoadingErrorIndicator = function (_a) {
|
|
2222
2255
|
var error = _a.error;
|
|
2223
|
-
var t = useTranslationContext().t;
|
|
2256
|
+
var t = useTranslationContext('LoadingErrorIndicator').t;
|
|
2224
2257
|
if (!error)
|
|
2225
2258
|
return null;
|
|
2226
2259
|
return React__default['default'].createElement("div", null, t('Error: {{ errorMessage }}', { errorMessage: error.message }));
|
|
@@ -2249,10 +2282,11 @@ var ChannelStateProvider = function (_a) {
|
|
|
2249
2282
|
var children = _a.children, value = _a.value;
|
|
2250
2283
|
return (React__default['default'].createElement(ChannelStateContext.Provider, { value: value }, children));
|
|
2251
2284
|
};
|
|
2252
|
-
var useChannelStateContext = function () {
|
|
2285
|
+
var useChannelStateContext = function (componentName) {
|
|
2253
2286
|
var contextValue = React.useContext(ChannelStateContext);
|
|
2254
2287
|
if (!contextValue) {
|
|
2255
|
-
|
|
2288
|
+
console.warn("The useChannelStateContext hook was called outside of the ChannelStateContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
2289
|
+
return {};
|
|
2256
2290
|
}
|
|
2257
2291
|
return contextValue;
|
|
2258
2292
|
};
|
|
@@ -2274,21 +2308,23 @@ var withChannelStateContext = function (Component) {
|
|
|
2274
2308
|
|
|
2275
2309
|
var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
|
|
2276
2310
|
var _a, _b, _c;
|
|
2277
|
-
var _d = useChannelStateContext(), channel = _d.channel, channelConfig = _d.channelConfig;
|
|
2278
|
-
var client = useChatContext().client;
|
|
2311
|
+
var _d = useChannelStateContext('useUserRole'), channel = _d.channel, _e = _d.channelCapabilities, channelCapabilities = _e === void 0 ? {} : _e, channelConfig = _d.channelConfig;
|
|
2312
|
+
var client = useChatContext('useUserRole').client;
|
|
2279
2313
|
var isAdmin = ((_a = client.user) === null || _a === void 0 ? void 0 : _a.role) === 'admin' || channel.state.membership.role === 'admin';
|
|
2280
2314
|
var isMyMessage = client.userID === ((_b = message.user) === null || _b === void 0 ? void 0 : _b.id);
|
|
2281
2315
|
var isOwner = channel.state.membership.role === 'owner';
|
|
2282
2316
|
var isModerator = ((_c = client.user) === null || _c === void 0 ? void 0 : _c.role) === 'channel_moderator' ||
|
|
2283
2317
|
channel.state.membership.role === 'channel_moderator' ||
|
|
2284
2318
|
channel.state.membership.role === 'moderator';
|
|
2285
|
-
var canEdit =
|
|
2286
|
-
|
|
2319
|
+
var canEdit = (!onlySenderCanEdit && channelCapabilities['update-any-message']) ||
|
|
2320
|
+
(isMyMessage && channelCapabilities['update-own-message']);
|
|
2321
|
+
var canDelete = channelCapabilities['delete-any-message'] ||
|
|
2322
|
+
(isMyMessage && channelCapabilities['delete-own-message']);
|
|
2287
2323
|
var canFlag = !isMyMessage;
|
|
2288
2324
|
var canMute = !isMyMessage && (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.mutes);
|
|
2289
2325
|
var canQuote = !disableQuotedMessages;
|
|
2290
|
-
var canReact = channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions;
|
|
2291
|
-
var canReply = channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies;
|
|
2326
|
+
var canReact = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction'];
|
|
2327
|
+
var canReply = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies) !== false && channelCapabilities['send-reply'];
|
|
2292
2328
|
return {
|
|
2293
2329
|
canDelete: canDelete,
|
|
2294
2330
|
canEdit: canEdit,
|
|
@@ -2306,7 +2342,7 @@ var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
|
|
|
2306
2342
|
|
|
2307
2343
|
var MessageDeleted = function (props) {
|
|
2308
2344
|
var message = props.message;
|
|
2309
|
-
var t = useTranslationContext().t;
|
|
2345
|
+
var t = useTranslationContext('MessageDeleted').t;
|
|
2310
2346
|
var isMyMessage = useUserRole(message).isMyMessage;
|
|
2311
2347
|
var messageClasses = isMyMessage
|
|
2312
2348
|
? 'str-chat__message str-chat__message--me str-chat__message-simple str-chat__message-simple--me'
|
|
@@ -2385,6 +2421,7 @@ var MESSAGE_ACTIONS = {
|
|
|
2385
2421
|
react: 'react',
|
|
2386
2422
|
reply: 'reply',
|
|
2387
2423
|
};
|
|
2424
|
+
// @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
2388
2425
|
var defaultPinPermissions = {
|
|
2389
2426
|
commerce: {
|
|
2390
2427
|
admin: true,
|
|
@@ -2495,7 +2532,7 @@ var showMessageActionsBox = function (actions) {
|
|
|
2495
2532
|
return true;
|
|
2496
2533
|
};
|
|
2497
2534
|
var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
2498
|
-
var _a, _b, _c, _d;
|
|
2535
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2499
2536
|
var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
|
|
2500
2537
|
var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
|
|
2501
2538
|
if (prevMessageUI !== nextMessageUI)
|
|
@@ -2513,7 +2550,9 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
2513
2550
|
prevMessage.status === nextMessage.status &&
|
|
2514
2551
|
prevMessage.text === nextMessage.text &&
|
|
2515
2552
|
prevMessage.type === nextMessage.type &&
|
|
2516
|
-
prevMessage.updated_at === nextMessage.updated_at
|
|
2553
|
+
prevMessage.updated_at === nextMessage.updated_at &&
|
|
2554
|
+
((_e = prevMessage.user) === null || _e === void 0 ? void 0 : _e.image) === ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.image) &&
|
|
2555
|
+
((_g = prevMessage.user) === null || _g === void 0 ? void 0 : _g.name) === ((_h = nextMessage.user) === null || _h === void 0 ? void 0 : _h.name);
|
|
2517
2556
|
if (!messagesAreEqual)
|
|
2518
2557
|
return false;
|
|
2519
2558
|
var deepEqualProps = deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
|
|
@@ -2526,7 +2565,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
2526
2565
|
);
|
|
2527
2566
|
};
|
|
2528
2567
|
var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
2529
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2568
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2530
2569
|
var prevLastReceivedId = prevProps.lastReceivedId, prevMessage = prevProps.message;
|
|
2531
2570
|
var nextLastReceivedId = nextProps.lastReceivedId, nextMessage = nextProps.message;
|
|
2532
2571
|
if (prevProps.editing !== nextProps.editing)
|
|
@@ -2552,7 +2591,9 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
|
2552
2591
|
prevMessage.status === nextMessage.status &&
|
|
2553
2592
|
prevMessage.text === nextMessage.text &&
|
|
2554
2593
|
prevMessage.type === nextMessage.type &&
|
|
2555
|
-
prevMessage.updated_at === nextMessage.updated_at
|
|
2594
|
+
prevMessage.updated_at === nextMessage.updated_at &&
|
|
2595
|
+
((_j = prevMessage.user) === null || _j === void 0 ? void 0 : _j.image) === ((_k = nextMessage.user) === null || _k === void 0 ? void 0 : _k.image) &&
|
|
2596
|
+
((_l = prevMessage.user) === null || _l === void 0 ? void 0 : _l.name) === ((_m = nextMessage.user) === null || _m === void 0 ? void 0 : _m.name);
|
|
2556
2597
|
if (!messagesAreEqual)
|
|
2557
2598
|
return false;
|
|
2558
2599
|
return true;
|
|
@@ -2619,10 +2660,11 @@ var ChannelActionProvider = function (_a) {
|
|
|
2619
2660
|
var children = _a.children, value = _a.value;
|
|
2620
2661
|
return (React__default['default'].createElement(ChannelActionContext.Provider, { value: value }, children));
|
|
2621
2662
|
};
|
|
2622
|
-
var useChannelActionContext = function () {
|
|
2663
|
+
var useChannelActionContext = function (componentName) {
|
|
2623
2664
|
var contextValue = React.useContext(ChannelActionContext);
|
|
2624
2665
|
if (!contextValue) {
|
|
2625
|
-
|
|
2666
|
+
console.warn("The useChannelActionContext hook was called outside of the ChannelActionContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
2667
|
+
return {};
|
|
2626
2668
|
}
|
|
2627
2669
|
return contextValue;
|
|
2628
2670
|
};
|
|
@@ -2647,10 +2689,11 @@ var MessageProvider = function (_a) {
|
|
|
2647
2689
|
var children = _a.children, value = _a.value;
|
|
2648
2690
|
return (React__default['default'].createElement(MessageContext.Provider, { value: value }, children));
|
|
2649
2691
|
};
|
|
2650
|
-
var useMessageContext = function () {
|
|
2692
|
+
var useMessageContext = function (componentName) {
|
|
2651
2693
|
var contextValue = React.useContext(MessageContext);
|
|
2652
2694
|
if (!contextValue) {
|
|
2653
|
-
|
|
2695
|
+
console.warn("The useMessageContext hook was called outside of the MessageContext provider. Make sure this hook is called within the Message's UI component. The errored call is located in the " + componentName + " component.");
|
|
2696
|
+
return {};
|
|
2654
2697
|
}
|
|
2655
2698
|
return contextValue;
|
|
2656
2699
|
};
|
|
@@ -2681,9 +2724,9 @@ var CustomMessageActionsList = function (props) {
|
|
|
2681
2724
|
};
|
|
2682
2725
|
var UnMemoizedMessageActionsBox = function (props) {
|
|
2683
2726
|
var getMessageActions = props.getMessageActions, handleDelete = props.handleDelete, handleEdit = props.handleEdit, handleFlag = props.handleFlag, handleMute = props.handleMute, handlePin = props.handlePin, isUserMuted = props.isUserMuted, mine = props.mine, _a = props.open, open = _a === void 0 ? false : _a;
|
|
2684
|
-
var setQuotedMessage = useChannelActionContext().setQuotedMessage;
|
|
2685
|
-
var _b = useMessageContext(), customMessageActions = _b.customMessageActions, message = _b.message, messageListRect = _b.messageListRect;
|
|
2686
|
-
var t = useTranslationContext().t;
|
|
2727
|
+
var setQuotedMessage = useChannelActionContext('MessageActionsBox').setQuotedMessage;
|
|
2728
|
+
var _b = useMessageContext('MessageActionsBox'), customMessageActions = _b.customMessageActions, message = _b.message, messageListRect = _b.messageListRect;
|
|
2729
|
+
var t = useTranslationContext('MessageActionsBox').t;
|
|
2687
2730
|
var _c = React.useState(false), reverse = _c[0], setReverse = _c[1];
|
|
2688
2731
|
var messageActions = getMessageActions();
|
|
2689
2732
|
var checkIfReverse = React.useCallback(function (containerElement) {
|
|
@@ -2734,8 +2777,8 @@ var MessageActionsBox = React__default['default'].memo(UnMemoizedMessageActionsB
|
|
|
2734
2777
|
|
|
2735
2778
|
var MessageActions = function (props) {
|
|
2736
2779
|
var _a = props.ActionsIcon, ActionsIcon$1 = _a === void 0 ? ActionsIcon : _a, _b = props.customWrapperClass, customWrapperClass = _b === void 0 ? '' : _b, propGetMessageActions = props.getMessageActions, propHandleDelete = props.handleDelete, propHandleFlag = props.handleFlag, propHandleMute = props.handleMute, propHandlePin = props.handlePin, inline = props.inline, propMessage = props.message, messageWrapperRef = props.messageWrapperRef, mine = props.mine;
|
|
2737
|
-
var mutes = useChatContext().mutes;
|
|
2738
|
-
var _c = useMessageContext(), customMessageActions = _c.customMessageActions, contextGetMessageActions = _c.getMessageActions, contextHandleDelete = _c.handleDelete, contextHandleFlag = _c.handleFlag, contextHandleMute = _c.handleMute, contextHandlePin = _c.handlePin, isMyMessage = _c.isMyMessage, contextMessage = _c.message, setEditingState = _c.setEditingState;
|
|
2780
|
+
var mutes = useChatContext('MessageActions').mutes;
|
|
2781
|
+
var _c = useMessageContext('MessageActions'), customMessageActions = _c.customMessageActions, contextGetMessageActions = _c.getMessageActions, contextHandleDelete = _c.handleDelete, contextHandleFlag = _c.handleFlag, contextHandleMute = _c.handleMute, contextHandlePin = _c.handlePin, isMyMessage = _c.isMyMessage, contextMessage = _c.message, setEditingState = _c.setEditingState;
|
|
2739
2782
|
var getMessageActions = propGetMessageActions || contextGetMessageActions;
|
|
2740
2783
|
var handleDelete = propHandleDelete || contextHandleDelete;
|
|
2741
2784
|
var handleFlag = propHandleFlag || contextHandleFlag;
|
|
@@ -2792,7 +2835,7 @@ var MessageActionsWrapper = function (props) {
|
|
|
2792
2835
|
|
|
2793
2836
|
var UnMemoizedMessageOptions = function (props) {
|
|
2794
2837
|
var _a = props.ActionsIcon, ActionsIcon$1 = _a === void 0 ? ActionsIcon : _a, _b = props.displayLeft, displayLeft = _b === void 0 ? true : _b, _c = props.displayReplies, displayReplies = _c === void 0 ? true : _c, propHandleOpenThread = props.handleOpenThread, messageWrapperRef = props.messageWrapperRef, _d = props.ReactionIcon, ReactionIcon$1 = _d === void 0 ? ReactionIcon : _d, _e = props.theme, theme = _e === void 0 ? 'simple' : _e, _f = props.ThreadIcon, ThreadIcon$1 = _f === void 0 ? ThreadIcon : _f;
|
|
2795
|
-
var _g = useMessageContext(), customMessageActions = _g.customMessageActions, getMessageActions = _g.getMessageActions, contextHandleOpenThread = _g.handleOpenThread, initialMessage = _g.initialMessage, isMyMessage = _g.isMyMessage, message = _g.message, onReactionListClick = _g.onReactionListClick, threadList = _g.threadList;
|
|
2838
|
+
var _g = useMessageContext('MessageOptions'), customMessageActions = _g.customMessageActions, getMessageActions = _g.getMessageActions, contextHandleOpenThread = _g.handleOpenThread, initialMessage = _g.initialMessage, isMyMessage = _g.isMyMessage, message = _g.message, onReactionListClick = _g.onReactionListClick, threadList = _g.threadList;
|
|
2796
2839
|
var handleOpenThread = propHandleOpenThread || contextHandleOpenThread;
|
|
2797
2840
|
var messageActions = getMessageActions();
|
|
2798
2841
|
var showActionsBox = showMessageActionsBox(messageActions) || !!customMessageActions;
|
|
@@ -2826,7 +2869,7 @@ var MessageOptions = React__default['default'].memo(UnMemoizedMessageOptions);
|
|
|
2826
2869
|
|
|
2827
2870
|
var UnMemoizedMessageRepliesCountButton = function (props) {
|
|
2828
2871
|
var labelPlural = props.labelPlural, labelSingle = props.labelSingle, onClick = props.onClick, _a = props.reply_count, reply_count = _a === void 0 ? 0 : _a;
|
|
2829
|
-
var t = useTranslationContext().t;
|
|
2872
|
+
var t = useTranslationContext('MessageRepliesCountButton').t;
|
|
2830
2873
|
var singleReplyText;
|
|
2831
2874
|
var pluralReplyText;
|
|
2832
2875
|
if (reply_count === 1) {
|
|
@@ -2864,10 +2907,10 @@ var Tooltip = function (props) {
|
|
|
2864
2907
|
var UnMemoizedMessageStatus = function (props) {
|
|
2865
2908
|
var _a;
|
|
2866
2909
|
var propAvatar = props.Avatar, _b = props.messageType, messageType = _b === void 0 ? 'simple' : _b;
|
|
2867
|
-
var client = useChatContext().client;
|
|
2868
|
-
var contextAvatar = useComponentContext().Avatar;
|
|
2869
|
-
var _c = useMessageContext(), isMyMessage = _c.isMyMessage, lastReceivedId = _c.lastReceivedId, message = _c.message, readBy = _c.readBy, threadList = _c.threadList;
|
|
2870
|
-
var t = useTranslationContext().t;
|
|
2910
|
+
var client = useChatContext('MessageStatus').client;
|
|
2911
|
+
var contextAvatar = useComponentContext('MessageStatus').Avatar;
|
|
2912
|
+
var _c = useMessageContext('MessageStatus'), isMyMessage = _c.isMyMessage, lastReceivedId = _c.lastReceivedId, message = _c.message, readBy = _c.readBy, threadList = _c.threadList;
|
|
2913
|
+
var t = useTranslationContext('MessageStatus').t;
|
|
2871
2914
|
var Avatar$1 = propAvatar || contextAvatar || Avatar;
|
|
2872
2915
|
if (!isMyMessage() || message.type === 'error') {
|
|
2873
2916
|
return null;
|
|
@@ -2897,8 +2940,8 @@ var MessageStatus = React__default['default'].memo(UnMemoizedMessageStatus);
|
|
|
2897
2940
|
var handleActionWarning = "Action handler was called, but it is missing one of its required arguments. \nMake sure the ChannelAction and ChannelState contexts are properly set and the hook is initialized with a valid message.";
|
|
2898
2941
|
function useActionHandler(message) {
|
|
2899
2942
|
var _this = this;
|
|
2900
|
-
var _a = useChannelActionContext(), removeMessage = _a.removeMessage, updateMessage = _a.updateMessage;
|
|
2901
|
-
var channel = useChannelStateContext().channel;
|
|
2943
|
+
var _a = useChannelActionContext('useActionHandler'), removeMessage = _a.removeMessage, updateMessage = _a.updateMessage;
|
|
2944
|
+
var channel = useChannelStateContext('useActionHandler').channel;
|
|
2902
2945
|
return function (dataOrName, value, event) { return __awaiter(_this, void 0, void 0, function () {
|
|
2903
2946
|
var messageID, formData, data;
|
|
2904
2947
|
return __generator(this, function (_a) {
|
|
@@ -2956,9 +2999,9 @@ var useBreakpoint = function () {
|
|
|
2956
2999
|
var useDeleteHandler = function (message, notifications) {
|
|
2957
3000
|
if (notifications === void 0) { notifications = {}; }
|
|
2958
3001
|
var getErrorNotification = notifications.getErrorNotification, notify = notifications.notify;
|
|
2959
|
-
var updateMessage = useChannelActionContext().updateMessage;
|
|
2960
|
-
var client = useChatContext().client;
|
|
2961
|
-
var t = useTranslationContext().t;
|
|
3002
|
+
var updateMessage = useChannelActionContext('useDeleteHandler').updateMessage;
|
|
3003
|
+
var client = useChatContext('useDeleteHandler').client;
|
|
3004
|
+
var t = useTranslationContext('useDeleteHandler').t;
|
|
2962
3005
|
return function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2963
3006
|
var data, errorMessage;
|
|
2964
3007
|
return __generator(this, function (_a) {
|
|
@@ -3011,8 +3054,8 @@ var useEditHandler = function (customInitialState, customSetEditing, customClear
|
|
|
3011
3054
|
var missingUseFlagHandlerParameterWarning = 'useFlagHandler was called but it is missing one or more necessary parameters.';
|
|
3012
3055
|
var useFlagHandler = function (message, notifications) {
|
|
3013
3056
|
if (notifications === void 0) { notifications = {}; }
|
|
3014
|
-
var client = useChatContext().client;
|
|
3015
|
-
var t = useTranslationContext().t;
|
|
3057
|
+
var client = useChatContext('useFlagHandler').client;
|
|
3058
|
+
var t = useTranslationContext('useFlagHandler').t;
|
|
3016
3059
|
return function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3017
3060
|
var getErrorNotification, getSuccessNotification, notify, successMessage, errorMessage;
|
|
3018
3061
|
var _a;
|
|
@@ -3058,7 +3101,7 @@ function createEventHandler(fn, message) {
|
|
|
3058
3101
|
};
|
|
3059
3102
|
}
|
|
3060
3103
|
var useMentionsHandler = function (message, customMentionHandler) {
|
|
3061
|
-
var _a = useChannelActionContext(), contextOnMentionsClick = _a.onMentionsClick, contextOnMentionsHover = _a.onMentionsHover;
|
|
3104
|
+
var _a = useChannelActionContext('useMentionsHandler'), contextOnMentionsClick = _a.onMentionsClick, contextOnMentionsHover = _a.onMentionsHover;
|
|
3062
3105
|
var onMentionsClick = (customMentionHandler === null || customMentionHandler === void 0 ? void 0 : customMentionHandler.onMentionsClick) || contextOnMentionsClick || (function () { return null; });
|
|
3063
3106
|
var onMentionsHover = (customMentionHandler === null || customMentionHandler === void 0 ? void 0 : customMentionHandler.onMentionsHover) || contextOnMentionsHover || (function () { return null; });
|
|
3064
3107
|
return {
|
|
@@ -3102,9 +3145,9 @@ var useMobilePress = function () {
|
|
|
3102
3145
|
var missingUseMuteHandlerParamsWarning = 'useMuteHandler was called but it is missing one or more necessary parameter.';
|
|
3103
3146
|
var useMuteHandler = function (message, notifications) {
|
|
3104
3147
|
if (notifications === void 0) { notifications = {}; }
|
|
3105
|
-
var mutes = useChannelStateContext().mutes;
|
|
3106
|
-
var client = useChatContext().client;
|
|
3107
|
-
var t = useTranslationContext().t;
|
|
3148
|
+
var mutes = useChannelStateContext('useMuteHandler').mutes;
|
|
3149
|
+
var client = useChatContext('useMuteHandler').client;
|
|
3150
|
+
var t = useTranslationContext('useMuteHandler').t;
|
|
3108
3151
|
return function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3109
3152
|
var getErrorNotification, getSuccessNotification, notify, successMessage, errorMessage, fallbackMessage, successMessage, errorMessage;
|
|
3110
3153
|
return __generator(this, function (_a) {
|
|
@@ -3165,7 +3208,7 @@ var useMuteHandler = function (message, notifications) {
|
|
|
3165
3208
|
};
|
|
3166
3209
|
|
|
3167
3210
|
var useOpenThreadHandler = function (message, customOpenThread) {
|
|
3168
|
-
var channelOpenThread = useChannelActionContext().openThread;
|
|
3211
|
+
var channelOpenThread = useChannelActionContext('useOpenThreadHandler').openThread;
|
|
3169
3212
|
var openThread = customOpenThread || channelOpenThread;
|
|
3170
3213
|
return function (event) {
|
|
3171
3214
|
if (!openThread || !message) {
|
|
@@ -3176,25 +3219,17 @@ var useOpenThreadHandler = function (message, customOpenThread) {
|
|
|
3176
3219
|
};
|
|
3177
3220
|
};
|
|
3178
3221
|
|
|
3179
|
-
var usePinHandler = function (message,
|
|
3180
|
-
|
|
3222
|
+
var usePinHandler = function (message,
|
|
3223
|
+
// @ts-expect-error @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
3224
|
+
permissions, // eslint-disable-line
|
|
3225
|
+
notifications) {
|
|
3181
3226
|
if (notifications === void 0) { notifications = {}; }
|
|
3182
3227
|
var getErrorNotification = notifications.getErrorNotification, notify = notifications.notify;
|
|
3183
|
-
var updateMessage = useChannelActionContext().updateMessage;
|
|
3184
|
-
var
|
|
3185
|
-
var client = useChatContext().client;
|
|
3186
|
-
var t = useTranslationContext().t;
|
|
3187
|
-
var canPin =
|
|
3188
|
-
if (!channel || !permissions || !permissions[channel.type]) {
|
|
3189
|
-
return false;
|
|
3190
|
-
}
|
|
3191
|
-
var currentChannelPermissions = permissions[channel.type];
|
|
3192
|
-
var currentRole = channel.state.membership.role;
|
|
3193
|
-
if (currentChannelPermissions && currentRole && currentChannelPermissions[currentRole]) {
|
|
3194
|
-
return true;
|
|
3195
|
-
}
|
|
3196
|
-
return false;
|
|
3197
|
-
};
|
|
3228
|
+
var updateMessage = useChannelActionContext('usePinHandler').updateMessage;
|
|
3229
|
+
var _a = useChannelStateContext('usePinHandler').channelCapabilities, channelCapabilities = _a === void 0 ? {} : _a;
|
|
3230
|
+
var client = useChatContext('usePinHandler').client;
|
|
3231
|
+
var t = useTranslationContext('usePinHandler').t;
|
|
3232
|
+
var canPin = !!channelCapabilities['pin-message'];
|
|
3198
3233
|
var handlePin = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3199
3234
|
var optimisticMessage, messageResponse, errorMessage, optimisticMessage, messageResponse, errorMessage;
|
|
3200
3235
|
return __generator(this, function (_a) {
|
|
@@ -3242,14 +3277,14 @@ var usePinHandler = function (message, permissions, notifications) {
|
|
|
3242
3277
|
}
|
|
3243
3278
|
});
|
|
3244
3279
|
}); };
|
|
3245
|
-
return { canPin: canPin
|
|
3280
|
+
return { canPin: canPin, handlePin: handlePin };
|
|
3246
3281
|
};
|
|
3247
3282
|
|
|
3248
3283
|
var reactionHandlerWarning = "Reaction handler was called, but it is missing one of its required arguments.\nMake sure the ChannelAction and ChannelState contexts are properly set and the hook is initialized with a valid message.";
|
|
3249
3284
|
var useReactionHandler = function (message) {
|
|
3250
|
-
var updateMessage = useChannelActionContext().updateMessage;
|
|
3251
|
-
var channel = useChannelStateContext().channel;
|
|
3252
|
-
var client = useChatContext().client;
|
|
3285
|
+
var updateMessage = useChannelActionContext('useReactionHandler').updateMessage;
|
|
3286
|
+
var channel = useChannelStateContext('useReactionHandler').channel;
|
|
3287
|
+
var client = useChatContext('useReactionHandler').client;
|
|
3253
3288
|
var createMessagePreview = React.useCallback(function (add, reaction, message) {
|
|
3254
3289
|
var _a, _b;
|
|
3255
3290
|
var newReactionCounts = (message === null || message === void 0 ? void 0 : message.reaction_counts) || {};
|
|
@@ -3284,32 +3319,33 @@ var useReactionHandler = function (message) {
|
|
|
3284
3319
|
};
|
|
3285
3320
|
var toggleReaction = throttle__default['default'](function (id, type, add) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3286
3321
|
var newReaction, tempMessage, messageResponse, _a;
|
|
3287
|
-
|
|
3288
|
-
|
|
3322
|
+
var _b;
|
|
3323
|
+
return __generator(this, function (_c) {
|
|
3324
|
+
switch (_c.label) {
|
|
3289
3325
|
case 0:
|
|
3290
|
-
if (!message)
|
|
3326
|
+
if (!message || ((_b = channel.data) === null || _b === void 0 ? void 0 : _b.frozen))
|
|
3291
3327
|
return [2 /*return*/];
|
|
3292
3328
|
newReaction = creatReactionPreview(type);
|
|
3293
3329
|
tempMessage = createMessagePreview(add, newReaction, message);
|
|
3294
|
-
|
|
3330
|
+
_c.label = 1;
|
|
3295
3331
|
case 1:
|
|
3296
|
-
|
|
3332
|
+
_c.trys.push([1, 6, , 7]);
|
|
3297
3333
|
updateMessage(tempMessage);
|
|
3298
3334
|
if (!add) return [3 /*break*/, 3];
|
|
3299
3335
|
return [4 /*yield*/, channel.sendReaction(id, { type: type })];
|
|
3300
3336
|
case 2:
|
|
3301
|
-
_a =
|
|
3337
|
+
_a = _c.sent();
|
|
3302
3338
|
return [3 /*break*/, 5];
|
|
3303
3339
|
case 3: return [4 /*yield*/, channel.deleteReaction(id, type)];
|
|
3304
3340
|
case 4:
|
|
3305
|
-
_a =
|
|
3306
|
-
|
|
3341
|
+
_a = _c.sent();
|
|
3342
|
+
_c.label = 5;
|
|
3307
3343
|
case 5:
|
|
3308
3344
|
messageResponse = _a;
|
|
3309
3345
|
updateMessage(messageResponse.message);
|
|
3310
3346
|
return [3 /*break*/, 7];
|
|
3311
3347
|
case 6:
|
|
3312
|
-
|
|
3348
|
+
_c.sent();
|
|
3313
3349
|
// revert to the original message if the API call fails
|
|
3314
3350
|
updateMessage(message);
|
|
3315
3351
|
return [3 /*break*/, 7];
|
|
@@ -3364,11 +3400,12 @@ var useReactionHandler = function (message) {
|
|
|
3364
3400
|
}); };
|
|
3365
3401
|
};
|
|
3366
3402
|
var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef, closeReactionSelectorOnClick) {
|
|
3367
|
-
var _a
|
|
3368
|
-
var
|
|
3369
|
-
var
|
|
3403
|
+
var _a;
|
|
3404
|
+
var _b = useChannelStateContext('useReactionClick'), channel = _b.channel, _c = _b.channelCapabilities, channelCapabilities = _c === void 0 ? {} : _c, channelConfig = _b.channelConfig;
|
|
3405
|
+
var _d = React.useState(false), showDetailedReactions = _d[0], setShowDetailedReactions = _d[1];
|
|
3370
3406
|
var hasListener = React.useRef(false);
|
|
3371
|
-
var
|
|
3407
|
+
var isFrozen = !!((_a = channel.data) === null || _a === void 0 ? void 0 : _a.frozen);
|
|
3408
|
+
var isReactionEnabled = ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction']) || isFrozen;
|
|
3372
3409
|
var messageDeleted = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
|
|
3373
3410
|
var closeDetailedReactions = React.useCallback(function (event) {
|
|
3374
3411
|
var _a;
|
|
@@ -3429,7 +3466,7 @@ var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef
|
|
|
3429
3466
|
};
|
|
3430
3467
|
|
|
3431
3468
|
var useRetryHandler = function (customRetrySendMessage) {
|
|
3432
|
-
var contextRetrySendMessage = useChannelActionContext().retrySendMessage;
|
|
3469
|
+
var contextRetrySendMessage = useChannelActionContext('useRetryHandler').retrySendMessage;
|
|
3433
3470
|
var retrySendMessage = customRetrySendMessage || contextRetrySendMessage;
|
|
3434
3471
|
return function (message) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3435
3472
|
return __generator(this, function (_a) {
|
|
@@ -3463,9 +3500,10 @@ var useUserHandler = function (message, eventHandlers) { return ({
|
|
|
3463
3500
|
|
|
3464
3501
|
var QuotedMessage = function () {
|
|
3465
3502
|
var _a, _b;
|
|
3466
|
-
var
|
|
3467
|
-
var
|
|
3468
|
-
var userLanguage = useTranslationContext().userLanguage;
|
|
3503
|
+
var _c = useComponentContext('QuotedMessage'), Attachment = _c.Attachment, ContextAvatar = _c.Avatar;
|
|
3504
|
+
var _d = useMessageContext('QuotedMessage'), isMyMessage = _d.isMyMessage, message = _d.message;
|
|
3505
|
+
var userLanguage = useTranslationContext('QuotedMessage').userLanguage;
|
|
3506
|
+
var Avatar$1 = ContextAvatar || Avatar;
|
|
3469
3507
|
var quoted_message = message.quoted_message;
|
|
3470
3508
|
if (!quoted_message)
|
|
3471
3509
|
return null;
|
|
@@ -3480,7 +3518,7 @@ var QuotedMessage = function () {
|
|
|
3480
3518
|
return null;
|
|
3481
3519
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
3482
3520
|
React__default['default'].createElement("div", { className: "" + (isMyMessage() ? 'quoted-message mine' : 'quoted-message') },
|
|
3483
|
-
quoted_message.user && (React__default['default'].createElement(Avatar, { image: quoted_message.user.image, name: quoted_message.user.name || quoted_message.user.id, size: 20, user: quoted_message.user })),
|
|
3521
|
+
quoted_message.user && (React__default['default'].createElement(Avatar$1, { image: quoted_message.user.image, name: quoted_message.user.name || quoted_message.user.id, size: 20, user: quoted_message.user })),
|
|
3484
3522
|
React__default['default'].createElement("div", { className: 'quoted-message-inner' },
|
|
3485
3523
|
quotedMessageAttachment && React__default['default'].createElement(Attachment, { attachments: [quotedMessageAttachment] }),
|
|
3486
3524
|
React__default['default'].createElement("div", null, quotedMessageText))),
|
|
@@ -3490,9 +3528,9 @@ var QuotedMessage = function () {
|
|
|
3490
3528
|
var UnMemoizedMessageTextComponent = function (props) {
|
|
3491
3529
|
var _a;
|
|
3492
3530
|
var customInnerClass = props.customInnerClass, _b = props.customWrapperClass, customWrapperClass = _b === void 0 ? '' : _b, propMessage = props.message, _c = props.theme, theme = _c === void 0 ? 'simple' : _c;
|
|
3493
|
-
var _d = useComponentContext().QuotedMessage, QuotedMessage$1 = _d === void 0 ? QuotedMessage : _d;
|
|
3494
|
-
var _e = useMessageContext(), contextMessage = _e.message, onMentionsClickMessage = _e.onMentionsClickMessage, onMentionsHoverMessage = _e.onMentionsHoverMessage, _f = _e.renderText, renderText$1 = _f === void 0 ? renderText : _f, unsafeHTML = _e.unsafeHTML;
|
|
3495
|
-
var _g = useTranslationContext(), t = _g.t, userLanguage = _g.userLanguage;
|
|
3531
|
+
var _d = useComponentContext('MessageText').QuotedMessage, QuotedMessage$1 = _d === void 0 ? QuotedMessage : _d;
|
|
3532
|
+
var _e = useMessageContext('MessageText'), contextMessage = _e.message, onMentionsClickMessage = _e.onMentionsClickMessage, onMentionsHoverMessage = _e.onMentionsHoverMessage, _f = _e.renderText, renderText$1 = _f === void 0 ? renderText : _f, unsafeHTML = _e.unsafeHTML;
|
|
3533
|
+
var _g = useTranslationContext('MessageText'), t = _g.t, userLanguage = _g.userLanguage;
|
|
3496
3534
|
var handleMobilePress = useMobilePress().handleMobilePress;
|
|
3497
3535
|
var message = propMessage || contextMessage;
|
|
3498
3536
|
var hasAttachment = messageHasAttachments(message);
|
|
@@ -3551,8 +3589,8 @@ function getDateString(messageCreatedAt, formatDate, calendar, tDateTimeParser,
|
|
|
3551
3589
|
}
|
|
3552
3590
|
var UnMemoizedMessageTimestamp = function (props) {
|
|
3553
3591
|
var _a = props.calendar, calendar = _a === void 0 ? false : _a, _b = props.customClass, customClass = _b === void 0 ? '' : _b, _c = props.format, format = _c === void 0 ? defaultTimestampFormat : _c, propMessage = props.message;
|
|
3554
|
-
var _d = useMessageContext(), formatDate = _d.formatDate, contextMessage = _d.message;
|
|
3555
|
-
var tDateTimeParser = useTranslationContext().tDateTimeParser;
|
|
3592
|
+
var _d = useMessageContext('MessageTimestamp'), formatDate = _d.formatDate, contextMessage = _d.message;
|
|
3593
|
+
var tDateTimeParser = useTranslationContext('MessageTimestamp').tDateTimeParser;
|
|
3556
3594
|
var message = propMessage || contextMessage;
|
|
3557
3595
|
var createdAt = message.created_at;
|
|
3558
3596
|
var when = React.useMemo(function () { return getDateString(createdAt, formatDate, calendar, tDateTimeParser, format); }, [formatDate, calendar, tDateTimeParser, format, createdAt]);
|
|
@@ -3563,9 +3601,8 @@ var UnMemoizedMessageTimestamp = function (props) {
|
|
|
3563
3601
|
var MessageTimestamp = React__default['default'].memo(UnMemoizedMessageTimestamp);
|
|
3564
3602
|
|
|
3565
3603
|
var useCommandTrigger = function () {
|
|
3566
|
-
var
|
|
3567
|
-
var
|
|
3568
|
-
var commands = (_b = (_a = channel === null || channel === void 0 ? void 0 : channel.getConfig) === null || _a === void 0 ? void 0 : _a.call(channel)) === null || _b === void 0 ? void 0 : _b.commands;
|
|
3604
|
+
var channelConfig = useChannelStateContext('useCommandTrigger').channelConfig;
|
|
3605
|
+
var commands = channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.commands;
|
|
3569
3606
|
return {
|
|
3570
3607
|
component: CommandItem,
|
|
3571
3608
|
dataProvider: function (query, text, onReady) {
|
|
@@ -3652,7 +3689,7 @@ var accentsMap = {
|
|
|
3652
3689
|
e: 'é|è|ê|É|È|Ê',
|
|
3653
3690
|
i: 'í|ì|î|Í|Ì|Î',
|
|
3654
3691
|
n: 'ñ|Ñ',
|
|
3655
|
-
o: '
|
|
3692
|
+
o: 'ó|ò|ô|ő|õ|Ó|Ò|Ô|Õ',
|
|
3656
3693
|
u: 'ú|ù|û|ü|Ú|Ù|Û|Ü',
|
|
3657
3694
|
};
|
|
3658
3695
|
var removeDiacritics = function (text) {
|
|
@@ -3689,7 +3726,7 @@ var calculateLevenshtein = function (query, name) {
|
|
|
3689
3726
|
return matrix[name.length][query.length];
|
|
3690
3727
|
};
|
|
3691
3728
|
var searchLocalUsers = function (params) {
|
|
3692
|
-
var ownUserId = params.ownUserId, query = params.query, useMentionsTransliteration = params.useMentionsTransliteration, users = params.users;
|
|
3729
|
+
var ownUserId = params.ownUserId, query = params.query, text = params.text, useMentionsTransliteration = params.useMentionsTransliteration, users = params.users;
|
|
3693
3730
|
var matchingUsers = users.filter(function (user) {
|
|
3694
3731
|
if (user.id === ownUserId)
|
|
3695
3732
|
return false;
|
|
@@ -3714,43 +3751,78 @@ var searchLocalUsers = function (params) {
|
|
|
3714
3751
|
});
|
|
3715
3752
|
}); })();
|
|
3716
3753
|
}
|
|
3754
|
+
var maxDistance = 3;
|
|
3755
|
+
var lastDigits = text.slice(-(maxDistance + 1)).includes('@');
|
|
3717
3756
|
if (updatedName) {
|
|
3718
3757
|
var levenshtein_1 = calculateLevenshtein(updatedQuery, updatedName);
|
|
3719
|
-
if (updatedName.includes(updatedQuery) || levenshtein_1 <=
|
|
3758
|
+
if (updatedName.includes(updatedQuery) || (levenshtein_1 <= maxDistance && lastDigits)) {
|
|
3720
3759
|
return true;
|
|
3760
|
+
}
|
|
3721
3761
|
}
|
|
3722
3762
|
var levenshtein = calculateLevenshtein(updatedQuery, updatedId);
|
|
3723
|
-
return updatedId.includes(updatedQuery) || levenshtein <=
|
|
3763
|
+
return updatedId.includes(updatedQuery) || (levenshtein <= maxDistance && lastDigits);
|
|
3724
3764
|
});
|
|
3725
3765
|
return matchingUsers;
|
|
3726
3766
|
};
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3767
|
+
var checkUploadPermissions = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3768
|
+
var addNotification, file, getAppSettings, t, uploadType, appSettings, _a, allowed_file_extensions, allowed_mime_types, blocked_file_extensions, blocked_mime_types, sendErrorNotification, allowed, blocked, allowed, blocked;
|
|
3769
|
+
var _b, _c;
|
|
3770
|
+
return __generator(this, function (_d) {
|
|
3771
|
+
switch (_d.label) {
|
|
3772
|
+
case 0:
|
|
3773
|
+
addNotification = params.addNotification, file = params.file, getAppSettings = params.getAppSettings, t = params.t, uploadType = params.uploadType;
|
|
3774
|
+
appSettings = null;
|
|
3775
|
+
return [4 /*yield*/, getAppSettings()];
|
|
3776
|
+
case 1:
|
|
3777
|
+
appSettings = _d.sent();
|
|
3778
|
+
_a = (uploadType === 'image'
|
|
3779
|
+
? (_b = appSettings === null || appSettings === void 0 ? void 0 : appSettings.app) === null || _b === void 0 ? void 0 : _b.image_upload_config
|
|
3780
|
+
: (_c = appSettings === null || appSettings === void 0 ? void 0 : appSettings.app) === null || _c === void 0 ? void 0 : _c.file_upload_config) || {}, allowed_file_extensions = _a.allowed_file_extensions, allowed_mime_types = _a.allowed_mime_types, blocked_file_extensions = _a.blocked_file_extensions, blocked_mime_types = _a.blocked_mime_types;
|
|
3781
|
+
sendErrorNotification = function () {
|
|
3782
|
+
return addNotification(t("Upload type: \"{{ type }}\" is not allowed", { type: file.type || 'unknown type' }), 'error');
|
|
3783
|
+
};
|
|
3784
|
+
if (allowed_file_extensions === null || allowed_file_extensions === void 0 ? void 0 : allowed_file_extensions.length) {
|
|
3785
|
+
allowed = allowed_file_extensions.some(function (ext) {
|
|
3786
|
+
return file.name.toLowerCase().endsWith(ext.toLowerCase());
|
|
3787
|
+
});
|
|
3788
|
+
if (!allowed) {
|
|
3789
|
+
sendErrorNotification();
|
|
3790
|
+
return [2 /*return*/, false];
|
|
3791
|
+
}
|
|
3792
|
+
}
|
|
3793
|
+
if (blocked_file_extensions === null || blocked_file_extensions === void 0 ? void 0 : blocked_file_extensions.length) {
|
|
3794
|
+
blocked = blocked_file_extensions.some(function (ext) {
|
|
3795
|
+
return file.name.toLowerCase().endsWith(ext.toLowerCase());
|
|
3796
|
+
});
|
|
3797
|
+
if (blocked) {
|
|
3798
|
+
sendErrorNotification();
|
|
3799
|
+
return [2 /*return*/, false];
|
|
3800
|
+
}
|
|
3801
|
+
}
|
|
3802
|
+
if (allowed_mime_types === null || allowed_mime_types === void 0 ? void 0 : allowed_mime_types.length) {
|
|
3803
|
+
allowed = allowed_mime_types.some(function (type) { var _a; return type.toLowerCase() === ((_a = file.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
|
|
3804
|
+
if (!allowed) {
|
|
3805
|
+
sendErrorNotification();
|
|
3806
|
+
return [2 /*return*/, false];
|
|
3807
|
+
}
|
|
3808
|
+
}
|
|
3809
|
+
if (blocked_mime_types === null || blocked_mime_types === void 0 ? void 0 : blocked_mime_types.length) {
|
|
3810
|
+
blocked = blocked_mime_types.some(function (type) { var _a; return type.toLowerCase() === ((_a = file.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
|
|
3811
|
+
if (blocked) {
|
|
3812
|
+
sendErrorNotification();
|
|
3813
|
+
return [2 /*return*/, false];
|
|
3814
|
+
}
|
|
3815
|
+
}
|
|
3816
|
+
return [2 /*return*/, true];
|
|
3817
|
+
}
|
|
3818
|
+
});
|
|
3819
|
+
}); };
|
|
3748
3820
|
|
|
3749
3821
|
var useUserTrigger = function (params) {
|
|
3750
3822
|
var disableMentions = params.disableMentions, mentionAllAppUsers = params.mentionAllAppUsers, _a = params.mentionQueryParams, mentionQueryParams = _a === void 0 ? {} : _a, onSelectUser = params.onSelectUser, useMentionsTransliteration = params.useMentionsTransliteration;
|
|
3751
3823
|
var _b = React.useState(false), searching = _b[0], setSearching = _b[1];
|
|
3752
|
-
var _c = useChatContext(), client = _c.client, mutes = _c.mutes;
|
|
3753
|
-
var channel = useChannelStateContext().channel;
|
|
3824
|
+
var _c = useChatContext('useUserTrigger'), client = _c.client, mutes = _c.mutes;
|
|
3825
|
+
var channel = useChannelStateContext('useUserTrigger').channel;
|
|
3754
3826
|
var members = channel.state.members;
|
|
3755
3827
|
var watchers = channel.state.watchers;
|
|
3756
3828
|
var getMembersAndWatchers = React.useCallback(function () {
|
|
@@ -3865,6 +3937,7 @@ var useUserTrigger = function (params) {
|
|
|
3865
3937
|
var params_1 = {
|
|
3866
3938
|
ownUserId: client.userID,
|
|
3867
3939
|
query: query,
|
|
3940
|
+
text: text,
|
|
3868
3941
|
useMentionsTransliteration: useMentionsTransliteration,
|
|
3869
3942
|
users: users,
|
|
3870
3943
|
};
|
|
@@ -3893,17 +3966,18 @@ var MessageInputContextProvider = function (_a) {
|
|
|
3893
3966
|
var children = _a.children, value = _a.value;
|
|
3894
3967
|
return (React__default['default'].createElement(MessageInputContext.Provider, { value: value }, children));
|
|
3895
3968
|
};
|
|
3896
|
-
var useMessageInputContext = function () {
|
|
3969
|
+
var useMessageInputContext = function (componentName) {
|
|
3897
3970
|
var contextValue = React.useContext(MessageInputContext);
|
|
3898
3971
|
if (!contextValue) {
|
|
3899
|
-
|
|
3972
|
+
console.warn("The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure this hook is called within the MessageInput's UI component. The errored call is located in the " + componentName + " component.");
|
|
3973
|
+
return {};
|
|
3900
3974
|
}
|
|
3901
3975
|
return contextValue;
|
|
3902
3976
|
};
|
|
3903
3977
|
|
|
3904
3978
|
var DefaultTriggerProvider = function (_a) {
|
|
3905
3979
|
var children = _a.children;
|
|
3906
|
-
var currentValue = useMessageInputContext();
|
|
3980
|
+
var currentValue = useMessageInputContext('DefaultTriggerProvider');
|
|
3907
3981
|
var defaultAutocompleteTriggers = {
|
|
3908
3982
|
'/': useCommandTrigger(),
|
|
3909
3983
|
':': useEmojiTrigger(currentValue.emojiIndex),
|
|
@@ -3953,10 +4027,11 @@ var EmojiProvider = function (_a) {
|
|
|
3953
4027
|
};
|
|
3954
4028
|
return React__default['default'].createElement(EmojiContext.Provider, { value: emojiContextValue }, children);
|
|
3955
4029
|
};
|
|
3956
|
-
var useEmojiContext = function () {
|
|
4030
|
+
var useEmojiContext = function (componentName) {
|
|
3957
4031
|
var contextValue = React.useContext(EmojiContext);
|
|
3958
4032
|
if (!contextValue) {
|
|
3959
|
-
|
|
4033
|
+
console.warn("The useEmojiContext hook was called outside of the EmojiContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
4034
|
+
return {};
|
|
3960
4035
|
}
|
|
3961
4036
|
return contextValue;
|
|
3962
4037
|
};
|
|
@@ -3984,9 +4059,9 @@ var filterEmoji = function (emoji) {
|
|
|
3984
4059
|
};
|
|
3985
4060
|
var EmojiPicker = function (props) {
|
|
3986
4061
|
var small = props.small;
|
|
3987
|
-
var _a = useEmojiContext(), emojiConfig = _a.emojiConfig, EmojiPickerComponent = _a.EmojiPicker;
|
|
3988
|
-
var t = useTranslationContext().t;
|
|
3989
|
-
var messageInput = useMessageInputContext();
|
|
4062
|
+
var _a = useEmojiContext('EmojiPicker'), emojiConfig = _a.emojiConfig, EmojiPickerComponent = _a.EmojiPicker;
|
|
4063
|
+
var t = useTranslationContext('EmojiPicker').t;
|
|
4064
|
+
var messageInput = useMessageInputContext('EmojiPicker');
|
|
3990
4065
|
var emojiData = (emojiConfig || {}).emojiData;
|
|
3991
4066
|
if (messageInput.emojiPickerIsOpen && emojiData) {
|
|
3992
4067
|
var className = small
|
|
@@ -4000,34 +4075,34 @@ var EmojiPicker = function (props) {
|
|
|
4000
4075
|
};
|
|
4001
4076
|
|
|
4002
4077
|
var EmojiIconLarge = function () {
|
|
4003
|
-
var t = useTranslationContext().t;
|
|
4078
|
+
var t = useTranslationContext('EmojiIconLarge').t;
|
|
4004
4079
|
return (React__default['default'].createElement("svg", { height: '28', width: '28', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4005
4080
|
React__default['default'].createElement("title", null, t('Open emoji picker')),
|
|
4006
4081
|
React__default['default'].createElement("g", { clipRule: 'evenodd', fillRule: 'evenodd' },
|
|
4007
4082
|
React__default['default'].createElement("path", { d: 'M14 4.4C8.6 4.4 4.4 8.6 4.4 14c0 5.4 4.2 9.6 9.6 9.6c5.4 0 9.6-4.2 9.6-9.6c0-5.4-4.2-9.6-9.6-9.6zM2 14c0-6.6 5.4-12 12-12s12 5.4 12 12s-5.4 12-12 12s-12-5.4-12-12zM12.8 11c0 1-.8 1.8-1.8 1.8s-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8s1.8.8 1.8 1.8zM18.8 11c0 1-.8 1.8-1.8 1.8s-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8s1.8.8 1.8 1.8zM8.6 15.4c.6-.4 1.2-.2 1.6.2c.6.8 1.6 1.8 3 2c1.2.4 2.8.2 4.8-2c.4-.4 1.2-.6 1.6 0c.4.4.6 1.2 0 1.6c-2.2 2.6-4.8 3.4-7 3c-2-.4-3.6-1.8-4.4-3c-.4-.6-.2-1.2.4-1.8z' }))));
|
|
4008
4083
|
};
|
|
4009
4084
|
var EmojiIconSmall = function () {
|
|
4010
|
-
var t = useTranslationContext().t;
|
|
4085
|
+
var t = useTranslationContext('EmojiIconSmall').t;
|
|
4011
4086
|
return (React__default['default'].createElement("svg", { height: '14', width: '14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4012
4087
|
React__default['default'].createElement("title", null, t('Open emoji picker')),
|
|
4013
4088
|
React__default['default'].createElement("g", { clipRule: 'evenodd', fillRule: 'evenodd' },
|
|
4014
4089
|
React__default['default'].createElement("path", { d: 'M6.7 1.42C3.73 1.42 1.42 3.73 1.42 6.7c0 2.97 2.31 5.28 5.28 5.28c2.97 0 5.28-2.31 5.28-5.28c0-2.97-2.31-5.28-5.28-5.28zM.1 6.7c0-3.63 2.97-6.6 6.6-6.6s6.6 2.97 6.6 6.6s-2.97 6.6-6.6 6.6s-6.6-2.97-6.6-6.6zM6.04 5.05c0 .55-.44.99-.99.99s-.99-.44-.99-.99s.44-.99.99-.99s.99.44.99.99zM9.34 5.05c0 .55-.44.99-.99.99s-.99-.44-.99-.99s.44-.99.99-.99s.99.44.99.99zM3.73 7.47c.33-.22.66-.11.88.11c.33.44.88.99 1.65 1.1c.66.22 1.54.11 2.64-1.1c.22-.22.66-.33.88 0c.22.22.33.66 0 .88c-1.21 1.43-2.64 1.87-3.85 1.65c-1.1-.22-1.98-.99-2.42-1.65c-.22-.33-.11-.66.22-.99z' }))));
|
|
4015
4090
|
};
|
|
4016
4091
|
var FileUploadIcon = function () {
|
|
4017
|
-
var t = useTranslationContext().t;
|
|
4092
|
+
var t = useTranslationContext('FileUploadIcon').t;
|
|
4018
4093
|
return (React__default['default'].createElement("svg", { height: '14', width: '14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4019
4094
|
React__default['default'].createElement("title", null, t('Attach files')),
|
|
4020
4095
|
React__default['default'].createElement("path", { d: 'M7 .5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5S.5 10.59.5 7 3.41.5 7 .5zm0 12c3.031 0 5.5-2.469 5.5-5.5S10.031 1.5 7 1.5A5.506 5.506 0 0 0 1.5 7c0 3.034 2.469 5.5 5.5 5.5zM7.506 3v3.494H11v1.05H7.506V11h-1.05V7.544H3v-1.05h3.456V3h1.05z', fillRule: 'nonzero' })));
|
|
4021
4096
|
};
|
|
4022
4097
|
var FileUploadIconFlat = function () {
|
|
4023
|
-
var t = useTranslationContext().t;
|
|
4098
|
+
var t = useTranslationContext('FileUploadIconFlat').t;
|
|
4024
4099
|
return (React__default['default'].createElement("svg", { height: '14', width: '14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4025
4100
|
React__default['default'].createElement("title", null, t('Attach files')),
|
|
4026
4101
|
React__default['default'].createElement("path", { d: 'M1.667.333h10.666c.737 0 1.334.597 1.334 1.334v10.666c0 .737-.597 1.334-1.334 1.334H1.667a1.333 1.333 0 0 1-1.334-1.334V1.667C.333.93.93.333 1.667.333zm2 1.334a1.667 1.667 0 1 0 0 3.333 1.667 1.667 0 0 0 0-3.333zm-2 9.333v1.333h10.666v-4l-2-2-4 4-2-2L1.667 11z', fillRule: 'nonzero' })));
|
|
4027
4102
|
};
|
|
4028
4103
|
var SendButton = function (_a) {
|
|
4029
4104
|
var sendMessage = _a.sendMessage;
|
|
4030
|
-
var t = useTranslationContext().t;
|
|
4105
|
+
var t = useTranslationContext('SendButton').t;
|
|
4031
4106
|
return (React__default['default'].createElement("button", { className: 'str-chat__send-button', onClick: sendMessage },
|
|
4032
4107
|
React__default['default'].createElement("svg", { height: '17', viewBox: '0 0 18 17', width: '18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
4033
4108
|
React__default['default'].createElement("title", null, t('Send')),
|
|
@@ -4035,8 +4110,8 @@ var SendButton = function (_a) {
|
|
|
4035
4110
|
};
|
|
4036
4111
|
|
|
4037
4112
|
var UploadsPreview = function () {
|
|
4038
|
-
var _a = useChannelStateContext(), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4039
|
-
var messageInput = useMessageInputContext();
|
|
4113
|
+
var _a = useChannelStateContext('UploadsPreview'), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4114
|
+
var messageInput = useMessageInputContext('UploadsPreview');
|
|
4040
4115
|
var fileOrder = messageInput.fileOrder, fileUploads = messageInput.fileUploads, imageOrder = messageInput.imageOrder, imageUploads = messageInput.imageUploads, numberOfUploads = messageInput.numberOfUploads, removeFile = messageInput.removeFile, removeImage = messageInput.removeImage, text = messageInput.text, uploadFile = messageInput.uploadFile, uploadImage = messageInput.uploadImage, uploadNewFiles = messageInput.uploadNewFiles;
|
|
4041
4116
|
var imagesToPreview = imageOrder.map(function (id) { return imageUploads[id]; });
|
|
4042
4117
|
var filesToPreview = fileOrder.map(function (id) { return fileUploads[id]; });
|
|
@@ -4059,9 +4134,9 @@ var UploadsPreview = function () {
|
|
|
4059
4134
|
};
|
|
4060
4135
|
|
|
4061
4136
|
var UnMemoizedChatAutoComplete = function (props) {
|
|
4062
|
-
var _a = useComponentContext(), SuggestionItem = _a.AutocompleteSuggestionItem, SuggestionList = _a.AutocompleteSuggestionList;
|
|
4063
|
-
var t = useTranslationContext().t;
|
|
4064
|
-
var messageInput = useMessageInputContext();
|
|
4137
|
+
var _a = useComponentContext('ChatAutoComplete'), SuggestionItem = _a.AutocompleteSuggestionItem, SuggestionList = _a.AutocompleteSuggestionList;
|
|
4138
|
+
var t = useTranslationContext('ChatAutoComplete').t;
|
|
4139
|
+
var messageInput = useMessageInputContext('ChatAutoComplete');
|
|
4065
4140
|
var cooldownRemaining = messageInput.cooldownRemaining, disabled = messageInput.disabled, emojiIndex = messageInput.emojiIndex, innerRef = messageInput.textareaRef;
|
|
4066
4141
|
var placeholder = props.placeholder || t('Type your message');
|
|
4067
4142
|
var emojiReplace = function (word) {
|
|
@@ -4082,15 +4157,15 @@ var UnMemoizedChatAutoComplete = function (props) {
|
|
|
4082
4157
|
innerRef.current = ref;
|
|
4083
4158
|
}
|
|
4084
4159
|
}, [innerRef]);
|
|
4085
|
-
return (React__default['default'].createElement(ReactTextareaAutocomplete, { additionalTextareaProps: messageInput.additionalTextareaProps, className: 'str-chat__textarea__textarea', closeCommandsList: messageInput.closeCommandsList, containerClassName: 'str-chat__textarea', disabled: disabled || !!cooldownRemaining, disableMentions: messageInput.disableMentions, dropdownClassName: 'str-chat__emojisearch', grow: messageInput.grow, handleSubmit: props.handleSubmit || messageInput.handleSubmit, innerRef: updateInnerRef, itemClassName: 'str-chat__emojisearch__item', keycodeSubmitKeys: messageInput.keycodeSubmitKeys, listClassName: 'str-chat__emojisearch__list', loadingComponent: LoadingIndicator, maxRows: messageInput.maxRows, minChar: 0, onChange: props.onChange || messageInput.handleChange, onFocus: props.onFocus, onPaste: props.onPaste || messageInput.onPaste, placeholder: cooldownRemaining ? t('Slow Mode ON') : placeholder, replaceWord: emojiReplace, rows: props.rows || 1, showCommandsList: messageInput.showCommandsList, SuggestionItem: SuggestionItem, SuggestionList: SuggestionList, trigger: messageInput.autocompleteTriggers || {}, value: props.value || messageInput.text }));
|
|
4160
|
+
return (React__default['default'].createElement(ReactTextareaAutocomplete, { additionalTextareaProps: messageInput.additionalTextareaProps, className: 'str-chat__textarea__textarea', closeCommandsList: messageInput.closeCommandsList, closeMentionsList: messageInput.closeMentionsList, containerClassName: 'str-chat__textarea', disabled: disabled || !!cooldownRemaining, disableMentions: messageInput.disableMentions, dropdownClassName: 'str-chat__emojisearch', grow: messageInput.grow, handleSubmit: props.handleSubmit || messageInput.handleSubmit, innerRef: updateInnerRef, itemClassName: 'str-chat__emojisearch__item', keycodeSubmitKeys: messageInput.keycodeSubmitKeys, listClassName: 'str-chat__emojisearch__list', loadingComponent: LoadingIndicator, maxRows: messageInput.maxRows, minChar: 0, onChange: props.onChange || messageInput.handleChange, onFocus: props.onFocus, onPaste: props.onPaste || messageInput.onPaste, placeholder: cooldownRemaining ? t('Slow Mode ON') : placeholder, replaceWord: emojiReplace, rows: props.rows || 1, showCommandsList: messageInput.showCommandsList, showMentionsList: messageInput.showMentionsList, SuggestionItem: SuggestionItem, SuggestionList: SuggestionList, trigger: messageInput.autocompleteTriggers || {}, value: props.value || messageInput.text }));
|
|
4086
4161
|
};
|
|
4087
4162
|
var ChatAutoComplete = React__default['default'].memo(UnMemoizedChatAutoComplete);
|
|
4088
4163
|
|
|
4089
4164
|
var EditMessageForm = function () {
|
|
4090
|
-
var _a = useChannelStateContext(), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
4091
|
-
var t = useTranslationContext().t;
|
|
4092
|
-
var _b = useMessageInputContext(), clearEditingState = _b.clearEditingState, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, uploadNewFiles = _b.uploadNewFiles;
|
|
4093
|
-
var _c = useComponentContext(), _d = _c.EmojiIcon, EmojiIcon = _d === void 0 ? EmojiIconSmall : _d, _e = _c.FileUploadIcon, FileUploadIcon$1 = _e === void 0 ? FileUploadIcon : _e;
|
|
4165
|
+
var _a = useChannelStateContext('EditMessageForm'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
4166
|
+
var t = useTranslationContext('EditMessageForm').t;
|
|
4167
|
+
var _b = useMessageInputContext('EditMessageForm'), clearEditingState = _b.clearEditingState, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, uploadNewFiles = _b.uploadNewFiles;
|
|
4168
|
+
var _c = useComponentContext('EditMessageForm'), _d = _c.EmojiIcon, EmojiIcon = _d === void 0 ? EmojiIconSmall : _d, _e = _c.FileUploadIcon, FileUploadIcon$1 = _e === void 0 ? FileUploadIcon : _e;
|
|
4094
4169
|
React.useEffect(function () {
|
|
4095
4170
|
var onKeyDown = function (event) {
|
|
4096
4171
|
if (event.keyCode === KEY_CODES.ESC && clearEditingState)
|
|
@@ -4153,8 +4228,8 @@ var checkUserRoles = function (globalRole, channelRole) {
|
|
|
4153
4228
|
};
|
|
4154
4229
|
var useCooldownTimer = function () {
|
|
4155
4230
|
var _a, _b;
|
|
4156
|
-
var client = useChatContext().client;
|
|
4157
|
-
var channel = useChannelStateContext().channel;
|
|
4231
|
+
var client = useChatContext('useCooldownTimer').client;
|
|
4232
|
+
var channel = useChannelStateContext('useCooldownTimer').channel;
|
|
4158
4233
|
var cooldownInterval = (channel.data || {}).cooldown;
|
|
4159
4234
|
var _c = React.useState(), cooldownRemaining = _c[0], setCooldownRemaining = _c[1];
|
|
4160
4235
|
var globalRole = ((_a = client.user) === null || _a === void 0 ? void 0 : _a.role) || '';
|
|
@@ -4175,7 +4250,7 @@ var useCooldownTimer = function () {
|
|
|
4175
4250
|
};
|
|
4176
4251
|
|
|
4177
4252
|
var useEmojiIndex = function () {
|
|
4178
|
-
var _a = useEmojiContext(), emojiConfig = _a.emojiConfig, EmojiIndex = _a.EmojiIndex;
|
|
4253
|
+
var _a = useEmojiContext('useEmojiIndex'), emojiConfig = _a.emojiConfig, EmojiIndex = _a.EmojiIndex;
|
|
4179
4254
|
var emojiData = (emojiConfig || {}).emojiData;
|
|
4180
4255
|
var emojiIndex = React.useMemo(function () {
|
|
4181
4256
|
if (EmojiIndex) {
|
|
@@ -4189,15 +4264,16 @@ var useEmojiIndex = function () {
|
|
|
4189
4264
|
var useImageUploads = function (props, state, dispatch) {
|
|
4190
4265
|
var doImageUploadRequest = props.doImageUploadRequest, errorHandler = props.errorHandler;
|
|
4191
4266
|
var imageUploads = state.imageUploads;
|
|
4192
|
-
var channel = useChannelStateContext().channel;
|
|
4193
|
-
var
|
|
4194
|
-
var
|
|
4267
|
+
var channel = useChannelStateContext('useImageUploads').channel;
|
|
4268
|
+
var getAppSettings = useChatContext('useImageUploads').getAppSettings;
|
|
4269
|
+
var addNotification = useChannelActionContext('useImageUploads').addNotification;
|
|
4270
|
+
var t = useTranslationContext('useImageUploads').t;
|
|
4195
4271
|
var removeImage = React.useCallback(function (id) {
|
|
4196
4272
|
dispatch({ id: id, type: 'removeImageUpload' });
|
|
4197
4273
|
// TODO: cancel upload if still uploading
|
|
4198
4274
|
}, []);
|
|
4199
4275
|
var uploadImage = React.useCallback(function (id) { return __awaiter(void 0, void 0, void 0, function () {
|
|
4200
|
-
var img, file, response, error_1, errorMessage, alreadyRemoved;
|
|
4276
|
+
var img, file, canUpload, response, error_1, errorMessage, alreadyRemoved;
|
|
4201
4277
|
return __generator(this, function (_a) {
|
|
4202
4278
|
switch (_a.label) {
|
|
4203
4279
|
case 0:
|
|
@@ -4208,22 +4284,35 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4208
4284
|
if (img.state !== 'uploading') {
|
|
4209
4285
|
dispatch({ id: id, state: 'uploading', type: 'setImageUpload' });
|
|
4210
4286
|
}
|
|
4211
|
-
|
|
4287
|
+
return [4 /*yield*/, checkUploadPermissions({
|
|
4288
|
+
addNotification: addNotification,
|
|
4289
|
+
file: file,
|
|
4290
|
+
getAppSettings: getAppSettings,
|
|
4291
|
+
t: t,
|
|
4292
|
+
uploadType: 'image',
|
|
4293
|
+
})];
|
|
4212
4294
|
case 1:
|
|
4213
|
-
_a.
|
|
4214
|
-
if (!
|
|
4215
|
-
|
|
4295
|
+
canUpload = _a.sent();
|
|
4296
|
+
if (!canUpload)
|
|
4297
|
+
return [2 /*return*/, removeImage(id)];
|
|
4298
|
+
_a.label = 2;
|
|
4216
4299
|
case 2:
|
|
4300
|
+
_a.trys.push([2, 7, , 8]);
|
|
4301
|
+
if (!doImageUploadRequest) return [3 /*break*/, 4];
|
|
4302
|
+
return [4 /*yield*/, doImageUploadRequest(file, channel)];
|
|
4303
|
+
case 3:
|
|
4217
4304
|
response = _a.sent();
|
|
4218
|
-
return [3 /*break*/,
|
|
4219
|
-
case
|
|
4220
|
-
case
|
|
4305
|
+
return [3 /*break*/, 6];
|
|
4306
|
+
case 4: return [4 /*yield*/, channel.sendImage(file)];
|
|
4307
|
+
case 5:
|
|
4221
4308
|
response = _a.sent();
|
|
4222
|
-
_a.label =
|
|
4223
|
-
case
|
|
4224
|
-
case
|
|
4309
|
+
_a.label = 6;
|
|
4310
|
+
case 6: return [3 /*break*/, 8];
|
|
4311
|
+
case 7:
|
|
4225
4312
|
error_1 = _a.sent();
|
|
4226
|
-
errorMessage = typeof error_1.message === 'string'
|
|
4313
|
+
errorMessage = typeof error_1.message === 'string'
|
|
4314
|
+
? error_1.message
|
|
4315
|
+
: t('Error uploading image');
|
|
4227
4316
|
addNotification(errorMessage, 'error');
|
|
4228
4317
|
alreadyRemoved = false;
|
|
4229
4318
|
if (!imageUploads[id]) {
|
|
@@ -4237,7 +4326,7 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4237
4326
|
errorHandler(error_1, 'upload-image', __assign(__assign({}, file), { id: id }));
|
|
4238
4327
|
}
|
|
4239
4328
|
return [2 /*return*/];
|
|
4240
|
-
case
|
|
4329
|
+
case 8:
|
|
4241
4330
|
// If doImageUploadRequest returns any falsy value, then don't create the upload preview.
|
|
4242
4331
|
// This is for the case if someone wants to handle failure on app level.
|
|
4243
4332
|
if (!response) {
|
|
@@ -4292,9 +4381,10 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4292
4381
|
var useFileUploads = function (props, state, dispatch) {
|
|
4293
4382
|
var doFileUploadRequest = props.doFileUploadRequest, errorHandler = props.errorHandler;
|
|
4294
4383
|
var fileUploads = state.fileUploads;
|
|
4295
|
-
var channel = useChannelStateContext().channel;
|
|
4296
|
-
var addNotification = useChannelActionContext().addNotification;
|
|
4297
|
-
var
|
|
4384
|
+
var channel = useChannelStateContext('useFileUploads').channel;
|
|
4385
|
+
var addNotification = useChannelActionContext('useFileUploads').addNotification;
|
|
4386
|
+
var getAppSettings = useChatContext('useFileUploads').getAppSettings;
|
|
4387
|
+
var t = useTranslationContext('useFileUploads').t;
|
|
4298
4388
|
var uploadFile = React.useCallback(function (id) {
|
|
4299
4389
|
dispatch({ id: id, state: 'uploading', type: 'setFileUpload' });
|
|
4300
4390
|
}, []);
|
|
@@ -4304,7 +4394,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4304
4394
|
}, []);
|
|
4305
4395
|
React.useEffect(function () {
|
|
4306
4396
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
4307
|
-
var upload, file, id, response, error_1, errorMessage, alreadyRemoved;
|
|
4397
|
+
var upload, file, id, canUpload, response, error_1, errorMessage, alreadyRemoved;
|
|
4308
4398
|
return __generator(this, function (_a) {
|
|
4309
4399
|
switch (_a.label) {
|
|
4310
4400
|
case 0:
|
|
@@ -4312,22 +4402,35 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4312
4402
|
if (!upload)
|
|
4313
4403
|
return [2 /*return*/];
|
|
4314
4404
|
file = upload.file, id = upload.id;
|
|
4315
|
-
|
|
4405
|
+
return [4 /*yield*/, checkUploadPermissions({
|
|
4406
|
+
addNotification: addNotification,
|
|
4407
|
+
file: file,
|
|
4408
|
+
getAppSettings: getAppSettings,
|
|
4409
|
+
t: t,
|
|
4410
|
+
uploadType: 'file',
|
|
4411
|
+
})];
|
|
4316
4412
|
case 1:
|
|
4317
|
-
_a.
|
|
4318
|
-
if (!
|
|
4319
|
-
|
|
4413
|
+
canUpload = _a.sent();
|
|
4414
|
+
if (!canUpload)
|
|
4415
|
+
return [2 /*return*/, removeFile(id)];
|
|
4416
|
+
_a.label = 2;
|
|
4320
4417
|
case 2:
|
|
4418
|
+
_a.trys.push([2, 7, , 8]);
|
|
4419
|
+
if (!doFileUploadRequest) return [3 /*break*/, 4];
|
|
4420
|
+
return [4 /*yield*/, doFileUploadRequest(file, channel)];
|
|
4421
|
+
case 3:
|
|
4321
4422
|
response = _a.sent();
|
|
4322
|
-
return [3 /*break*/,
|
|
4323
|
-
case
|
|
4324
|
-
case
|
|
4423
|
+
return [3 /*break*/, 6];
|
|
4424
|
+
case 4: return [4 /*yield*/, channel.sendFile(file)];
|
|
4425
|
+
case 5:
|
|
4325
4426
|
response = _a.sent();
|
|
4326
|
-
_a.label =
|
|
4327
|
-
case
|
|
4328
|
-
case
|
|
4427
|
+
_a.label = 6;
|
|
4428
|
+
case 6: return [3 /*break*/, 8];
|
|
4429
|
+
case 7:
|
|
4329
4430
|
error_1 = _a.sent();
|
|
4330
|
-
errorMessage = typeof error_1.message === 'string'
|
|
4431
|
+
errorMessage = typeof error_1.message === 'string'
|
|
4432
|
+
? error_1.message
|
|
4433
|
+
: t('Error uploading file');
|
|
4331
4434
|
addNotification(errorMessage, 'error');
|
|
4332
4435
|
alreadyRemoved = false;
|
|
4333
4436
|
if (!fileUploads[id]) {
|
|
@@ -4341,7 +4444,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4341
4444
|
errorHandler(error_1, 'upload-file', file);
|
|
4342
4445
|
}
|
|
4343
4446
|
return [2 /*return*/];
|
|
4344
|
-
case
|
|
4447
|
+
case 8:
|
|
4345
4448
|
// If doImageUploadRequest returns any falsy value, then don't create the upload preview.
|
|
4346
4449
|
// This is for the case if someone wants to handle failure on app level.
|
|
4347
4450
|
if (!response) {
|
|
@@ -4366,10 +4469,10 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4366
4469
|
};
|
|
4367
4470
|
|
|
4368
4471
|
var apiMaxNumberOfFiles = 10;
|
|
4369
|
-
var useAttachments = function (props, state, dispatch) {
|
|
4472
|
+
var useAttachments = function (props, state, dispatch, textareaRef) {
|
|
4370
4473
|
var noFiles = props.noFiles;
|
|
4371
4474
|
var fileUploads = state.fileUploads, imageUploads = state.imageUploads;
|
|
4372
|
-
var _a = useChannelStateContext(), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4475
|
+
var _a = useChannelStateContext('useAttachments'), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4373
4476
|
var _b = useFileUploads(props, state, dispatch), removeFile = _b.removeFile, uploadFile = _b.uploadFile;
|
|
4374
4477
|
var _c = useImageUploads(props, state, dispatch), removeImage = _c.removeImage, uploadImage = _c.uploadImage;
|
|
4375
4478
|
// Number of files that the user can still add. Should never be more than the amount allowed by the API.
|
|
@@ -4387,6 +4490,7 @@ var useAttachments = function (props, state, dispatch) {
|
|
|
4387
4490
|
var numberOfUploads = numberOfImages + numberOfFiles;
|
|
4388
4491
|
var maxFilesLeft = maxFilesAllowed - numberOfUploads;
|
|
4389
4492
|
var uploadNewFiles = React.useCallback(function (files) {
|
|
4493
|
+
var _a;
|
|
4390
4494
|
Array.from(files)
|
|
4391
4495
|
.slice(0, maxFilesLeft)
|
|
4392
4496
|
.forEach(function (file) {
|
|
@@ -4400,6 +4504,7 @@ var useAttachments = function (props, state, dispatch) {
|
|
|
4400
4504
|
dispatch({ file: file, id: id, state: 'uploading', type: 'setFileUpload' });
|
|
4401
4505
|
}
|
|
4402
4506
|
});
|
|
4507
|
+
(_a = textareaRef === null || textareaRef === void 0 ? void 0 : textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4403
4508
|
}, [maxFilesLeft, noFiles]);
|
|
4404
4509
|
return {
|
|
4405
4510
|
maxFilesLeft: maxFilesLeft,
|
|
@@ -4413,7 +4518,7 @@ var useAttachments = function (props, state, dispatch) {
|
|
|
4413
4518
|
};
|
|
4414
4519
|
|
|
4415
4520
|
var useMessageInputText = function (props, state, dispatch) {
|
|
4416
|
-
var channel = useChannelStateContext().channel;
|
|
4521
|
+
var channel = useChannelStateContext('useMessageInputText').channel;
|
|
4417
4522
|
var additionalTextareaProps = props.additionalTextareaProps, focus = props.focus, parent = props.parent, _a = props.publishTypingEvent, publishTypingEvent = _a === void 0 ? true : _a;
|
|
4418
4523
|
var text = state.text;
|
|
4419
4524
|
var textareaRef = React.useRef();
|
|
@@ -4482,7 +4587,7 @@ var useMessageInputText = function (props, state, dispatch) {
|
|
|
4482
4587
|
};
|
|
4483
4588
|
};
|
|
4484
4589
|
|
|
4485
|
-
var useEmojiPicker = function (state, dispatch, insertText) {
|
|
4590
|
+
var useEmojiPicker = function (state, dispatch, insertText, textareaRef, closeEmojiPickerOnClick) {
|
|
4486
4591
|
var emojiPickerRef = React.useRef(null);
|
|
4487
4592
|
var closeEmojiPicker = React.useCallback(function (event) {
|
|
4488
4593
|
if (emojiPickerRef.current && !emojiPickerRef.current.contains(event.target)) {
|
|
@@ -4528,9 +4633,17 @@ var useEmojiPicker = function (state, dispatch, insertText) {
|
|
|
4528
4633
|
document.removeEventListener('keydown', handleEmojiEscape);
|
|
4529
4634
|
};
|
|
4530
4635
|
}, [closeEmojiPicker, state.emojiPickerIsOpen]);
|
|
4531
|
-
var onSelectEmoji = React.useCallback(function (emoji) {
|
|
4532
|
-
|
|
4533
|
-
|
|
4636
|
+
var onSelectEmoji = React.useCallback(function (emoji) {
|
|
4637
|
+
var _a;
|
|
4638
|
+
insertText(emoji.native);
|
|
4639
|
+
if (closeEmojiPickerOnClick) {
|
|
4640
|
+
dispatch({
|
|
4641
|
+
type: 'setEmojiPickerIsOpen',
|
|
4642
|
+
value: false,
|
|
4643
|
+
});
|
|
4644
|
+
}
|
|
4645
|
+
(_a = textareaRef === null || textareaRef === void 0 ? void 0 : textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4646
|
+
}, [insertText]);
|
|
4534
4647
|
return {
|
|
4535
4648
|
closeEmojiPicker: closeEmojiPicker,
|
|
4536
4649
|
emojiPickerRef: emojiPickerRef,
|
|
@@ -4550,9 +4663,9 @@ var getAttachmentTypeFromMime = function (mime) {
|
|
|
4550
4663
|
var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
|
|
4551
4664
|
var clearEditingState = props.clearEditingState, message = props.message, overrideSubmitHandler = props.overrideSubmitHandler, parent = props.parent, publishTypingEvent = props.publishTypingEvent;
|
|
4552
4665
|
var attachments = state.attachments, fileOrder = state.fileOrder, fileUploads = state.fileUploads, imageOrder = state.imageOrder, imageUploads = state.imageUploads, mentioned_users = state.mentioned_users, text = state.text;
|
|
4553
|
-
var channel = useChannelStateContext().channel;
|
|
4554
|
-
var _a = useChannelActionContext(), addNotification = _a.addNotification, editMessage = _a.editMessage, sendMessage = _a.sendMessage;
|
|
4555
|
-
var t = useTranslationContext().t;
|
|
4666
|
+
var channel = useChannelStateContext('useSubmitHandler').channel;
|
|
4667
|
+
var _a = useChannelActionContext('useSubmitHandler'), addNotification = _a.addNotification, editMessage = _a.editMessage, sendMessage = _a.sendMessage;
|
|
4668
|
+
var t = useTranslationContext('useSubmitHandler').t;
|
|
4556
4669
|
var getAttachmentsFromUploads = function () {
|
|
4557
4670
|
var imageAttachments = imageOrder
|
|
4558
4671
|
.map(function (id) { return imageUploads[id]; })
|
|
@@ -4745,7 +4858,7 @@ var initState = function (message) {
|
|
|
4745
4858
|
var id = generateRandomId();
|
|
4746
4859
|
acc[id] = {
|
|
4747
4860
|
file: {
|
|
4748
|
-
name: attachment.fallback,
|
|
4861
|
+
name: attachment.fallback || '',
|
|
4749
4862
|
},
|
|
4750
4863
|
id: id,
|
|
4751
4864
|
state: 'finished',
|
|
@@ -4852,12 +4965,12 @@ var messageInputReducer = function (state, action) {
|
|
|
4852
4965
|
* hook for MessageInput state
|
|
4853
4966
|
*/
|
|
4854
4967
|
var useMessageInputState = function (props) {
|
|
4855
|
-
var
|
|
4856
|
-
var
|
|
4857
|
-
var channel = useChannelStateContext().channel;
|
|
4968
|
+
var closeEmojiPickerOnClick = props.closeEmojiPickerOnClick, message = props.message;
|
|
4969
|
+
var _a = useChannelStateContext('useMessageInputState'), _b = _a.channelCapabilities, channelCapabilities = _b === void 0 ? {} : _b, channelConfig = _a.channelConfig;
|
|
4858
4970
|
var _c = React.useReducer(messageInputReducer, message, initState), state = _c[0], dispatch = _c[1];
|
|
4859
4971
|
var _d = useMessageInputText(props, state, dispatch), handleChange = _d.handleChange, insertText = _d.insertText, textareaRef = _d.textareaRef;
|
|
4860
4972
|
var _e = React.useState(false), showCommandsList = _e[0], setShowCommandsList = _e[1];
|
|
4973
|
+
var _f = React.useState(false), showMentionsList = _f[0], setShowMentionsList = _f[1];
|
|
4861
4974
|
var openCommandsList = function () {
|
|
4862
4975
|
dispatch({
|
|
4863
4976
|
getNewText: function () { return '/'; },
|
|
@@ -4866,11 +4979,19 @@ var useMessageInputState = function (props) {
|
|
|
4866
4979
|
setShowCommandsList(true);
|
|
4867
4980
|
};
|
|
4868
4981
|
var closeCommandsList = function () { return setShowCommandsList(false); };
|
|
4869
|
-
var
|
|
4870
|
-
|
|
4982
|
+
var openMentionsList = function () {
|
|
4983
|
+
dispatch({
|
|
4984
|
+
getNewText: function () { return '@'; },
|
|
4985
|
+
type: 'setText',
|
|
4986
|
+
});
|
|
4987
|
+
setShowMentionsList(true);
|
|
4988
|
+
};
|
|
4989
|
+
var closeMentionsList = function () { return setShowMentionsList(false); };
|
|
4990
|
+
var _g = useEmojiPicker(state, dispatch, insertText, textareaRef, closeEmojiPickerOnClick), closeEmojiPicker = _g.closeEmojiPicker, emojiPickerRef = _g.emojiPickerRef, handleEmojiKeyDown = _g.handleEmojiKeyDown, onSelectEmoji = _g.onSelectEmoji, openEmojiPicker = _g.openEmojiPicker;
|
|
4991
|
+
var _h = useAttachments(props, state, dispatch, textareaRef), maxFilesLeft = _h.maxFilesLeft, numberOfUploads = _h.numberOfUploads, removeFile = _h.removeFile, removeImage = _h.removeImage, uploadFile = _h.uploadFile, uploadImage = _h.uploadImage, uploadNewFiles = _h.uploadNewFiles;
|
|
4871
4992
|
var handleSubmit = useSubmitHandler(props, state, dispatch, numberOfUploads).handleSubmit;
|
|
4872
4993
|
var onPaste = usePasteHandler(uploadNewFiles, insertText).onPaste;
|
|
4873
|
-
var isUploadEnabled = (
|
|
4994
|
+
var isUploadEnabled = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.uploads) !== false && channelCapabilities['upload-file'] !== false;
|
|
4874
4995
|
var onSelectUser = React.useCallback(function (item) {
|
|
4875
4996
|
dispatch({ type: 'addMentionedUser', user: item });
|
|
4876
4997
|
}, []);
|
|
@@ -4882,12 +5003,12 @@ var useMessageInputState = function (props) {
|
|
|
4882
5003
|
* TODO: fix the below at some point because this type casting is wrong
|
|
4883
5004
|
* and just forced to not have warnings currently with the unknown casting
|
|
4884
5005
|
*/
|
|
4885
|
-
closeEmojiPicker: closeEmojiPicker, emojiIndex: useEmojiIndex(), emojiPickerRef: emojiPickerRef, handleChange: handleChange, handleEmojiKeyDown: handleEmojiKeyDown, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectEmoji: onSelectEmoji, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openEmojiPicker: openEmojiPicker, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, textareaRef: textareaRef, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
|
|
5006
|
+
closeEmojiPicker: closeEmojiPicker, closeMentionsList: closeMentionsList, emojiIndex: useEmojiIndex(), emojiPickerRef: emojiPickerRef, handleChange: handleChange, handleEmojiKeyDown: handleEmojiKeyDown, handleSubmit: handleSubmit, insertText: insertText, isUploadEnabled: isUploadEnabled, maxFilesLeft: maxFilesLeft, numberOfUploads: numberOfUploads, onPaste: onPaste, onSelectEmoji: onSelectEmoji, onSelectUser: onSelectUser, openCommandsList: openCommandsList, openEmojiPicker: openEmojiPicker, openMentionsList: openMentionsList, removeFile: removeFile, removeImage: removeImage, setText: setText, showCommandsList: showCommandsList, showMentionsList: showMentionsList, textareaRef: textareaRef, uploadFile: uploadFile, uploadImage: uploadImage, uploadNewFiles: uploadNewFiles });
|
|
4886
5007
|
};
|
|
4887
5008
|
|
|
4888
5009
|
var QuotedMessagePreviewHeader = function () {
|
|
4889
|
-
var setQuotedMessage = useChannelActionContext().setQuotedMessage;
|
|
4890
|
-
var t = useTranslationContext().t;
|
|
5010
|
+
var setQuotedMessage = useChannelActionContext('QuotedMessagePreview').setQuotedMessage;
|
|
5011
|
+
var t = useTranslationContext('QuotedMessagePreview').t;
|
|
4891
5012
|
return (React__default['default'].createElement("div", { className: 'quoted-message-preview-header' },
|
|
4892
5013
|
React__default['default'].createElement("div", null, t('Reply to Message')),
|
|
4893
5014
|
React__default['default'].createElement("button", { className: 'str-chat__square-button', onClick: function () { return setQuotedMessage(undefined); } },
|
|
@@ -4897,8 +5018,8 @@ var QuotedMessagePreviewHeader = function () {
|
|
|
4897
5018
|
var QuotedMessagePreview = function (props) {
|
|
4898
5019
|
var _a;
|
|
4899
5020
|
var quotedMessage = props.quotedMessage;
|
|
4900
|
-
var Attachment = useComponentContext().Attachment;
|
|
4901
|
-
var userLanguage = useTranslationContext().userLanguage;
|
|
5021
|
+
var Attachment = useComponentContext('QuotedMessagePreview').Attachment;
|
|
5022
|
+
var userLanguage = useTranslationContext('QuotedMessagePreview').userLanguage;
|
|
4902
5023
|
var quotedMessageText = ((_a = quotedMessage.i18n) === null || _a === void 0 ? void 0 : _a[userLanguage + "_text"]) ||
|
|
4903
5024
|
quotedMessage.text;
|
|
4904
5025
|
// @ts-expect-error
|
|
@@ -4918,10 +5039,10 @@ var QuotedMessagePreview = function (props) {
|
|
|
4918
5039
|
};
|
|
4919
5040
|
|
|
4920
5041
|
var MessageInputFlat = function () {
|
|
4921
|
-
var _a = useChannelStateContext(), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
4922
|
-
var t = useTranslationContext().t;
|
|
4923
|
-
var _b = useMessageInputContext(), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleEmojiKeyDown = _b.handleEmojiKeyDown, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
4924
|
-
var _c = useComponentContext(), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconLarge : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.QuotedMessagePreview, QuotedMessagePreview$1 = _g === void 0 ? QuotedMessagePreview : _g, _h = _c.SendButton, SendButton$1 = _h === void 0 ? SendButton : _h;
|
|
5042
|
+
var _a = useChannelStateContext('MessageInputFlat'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads, quotedMessage = _a.quotedMessage;
|
|
5043
|
+
var t = useTranslationContext('MessageInputFlat').t;
|
|
5044
|
+
var _b = useMessageInputContext('MessageInputFlat'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleEmojiKeyDown = _b.handleEmojiKeyDown, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
5045
|
+
var _c = useComponentContext('MessageInputFlat'), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconLarge : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.QuotedMessagePreview, QuotedMessagePreview$1 = _g === void 0 ? QuotedMessagePreview : _g, _h = _c.SendButton, SendButton$1 = _h === void 0 ? SendButton : _h;
|
|
4925
5046
|
return (React__default['default'].createElement("div", { className: "str-chat__input-flat " + (SendButton$1 ? 'str-chat__input-flat--send-button-active' : null) + " " + (quotedMessage ? 'str-chat__input-flat-quoted' : null) },
|
|
4926
5047
|
React__default['default'].createElement(reactFileUtils.ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads },
|
|
4927
5048
|
quotedMessage && React__default['default'].createElement(QuotedMessagePreview$1, { quotedMessage: quotedMessage }),
|
|
@@ -4945,7 +5066,7 @@ var MessageInputFlat = function () {
|
|
|
4945
5066
|
};
|
|
4946
5067
|
|
|
4947
5068
|
var useCreateMessageInputContext = function (value) {
|
|
4948
|
-
var additionalTextareaProps = value.additionalTextareaProps, attachments = value.attachments, autocompleteTriggers = value.autocompleteTriggers, clearEditingState = value.clearEditingState, closeCommandsList = value.closeCommandsList, closeEmojiPicker = value.closeEmojiPicker, cooldownInterval = value.cooldownInterval, cooldownRemaining = value.cooldownRemaining, disabled = value.disabled, disableMentions = value.disableMentions, doFileUploadRequest = value.doFileUploadRequest, doImageUploadRequest = value.doImageUploadRequest, emojiIndex = value.emojiIndex, emojiPickerIsOpen = value.emojiPickerIsOpen, emojiPickerRef = value.emojiPickerRef, errorHandler = value.errorHandler, fileOrder = value.fileOrder, fileUploads = value.fileUploads, focus = value.focus, grow = value.grow, handleChange = value.handleChange, handleEmojiKeyDown = value.handleEmojiKeyDown, handleSubmit = value.handleSubmit, imageOrder = value.imageOrder, imageUploads = value.imageUploads, insertText = value.insertText, isUploadEnabled = value.isUploadEnabled, keycodeSubmitKeys = value.keycodeSubmitKeys, maxFilesLeft = value.maxFilesLeft, maxRows = value.maxRows, mentionAllAppUsers = value.mentionAllAppUsers, mentioned_users = value.mentioned_users, mentionQueryParams = value.mentionQueryParams, message = value.message, noFiles = value.noFiles, numberOfUploads = value.numberOfUploads, onPaste = value.onPaste, onSelectEmoji = value.onSelectEmoji, onSelectUser = value.onSelectUser, openCommandsList = value.openCommandsList, openEmojiPicker = value.openEmojiPicker, overrideSubmitHandler = value.overrideSubmitHandler, parent = value.parent, publishTypingEvent = value.publishTypingEvent, removeFile = value.removeFile, removeImage = value.removeImage, setCooldownRemaining = value.setCooldownRemaining, setText = value.setText, showCommandsList = value.showCommandsList, text = value.text, textareaRef = value.textareaRef, uploadFile = value.uploadFile, uploadImage = value.uploadImage, uploadNewFiles = value.uploadNewFiles, useMentionsTransliteration = value.useMentionsTransliteration;
|
|
5069
|
+
var additionalTextareaProps = value.additionalTextareaProps, attachments = value.attachments, autocompleteTriggers = value.autocompleteTriggers, clearEditingState = value.clearEditingState, closeCommandsList = value.closeCommandsList, closeEmojiPicker = value.closeEmojiPicker, closeMentionsList = value.closeMentionsList, cooldownInterval = value.cooldownInterval, cooldownRemaining = value.cooldownRemaining, disabled = value.disabled, disableMentions = value.disableMentions, doFileUploadRequest = value.doFileUploadRequest, doImageUploadRequest = value.doImageUploadRequest, emojiIndex = value.emojiIndex, emojiPickerIsOpen = value.emojiPickerIsOpen, emojiPickerRef = value.emojiPickerRef, errorHandler = value.errorHandler, fileOrder = value.fileOrder, fileUploads = value.fileUploads, focus = value.focus, grow = value.grow, handleChange = value.handleChange, handleEmojiKeyDown = value.handleEmojiKeyDown, handleSubmit = value.handleSubmit, imageOrder = value.imageOrder, imageUploads = value.imageUploads, insertText = value.insertText, isUploadEnabled = value.isUploadEnabled, keycodeSubmitKeys = value.keycodeSubmitKeys, maxFilesLeft = value.maxFilesLeft, maxRows = value.maxRows, mentionAllAppUsers = value.mentionAllAppUsers, mentioned_users = value.mentioned_users, mentionQueryParams = value.mentionQueryParams, message = value.message, noFiles = value.noFiles, numberOfUploads = value.numberOfUploads, onPaste = value.onPaste, onSelectEmoji = value.onSelectEmoji, onSelectUser = value.onSelectUser, openCommandsList = value.openCommandsList, openEmojiPicker = value.openEmojiPicker, openMentionsList = value.openMentionsList, overrideSubmitHandler = value.overrideSubmitHandler, parent = value.parent, publishTypingEvent = value.publishTypingEvent, removeFile = value.removeFile, removeImage = value.removeImage, setCooldownRemaining = value.setCooldownRemaining, setText = value.setText, showCommandsList = value.showCommandsList, showMentionsList = value.showMentionsList, text = value.text, textareaRef = value.textareaRef, uploadFile = value.uploadFile, uploadImage = value.uploadImage, uploadNewFiles = value.uploadNewFiles, useMentionsTransliteration = value.useMentionsTransliteration;
|
|
4949
5070
|
var editing = message === null || message === void 0 ? void 0 : message.editing;
|
|
4950
5071
|
var fileUploadsValue = Object.entries(fileUploads)
|
|
4951
5072
|
// eslint-disable-next-line
|
|
@@ -4970,6 +5091,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
4970
5091
|
clearEditingState: clearEditingState,
|
|
4971
5092
|
closeCommandsList: closeCommandsList,
|
|
4972
5093
|
closeEmojiPicker: closeEmojiPicker,
|
|
5094
|
+
closeMentionsList: closeMentionsList,
|
|
4973
5095
|
cooldownInterval: cooldownInterval,
|
|
4974
5096
|
cooldownRemaining: cooldownRemaining,
|
|
4975
5097
|
disabled: disabled,
|
|
@@ -5005,6 +5127,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5005
5127
|
onSelectUser: onSelectUser,
|
|
5006
5128
|
openCommandsList: openCommandsList,
|
|
5007
5129
|
openEmojiPicker: openEmojiPicker,
|
|
5130
|
+
openMentionsList: openMentionsList,
|
|
5008
5131
|
overrideSubmitHandler: overrideSubmitHandler,
|
|
5009
5132
|
parent: parent,
|
|
5010
5133
|
publishTypingEvent: publishTypingEvent,
|
|
@@ -5013,6 +5136,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5013
5136
|
setCooldownRemaining: setCooldownRemaining,
|
|
5014
5137
|
setText: setText,
|
|
5015
5138
|
showCommandsList: showCommandsList,
|
|
5139
|
+
showMentionsList: showMentionsList,
|
|
5016
5140
|
text: text,
|
|
5017
5141
|
textareaRef: textareaRef,
|
|
5018
5142
|
uploadFile: uploadFile,
|
|
@@ -5030,19 +5154,30 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5030
5154
|
mentionedUsersLength,
|
|
5031
5155
|
parentId,
|
|
5032
5156
|
publishTypingEvent,
|
|
5157
|
+
showCommandsList,
|
|
5158
|
+
showMentionsList,
|
|
5033
5159
|
text,
|
|
5034
5160
|
]);
|
|
5035
5161
|
return messageInputContext;
|
|
5036
5162
|
};
|
|
5037
5163
|
|
|
5164
|
+
var MessageInputProvider = function (props) {
|
|
5165
|
+
var cooldownTimerState = useCooldownTimer();
|
|
5166
|
+
var messageInputState = useMessageInputState(props);
|
|
5167
|
+
var messageInputContextValue = useCreateMessageInputContext(__assign(__assign(__assign({}, cooldownTimerState), messageInputState), props));
|
|
5168
|
+
return (React__default['default'].createElement(MessageInputContextProvider, { value: messageInputContextValue }, props.children));
|
|
5169
|
+
};
|
|
5038
5170
|
var UnMemoizedMessageInput = function (props) {
|
|
5039
5171
|
var PropInput = props.Input;
|
|
5040
|
-
var
|
|
5172
|
+
var dragAndDropWindow = useChannelStateContext().dragAndDropWindow;
|
|
5173
|
+
var _a = useComponentContext('MessageInput'), ContextInput = _a.Input, _b = _a.TriggerProvider, TriggerProvider = _b === void 0 ? DefaultTriggerProvider : _b;
|
|
5041
5174
|
var Input = PropInput || ContextInput || MessageInputFlat;
|
|
5042
|
-
var
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5175
|
+
var NullProvider = function (_a) {
|
|
5176
|
+
var children = _a.children;
|
|
5177
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null, children);
|
|
5178
|
+
};
|
|
5179
|
+
var OptionalMessageInputProvider = React.useMemo(function () { return (dragAndDropWindow ? NullProvider : MessageInputProvider); }, [dragAndDropWindow]);
|
|
5180
|
+
return (React__default['default'].createElement(OptionalMessageInputProvider, __assign({}, props),
|
|
5046
5181
|
React__default['default'].createElement(TriggerProvider, null,
|
|
5047
5182
|
React__default['default'].createElement(Input, null))));
|
|
5048
5183
|
};
|
|
@@ -5052,10 +5187,10 @@ var UnMemoizedMessageInput = function (props) {
|
|
|
5052
5187
|
var MessageInput = React__default['default'].memo(UnMemoizedMessageInput);
|
|
5053
5188
|
|
|
5054
5189
|
var MessageInputSmall = function () {
|
|
5055
|
-
var _a = useChannelStateContext(), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
5056
|
-
var t = useTranslationContext().t;
|
|
5057
|
-
var _b = useMessageInputContext(), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleEmojiKeyDown = _b.handleEmojiKeyDown, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
5058
|
-
var _c = useComponentContext(), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconSmall : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.SendButton, SendButton$1 = _g === void 0 ? SendButton : _g;
|
|
5190
|
+
var _a = useChannelStateContext('MessageInputSmall'), acceptedFiles = _a.acceptedFiles, multipleUploads = _a.multipleUploads;
|
|
5191
|
+
var t = useTranslationContext('MessageInputSmall').t;
|
|
5192
|
+
var _b = useMessageInputContext('MessageInputSmall'), closeEmojiPicker = _b.closeEmojiPicker, cooldownInterval = _b.cooldownInterval, cooldownRemaining = _b.cooldownRemaining, emojiPickerIsOpen = _b.emojiPickerIsOpen, handleEmojiKeyDown = _b.handleEmojiKeyDown, handleSubmit = _b.handleSubmit, isUploadEnabled = _b.isUploadEnabled, maxFilesLeft = _b.maxFilesLeft, openEmojiPicker = _b.openEmojiPicker, setCooldownRemaining = _b.setCooldownRemaining, uploadNewFiles = _b.uploadNewFiles;
|
|
5193
|
+
var _c = useComponentContext('MessageInputSmall'), _d = _c.CooldownTimer, CooldownTimer$1 = _d === void 0 ? CooldownTimer : _d, _e = _c.EmojiIcon, EmojiIcon = _e === void 0 ? EmojiIconSmall : _e, _f = _c.FileUploadIcon, FileUploadIcon = _f === void 0 ? FileUploadIconFlat : _f, _g = _c.SendButton, SendButton$1 = _g === void 0 ? SendButton : _g;
|
|
5059
5194
|
return (React__default['default'].createElement("div", { className: 'str-chat__small-message-input__wrapper' },
|
|
5060
5195
|
React__default['default'].createElement(reactFileUtils.ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads },
|
|
5061
5196
|
React__default['default'].createElement("div", { className: "str-chat__small-message-input " + (SendButton$1 ? 'str-chat__small-message-input--send-button-active' : null) },
|
|
@@ -5095,14 +5230,14 @@ var MMLReact = React__default['default'].lazy(function () { return __awaiter(voi
|
|
|
5095
5230
|
*/
|
|
5096
5231
|
var MML = function (props) {
|
|
5097
5232
|
var actionHandler = props.actionHandler, _a = props.align, align = _a === void 0 ? 'right' : _a, source = props.source;
|
|
5098
|
-
var theme = useChatContext().theme;
|
|
5233
|
+
var theme = useChatContext('MML').theme;
|
|
5099
5234
|
return (React__default['default'].createElement(React.Suspense, { fallback: null },
|
|
5100
5235
|
React__default['default'].createElement(MMLReact, { className: "mml-align-" + align, Loading: null, onSubmit: actionHandler, source: source, Success: null, theme: (theme || '').replace(' ', '-') })));
|
|
5101
5236
|
};
|
|
5102
5237
|
|
|
5103
5238
|
var Modal = function (props) {
|
|
5104
5239
|
var children = props.children, onClose = props.onClose, open = props.open;
|
|
5105
|
-
var t = useTranslationContext().t;
|
|
5240
|
+
var t = useTranslationContext('Modal').t;
|
|
5106
5241
|
var innerRef = React.useRef(null);
|
|
5107
5242
|
var handleClick = function (event) {
|
|
5108
5243
|
var _a;
|
|
@@ -5142,9 +5277,9 @@ var isMutableRef = function (ref) {
|
|
|
5142
5277
|
var UnMemoizedReactionSelector = React__default['default'].forwardRef(function (props, ref) {
|
|
5143
5278
|
var _a;
|
|
5144
5279
|
var _b = props.additionalEmojiProps, additionalEmojiProps = _b === void 0 ? {} : _b, propAvatar = props.Avatar, _c = props.detailedView, detailedView = _c === void 0 ? true : _c, propHandleReaction = props.handleReaction, propLatestReactions = props.latest_reactions, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, _d = props.reverse, reverse = _d === void 0 ? false : _d;
|
|
5145
|
-
var contextAvatar = useComponentContext().Avatar;
|
|
5146
|
-
var _e = useEmojiContext(), Emoji = _e.Emoji, emojiConfig = _e.emojiConfig;
|
|
5147
|
-
var _f = useMessageContext(), contextHandleReaction = _f.handleReaction, message = _f.message;
|
|
5280
|
+
var contextAvatar = useComponentContext('ReactionSelector').Avatar;
|
|
5281
|
+
var _e = useEmojiContext('ReactionSelector'), Emoji = _e.Emoji, emojiConfig = _e.emojiConfig;
|
|
5282
|
+
var _f = useMessageContext('ReactionSelector'), contextHandleReaction = _f.handleReaction, message = _f.message;
|
|
5148
5283
|
var _g = emojiConfig || {}, defaultMinimalEmojis = _g.defaultMinimalEmojis, fullEmojiData = _g.emojiData, emojiSetDef = _g.emojiSetDef;
|
|
5149
5284
|
var Avatar$1 = propAvatar || contextAvatar || Avatar;
|
|
5150
5285
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
@@ -5224,8 +5359,8 @@ var ReactionSelector = React__default['default'].memo(UnMemoizedReactionSelector
|
|
|
5224
5359
|
|
|
5225
5360
|
var UnMemoizedReactionsList = function (props) {
|
|
5226
5361
|
var additionalEmojiProps = props.additionalEmojiProps, onClick = props.onClick, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, propReactions = props.reactions, _a = props.reverse, reverse = _a === void 0 ? false : _a;
|
|
5227
|
-
var _b = useEmojiContext(), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
5228
|
-
var _c = useMessageContext(), message = _c.message, onReactionListClick = _c.onReactionListClick;
|
|
5362
|
+
var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
5363
|
+
var _c = useMessageContext('ReactionsList'), message = _c.message, onReactionListClick = _c.onReactionListClick;
|
|
5229
5364
|
var _d = emojiConfig || {}, defaultMinimalEmojis = _d.defaultMinimalEmojis, fullEmojiData = _d.emojiData, emojiSetDef = _d.emojiSetDef;
|
|
5230
5365
|
var reactions = propReactions || message.latest_reactions || [];
|
|
5231
5366
|
var reactionCounts = propReactionCounts || message.reaction_counts || {};
|
|
@@ -5283,8 +5418,8 @@ var ReactionsList = React__default['default'].memo(UnMemoizedReactionsList);
|
|
|
5283
5418
|
|
|
5284
5419
|
var UnMemoizedSimpleReactionsList = function (props) {
|
|
5285
5420
|
var _a = props.additionalEmojiProps, additionalEmojiProps = _a === void 0 ? {} : _a, propHandleReaction = props.handleReaction, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, propReactions = props.reactions;
|
|
5286
|
-
var _b = useEmojiContext(), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
5287
|
-
var _c = useMessageContext(), contextHandleReaction = _c.handleReaction, message = _c.message;
|
|
5421
|
+
var _b = useEmojiContext('SimpleReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
5422
|
+
var _c = useMessageContext('SimpleReactionsList'), contextHandleReaction = _c.handleReaction, message = _c.message;
|
|
5288
5423
|
var _d = emojiConfig || {}, defaultMinimalEmojis = _d.defaultMinimalEmojis, fullEmojiData = _d.emojiData, emojiSetDef = _d.emojiSetDef;
|
|
5289
5424
|
var _e = React.useState(undefined), tooltipReactionType = _e[0], setTooltipReactionType = _e[1];
|
|
5290
5425
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
@@ -5356,7 +5491,7 @@ var SimpleReactionsList = React__default['default'].memo(UnMemoizedSimpleReactio
|
|
|
5356
5491
|
var MessageSimpleWithContext = function (props) {
|
|
5357
5492
|
var _a;
|
|
5358
5493
|
var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
|
|
5359
|
-
var _b = useComponentContext(), Attachment = _b.Attachment, _c = _b.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? EditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted$1 = _e === void 0 ? MessageDeleted : _e, _f = _b.MessageOptions, MessageOptions$1 = _f === void 0 ? MessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton$1 = _g === void 0 ? MessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus$1 = _h === void 0 ? MessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp$1 = _j === void 0 ? MessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector$1 = _k === void 0 ? ReactionSelector : _k, _l = _b.ReactionsList, ReactionsList$1 = _l === void 0 ? ReactionsList : _l;
|
|
5494
|
+
var _b = useComponentContext('MessageSimple'), Attachment = _b.Attachment, _c = _b.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? EditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted$1 = _e === void 0 ? MessageDeleted : _e, _f = _b.MessageOptions, MessageOptions$1 = _f === void 0 ? MessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton$1 = _g === void 0 ? MessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus$1 = _h === void 0 ? MessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp$1 = _j === void 0 ? MessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector$1 = _k === void 0 ? ReactionSelector : _k, _l = _b.ReactionsList, ReactionsList$1 = _l === void 0 ? ReactionsList : _l;
|
|
5360
5495
|
var messageWrapperRef = React.useRef(null);
|
|
5361
5496
|
var hasAttachment = messageHasAttachments(message);
|
|
5362
5497
|
var hasReactions = messageHasReactions(message);
|
|
@@ -5396,19 +5531,34 @@ var MemoizedMessageSimple = React__default['default'].memo(MessageSimpleWithCont
|
|
|
5396
5531
|
* The default UI component that renders a message and receives functionality and logic from the MessageContext.
|
|
5397
5532
|
*/
|
|
5398
5533
|
var MessageSimple = function (props) {
|
|
5399
|
-
var messageContext = useMessageContext();
|
|
5534
|
+
var messageContext = useMessageContext('MessageSimple');
|
|
5400
5535
|
return React__default['default'].createElement(MemoizedMessageSimple, __assign({}, messageContext, props));
|
|
5401
5536
|
};
|
|
5402
5537
|
|
|
5538
|
+
var DropzoneInner = function (_a) {
|
|
5539
|
+
var children = _a.children;
|
|
5540
|
+
var _b = useChannelStateContext('DropzoneProvider'), acceptedFiles = _b.acceptedFiles, multipleUploads = _b.multipleUploads;
|
|
5541
|
+
var _c = useMessageInputContext('DropzoneProvider'), cooldownRemaining = _c.cooldownRemaining, isUploadEnabled = _c.isUploadEnabled, maxFilesLeft = _c.maxFilesLeft, uploadNewFiles = _c.uploadNewFiles;
|
|
5542
|
+
return (React__default['default'].createElement(reactFileUtils.ImageDropzone, { accept: acceptedFiles, disabled: !isUploadEnabled || maxFilesLeft === 0 || !!cooldownRemaining, handleFiles: uploadNewFiles, maxNumberOfFiles: maxFilesLeft, multiple: multipleUploads }, children));
|
|
5543
|
+
};
|
|
5544
|
+
var DropzoneProvider = function (props) {
|
|
5545
|
+
var cooldownTimerState = useCooldownTimer();
|
|
5546
|
+
var messageInputState = useMessageInputState(props);
|
|
5547
|
+
var messageInputContextValue = useCreateMessageInputContext(__assign(__assign(__assign({}, cooldownTimerState), messageInputState), props));
|
|
5548
|
+
return (React__default['default'].createElement(MessageInputContextProvider, { value: messageInputContextValue },
|
|
5549
|
+
React__default['default'].createElement(DropzoneInner, null, props.children)));
|
|
5550
|
+
};
|
|
5551
|
+
|
|
5403
5552
|
var TypingContext = React__default['default'].createContext(undefined);
|
|
5404
5553
|
var TypingProvider = function (_a) {
|
|
5405
5554
|
var children = _a.children, value = _a.value;
|
|
5406
5555
|
return (React__default['default'].createElement(TypingContext.Provider, { value: value }, children));
|
|
5407
5556
|
};
|
|
5408
|
-
var useTypingContext = function () {
|
|
5557
|
+
var useTypingContext = function (componentName) {
|
|
5409
5558
|
var contextValue = React.useContext(TypingContext);
|
|
5410
5559
|
if (!contextValue) {
|
|
5411
|
-
|
|
5560
|
+
console.warn("The useTypingContext hook was called outside of the TypingContext provider. Make sure this hook is called within a child of the Channel component. The errored call is located in the " + componentName + " component.");
|
|
5561
|
+
return {};
|
|
5412
5562
|
}
|
|
5413
5563
|
return contextValue;
|
|
5414
5564
|
};
|
|
@@ -5432,25 +5582,27 @@ var compressed=true;var categories=[{id:"people",name:"Smileys & People",emojis:
|
|
|
5432
5582
|
|
|
5433
5583
|
var UnMemoizedChannel = function (props) {
|
|
5434
5584
|
var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a;
|
|
5435
|
-
var contextChannel = useChatContext().channel;
|
|
5585
|
+
var contextChannel = useChatContext('Channel').channel;
|
|
5436
5586
|
var channel = propsChannel || contextChannel;
|
|
5437
5587
|
if (!(channel === null || channel === void 0 ? void 0 : channel.cid))
|
|
5438
5588
|
return EmptyPlaceholder;
|
|
5439
5589
|
return React__default['default'].createElement(ChannelInner, __assign({}, props, { channel: channel, key: channel.cid }));
|
|
5440
5590
|
};
|
|
5441
5591
|
var ChannelInner = function (props) {
|
|
5442
|
-
var
|
|
5443
|
-
var
|
|
5444
|
-
var
|
|
5445
|
-
var
|
|
5446
|
-
var
|
|
5592
|
+
var _a;
|
|
5593
|
+
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, _c = props.emojiData, emojiData = _c === void 0 ? defaultEmojiData : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator$1 = _e === void 0 ? LoadingIndicator : _e, maxNumberOfFiles = props.maxNumberOfFiles, _f = props.multipleUploads, multipleUploads = _f === void 0 ? true : _f, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _g = props.optionalMessageInputProps, optionalMessageInputProps = _g === void 0 ? {} : _g, skipMessageDataMemoization = props.skipMessageDataMemoization;
|
|
5594
|
+
var _h = useChatContext('Channel'), client = _h.client, customClasses = _h.customClasses, mutes = _h.mutes, theme = _h.theme, useImageFlagEmojisOnWindows = _h.useImageFlagEmojisOnWindows;
|
|
5595
|
+
var t = useTranslationContext('Channel').t;
|
|
5596
|
+
var _j = React.useState(channel.getConfig()), channelConfig = _j[0], setChannelConfig = _j[1];
|
|
5597
|
+
var _k = React.useState([]), notifications = _k[0], setNotifications = _k[1];
|
|
5598
|
+
var _l = React.useState(), quotedMessage = _l[0], setQuotedMessage = _l[1];
|
|
5447
5599
|
var notificationTimeouts = [];
|
|
5448
|
-
var
|
|
5600
|
+
var _m = React.useReducer(channelReducer, initialState), state = _m[0], dispatch = _m[1];
|
|
5449
5601
|
var isMounted = useIsMounted();
|
|
5450
5602
|
var originalTitle = React.useRef('');
|
|
5451
5603
|
var lastRead = React.useRef(new Date());
|
|
5452
5604
|
var online = React.useRef(true);
|
|
5453
|
-
var
|
|
5605
|
+
var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
|
|
5454
5606
|
var emojiConfig = {
|
|
5455
5607
|
commonEmoji: commonEmoji,
|
|
5456
5608
|
defaultMinimalEmojis: defaultMinimalEmojis,
|
|
@@ -5472,7 +5624,10 @@ var ChannelInner = function (props) {
|
|
|
5472
5624
|
else {
|
|
5473
5625
|
streamChat.logChatPromiseExecution(channel.markRead(), 'mark read');
|
|
5474
5626
|
}
|
|
5475
|
-
if (
|
|
5627
|
+
if (activeUnreadHandler) {
|
|
5628
|
+
activeUnreadHandler(0, originalTitle.current);
|
|
5629
|
+
}
|
|
5630
|
+
else if (originalTitle.current) {
|
|
5476
5631
|
document.title = originalTitle.current;
|
|
5477
5632
|
}
|
|
5478
5633
|
};
|
|
@@ -5525,7 +5680,7 @@ var ChannelInner = function (props) {
|
|
|
5525
5680
|
markRead();
|
|
5526
5681
|
};
|
|
5527
5682
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
5528
|
-
var e_1;
|
|
5683
|
+
var config, e_1;
|
|
5529
5684
|
return __generator(this, function (_a) {
|
|
5530
5685
|
switch (_a.label) {
|
|
5531
5686
|
case 0:
|
|
@@ -5536,6 +5691,8 @@ var ChannelInner = function (props) {
|
|
|
5536
5691
|
return [4 /*yield*/, channel.watch()];
|
|
5537
5692
|
case 2:
|
|
5538
5693
|
_a.sent();
|
|
5694
|
+
config = channel.getConfig();
|
|
5695
|
+
setChannelConfig(config);
|
|
5539
5696
|
return [3 /*break*/, 4];
|
|
5540
5697
|
case 3:
|
|
5541
5698
|
e_1 = _a.sent();
|
|
@@ -5804,7 +5961,7 @@ var ChannelInner = function (props) {
|
|
|
5804
5961
|
var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
|
|
5805
5962
|
var editMessage = useEditMessageHandler(doUpdateMessageRequest);
|
|
5806
5963
|
var typing = state.typing, restState = __rest(state, ["typing"]);
|
|
5807
|
-
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelConfig: channelConfig, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
|
|
5964
|
+
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, dragAndDropWindow: dragAndDropWindow, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
|
|
5808
5965
|
var channelActionContextValue = React.useMemo(function () { return ({
|
|
5809
5966
|
addNotification: addNotification,
|
|
5810
5967
|
closeThread: closeThread,
|
|
@@ -5874,6 +6031,11 @@ var ChannelInner = function (props) {
|
|
|
5874
6031
|
var windowsEmojiClass = useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/)
|
|
5875
6032
|
? 'str-chat--windows-flags'
|
|
5876
6033
|
: '';
|
|
6034
|
+
var NullProvider = function (_a) {
|
|
6035
|
+
var children = _a.children;
|
|
6036
|
+
return React__default['default'].createElement(React__default['default'].Fragment, null, children);
|
|
6037
|
+
};
|
|
6038
|
+
var OptionalMessageInputProvider = React.useMemo(function () { return (dragAndDropWindow ? DropzoneProvider : NullProvider); }, [dragAndDropWindow]);
|
|
5877
6039
|
if (state.error) {
|
|
5878
6040
|
return (React__default['default'].createElement("div", { className: chatClass + " " + channelClass + " " + theme },
|
|
5879
6041
|
React__default['default'].createElement(LoadingErrorIndicator$1, { error: state.error })));
|
|
@@ -5892,7 +6054,8 @@ var ChannelInner = function (props) {
|
|
|
5892
6054
|
React__default['default'].createElement(ComponentProvider, { value: componentContextValue },
|
|
5893
6055
|
React__default['default'].createElement(EmojiProvider, { value: emojiContextValue },
|
|
5894
6056
|
React__default['default'].createElement(TypingProvider, { value: typingContextValue },
|
|
5895
|
-
React__default['default'].createElement("div", { className: "" + chatContainerClass },
|
|
6057
|
+
React__default['default'].createElement("div", { className: "" + chatContainerClass },
|
|
6058
|
+
React__default['default'].createElement(OptionalMessageInputProvider, __assign({}, optionalMessageInputProps), children)))))))));
|
|
5896
6059
|
};
|
|
5897
6060
|
/**
|
|
5898
6061
|
* A wrapper component that provides channel data and renders children.
|
|
@@ -5907,9 +6070,9 @@ var Channel = React__default['default'].memo(UnMemoizedChannel);
|
|
|
5907
6070
|
|
|
5908
6071
|
var UnMemoizedChannelHeader = function (props) {
|
|
5909
6072
|
var _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, propImage = props.image, live = props.live, title = props.title;
|
|
5910
|
-
var _b = useChannelStateContext(), channel = _b.channel, watcher_count = _b.watcher_count;
|
|
5911
|
-
var openMobileNav = useChatContext().openMobileNav;
|
|
5912
|
-
var t = useTranslationContext().t;
|
|
6073
|
+
var _b = useChannelStateContext('ChannelHeader'), channel = _b.channel, watcher_count = _b.watcher_count;
|
|
6074
|
+
var openMobileNav = useChatContext('ChannelHeader').openMobileNav;
|
|
6075
|
+
var t = useTranslationContext('ChannelHeader').t;
|
|
5913
6076
|
var _c = (channel === null || channel === void 0 ? void 0 : channel.data) || {}, channelImage = _c.image, member_count = _c.member_count, name = _c.name, subtitle = _c.subtitle;
|
|
5914
6077
|
var image = propImage || channelImage;
|
|
5915
6078
|
return (React__default['default'].createElement("div", { className: 'str-chat__header-livestream' },
|
|
@@ -5942,7 +6105,7 @@ var img = "data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8'%3f%3e%3cs
|
|
|
5942
6105
|
|
|
5943
6106
|
var UnMemoizedChatDown = function (props) {
|
|
5944
6107
|
var image = props.image, text = props.text, _a = props.type, type = _a === void 0 ? 'Error' : _a;
|
|
5945
|
-
var t = useTranslationContext().t;
|
|
6108
|
+
var t = useTranslationContext('ChatDown').t;
|
|
5946
6109
|
return (React__default['default'].createElement("div", { className: 'str-chat__down' },
|
|
5947
6110
|
React__default['default'].createElement(LoadingChannels, null),
|
|
5948
6111
|
React__default['default'].createElement("div", { className: 'str-chat__down-main' },
|
|
@@ -5971,7 +6134,7 @@ var ChannelListMessenger = function (props) {
|
|
|
5971
6134
|
};
|
|
5972
6135
|
|
|
5973
6136
|
var useChannelDeletedListener = function (setChannels, customHandler) {
|
|
5974
|
-
var client = useChatContext().client;
|
|
6137
|
+
var client = useChatContext('useChannelDeletedListener').client;
|
|
5975
6138
|
React.useEffect(function () {
|
|
5976
6139
|
var handleEvent = function (event) {
|
|
5977
6140
|
if (customHandler && typeof customHandler === 'function') {
|
|
@@ -5996,7 +6159,7 @@ var useChannelDeletedListener = function (setChannels, customHandler) {
|
|
|
5996
6159
|
};
|
|
5997
6160
|
|
|
5998
6161
|
var useChannelHiddenListener = function (setChannels, customHandler) {
|
|
5999
|
-
var client = useChatContext().client;
|
|
6162
|
+
var client = useChatContext('useChannelHiddenListener').client;
|
|
6000
6163
|
React.useEffect(function () {
|
|
6001
6164
|
var handleEvent = function (event) {
|
|
6002
6165
|
if (customHandler && typeof customHandler === 'function') {
|
|
@@ -6021,7 +6184,7 @@ var useChannelHiddenListener = function (setChannels, customHandler) {
|
|
|
6021
6184
|
};
|
|
6022
6185
|
|
|
6023
6186
|
var useChannelTruncatedListener = function (setChannels, customHandler, forceUpdate) {
|
|
6024
|
-
var client = useChatContext().client;
|
|
6187
|
+
var client = useChatContext('useChannelTruncatedListener').client;
|
|
6025
6188
|
React.useEffect(function () {
|
|
6026
6189
|
var handleEvent = function (event) {
|
|
6027
6190
|
setChannels(function (channels) { return __spreadArray([], channels); });
|
|
@@ -6040,7 +6203,7 @@ var useChannelTruncatedListener = function (setChannels, customHandler, forceUpd
|
|
|
6040
6203
|
};
|
|
6041
6204
|
|
|
6042
6205
|
var useChannelUpdatedListener = function (setChannels, customHandler, forceUpdate) {
|
|
6043
|
-
var client = useChatContext().client;
|
|
6206
|
+
var client = useChatContext('useChannelUpdatedListener').client;
|
|
6044
6207
|
React.useEffect(function () {
|
|
6045
6208
|
var handleEvent = function (event) {
|
|
6046
6209
|
setChannels(function (channels) {
|
|
@@ -6092,7 +6255,7 @@ var moveChannelUp = function (_a) {
|
|
|
6092
6255
|
};
|
|
6093
6256
|
|
|
6094
6257
|
var useChannelVisibleListener = function (setChannels, customHandler) {
|
|
6095
|
-
var client = useChatContext().client;
|
|
6258
|
+
var client = useChatContext('useChannelVisibleListener').client;
|
|
6096
6259
|
React.useEffect(function () {
|
|
6097
6260
|
var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6098
6261
|
var channel_1;
|
|
@@ -6121,7 +6284,7 @@ var useChannelVisibleListener = function (setChannels, customHandler) {
|
|
|
6121
6284
|
};
|
|
6122
6285
|
|
|
6123
6286
|
var useConnectionRecoveredListener = function (forceUpdate) {
|
|
6124
|
-
var client = useChatContext().client;
|
|
6287
|
+
var client = useChatContext('useConnectionRecoveredListener').client;
|
|
6125
6288
|
React.useEffect(function () {
|
|
6126
6289
|
var handleEvent = function () {
|
|
6127
6290
|
if (forceUpdate) {
|
|
@@ -6138,7 +6301,7 @@ var useConnectionRecoveredListener = function (forceUpdate) {
|
|
|
6138
6301
|
var useMessageNewListener = function (setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels) {
|
|
6139
6302
|
if (lockChannelOrder === void 0) { lockChannelOrder = false; }
|
|
6140
6303
|
if (allowNewMessagesFromUnfilteredChannels === void 0) { allowNewMessagesFromUnfilteredChannels = true; }
|
|
6141
|
-
var client = useChatContext().client;
|
|
6304
|
+
var client = useChatContext('useMessageNewListener').client;
|
|
6142
6305
|
React.useEffect(function () {
|
|
6143
6306
|
var handleEvent = function (event) {
|
|
6144
6307
|
setChannels(function (channels) {
|
|
@@ -6178,7 +6341,7 @@ var useMobileNavigation = function (channelListRef, navOpen, closeMobileNav) {
|
|
|
6178
6341
|
|
|
6179
6342
|
var useNotificationAddedToChannelListener = function (setChannels, customHandler, allowNewMessagesFromUnfilteredChannels) {
|
|
6180
6343
|
if (allowNewMessagesFromUnfilteredChannels === void 0) { allowNewMessagesFromUnfilteredChannels = true; }
|
|
6181
|
-
var client = useChatContext().client;
|
|
6344
|
+
var client = useChatContext('useNotificationAddedToChannelListener').client;
|
|
6182
6345
|
React.useEffect(function () {
|
|
6183
6346
|
var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6184
6347
|
var channel_1;
|
|
@@ -6209,7 +6372,7 @@ var useNotificationAddedToChannelListener = function (setChannels, customHandler
|
|
|
6209
6372
|
|
|
6210
6373
|
var useNotificationMessageNewListener = function (setChannels, customHandler, allowNewMessagesFromUnfilteredChannels) {
|
|
6211
6374
|
if (allowNewMessagesFromUnfilteredChannels === void 0) { allowNewMessagesFromUnfilteredChannels = true; }
|
|
6212
|
-
var client = useChatContext().client;
|
|
6375
|
+
var client = useChatContext('useNotificationMessageNewListener').client;
|
|
6213
6376
|
React.useEffect(function () {
|
|
6214
6377
|
var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6215
6378
|
var channel_1;
|
|
@@ -6239,7 +6402,7 @@ var useNotificationMessageNewListener = function (setChannels, customHandler, al
|
|
|
6239
6402
|
};
|
|
6240
6403
|
|
|
6241
6404
|
var useNotificationRemovedFromChannelListener = function (setChannels, customHandler) {
|
|
6242
|
-
var client = useChatContext().client;
|
|
6405
|
+
var client = useChatContext('useNotificationRemovedFromChannelListener').client;
|
|
6243
6406
|
React.useEffect(function () {
|
|
6244
6407
|
var handleEvent = function (event) {
|
|
6245
6408
|
if (customHandler && typeof customHandler === 'function') {
|
|
@@ -6270,6 +6433,7 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
6270
6433
|
return __generator(this, function (_b) {
|
|
6271
6434
|
switch (_b.label) {
|
|
6272
6435
|
case 0:
|
|
6436
|
+
setError(false);
|
|
6273
6437
|
if (queryType === 'reload') {
|
|
6274
6438
|
setChannels([]);
|
|
6275
6439
|
setLoadingChannels(true);
|
|
@@ -6323,7 +6487,7 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
6323
6487
|
};
|
|
6324
6488
|
|
|
6325
6489
|
var useUserPresenceChangedListener = function (setChannels) {
|
|
6326
|
-
var client = useChatContext().client;
|
|
6490
|
+
var client = useChatContext('useUserPresenceChangedListener').client;
|
|
6327
6491
|
React.useEffect(function () {
|
|
6328
6492
|
var handleEvent = function (event) {
|
|
6329
6493
|
setChannels(function (channels) {
|
|
@@ -6376,7 +6540,7 @@ var UnMemoizedChannelPreviewMessenger = function (props) {
|
|
|
6376
6540
|
var ChannelPreviewMessenger = React__default['default'].memo(UnMemoizedChannelPreviewMessenger);
|
|
6377
6541
|
|
|
6378
6542
|
var useIsChannelMuted = function (channel) {
|
|
6379
|
-
var client = useChatContext().client;
|
|
6543
|
+
var client = useChatContext('useIsChannelMuted').client;
|
|
6380
6544
|
var _a = React.useState(channel.muteStatus()), muted = _a[0], setMuted = _a[1];
|
|
6381
6545
|
React.useEffect(function () {
|
|
6382
6546
|
var handleEvent = function () { return setMuted(channel.muteStatus()); };
|
|
@@ -6438,8 +6602,8 @@ var getDisplayImage = function (channel, currentUser) {
|
|
|
6438
6602
|
|
|
6439
6603
|
var ChannelPreview = function (props) {
|
|
6440
6604
|
var channel = props.channel, _a = props.Preview, Preview = _a === void 0 ? ChannelPreviewMessenger : _a;
|
|
6441
|
-
var _b = useChatContext(), activeChannel = _b.channel, client = _b.client, setActiveChannel = _b.setActiveChannel;
|
|
6442
|
-
var _c = useTranslationContext(), t = _c.t, userLanguage = _c.userLanguage;
|
|
6605
|
+
var _b = useChatContext('ChannelPreview'), activeChannel = _b.channel, client = _b.client, setActiveChannel = _b.setActiveChannel;
|
|
6606
|
+
var _c = useTranslationContext('ChannelPreview'), t = _c.t, userLanguage = _c.userLanguage;
|
|
6443
6607
|
var _d = React.useState(channel.state.messages[channel.state.messages.length - 1]), lastMessage = _d[0], setLastMessage = _d[1];
|
|
6444
6608
|
var _e = React.useState(0), unread = _e[0], setUnread = _e[1];
|
|
6445
6609
|
var isActive = (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid) === channel.cid;
|
|
@@ -6492,7 +6656,7 @@ var ChannelPreview = function (props) {
|
|
|
6492
6656
|
|
|
6493
6657
|
var SearchInput = function (props) {
|
|
6494
6658
|
var channelSearchParams = props.channelSearchParams, inputRef = props.inputRef, onSearch = props.onSearch, query = props.query, searchFunction = props.searchFunction;
|
|
6495
|
-
var t = useTranslationContext().t;
|
|
6659
|
+
var t = useTranslationContext('SearchInput').t;
|
|
6496
6660
|
return (React__default['default'].createElement("input", { className: 'str-chat__channel-search-input', onChange: function (event) {
|
|
6497
6661
|
return searchFunction ? searchFunction(channelSearchParams, event) : onSearch(event);
|
|
6498
6662
|
}, placeholder: t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
@@ -6524,7 +6688,7 @@ var DefaultSearchResultItem = function (props) {
|
|
|
6524
6688
|
};
|
|
6525
6689
|
var SearchResults = function (props) {
|
|
6526
6690
|
var _a = props.DropdownContainer, DropdownContainer = _a === void 0 ? DefaultDropdownContainer : _a, popupResults = props.popupResults, results = props.results, searching = props.searching, SearchEmpty = props.SearchEmpty, SearchResultsHeader = props.SearchResultsHeader, SearchLoading = props.SearchLoading, _b = props.SearchResultItem, SearchResultItem = _b === void 0 ? DefaultSearchResultItem : _b, selectResult = props.selectResult;
|
|
6527
|
-
var t = useTranslationContext().t;
|
|
6691
|
+
var t = useTranslationContext('SearchResults').t;
|
|
6528
6692
|
var _c = React.useState(), focusedUser = _c[0], setFocusedUser = _c[1];
|
|
6529
6693
|
var device = useBreakpoint().device;
|
|
6530
6694
|
var containerStyle = popupResults && device === 'full' ? 'popup' : 'inline';
|
|
@@ -6572,7 +6736,7 @@ var SearchResults = function (props) {
|
|
|
6572
6736
|
|
|
6573
6737
|
var UnMemoizedChannelSearch = function (props) {
|
|
6574
6738
|
var _a = props.channelType, channelType = _a === void 0 ? 'messaging' : _a, DropdownContainer = props.DropdownContainer, onSelectResult = props.onSelectResult, _b = props.popupResults, popupResults = _b === void 0 ? false : _b, SearchEmpty = props.SearchEmpty, _c = props.searchForChannels, searchForChannels = _c === void 0 ? false : _c, searchFunction = props.searchFunction, _d = props.SearchInput, SearchInput$1 = _d === void 0 ? SearchInput : _d, SearchLoading = props.SearchLoading, searchQueryParams = props.searchQueryParams, SearchResultItem = props.SearchResultItem, SearchResultsHeader = props.SearchResultsHeader;
|
|
6575
|
-
var _e = useChatContext(), client = _e.client, setActiveChannel = _e.setActiveChannel;
|
|
6739
|
+
var _e = useChatContext('ChannelSearch'), client = _e.client, setActiveChannel = _e.setActiveChannel;
|
|
6576
6740
|
var _f = React.useState(''), query = _f[0], setQuery = _f[1];
|
|
6577
6741
|
var _g = React.useState([]), results = _g[0], setResults = _g[1];
|
|
6578
6742
|
var _h = React.useState(false), resultsOpen = _h[0], setResultsOpen = _h[1];
|
|
@@ -6686,7 +6850,7 @@ var ChannelSearch = React__default['default'].memo(UnMemoizedChannelSearch);
|
|
|
6686
6850
|
|
|
6687
6851
|
var UnMemoizedEmptyStateIndicator = function (props) {
|
|
6688
6852
|
var listType = props.listType;
|
|
6689
|
-
var t = useTranslationContext().t;
|
|
6853
|
+
var t = useTranslationContext('EmptyStateIndicator').t;
|
|
6690
6854
|
if (listType === 'channel')
|
|
6691
6855
|
return React__default['default'].createElement("p", null, t('You have no channels currently'));
|
|
6692
6856
|
if (listType === 'message')
|
|
@@ -6716,7 +6880,7 @@ var DEFAULT_OPTIONS = {};
|
|
|
6716
6880
|
var DEFAULT_SORT = {};
|
|
6717
6881
|
var UnMemoizedChannelList = function (props) {
|
|
6718
6882
|
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch$1 = _b === void 0 ? ChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator$1 = _c === void 0 ? EmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, _h = props.sendChannelsToList, sendChannelsToList = _h === void 0 ? false : _h, _j = props.setActiveChannelOnMount, setActiveChannelOnMount = _j === void 0 ? true : _j, _k = props.showChannelSearch, showChannelSearch = _k === void 0 ? false : _k, _l = props.sort, sort = _l === void 0 ? DEFAULT_SORT : _l, _m = props.watchers, watchers = _m === void 0 ? {} : _m;
|
|
6719
|
-
var _o = useChatContext(), channel = _o.channel, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
6883
|
+
var _o = useChatContext('ChannelList'), channel = _o.channel, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
6720
6884
|
var channelListRef = React.useRef(null);
|
|
6721
6885
|
var _q = React.useState(0), channelUpdateCount = _q[0], setChannelUpdateCount = _q[1];
|
|
6722
6886
|
/**
|
|
@@ -6728,7 +6892,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6728
6892
|
return __generator(this, function (_a) {
|
|
6729
6893
|
switch (_a.label) {
|
|
6730
6894
|
case 0:
|
|
6731
|
-
if (channels.length
|
|
6895
|
+
if (!channels.length || channels.length > ((options === null || options === void 0 ? void 0 : options.limit) || MAX_QUERY_CHANNELS_LIMIT)) {
|
|
6732
6896
|
return [2 /*return*/];
|
|
6733
6897
|
}
|
|
6734
6898
|
if (!customActiveChannel) return [3 /*break*/, 3];
|
|
@@ -6779,7 +6943,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6779
6943
|
useUserPresenceChangedListener(setChannels);
|
|
6780
6944
|
React.useEffect(function () {
|
|
6781
6945
|
var handleEvent = function (event) {
|
|
6782
|
-
if (
|
|
6946
|
+
if (event.cid === (channel === null || channel === void 0 ? void 0 : channel.cid)) {
|
|
6783
6947
|
setActiveChannel();
|
|
6784
6948
|
}
|
|
6785
6949
|
};
|
|
@@ -6789,10 +6953,8 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6789
6953
|
client.off('channel.deleted', handleEvent);
|
|
6790
6954
|
client.off('channel.hidden', handleEvent);
|
|
6791
6955
|
};
|
|
6792
|
-
}, [channel]);
|
|
6956
|
+
}, [channel === null || channel === void 0 ? void 0 : channel.cid]);
|
|
6793
6957
|
var renderChannel = function (item) {
|
|
6794
|
-
if (!item)
|
|
6795
|
-
return null;
|
|
6796
6958
|
var previewProps = {
|
|
6797
6959
|
activeChannel: channel,
|
|
6798
6960
|
Avatar: Avatar$1,
|
|
@@ -6805,7 +6967,6 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6805
6967
|
};
|
|
6806
6968
|
return React__default['default'].createElement(ChannelPreview, __assign({}, previewProps));
|
|
6807
6969
|
};
|
|
6808
|
-
var renderList = function () { return (React__default['default'].createElement(List, { error: status.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: status.loadingChannels, LoadingErrorIndicator: LoadingErrorIndicator, LoadingIndicator: LoadingIndicator }, !loadedChannels || loadedChannels.length === 0 ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'channel' })) : (React__default['default'].createElement(Paginator, { hasNextPage: hasNextPage, loadNextPage: loadNextPage, refreshing: status.refreshing }, loadedChannels.map(renderChannel))))); };
|
|
6809
6970
|
var chatClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.chat) || 'str-chat';
|
|
6810
6971
|
var channelListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.channelList) || 'str-chat-channel-list';
|
|
6811
6972
|
var navigationClass = navOpen ? 'str-chat-channel-list--open' : '';
|
|
@@ -6815,36 +6976,36 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6815
6976
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
6816
6977
|
React__default['default'].createElement("div", { className: chatClass + " " + channelListClass + " " + theme + " " + navigationClass + " " + windowsEmojiClass, ref: channelListRef },
|
|
6817
6978
|
showChannelSearch && React__default['default'].createElement(ChannelSearch$1, __assign({}, additionalChannelSearchProps)),
|
|
6818
|
-
|
|
6979
|
+
React__default['default'].createElement(List, { error: status.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: status.loadingChannels, LoadingErrorIndicator: LoadingErrorIndicator, LoadingIndicator: LoadingIndicator, setChannels: setChannels }, !(loadedChannels === null || loadedChannels === void 0 ? void 0 : loadedChannels.length) ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'channel' })) : (React__default['default'].createElement(Paginator, { hasNextPage: hasNextPage, loadNextPage: loadNextPage, refreshing: status.refreshing }, loadedChannels.map(renderChannel)))))));
|
|
6819
6980
|
};
|
|
6820
6981
|
/**
|
|
6821
6982
|
* Renders a preview list of Channels, allowing you to select the Channel you want to open
|
|
6822
6983
|
*/
|
|
6823
6984
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
6824
6985
|
|
|
6825
|
-
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Geliefert";var Flag$b="Flagge";var Mute$b="Stumm";var New$b="Neu";var Pin$b="Stift";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Thread$c="
|
|
6986
|
+
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Geliefert";var Flag$b="Flagge";var Mute$b="Stumm";var New$b="Neu";var Pin$b="Stift";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Lösen Sie den Stift";var live$b="live";var deTranslations = {"1 reply":"1 Antwort","Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, jetzt wieder verbinden...",Delete:Delete$b,Delivered:Delivered$b,"Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Fehler beim Herstellen einer Verbindung zum Chat. Aktualisieren Sie die Seite, um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error muting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error pinning message":"Fehler beim Fixieren der Nachricht","Error removing message pin":"Fehler beim Entfernen des Nachrichten-Pins","Error unmuting a user ...":"Fehler beim Stummschalten eines Benutzers...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Fehler beim hochladen des Bildes","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}",Flag:Flag$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken Sie hier, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich markiert","Message pinned":"Nachricht angeheftet",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Only visible to you":"Nur für Sie sichtbar","Open emoji picker":"Öffnen Sie den Emoji-Picker","People matching":"Passende Personen","Pick your emoji":"Wähle dein Emoji",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Nachrichtenanfrage senden fehlgeschlagen","Sending...":"Senden...","Slow Mode ON":"Langsamer Modus EIN","Start of a new thread":"Start eines neuen Threads","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Geben Sie Ihre Nachricht ein",Unmute:Unmute$b,Unpin:Unpin$b,"Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","Wait until all attachments have uploaded":"Warten Sie, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Sie haben derzeit keine Kanäle","You've reached the maximum number of files":"Sie haben die maximale Anzahl von Dateien erreicht",live:live$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} Mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ replyCount }} replies":"{{ replyCount }} antworten","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anhang..."};
|
|
6826
6987
|
|
|
6827
|
-
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var enTranslations = {"1 reply":"1 reply","Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No results found":"No results found","Nothing yet...":"Nothing yet...","Only visible to you":"Only visible to you","Open emoji picker":"Open emoji picker","People matching":"People matching","Pick your emoji":"Pick your emoji",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...","Slow Mode ON":"Slow Mode ON","Start of a new thread":"Start of a new thread","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ replyCount }} replies":"{{ replyCount }} replies","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
|
|
6988
|
+
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var enTranslations = {"1 reply":"1 reply","Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No results found":"No results found","Nothing yet...":"Nothing yet...","Only visible to you":"Only visible to you","Open emoji picker":"Open emoji picker","People matching":"People matching","Pick your emoji":"Pick your emoji",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...","Slow Mode ON":"Slow Mode ON","Start of a new thread":"Start of a new thread","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ replyCount }} replies":"{{ replyCount }} replies","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
|
|
6828
6989
|
|
|
6829
|
-
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var esTranslations = {"1 reply":"1 respuesta","Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Only visible to you":"Solo visible para ti","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden","Pick your emoji":"Elige tu emoji",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...","Slow Mode ON":"Modo lento activado","Start of a new thread":"Inicio de un nuevo hilo","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos",live:live$9,"this content could not be displayed":"este contenido no se pudo mostrar","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ replyCount }} replies":"{{ replyCount }} respuestas","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ watcherCount }} online":"{{ watcherCount }} en línea","🏙 Attachment...":"🏙 Adjunto..."};
|
|
6990
|
+
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var esTranslations = {"1 reply":"1 respuesta","Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Only visible to you":"Solo visible para ti","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden","Pick your emoji":"Elige tu emoji",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...","Slow Mode ON":"Modo lento activado","Start of a new thread":"Inicio de un nuevo hilo","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos",live:live$9,"this content could not be displayed":"este contenido no se pudo mostrar","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ replyCount }} replies":"{{ replyCount }} respuestas","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ watcherCount }} online":"{{ watcherCount }} en línea","🏙 Attachment...":"🏙 Adjunto..."};
|
|
6830
6991
|
|
|
6831
|
-
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var frTranslations = {"1 reply":"1 réponse","Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}",Flag:Flag$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Only visible to you":"Visible uniquement pour vous","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes","Pick your emoji":"Choisissez votre emoji",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...","Slow Mode ON":"Mode lent activé","Start of a new thread":"Début d'un nouveau fil de discussion","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers",live:live$8,"this content could not be displayed":"ce contenu n'a pu être affiché","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ replyCount }} replies":"{{ replyCount }} réponses","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ watcherCount }} online":"{{ watcherCount }} en ligne","🏙 Attachment...":"🏙 Pièce jointe..."};
|
|
6992
|
+
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var frTranslations = {"1 reply":"1 réponse","Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}",Flag:Flag$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Only visible to you":"Visible uniquement pour vous","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes","Pick your emoji":"Choisissez votre emoji",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...","Slow Mode ON":"Mode lent activé","Start of a new thread":"Début d'un nouveau fil de discussion","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers",live:live$8,"this content could not be displayed":"ce contenu n'a pu être affiché","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ replyCount }} replies":"{{ replyCount }} réponses","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ watcherCount }} online":"{{ watcherCount }} en ligne","🏙 Attachment...":"🏙 Pièce jointe..."};
|
|
6832
6993
|
|
|
6833
|
-
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var hiTranslations = {"1 reply":"1 रिप्लाई","Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}",Flag:Flag$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Only visible to you":"सिर्फ आपको दिखाई दे रहा है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग","Pick your emoji":"इमोजी चूस करे",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है","Slow Mode ON":"स्लो मोड ऑन","Start of a new thread":"एक नए थ्रेड की शुरुआत","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं",live:live$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ replyCount }} replies":"{{ replyCount }} रिप्लाई","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 अटैचमेंट"};
|
|
6994
|
+
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var hiTranslations = {"1 reply":"1 रिप्लाई","Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}",Flag:Flag$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Only visible to you":"सिर्फ आपको दिखाई दे रहा है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग","Pick your emoji":"इमोजी चूस करे",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है","Slow Mode ON":"स्लो मोड ऑन","Start of a new thread":"एक नए थ्रेड की शुरुआत","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं",live:live$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ replyCount }} replies":"{{ replyCount }} रिप्लाई","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 अटैचमेंट"};
|
|
6834
6995
|
|
|
6835
|
-
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var itTranslations = {"1 reply":"Una risposta","Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}",Flag:Flag$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Only visible to you":"Visibile soltanto da te","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono","Pick your emoji":"Scegli la tua emoji",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...","Slow Mode ON":"Modalità lenta attivata","Start of a new thread":"Inizia un nuovo thread","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file",live:live$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ replyCount }} replies":"{{ replyCount }} risposte","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Allegato..."};
|
|
6996
|
+
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var itTranslations = {"1 reply":"Una risposta","Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}",Flag:Flag$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Only visible to you":"Visibile soltanto da te","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono","Pick your emoji":"Scegli la tua emoji",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...","Slow Mode ON":"Modalità lenta attivata","Start of a new thread":"Inizia un nuovo thread","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file",live:live$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ replyCount }} replies":"{{ replyCount }} risposte","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Allegato..."};
|
|
6836
6997
|
|
|
6837
|
-
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var jaTranslations = {"1 reply":"1件の返信","Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}",Flag:Flag$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Only visible to you":"あなただけに見える","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人","Pick your emoji":"絵文字を選んでください",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...","Slow Mode ON":"スローモードオン","Start of a new thread":"新しいスレッドの開始","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました",live:live$5,"this content could not be displayed":"このコンテンツは表示できませんでした","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ replyCount }} replies":"{{ replyCount }} 返信","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ watcherCount }} online":"{{ watcherCount }} オンライン","🏙 Attachment...":"🏙 アタッチメント..."};
|
|
6998
|
+
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var jaTranslations = {"1 reply":"1件の返信","Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}",Flag:Flag$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Only visible to you":"あなただけに見える","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人","Pick your emoji":"絵文字を選んでください",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...","Slow Mode ON":"スローモードオン","Start of a new thread":"新しいスレッドの開始","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました",live:live$5,"this content could not be displayed":"このコンテンツは表示できませんでした","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ replyCount }} replies":"{{ replyCount }} 返信","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ watcherCount }} online":"{{ watcherCount }} オンライン","🏙 Attachment...":"🏙 アタッチメント..."};
|
|
6838
6999
|
|
|
6839
|
-
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var koTranslations = {"1 reply":"답장 1개","Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}",Flag:Flag$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Only visible to you":"당신만 볼 수 있습니다","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람","Pick your emoji":"이모티콘 선택",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...","Slow Mode ON":"슬로우 모드 켜짐","Start of a new thread":"새 스레드의 시작","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.",live:live$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ replyCount }} replies":"{{ replyCount }} 답장","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ watcherCount }} online":"{{ watcherCount }} 온라인","🏙 Attachment...":"🏙 부착..."};
|
|
7000
|
+
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var koTranslations = {"1 reply":"답장 1개","Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}",Flag:Flag$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Only visible to you":"당신만 볼 수 있습니다","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람","Pick your emoji":"이모티콘 선택",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...","Slow Mode ON":"슬로우 모드 켜짐","Start of a new thread":"새 스레드의 시작","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.",live:live$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ replyCount }} replies":"{{ replyCount }} 답장","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ watcherCount }} online":"{{ watcherCount }} 온라인","🏙 Attachment...":"🏙 부착..."};
|
|
6840
7001
|
|
|
6841
|
-
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var nlTranslations = {"1 reply":"1 antwoord","Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Only visible to you":"Alleen zichtbaar voor jou","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen","Pick your emoji":"Kies je emoji",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...","Slow Mode ON":"Langzame modus aan","Start of a new thread":"Begin van een nieuwe draadje","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt",live:live$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ replyCount }} replies":"{{ replyCount }} antwoorden","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Bijlage..."};
|
|
7002
|
+
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var nlTranslations = {"1 reply":"1 antwoord","Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Only visible to you":"Alleen zichtbaar voor jou","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen","Pick your emoji":"Kies je emoji",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...","Slow Mode ON":"Langzame modus aan","Start of a new thread":"Begin van een nieuwe draadje","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt",live:live$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ replyCount }} replies":"{{ replyCount }} antwoorden","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Bijlage..."};
|
|
6842
7003
|
|
|
6843
|
-
var Cancel$2="Cancelar";var Close$2="Perto";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Bandeira";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Alfinete";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Mandar";var Thread$3="Fio";var Unmute$2="Com som";var Unpin$2="Liberar";var live$2="viver";var ptTranslations = {"1 reply":"1 resposta","Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Correspondência de comandos","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora ...",Delete:Delete$2,Delivered:Delivered$2,"Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia ...","Error adding flag":"Erro ao adicionar bandeira","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error muting a user ...":"Erro ao silenciar um usuário ...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário ...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}",Flag:Flag$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi sinalizada com sucesso","Message pinned":"Mensagem fixada",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Only visible to you":"Visível apenas para você","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas combinando","Pick your emoji":"Escolha o seu emoji",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando ...","Slow Mode ON":"Modo lento LIGADO","Start of a new thread":"Início de um novo tópico","This message was deleted...":"Esta mensagem foi excluída ...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos",live:live$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ replyCount }} replies":"{{ replyCount }} respostas","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anexo ..."};
|
|
7004
|
+
var Cancel$2="Cancelar";var Close$2="Perto";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Bandeira";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Alfinete";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Mandar";var Thread$3="Fio";var Unmute$2="Com som";var Unpin$2="Liberar";var live$2="viver";var ptTranslations = {"1 reply":"1 resposta","Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Correspondência de comandos","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora ...",Delete:Delete$2,Delivered:Delivered$2,"Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia ...","Error adding flag":"Erro ao adicionar bandeira","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error muting a user ...":"Erro ao silenciar um usuário ...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário ...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}",Flag:Flag$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi sinalizada com sucesso","Message pinned":"Mensagem fixada",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Only visible to you":"Visível apenas para você","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas combinando","Pick your emoji":"Escolha o seu emoji",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando ...","Slow Mode ON":"Modo lento LIGADO","Start of a new thread":"Início de um novo tópico","This message was deleted...":"Esta mensagem foi excluída ...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos",live:live$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ replyCount }} replies":"{{ replyCount }} respostas","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anexo ..."};
|
|
6844
7005
|
|
|
6845
|
-
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var ruTranslations = {"1 reply":"1 ответ","Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}",Flag:Flag$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Only visible to you":"Только видно для вас","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди","Pick your emoji":"Выберите свой emoji",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...","Slow Mode ON":"Медленный режим включен","Start of a new thread":"Начало новой ветки","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов",live:live$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ replyCount }} replies":"{{ replyCount }} ответов","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ watcherCount }} online":"{{ watcherCount }} в сети","🏙 Attachment...":"🏙 Вложение..."};
|
|
7006
|
+
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var ruTranslations = {"1 reply":"1 ответ","Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}",Flag:Flag$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Only visible to you":"Только видно для вас","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди","Pick your emoji":"Выберите свой emoji",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...","Slow Mode ON":"Медленный режим включен","Start of a new thread":"Начало новой ветки","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов",live:live$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ replyCount }} replies":"{{ replyCount }} ответов","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ watcherCount }} online":"{{ watcherCount }} в сети","🏙 Attachment...":"🏙 Вложение..."};
|
|
6846
7007
|
|
|
6847
|
-
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var trTranslations = {"1 reply":"1 cevap","Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}",Flag:Flag,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Only visible to you":"Sadece size görünür","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler","Pick your emoji":"Emoji seçin",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...","Slow Mode ON":"Yavaş Mod Açık","Start of a new thread":"Yeni konunun başı","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız",live:live,"this content could not be displayed":"bu içerik gösterilemiyor","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ replyCount }} replies":"{{ replyCount }} cevaplar","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","🏙 Attachment...":"🏙 Ek..."};
|
|
7008
|
+
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var trTranslations = {"1 reply":"1 cevap","Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}",Flag:Flag,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Only visible to you":"Sadece size görünür","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler","Pick your emoji":"Emoji seçin",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...","Slow Mode ON":"Yavaş Mod Açık","Start of a new thread":"Yeni konunun başı","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız",live:live,"this content could not be displayed":"bu içerik gösterilemiyor","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ replyCount }} replies":"{{ replyCount }} cevaplar","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","🏙 Attachment...":"🏙 Ek..."};
|
|
6848
7009
|
|
|
6849
7010
|
var defaultNS = 'translation';
|
|
6850
7011
|
var defaultLng = 'en';
|
|
@@ -6852,9 +7013,9 @@ Dayjs__default['default'].extend(updateLocale__default['default']);
|
|
|
6852
7013
|
Dayjs__default['default'].updateLocale('de', {
|
|
6853
7014
|
calendar: {
|
|
6854
7015
|
lastDay: '[gestern um] LT',
|
|
6855
|
-
lastWeek: '[
|
|
7016
|
+
lastWeek: '[letzten] dddd [bei] LT',
|
|
6856
7017
|
nextDay: '[morgen zu] LT',
|
|
6857
|
-
nextWeek: 'dddd [
|
|
7018
|
+
nextWeek: 'dddd [bei] LT',
|
|
6858
7019
|
sameDay: '[heute um] LT',
|
|
6859
7020
|
sameElse: 'L',
|
|
6860
7021
|
},
|
|
@@ -6940,19 +7101,19 @@ Dayjs__default['default'].updateLocale('it', {
|
|
|
6940
7101
|
Dayjs__default['default'].updateLocale('ja', {
|
|
6941
7102
|
calendar: {
|
|
6942
7103
|
lastDay: '[昨日] LT',
|
|
6943
|
-
lastWeek: '
|
|
7104
|
+
lastWeek: 'dddd LT',
|
|
6944
7105
|
nextDay: '[明日] LT',
|
|
6945
|
-
nextWeek: '
|
|
6946
|
-
sameDay: '[
|
|
7106
|
+
nextWeek: '[次の] dddd LT',
|
|
7107
|
+
sameDay: '[今日] LT',
|
|
6947
7108
|
sameElse: 'L',
|
|
6948
7109
|
},
|
|
6949
7110
|
});
|
|
6950
7111
|
Dayjs__default['default'].updateLocale('ko', {
|
|
6951
7112
|
calendar: {
|
|
6952
7113
|
lastDay: '[어제] LT',
|
|
6953
|
-
lastWeek: '[
|
|
7114
|
+
lastWeek: '[지난] dddd LT',
|
|
6954
7115
|
nextDay: '[내일] LT',
|
|
6955
|
-
nextWeek: 'dddd
|
|
7116
|
+
nextWeek: 'dddd LT',
|
|
6956
7117
|
sameDay: '[오늘] LT',
|
|
6957
7118
|
sameElse: 'L',
|
|
6958
7119
|
},
|
|
@@ -7445,7 +7606,7 @@ var Streami18n = /** @class */ (function () {
|
|
|
7445
7606
|
return Streami18n;
|
|
7446
7607
|
}());
|
|
7447
7608
|
|
|
7448
|
-
var version = '6.
|
|
7609
|
+
var version = '6.12.1';
|
|
7449
7610
|
|
|
7450
7611
|
var useChat = function (_a) {
|
|
7451
7612
|
var _b;
|
|
@@ -7461,13 +7622,19 @@ var useChat = function (_a) {
|
|
|
7461
7622
|
var clientMutes = (_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes;
|
|
7462
7623
|
var closeMobileNav = function () { return setNavOpen(false); };
|
|
7463
7624
|
var openMobileNav = function () { return setTimeout(function () { return setNavOpen(true); }, 100); };
|
|
7625
|
+
var appSettings = React.useRef(null);
|
|
7626
|
+
var getAppSettings = function () {
|
|
7627
|
+
if (appSettings.current) {
|
|
7628
|
+
return appSettings.current;
|
|
7629
|
+
}
|
|
7630
|
+
appSettings.current = client.getAppSettings();
|
|
7631
|
+
return appSettings.current;
|
|
7632
|
+
};
|
|
7464
7633
|
React.useEffect(function () {
|
|
7465
7634
|
if (client) {
|
|
7466
7635
|
var userAgent = client.getUserAgent();
|
|
7467
7636
|
if (!userAgent.includes('stream-chat-react')) {
|
|
7468
|
-
|
|
7469
|
-
* results in something like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
7470
|
-
*/
|
|
7637
|
+
// result looks like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
7471
7638
|
client.setUserAgent("stream-chat-react-" + version + "-" + userAgent);
|
|
7472
7639
|
}
|
|
7473
7640
|
}
|
|
@@ -7480,7 +7647,7 @@ var useChat = function (_a) {
|
|
|
7480
7647
|
};
|
|
7481
7648
|
client.on('notification.mutes_updated', handleEvent);
|
|
7482
7649
|
return function () { return client.off('notification.mutes_updated', handleEvent); };
|
|
7483
|
-
}, [
|
|
7650
|
+
}, [clientMutes === null || clientMutes === void 0 ? void 0 : clientMutes.length]);
|
|
7484
7651
|
React.useEffect(function () {
|
|
7485
7652
|
var _a;
|
|
7486
7653
|
var userLanguage = (_a = client.user) === null || _a === void 0 ? void 0 : _a.language;
|
|
@@ -7495,7 +7662,7 @@ var useChat = function (_a) {
|
|
|
7495
7662
|
streami18n.getTranslators().then(function (translator) {
|
|
7496
7663
|
setTranslators(__assign(__assign({}, translator), { userLanguage: userLanguage || defaultLanguage }));
|
|
7497
7664
|
});
|
|
7498
|
-
}, [
|
|
7665
|
+
}, [i18nInstance]);
|
|
7499
7666
|
var setActiveChannel = React.useCallback(function (activeChannel, watchers, event) {
|
|
7500
7667
|
if (watchers === void 0) { watchers = {}; }
|
|
7501
7668
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -7520,6 +7687,7 @@ var useChat = function (_a) {
|
|
|
7520
7687
|
return {
|
|
7521
7688
|
channel: channel,
|
|
7522
7689
|
closeMobileNav: closeMobileNav,
|
|
7690
|
+
getAppSettings: getAppSettings,
|
|
7523
7691
|
mutes: mutes,
|
|
7524
7692
|
navOpen: navOpen,
|
|
7525
7693
|
openMobileNav: openMobileNav,
|
|
@@ -7530,7 +7698,7 @@ var useChat = function (_a) {
|
|
|
7530
7698
|
|
|
7531
7699
|
var useCreateChatContext = function (value) {
|
|
7532
7700
|
var _a;
|
|
7533
|
-
var channel = value.channel, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
7701
|
+
var channel = value.channel, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
7534
7702
|
var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
|
|
7535
7703
|
var clientValues = "" + client.clientID + Object.keys(client.activeChannels).length + Object.keys(client.listeners).length + client.mutedChannels.length + "\n " + ((_a = client.user) === null || _a === void 0 ? void 0 : _a.id);
|
|
7536
7704
|
var mutedUsersLength = mutes.length;
|
|
@@ -7539,13 +7707,14 @@ var useCreateChatContext = function (value) {
|
|
|
7539
7707
|
client: client,
|
|
7540
7708
|
closeMobileNav: closeMobileNav,
|
|
7541
7709
|
customClasses: customClasses,
|
|
7710
|
+
getAppSettings: getAppSettings,
|
|
7542
7711
|
mutes: mutes,
|
|
7543
7712
|
navOpen: navOpen,
|
|
7544
7713
|
openMobileNav: openMobileNav,
|
|
7545
7714
|
setActiveChannel: setActiveChannel,
|
|
7546
7715
|
theme: theme,
|
|
7547
7716
|
useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
|
|
7548
|
-
}); }, [channelCid, clientValues, mutedUsersLength, navOpen]);
|
|
7717
|
+
}); }, [channelCid, clientValues, getAppSettings, mutedUsersLength, navOpen]);
|
|
7549
7718
|
return chatContext;
|
|
7550
7719
|
};
|
|
7551
7720
|
|
|
@@ -7585,13 +7754,14 @@ var useCustomStyles = function (customStyles) {
|
|
|
7585
7754
|
*/
|
|
7586
7755
|
var Chat = function (props) {
|
|
7587
7756
|
var children = props.children, client = props.client, customClasses = props.customClasses, customStyles = props.customStyles, _a = props.darkMode, darkMode = _a === void 0 ? false : _a, defaultLanguage = props.defaultLanguage, i18nInstance = props.i18nInstance, _b = props.initialNavOpen, initialNavOpen = _b === void 0 ? true : _b, _c = props.theme, theme = _c === void 0 ? 'messaging light' : _c, _d = props.useImageFlagEmojisOnWindows, useImageFlagEmojisOnWindows = _d === void 0 ? false : _d;
|
|
7588
|
-
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
|
|
7757
|
+
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
|
|
7589
7758
|
useCustomStyles(darkMode ? darkModeTheme : customStyles);
|
|
7590
7759
|
var chatContextValue = useCreateChatContext({
|
|
7591
7760
|
channel: channel,
|
|
7592
7761
|
client: client,
|
|
7593
7762
|
closeMobileNav: closeMobileNav,
|
|
7594
7763
|
customClasses: customClasses,
|
|
7764
|
+
getAppSettings: getAppSettings,
|
|
7595
7765
|
mutes: mutes,
|
|
7596
7766
|
navOpen: navOpen,
|
|
7597
7767
|
openMobileNav: openMobileNav,
|
|
@@ -7607,7 +7777,7 @@ var Chat = function (props) {
|
|
|
7607
7777
|
|
|
7608
7778
|
var UnMemoizedDateSeparator = function (props) {
|
|
7609
7779
|
var date = props.date, formatDate = props.formatDate, _a = props.position, position = _a === void 0 ? 'right' : _a, unread = props.unread;
|
|
7610
|
-
var _b = useTranslationContext(), t = _b.t, tDateTimeParser = _b.tDateTimeParser;
|
|
7780
|
+
var _b = useTranslationContext('DateSeparator'), t = _b.t, tDateTimeParser = _b.tDateTimeParser;
|
|
7611
7781
|
if (typeof date === 'string')
|
|
7612
7782
|
return null;
|
|
7613
7783
|
var parsedDate = tDateTimeParser(date.toISOString());
|
|
@@ -7632,7 +7802,7 @@ var DateSeparator = React__default['default'].memo(UnMemoizedDateSeparator);
|
|
|
7632
7802
|
var UnMemoizedEventComponent = function (props) {
|
|
7633
7803
|
var _a, _b, _c;
|
|
7634
7804
|
var _d = props.Avatar, Avatar$1 = _d === void 0 ? Avatar : _d, message = props.message;
|
|
7635
|
-
var tDateTimeParser = useTranslationContext().tDateTimeParser;
|
|
7805
|
+
var tDateTimeParser = useTranslationContext('EventComponent').tDateTimeParser;
|
|
7636
7806
|
var _e = message.created_at, created_at = _e === void 0 ? '' : _e, event = message.event, text = message.text, type = message.type;
|
|
7637
7807
|
var dateFormatter = function (date, format) {
|
|
7638
7808
|
var parsedDate = tDateTimeParser(date);
|
|
@@ -7787,10 +7957,10 @@ var getUserColor = function (theme, userId) {
|
|
|
7787
7957
|
var UnMemoizedFixedHeightMessage = function (props) {
|
|
7788
7958
|
var _a, _b, _c, _d;
|
|
7789
7959
|
var propGroupedByUser = props.groupedByUser, propMessage = props.message;
|
|
7790
|
-
var theme = useChatContext().theme;
|
|
7791
|
-
var _e = useMessageContext(), contextGroupedByUser = _e.groupedByUser, contextMessage = _e.message;
|
|
7792
|
-
var _f = useComponentContext().MessageDeleted, MessageDeleted$1 = _f === void 0 ? MessageDeleted : _f;
|
|
7793
|
-
var userLanguage = useTranslationContext().userLanguage;
|
|
7960
|
+
var theme = useChatContext('FixedHeightMessage').theme;
|
|
7961
|
+
var _e = useMessageContext('FixedHeightMessage'), contextGroupedByUser = _e.groupedByUser, contextMessage = _e.message;
|
|
7962
|
+
var _f = useComponentContext('FixedHeightMessage').MessageDeleted, MessageDeleted$1 = _f === void 0 ? MessageDeleted : _f;
|
|
7963
|
+
var userLanguage = useTranslationContext('FixedHeightMessage').userLanguage;
|
|
7794
7964
|
var groupedByUser = propGroupedByUser !== undefined ? propGroupedByUser : contextGroupedByUser;
|
|
7795
7965
|
var message = propMessage || contextMessage;
|
|
7796
7966
|
var handleAction = useActionHandler(message);
|
|
@@ -7834,7 +8004,7 @@ var FixedHeightMessage = React__default['default'].memo(UnMemoizedFixedHeightMes
|
|
|
7834
8004
|
|
|
7835
8005
|
var MessageWithContext = function (props) {
|
|
7836
8006
|
var canPin = props.canPin, groupedByUser = props.groupedByUser, propMessage = props.Message, message = props.message, _a = props.messageActions, messageActions = _a === void 0 ? Object.keys(MESSAGE_ACTIONS) : _a, propOnUserClick = props.onUserClick, propOnUserHover = props.onUserHover, userRoles = props.userRoles;
|
|
7837
|
-
var contextMessage = useComponentContext().Message;
|
|
8007
|
+
var contextMessage = useComponentContext('Message').Message;
|
|
7838
8008
|
var actionsEnabled = message.type === 'regular' && message.status === 'received';
|
|
7839
8009
|
var MessageUIComponent = propMessage || contextMessage;
|
|
7840
8010
|
var _b = useEditHandler(), clearEdit = _b.clearEdit, editing = _b.editing, setEdit = _b.setEdit;
|
|
@@ -7844,9 +8014,6 @@ var MessageWithContext = function (props) {
|
|
|
7844
8014
|
}), onUserClick = _c.onUserClick, onUserHover = _c.onUserHover;
|
|
7845
8015
|
var canDelete = userRoles.canDelete, canEdit = userRoles.canEdit, canFlag = userRoles.canFlag, canMute = userRoles.canMute, canQuote = userRoles.canQuote, canReact = userRoles.canReact, canReply = userRoles.canReply, isMyMessage = userRoles.isMyMessage;
|
|
7846
8016
|
var messageActionsHandler = React.useCallback(function () {
|
|
7847
|
-
if (!message || !messageActions) {
|
|
7848
|
-
return [];
|
|
7849
|
-
}
|
|
7850
8017
|
return getMessageActions(messageActions, {
|
|
7851
8018
|
canDelete: canDelete,
|
|
7852
8019
|
canEdit: canEdit,
|
|
@@ -7876,8 +8043,8 @@ var MemoizedMessage = React__default['default'].memo(MessageWithContext, areMess
|
|
|
7876
8043
|
*/
|
|
7877
8044
|
var Message = function (props) {
|
|
7878
8045
|
var closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, disableQuotedMessages = props.disableQuotedMessages, getDeleteMessageErrorNotification = props.getDeleteMessageErrorNotification, getFlagMessageErrorNotification = props.getFlagMessageErrorNotification, getFlagMessageSuccessNotification = props.getFlagMessageSuccessNotification, getMuteUserErrorNotification = props.getMuteUserErrorNotification, getMuteUserSuccessNotification = props.getMuteUserSuccessNotification, getPinMessageErrorNotification = props.getPinMessageErrorNotification, message = props.message, _a = props.onlySenderCanEdit, onlySenderCanEdit = _a === void 0 ? false : _a, propOnMentionsClick = props.onMentionsClick, propOnMentionsHover = props.onMentionsHover, propOpenThread = props.openThread, pinPermissions = props.pinPermissions, propRetrySendMessage = props.retrySendMessage;
|
|
7879
|
-
var addNotification = useChannelActionContext().addNotification;
|
|
7880
|
-
var mutes = useChannelStateContext().mutes;
|
|
8046
|
+
var addNotification = useChannelActionContext('Message').addNotification;
|
|
8047
|
+
var mutes = useChannelStateContext('Message').mutes;
|
|
7881
8048
|
var reactionSelectorRef = React.useRef(null);
|
|
7882
8049
|
var handleAction = useActionHandler(message);
|
|
7883
8050
|
var handleOpenThread = useOpenThreadHandler(message, propOpenThread);
|
|
@@ -7913,7 +8080,7 @@ var Message = function (props) {
|
|
|
7913
8080
|
var MessageCommerceWithContext = function (props) {
|
|
7914
8081
|
var _a, _b, _c, _d, _e, _f;
|
|
7915
8082
|
var groupStyles = props.groupStyles, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
|
|
7916
|
-
var _g = useComponentContext(), Attachment = _g.Attachment, _h = _g.Avatar, Avatar$1 = _h === void 0 ? Avatar : _h, _j = _g.MessageDeleted, MessageDeleted$1 = _j === void 0 ? MessageDeleted : _j, _k = _g.MessageRepliesCountButton, MessageRepliesCountButton$1 = _k === void 0 ? MessageRepliesCountButton : _k, _l = _g.MessageOptions, MessageOptions$1 = _l === void 0 ? MessageOptions : _l, _m = _g.MessageTimestamp, MessageTimestamp$1 = _m === void 0 ? MessageTimestamp : _m, _o = _g.ReactionSelector, ReactionSelector$1 = _o === void 0 ? ReactionSelector : _o, _p = _g.ReactionsList, ReactionsList$1 = _p === void 0 ? ReactionsList : _p;
|
|
8083
|
+
var _g = useComponentContext('MessageCommerce'), Attachment = _g.Attachment, _h = _g.Avatar, Avatar$1 = _h === void 0 ? Avatar : _h, _j = _g.MessageDeleted, MessageDeleted$1 = _j === void 0 ? MessageDeleted : _j, _k = _g.MessageRepliesCountButton, MessageRepliesCountButton$1 = _k === void 0 ? MessageRepliesCountButton : _k, _l = _g.MessageOptions, MessageOptions$1 = _l === void 0 ? MessageOptions : _l, _m = _g.MessageTimestamp, MessageTimestamp$1 = _m === void 0 ? MessageTimestamp : _m, _o = _g.ReactionSelector, ReactionSelector$1 = _o === void 0 ? ReactionSelector : _o, _p = _g.ReactionsList, ReactionsList$1 = _p === void 0 ? ReactionsList : _p;
|
|
7917
8084
|
var hasAttachment = messageHasAttachments(message);
|
|
7918
8085
|
var hasReactions = messageHasReactions(message);
|
|
7919
8086
|
var firstGroupStyle = groupStyles ? groupStyles[0] : 'single';
|
|
@@ -7947,16 +8114,15 @@ var MemoizedMessageCommerce = React__default['default'].memo(MessageCommerceWith
|
|
|
7947
8114
|
* UI component that renders a message and receives functionality from the Message/MessageList components
|
|
7948
8115
|
*/
|
|
7949
8116
|
var MessageCommerce = function (props) {
|
|
7950
|
-
var messageContext = useMessageContext();
|
|
8117
|
+
var messageContext = useMessageContext('MessageCommerce');
|
|
7951
8118
|
return React__default['default'].createElement(MemoizedMessageCommerce, __assign({}, messageContext, props));
|
|
7952
8119
|
};
|
|
7953
8120
|
|
|
7954
8121
|
var MessageLivestreamWithContext = function (props) {
|
|
7955
8122
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
7956
8123
|
var clearEditingState = props.clearEditingState, editing = props.editing, groupStyles = props.groupStyles, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, initialMessage = props.initialMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, messageWrapperRef = props.messageWrapperRef, onMentionsClickMessage = props.onMentionsClickMessage, onMentionsHoverMessage = props.onMentionsHoverMessage, onReactionListClick = props.onReactionListClick, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, _l = props.renderText, renderText$1 = _l === void 0 ? renderText : _l, showDetailedReactions = props.showDetailedReactions, unsafeHTML = props.unsafeHTML;
|
|
7957
|
-
var _m = useComponentContext().QuotedMessage, QuotedMessage$1 =
|
|
7958
|
-
var
|
|
7959
|
-
var _w = useTranslationContext(), t = _w.t, userLanguage = _w.userLanguage;
|
|
8124
|
+
var _m = useComponentContext('MessageLivestream'), Attachment = _m.Attachment, _o = _m.Avatar, Avatar$1 = _o === void 0 ? Avatar : _o, _p = _m.EditMessageInput, EditMessageInput = _p === void 0 ? EditMessageForm : _p, _q = _m.MessageDeleted, MessageDeleted$1 = _q === void 0 ? MessageDeleted : _q, _r = _m.MessageRepliesCountButton, MessageRepliesCountButton$1 = _r === void 0 ? MessageRepliesCountButton : _r, _s = _m.PinIndicator, PinIndicator$1 = _s === void 0 ? PinIndicator : _s, _t = _m.QuotedMessage, QuotedMessage$1 = _t === void 0 ? QuotedMessage : _t, _u = _m.ReactionsList, ReactionsList = _u === void 0 ? SimpleReactionsList : _u, _v = _m.ReactionSelector, ReactionSelector$1 = _v === void 0 ? ReactionSelector : _v;
|
|
8125
|
+
var _w = useTranslationContext('MessageLivestream'), t = _w.t, userLanguage = _w.userLanguage;
|
|
7960
8126
|
var messageTextToRender = ((_a = message.i18n) === null || _a === void 0 ? void 0 : _a[userLanguage + "_text"]) || message.text;
|
|
7961
8127
|
var messageText = React.useMemo(function () { return renderText$1(messageTextToRender, message.mentioned_users); }, [
|
|
7962
8128
|
message.mentioned_users,
|
|
@@ -8019,8 +8185,8 @@ var MessageLivestreamWithContext = function (props) {
|
|
|
8019
8185
|
};
|
|
8020
8186
|
var MessageLivestreamActions = function (props) {
|
|
8021
8187
|
var messageWrapperRef = props.messageWrapperRef, onReactionListClick = props.onReactionListClick;
|
|
8022
|
-
var _a = useComponentContext().MessageTimestamp, MessageTimestamp$1 = _a === void 0 ? MessageTimestamp : _a;
|
|
8023
|
-
var _b = useMessageContext(), getMessageActions = _b.getMessageActions, handleOpenThread = _b.handleOpenThread, initialMessage = _b.initialMessage, message = _b.message, threadList = _b.threadList;
|
|
8188
|
+
var _a = useComponentContext('MessageLivestream').MessageTimestamp, MessageTimestamp$1 = _a === void 0 ? MessageTimestamp : _a;
|
|
8189
|
+
var _b = useMessageContext('MessageLivestream'), getMessageActions = _b.getMessageActions, handleOpenThread = _b.handleOpenThread, initialMessage = _b.initialMessage, message = _b.message, threadList = _b.threadList;
|
|
8024
8190
|
var _c = React.useState(false), actionsBoxOpen = _c[0], setActionsBoxOpen = _c[1];
|
|
8025
8191
|
var hideOptions = React.useCallback(function () { return setActionsBoxOpen(false); }, []);
|
|
8026
8192
|
var messageDeletedAt = !!message.deleted_at;
|
|
@@ -8081,7 +8247,7 @@ var MemoizedMessageLivestream = React__default['default'].memo(MessageLivestream
|
|
|
8081
8247
|
* Implements the look and feel for a livestream use case.
|
|
8082
8248
|
*/
|
|
8083
8249
|
var MessageLivestream = function (props) {
|
|
8084
|
-
var messageContext = useMessageContext();
|
|
8250
|
+
var messageContext = useMessageContext('MessageLivestream');
|
|
8085
8251
|
var messageWrapperRef = React.useRef(null);
|
|
8086
8252
|
var reactionSelectorRef = React.useRef(null);
|
|
8087
8253
|
var message = props.message || messageContext.message;
|
|
@@ -8092,8 +8258,8 @@ var MessageLivestream = function (props) {
|
|
|
8092
8258
|
var MessageTeamWithContext = function (props) {
|
|
8093
8259
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
8094
8260
|
var clearEditingState = props.clearEditingState, editing = props.editing, getMessageActions = props.getMessageActions, groupStyles = props.groupStyles, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, initialMessage = props.initialMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, messageWrapperRef = props.messageWrapperRef, onMentionsClickMessage = props.onMentionsClickMessage, onMentionsHoverMessage = props.onMentionsHoverMessage, onReactionListClick = props.onReactionListClick, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, _o = props.renderText, renderText$1 = _o === void 0 ? renderText : _o, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList, unsafeHTML = props.unsafeHTML;
|
|
8095
|
-
var _p = useComponentContext(), Attachment = _p.Attachment, _q = _p.Avatar, Avatar$1 = _q === void 0 ? Avatar : _q, _r = _p.EditMessageInput, EditMessageInput = _r === void 0 ? EditMessageForm : _r, _s = _p.MessageDeleted, MessageDeleted$1 = _s === void 0 ? MessageDeleted : _s, _t = _p.MessageRepliesCountButton, MessageRepliesCountButton$1 = _t === void 0 ? MessageRepliesCountButton : _t, _u = _p.MessageTimestamp, MessageTimestamp$1 = _u === void 0 ? MessageTimestamp : _u, _v = _p.PinIndicator, PinIndicator$1 = _v === void 0 ? PinIndicator : _v, _w = _p.QuotedMessage, QuotedMessage$1 = _w === void 0 ? QuotedMessage : _w, _x = _p.ReactionsList, ReactionsList = _x === void 0 ? SimpleReactionsList : _x, _y = _p.ReactionSelector, ReactionSelector$1 = _y === void 0 ? ReactionSelector : _y;
|
|
8096
|
-
var _z = useTranslationContext(), t = _z.t, userLanguage = _z.userLanguage;
|
|
8261
|
+
var _p = useComponentContext('MessageTeam'), Attachment = _p.Attachment, _q = _p.Avatar, Avatar$1 = _q === void 0 ? Avatar : _q, _r = _p.EditMessageInput, EditMessageInput = _r === void 0 ? EditMessageForm : _r, _s = _p.MessageDeleted, MessageDeleted$1 = _s === void 0 ? MessageDeleted : _s, _t = _p.MessageRepliesCountButton, MessageRepliesCountButton$1 = _t === void 0 ? MessageRepliesCountButton : _t, _u = _p.MessageTimestamp, MessageTimestamp$1 = _u === void 0 ? MessageTimestamp : _u, _v = _p.PinIndicator, PinIndicator$1 = _v === void 0 ? PinIndicator : _v, _w = _p.QuotedMessage, QuotedMessage$1 = _w === void 0 ? QuotedMessage : _w, _x = _p.ReactionsList, ReactionsList = _x === void 0 ? SimpleReactionsList : _x, _y = _p.ReactionSelector, ReactionSelector$1 = _y === void 0 ? ReactionSelector : _y;
|
|
8262
|
+
var _z = useTranslationContext('MessageTeam'), t = _z.t, userLanguage = _z.userLanguage;
|
|
8097
8263
|
var messageActions = getMessageActions();
|
|
8098
8264
|
var showActionsBox = showMessageActionsBox(messageActions);
|
|
8099
8265
|
var shouldShowReplies = messageActions.indexOf(MESSAGE_ACTIONS.reply) > -1 && !threadList;
|
|
@@ -8163,7 +8329,7 @@ var MemoizedMessageTeam = React__default['default'].memo(MessageTeamWithContext,
|
|
|
8163
8329
|
* Implements the look and feel for a team style collaboration environment.
|
|
8164
8330
|
*/
|
|
8165
8331
|
var MessageTeam = function (props) {
|
|
8166
|
-
var messageContext = useMessageContext();
|
|
8332
|
+
var messageContext = useMessageContext('MessageTeam');
|
|
8167
8333
|
var reactionSelectorRef = React.useRef(null);
|
|
8168
8334
|
var messageWrapperRef = React.useRef(null);
|
|
8169
8335
|
var message = props.message || messageContext.message;
|
|
@@ -8180,8 +8346,8 @@ var UnMemoizedCustomNotification = function (props) {
|
|
|
8180
8346
|
var CustomNotification = React__default['default'].memo(UnMemoizedCustomNotification);
|
|
8181
8347
|
|
|
8182
8348
|
var UnMemoizedConnectionStatus = function () {
|
|
8183
|
-
var client = useChatContext().client;
|
|
8184
|
-
var t = useTranslationContext().t;
|
|
8349
|
+
var client = useChatContext('ConnectionStatus').client;
|
|
8350
|
+
var t = useTranslationContext('ConnectionStatus').t;
|
|
8185
8351
|
var _a = React.useState(true), online = _a[0], setOnline = _a[1];
|
|
8186
8352
|
React.useEffect(function () {
|
|
8187
8353
|
var connectionChanged = function (_a) {
|
|
@@ -8401,9 +8567,9 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
|
|
|
8401
8567
|
};
|
|
8402
8568
|
|
|
8403
8569
|
var useEnrichedMessages = function (args) {
|
|
8404
|
-
var channel = args.channel, disableDateSeparator = args.disableDateSeparator, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser, threadList = args.threadList;
|
|
8405
|
-
var client = useChatContext().client;
|
|
8406
|
-
var HeaderComponent = useComponentContext().HeaderComponent;
|
|
8570
|
+
var channel = args.channel, disableDateSeparator = args.disableDateSeparator, groupStyles = args.groupStyles, headerPosition = args.headerPosition, hideDeletedMessages = args.hideDeletedMessages, hideNewMessageSeparator = args.hideNewMessageSeparator, messages = args.messages, noGroupByUser = args.noGroupByUser, threadList = args.threadList;
|
|
8571
|
+
var client = useChatContext('useEnrichedMessages').client;
|
|
8572
|
+
var HeaderComponent = useComponentContext('useEnrichedMessages').HeaderComponent;
|
|
8407
8573
|
var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
8408
8574
|
var messagesWithDates = disableDateSeparator && !hideDeletedMessages && hideNewMessageSeparator
|
|
8409
8575
|
? messages
|
|
@@ -8419,9 +8585,10 @@ var useEnrichedMessages = function (args) {
|
|
|
8419
8585
|
if (HeaderComponent) {
|
|
8420
8586
|
messagesWithDates = insertIntro(messagesWithDates, headerPosition);
|
|
8421
8587
|
}
|
|
8588
|
+
var groupStylesFn = groupStyles || getGroupStyles;
|
|
8422
8589
|
var messageGroupStyles = React.useMemo(function () {
|
|
8423
8590
|
return messagesWithDates.reduce(function (acc, message, i) {
|
|
8424
|
-
var style =
|
|
8591
|
+
var style = groupStylesFn(message, messagesWithDates[i - 1], messagesWithDates[i + 1], noGroupByUser);
|
|
8425
8592
|
if (style)
|
|
8426
8593
|
acc[message.id] = style;
|
|
8427
8594
|
return acc;
|
|
@@ -8442,8 +8609,8 @@ var useLastReadData = function (props) {
|
|
|
8442
8609
|
|
|
8443
8610
|
var useMessageListElements = function (props) {
|
|
8444
8611
|
var enrichedMessages = props.enrichedMessages, internalMessageProps = props.internalMessageProps, messageGroupStyles = props.messageGroupStyles, onMessageLoadCaptured = props.onMessageLoadCaptured, read = props.read, returnAllReadData = props.returnAllReadData, threadList = props.threadList;
|
|
8445
|
-
var _a = useChatContext(), client = _a.client, customClasses = _a.customClasses;
|
|
8446
|
-
var _b = useComponentContext(), _c = _b.DateSeparator, DateSeparator$1 = _c === void 0 ? DateSeparator : _c, HeaderComponent = _b.HeaderComponent, _d = _b.MessageSystem, MessageSystem = _d === void 0 ? EventComponent : _d;
|
|
8612
|
+
var _a = useChatContext('useMessageListElements'), client = _a.client, customClasses = _a.customClasses;
|
|
8613
|
+
var _b = useComponentContext('useMessageListElements'), _c = _b.DateSeparator, DateSeparator$1 = _c === void 0 ? DateSeparator : _c, HeaderComponent = _b.HeaderComponent, _d = _b.MessageSystem, MessageSystem = _d === void 0 ? EventComponent : _d;
|
|
8447
8614
|
// get the readData, but only for messages submitted by the user themselves
|
|
8448
8615
|
var readData = useLastReadData({
|
|
8449
8616
|
messages: enrichedMessages,
|
|
@@ -8471,7 +8638,7 @@ var useMessageListElements = function (props) {
|
|
|
8471
8638
|
}
|
|
8472
8639
|
var groupStyles = messageGroupStyles[message.id] || '';
|
|
8473
8640
|
var messageClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.message) || "str-chat__li str-chat__li--" + groupStyles;
|
|
8474
|
-
return (React__default['default'].createElement("li", { className: messageClass, key: message.id || message.created_at, onLoadCapture: onMessageLoadCaptured },
|
|
8641
|
+
return (React__default['default'].createElement("li", { className: messageClass, "data-testid": messageClass, key: message.id || message.created_at, onLoadCapture: onMessageLoadCaptured },
|
|
8475
8642
|
React__default['default'].createElement(Message, __assign({ groupStyles: [groupStyles], lastReceivedId: lastReceivedId, message: message, readBy: readData[message.id] || [], threadList: threadList }, internalMessageProps))));
|
|
8476
8643
|
});
|
|
8477
8644
|
}, [
|
|
@@ -8487,7 +8654,7 @@ var useMessageListElements = function (props) {
|
|
|
8487
8654
|
|
|
8488
8655
|
function useMessageListScrollManager(params) {
|
|
8489
8656
|
var onScrollBy = params.onScrollBy, scrollContainerMeasures = params.scrollContainerMeasures, scrolledUpThreshold = params.scrolledUpThreshold, scrollToBottom = params.scrollToBottom, showNewMessages = params.showNewMessages;
|
|
8490
|
-
var client = useChatContext().client;
|
|
8657
|
+
var client = useChatContext('useMessageListScrollManager').client;
|
|
8491
8658
|
var measures = React.useRef({
|
|
8492
8659
|
offsetHeight: 0,
|
|
8493
8660
|
scrollHeight: 0,
|
|
@@ -8630,14 +8797,25 @@ var UnMemoizedMessageNotification = function (props) {
|
|
|
8630
8797
|
};
|
|
8631
8798
|
var MessageNotification = React__default['default'].memo(UnMemoizedMessageNotification);
|
|
8632
8799
|
|
|
8800
|
+
var MessageListNotifications = function (props) {
|
|
8801
|
+
var hasNewMessages = props.hasNewMessages, MessageNotification = props.MessageNotification, notifications = props.notifications, scrollToBottom = props.scrollToBottom;
|
|
8802
|
+
var t = useTranslationContext('MessageListNotifications').t;
|
|
8803
|
+
return (React__default['default'].createElement("div", { className: 'str-chat__list-notifications' },
|
|
8804
|
+
notifications.map(function (notification) { return (React__default['default'].createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)); }),
|
|
8805
|
+
React__default['default'].createElement(ConnectionStatus, null),
|
|
8806
|
+
React__default['default'].createElement(MessageNotification, { onClick: scrollToBottom, showNotification: hasNewMessages }, t('New Messages!'))));
|
|
8807
|
+
};
|
|
8808
|
+
|
|
8633
8809
|
/**
|
|
8634
8810
|
* TypingIndicator lists users currently typing, it needs to be a child of Channel component
|
|
8635
8811
|
*/
|
|
8636
8812
|
var UnMemoizedTypingIndicator = function (props) {
|
|
8637
|
-
var
|
|
8638
|
-
var
|
|
8639
|
-
var client = useChatContext().client;
|
|
8640
|
-
var
|
|
8813
|
+
var PropAvatar = props.Avatar, _a = props.avatarSize, avatarSize = _a === void 0 ? 32 : _a, threadList = props.threadList;
|
|
8814
|
+
var _b = useChannelStateContext('TypingIndicator'), channelConfig = _b.channelConfig, thread = _b.thread;
|
|
8815
|
+
var client = useChatContext('TypingIndicator').client;
|
|
8816
|
+
var ContextAvatar = useComponentContext('TypingIndicator').Avatar;
|
|
8817
|
+
var _c = useTypingContext('TypingIndicator').typing, typing = _c === void 0 ? {} : _c;
|
|
8818
|
+
var Avatar$1 = PropAvatar || ContextAvatar || Avatar;
|
|
8641
8819
|
if ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.typing_events) === false) {
|
|
8642
8820
|
return null;
|
|
8643
8821
|
}
|
|
@@ -8669,23 +8847,17 @@ var UnMemoizedTypingIndicator = function (props) {
|
|
|
8669
8847
|
};
|
|
8670
8848
|
var TypingIndicator = React__default['default'].memo(UnMemoizedTypingIndicator);
|
|
8671
8849
|
|
|
8672
|
-
var DefaultMessageListNotifications = function (props) {
|
|
8673
|
-
var hasNewMessages = props.hasNewMessages, MessageNotification = props.MessageNotification, notifications = props.notifications, scrollToBottom = props.scrollToBottom;
|
|
8674
|
-
var t = useTranslationContext().t;
|
|
8675
|
-
return (React__default['default'].createElement("div", { className: 'str-chat__list-notifications' },
|
|
8676
|
-
notifications.map(function (notification) { return (React__default['default'].createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)); }),
|
|
8677
|
-
React__default['default'].createElement(ConnectionStatus, null),
|
|
8678
|
-
React__default['default'].createElement(MessageNotification, { onClick: scrollToBottom, showNotification: hasNewMessages }, t('New Messages!'))));
|
|
8679
|
-
};
|
|
8680
8850
|
var useInternalInfiniteScrollProps = function (props) {
|
|
8681
|
-
var _a = useComponentContext().LoadingIndicator, LoadingIndicator$1 = _a === void 0 ? LoadingIndicator : _a;
|
|
8851
|
+
var _a = useComponentContext('useInternalInfiniteScrollProps').LoadingIndicator, LoadingIndicator$1 = _a === void 0 ? LoadingIndicator : _a;
|
|
8682
8852
|
return __assign({ hasMore: props.hasMore, isLoading: props.loadingMore, loader: (React__default['default'].createElement(Center, { key: 'loadingindicator' },
|
|
8683
8853
|
React__default['default'].createElement(LoadingIndicator$1, { size: 20 }))), loadMore: useCallLoadMore(props.loadMore, props.messageLimit || 100) }, props.internalInfiniteScrollProps);
|
|
8684
8854
|
};
|
|
8685
8855
|
var MessageListWithContext = function (props) {
|
|
8686
|
-
var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g,
|
|
8687
|
-
|
|
8688
|
-
|
|
8856
|
+
var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
8857
|
+
_h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
8858
|
+
returnAllReadData = _h === void 0 ? false : _h, _j = props.threadList, threadList = _j === void 0 ? false : _j, _k = props.unsafeHTML, unsafeHTML = _k === void 0 ? false : _k, headerPosition = props.headerPosition, read = props.read;
|
|
8859
|
+
var customClasses = useChatContext('MessageList').customClasses;
|
|
8860
|
+
var _l = useComponentContext('MessageList'), _m = _l.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _l.MessageListNotifications, MessageListNotifications$1 = _o === void 0 ? MessageListNotifications : _o, _p = _l.MessageNotification, MessageNotification$1 = _p === void 0 ? MessageNotification : _p, _q = _l.TypingIndicator, TypingIndicator$1 = _q === void 0 ? TypingIndicator : _q;
|
|
8689
8861
|
var _r = useScrollLocationLogic({
|
|
8690
8862
|
messages: messages,
|
|
8691
8863
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
@@ -8693,6 +8865,7 @@ var MessageListWithContext = function (props) {
|
|
|
8693
8865
|
var _s = useEnrichedMessages({
|
|
8694
8866
|
channel: channel,
|
|
8695
8867
|
disableDateSeparator: disableDateSeparator,
|
|
8868
|
+
groupStyles: groupStyles,
|
|
8696
8869
|
headerPosition: headerPosition,
|
|
8697
8870
|
hideDeletedMessages: hideDeletedMessages,
|
|
8698
8871
|
hideNewMessageSeparator: hideNewMessageSeparator,
|
|
@@ -8742,7 +8915,7 @@ var MessageListWithContext = function (props) {
|
|
|
8742
8915
|
React__default['default'].createElement("ul", { className: 'str-chat__ul' }, elements),
|
|
8743
8916
|
React__default['default'].createElement(TypingIndicator$1, { threadList: threadList }),
|
|
8744
8917
|
React__default['default'].createElement("div", { key: 'bottom' })))),
|
|
8745
|
-
React__default['default'].createElement(MessageListNotifications, { hasNewMessages: hasNewMessages, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom })));
|
|
8918
|
+
React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: hasNewMessages, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom })));
|
|
8746
8919
|
};
|
|
8747
8920
|
/**
|
|
8748
8921
|
* The MessageList component renders a list of Messages.
|
|
@@ -8753,8 +8926,8 @@ var MessageListWithContext = function (props) {
|
|
|
8753
8926
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
8754
8927
|
*/
|
|
8755
8928
|
var MessageList = function (props) {
|
|
8756
|
-
var loadMore = useChannelActionContext().loadMore;
|
|
8757
|
-
var _a = useChannelStateContext(); _a.members; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8929
|
+
var loadMore = useChannelActionContext('MessageList').loadMore;
|
|
8930
|
+
var _a = useChannelStateContext('MessageList'); _a.members; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8758
8931
|
_a.mutes; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8759
8932
|
_a.watchers; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8760
8933
|
var restChannelStateContext = __rest(_a, ["members", "mutes", "watchers"]);
|
|
@@ -8763,7 +8936,7 @@ var MessageList = function (props) {
|
|
|
8763
8936
|
|
|
8764
8937
|
var useGiphyPreview = function (separateGiphyPreview) {
|
|
8765
8938
|
var _a = React.useState(), giphyPreviewMessage = _a[0], setGiphyPreviewMessage = _a[1];
|
|
8766
|
-
var client = useChatContext().client;
|
|
8939
|
+
var client = useChatContext('useGiphyPreview').client;
|
|
8767
8940
|
React.useEffect(function () {
|
|
8768
8941
|
var handleEvent = function (event) {
|
|
8769
8942
|
var message = event.message, user = event.user;
|
|
@@ -8869,15 +9042,14 @@ function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
|
8869
9042
|
|
|
8870
9043
|
var PREPEND_OFFSET = Math.pow(10, 7);
|
|
8871
9044
|
var VirtualizedMessageListWithContext = function (props) {
|
|
8872
|
-
var additionalVirtuosoProps = props.additionalVirtuosoProps, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? true : _a, hasMore = props.hasMore, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, loadingMore = props.loadingMore, loadMore = props.loadMore, propMessage = props.Message, _d = props.messageLimit, messageLimit = _d === void 0 ? 100 : _d, messages = props.messages, _e = props.overscan, overscan = _e === void 0 ? 0 : _e,
|
|
9045
|
+
var additionalVirtuosoProps = props.additionalVirtuosoProps, channel = props.channel, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? true : _a, hasMore = props.hasMore, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, loadingMore = props.loadingMore, loadMore = props.loadMore, propMessage = props.Message, _d = props.messageLimit, messageLimit = _d === void 0 ? 100 : _d, messages = props.messages, notifications = props.notifications, _e = props.overscan, overscan = _e === void 0 ? 0 : _e,
|
|
8873
9046
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
8874
9047
|
scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _f = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _f === void 0 ? false : _f, _g = props.separateGiphyPreview, separateGiphyPreview = _g === void 0 ? false : _g, _h = props.shouldGroupByUser, shouldGroupByUser = _h === void 0 ? false : _h, _j = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _j === void 0 ? 'smooth' : _j;
|
|
8875
|
-
var _k = useComponentContext(), _l = _k.DateSeparator, DateSeparator$1 = _l === void 0 ? DateSeparator : _l, _m = _k.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _k.GiphyPreviewMessage, GiphyPreviewMessage$1 = _o === void 0 ? GiphyPreviewMessage : _o, _p = _k.LoadingIndicator, LoadingIndicator$1 = _p === void 0 ? LoadingIndicator : _p, _q = _k.
|
|
8876
|
-
var
|
|
8877
|
-
var t = useTranslationContext().t;
|
|
9048
|
+
var _k = useComponentContext('VirtualizedMessageList'), _l = _k.DateSeparator, DateSeparator$1 = _l === void 0 ? DateSeparator : _l, _m = _k.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _k.GiphyPreviewMessage, GiphyPreviewMessage$1 = _o === void 0 ? GiphyPreviewMessage : _o, _p = _k.LoadingIndicator, LoadingIndicator$1 = _p === void 0 ? LoadingIndicator : _p, _q = _k.MessageListNotifications, MessageListNotifications$1 = _q === void 0 ? MessageListNotifications : _q, _r = _k.MessageNotification, MessageNotification$1 = _r === void 0 ? MessageNotification : _r, _s = _k.MessageSystem, MessageSystem = _s === void 0 ? EventComponent : _s, _t = _k.TypingIndicator, TypingIndicator = _t === void 0 ? null : _t, _u = _k.VirtualMessage, contextMessage = _u === void 0 ? MessageSimple : _u;
|
|
9049
|
+
var _v = useChatContext('VirtualizedMessageList'), client = _v.client, customClasses = _v.customClasses;
|
|
8878
9050
|
var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
8879
9051
|
var MessageUIComponent = propMessage || contextMessage;
|
|
8880
|
-
var
|
|
9052
|
+
var _w = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _w.giphyPreviewMessage, setGiphyPreviewMessage = _w.setGiphyPreviewMessage;
|
|
8881
9053
|
var processedMessages = React.useMemo(function () {
|
|
8882
9054
|
if (typeof messages === 'undefined') {
|
|
8883
9055
|
return [];
|
|
@@ -8908,7 +9080,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
8908
9080
|
client.userID,
|
|
8909
9081
|
]);
|
|
8910
9082
|
var virtuoso = React.useRef(null);
|
|
8911
|
-
var
|
|
9083
|
+
var _x = useNewMessageNotification(processedMessages, client.userID), atBottom = _x.atBottom, newMessagesNotification = _x.newMessagesNotification, setNewMessagesNotification = _x.setNewMessagesNotification;
|
|
8912
9084
|
var scrollToBottom = React.useCallback(function () {
|
|
8913
9085
|
if (virtuoso.current) {
|
|
8914
9086
|
virtuoso.current.scrollToIndex(processedMessages.length - 1);
|
|
@@ -8997,9 +9169,8 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
8997
9169
|
var virtualizedMessageListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list';
|
|
8998
9170
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
8999
9171
|
React__default['default'].createElement("div", { className: virtualizedMessageListClass },
|
|
9000
|
-
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, initialTopMostItemIndex: processedMessages.length ? processedMessages.length - 1 : 0, itemContent: function (i) { return messageRenderer(processedMessages, i); }, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {}))),
|
|
9001
|
-
|
|
9002
|
-
React__default['default'].createElement(MessageNotification$1, { onClick: scrollToBottom, showNotification: newMessagesNotification }, t('New Messages!')))),
|
|
9172
|
+
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, initialTopMostItemIndex: processedMessages.length ? processedMessages.length - 1 : 0, itemContent: function (i) { return messageRenderer(processedMessages, i); }, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {})))),
|
|
9173
|
+
React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom }),
|
|
9003
9174
|
giphyPreviewMessage && React__default['default'].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
|
|
9004
9175
|
};
|
|
9005
9176
|
/**
|
|
@@ -9009,26 +9180,25 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9009
9180
|
* **Note**: It works well when there are thousands of messages in a channel, it has a shortcoming though - the message UI should have a fixed height.
|
|
9010
9181
|
*/
|
|
9011
9182
|
function VirtualizedMessageList(props) {
|
|
9012
|
-
var loadMore = useChannelActionContext().loadMore;
|
|
9013
|
-
var _a = useChannelStateContext(), channel = _a.channel, hasMore = _a.hasMore, loadingMore = _a.loadingMore, contextMessages = _a.messages;
|
|
9183
|
+
var loadMore = useChannelActionContext('VirtualizedMessageList').loadMore;
|
|
9184
|
+
var _a = useChannelStateContext('VirtualizedMessageList'), channel = _a.channel, hasMore = _a.hasMore, loadingMore = _a.loadingMore, contextMessages = _a.messages, notifications = _a.notifications;
|
|
9014
9185
|
var messages = props.messages || contextMessages;
|
|
9015
|
-
return (React__default['default'].createElement(VirtualizedMessageListWithContext, __assign({ channel: channel, hasMore: !!hasMore, loadingMore: !!loadingMore, loadMore: loadMore, messages: messages }, props)));
|
|
9186
|
+
return (React__default['default'].createElement(VirtualizedMessageListWithContext, __assign({ channel: channel, hasMore: !!hasMore, loadingMore: !!loadingMore, loadMore: loadMore, messages: messages, notifications: notifications }, props)));
|
|
9016
9187
|
}
|
|
9017
9188
|
|
|
9018
9189
|
/**
|
|
9019
9190
|
* The Thread component renders a parent Message with a list of replies
|
|
9020
9191
|
*/
|
|
9021
9192
|
var Thread = function (props) {
|
|
9022
|
-
var _a,
|
|
9023
|
-
|
|
9024
|
-
if (!thread || ((_b = (_a = channel === null || channel === void 0 ? void 0 : channel.getConfig) === null || _a === void 0 ? void 0 : _a.call(channel)) === null || _b === void 0 ? void 0 : _b.replies) === false)
|
|
9193
|
+
var _a = useChannelStateContext('Thread'), channel = _a.channel, channelConfig = _a.channelConfig, thread = _a.thread;
|
|
9194
|
+
if (!thread || (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies) === false)
|
|
9025
9195
|
return null;
|
|
9026
9196
|
// The wrapper ensures a key variable is set and the component recreates on thread switch
|
|
9027
9197
|
return React__default['default'].createElement(ThreadInner, __assign({}, props, { key: "thread-" + thread.id + "-" + (channel === null || channel === void 0 ? void 0 : channel.cid) }));
|
|
9028
9198
|
};
|
|
9029
9199
|
var DefaultThreadHeader = function (props) {
|
|
9030
9200
|
var closeThread = props.closeThread, thread = props.thread;
|
|
9031
|
-
var t = useTranslationContext().t;
|
|
9201
|
+
var t = useTranslationContext('Thread').t;
|
|
9032
9202
|
var getReplyCount = function () {
|
|
9033
9203
|
if (!thread.reply_count)
|
|
9034
9204
|
return '';
|
|
@@ -9047,15 +9217,15 @@ var DefaultThreadHeader = function (props) {
|
|
|
9047
9217
|
React__default['default'].createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' })))));
|
|
9048
9218
|
};
|
|
9049
9219
|
var DefaultThreadStart = function () {
|
|
9050
|
-
var t = useTranslationContext().t;
|
|
9220
|
+
var t = useTranslationContext('Thread').t;
|
|
9051
9221
|
return React__default['default'].createElement("div", { className: 'str-chat__thread-start' }, t('Start of a new thread'));
|
|
9052
9222
|
};
|
|
9053
9223
|
var ThreadInner = function (props) {
|
|
9054
9224
|
var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.fullWidth, fullWidth = _b === void 0 ? false : _b, PropInput = props.Input, PropMessage = props.Message, virtualized = props.virtualized;
|
|
9055
|
-
var _c = useChannelStateContext(), thread = _c.thread, threadHasMore = _c.threadHasMore, threadLoadingMore = _c.threadLoadingMore, threadMessages = _c.threadMessages;
|
|
9056
|
-
var _d = useChannelActionContext(), closeThread = _d.closeThread, loadMoreThread = _d.loadMoreThread;
|
|
9057
|
-
var customClasses = useChatContext().customClasses;
|
|
9058
|
-
var _e = useComponentContext(), ContextInput = _e.ThreadInput, ContextMessage = _e.Message, _f = _e.ThreadHeader, ThreadHeader = _f === void 0 ? DefaultThreadHeader : _f, _g = _e.ThreadStart, ThreadStart = _g === void 0 ? DefaultThreadStart : _g, _h = _e.VirtualMessage, VirtualMessage = _h === void 0 ? FixedHeightMessage : _h;
|
|
9225
|
+
var _c = useChannelStateContext('Thread'), thread = _c.thread, threadHasMore = _c.threadHasMore, threadLoadingMore = _c.threadLoadingMore, threadMessages = _c.threadMessages;
|
|
9226
|
+
var _d = useChannelActionContext('Thread'), closeThread = _d.closeThread, loadMoreThread = _d.loadMoreThread;
|
|
9227
|
+
var customClasses = useChatContext('Thread').customClasses;
|
|
9228
|
+
var _e = useComponentContext('Thread'), ContextInput = _e.ThreadInput, ContextMessage = _e.Message, _f = _e.ThreadHeader, ThreadHeader = _f === void 0 ? DefaultThreadHeader : _f, _g = _e.ThreadStart, ThreadStart = _g === void 0 ? DefaultThreadStart : _g, _h = _e.VirtualMessage, VirtualMessage = _h === void 0 ? FixedHeightMessage : _h;
|
|
9059
9229
|
var messageList = React.useRef(null);
|
|
9060
9230
|
var ThreadInput = PropInput || (additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) || ContextInput || MessageInputSmall;
|
|
9061
9231
|
var ThreadMessage = PropMessage || (additionalMessageListProps === null || additionalMessageListProps === void 0 ? void 0 : additionalMessageListProps.Message);
|
|
@@ -9089,7 +9259,7 @@ var ThreadInner = function (props) {
|
|
|
9089
9259
|
|
|
9090
9260
|
var UnMemoizedWindow = function (props) {
|
|
9091
9261
|
var children = props.children, _a = props.hideOnThread, hideOnThread = _a === void 0 ? false : _a;
|
|
9092
|
-
var thread = useChannelStateContext().thread;
|
|
9262
|
+
var thread = useChannelStateContext('Window').thread;
|
|
9093
9263
|
// If thread is active and window should hide on thread. Return null
|
|
9094
9264
|
if (thread && hideOnThread)
|
|
9095
9265
|
return null;
|
|
@@ -9221,6 +9391,7 @@ exports.deTranslations = deTranslations;
|
|
|
9221
9391
|
exports.defaultPinPermissions = defaultPinPermissions;
|
|
9222
9392
|
exports.defaultScrollToItem = defaultScrollToItem;
|
|
9223
9393
|
exports.defaultTimestampFormat = defaultTimestampFormat;
|
|
9394
|
+
exports.emojiMarkdownPlugin = emojiMarkdownPlugin;
|
|
9224
9395
|
exports.enTranslations = enTranslations;
|
|
9225
9396
|
exports.esTranslations = esTranslations;
|
|
9226
9397
|
exports.escapeRegExp = escapeRegExp;
|
|
@@ -9229,14 +9400,18 @@ exports.generateRandomId = generateRandomId;
|
|
|
9229
9400
|
exports.getChannel = getChannel;
|
|
9230
9401
|
exports.getDisplayImage = getDisplayImage;
|
|
9231
9402
|
exports.getDisplayTitle = getDisplayTitle;
|
|
9403
|
+
exports.getGroupStyles = getGroupStyles;
|
|
9232
9404
|
exports.getImages = getImages;
|
|
9405
|
+
exports.getLastReceived = getLastReceived;
|
|
9233
9406
|
exports.getLatestMessagePreview = getLatestMessagePreview;
|
|
9234
9407
|
exports.getMessageActions = getMessageActions;
|
|
9235
9408
|
exports.getNonImageAttachments = getNonImageAttachments;
|
|
9236
9409
|
exports.getReadByTooltipText = getReadByTooltipText;
|
|
9410
|
+
exports.getReadStates = getReadStates;
|
|
9237
9411
|
exports.getWholeChar = getWholeChar;
|
|
9238
9412
|
exports.handleActionWarning = handleActionWarning;
|
|
9239
9413
|
exports.hiTranslations = hiTranslations;
|
|
9414
|
+
exports.insertIntro = insertIntro;
|
|
9240
9415
|
exports.isAudioAttachment = isAudioAttachment;
|
|
9241
9416
|
exports.isChannel = isChannel;
|
|
9242
9417
|
exports.isDate = isDate;
|
|
@@ -9253,6 +9428,10 @@ exports.itTranslations = itTranslations;
|
|
|
9253
9428
|
exports.jaTranslations = jaTranslations;
|
|
9254
9429
|
exports.koTranslations = koTranslations;
|
|
9255
9430
|
exports.listener = Listeners;
|
|
9431
|
+
exports.markDownRenderers = markDownRenderers;
|
|
9432
|
+
exports.matchMarkdownLinks = matchMarkdownLinks;
|
|
9433
|
+
exports.mentionsMarkdownPlugin = mentionsMarkdownPlugin;
|
|
9434
|
+
exports.messageCodeBlocks = messageCodeBlocks;
|
|
9256
9435
|
exports.messageHasAttachments = messageHasAttachments;
|
|
9257
9436
|
exports.messageHasReactions = messageHasReactions;
|
|
9258
9437
|
exports.missingUseFlagHandlerParameterWarning = missingUseFlagHandlerParameterWarning;
|
|
@@ -9261,6 +9440,7 @@ exports.moveChannelUp = moveChannelUp;
|
|
|
9261
9440
|
exports.nlTranslations = nlTranslations;
|
|
9262
9441
|
exports.noParsingFunctionWarning = noParsingFunctionWarning;
|
|
9263
9442
|
exports.notValidDateWarning = notValidDateWarning;
|
|
9443
|
+
exports.processMessages = processMessages;
|
|
9264
9444
|
exports.ptTranslations = ptTranslations;
|
|
9265
9445
|
exports.reactionHandlerWarning = reactionHandlerWarning;
|
|
9266
9446
|
exports.renderAttachmentActions = renderAttachmentActions;
|