stream-chat-react 6.10.0 → 6.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/browser.full-bundle.js +1785 -417
- 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 +1 -3
- 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 +15 -8
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -1
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +6 -5
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +4 -7
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +2 -0
- package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +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/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 +1 -1
- package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/components/Message/QuotedMessage.js +4 -3
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.js +15 -12
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +8 -4
- 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/MessageInput.d.ts +4 -2
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInput.js +16 -6
- 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 +3 -1
- 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/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 +29 -13
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useImageUploads.js +29 -13
- 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 +14 -5
- package/dist/components/MessageInput/hooks/utils.d.ts +14 -1
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/utils.js +53 -0
- 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 +4 -13
- 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 +12 -13
- 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 +3 -2
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.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/TypingIndicator/TypingIndicator.d.ts +3 -3
- package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.js +6 -3
- package/dist/context/ChannelStateContext.d.ts +2 -1
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ChatContext.d.ts +3 -1
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.d.ts +2 -2
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +2 -2
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- 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 +5 -5
- package/dist/i18n/de.json +1 -0
- 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 +360 -201
- 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.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +14 -11
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
|
};
|
|
@@ -351,8 +349,7 @@ var UnMemoizedCard = function (props) {
|
|
|
351
349
|
React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--flex' },
|
|
352
350
|
title && React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--title' }, title),
|
|
353
351
|
text && React__default['default'].createElement("div", { className: 'str-chat__message-attachment-card--text' }, text),
|
|
354
|
-
(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
|
-
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)))))));
|
|
356
353
|
};
|
|
357
354
|
/**
|
|
358
355
|
* Simple Card Layout for displaying links
|
|
@@ -768,7 +765,7 @@ var renderText = function (text, mentioned_users, options) {
|
|
|
768
765
|
if (noParsingNeeded.length > 0 || linkIsInBlock)
|
|
769
766
|
return;
|
|
770
767
|
var displayLink = type === 'email' ? value : value.replace(detectHttp, '');
|
|
771
|
-
newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[" + displayLink + "](" + encodeURI(href) + ")");
|
|
768
|
+
newText = newText.replace(new RegExp(escapeRegExp(value), 'g'), "[" + displayLink + "](" + encodeURI(decodeURI(href)) + ")");
|
|
772
769
|
});
|
|
773
770
|
var plugins = [emojiMarkdownPlugin];
|
|
774
771
|
if (mentioned_users === null || mentioned_users === void 0 ? void 0 : mentioned_users.length) {
|
|
@@ -1156,6 +1153,54 @@ var UnMemoizedCommandItem = function (props) {
|
|
|
1156
1153
|
};
|
|
1157
1154
|
var CommandItem = React__default['default'].memo(UnMemoizedCommandItem);
|
|
1158
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
|
+
|
|
1159
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; }
|
|
1160
1205
|
|
|
1161
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; }
|
|
@@ -1292,13 +1337,15 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1292
1337
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_onSelect", function (newToken) {
|
|
1293
1338
|
var _this$props = _this.props,
|
|
1294
1339
|
closeCommandsList = _this$props.closeCommandsList,
|
|
1340
|
+
closeMentionsList = _this$props.closeMentionsList,
|
|
1295
1341
|
onChange = _this$props.onChange,
|
|
1296
|
-
showCommandsList = _this$props.showCommandsList
|
|
1342
|
+
showCommandsList = _this$props.showCommandsList,
|
|
1343
|
+
showMentionsList = _this$props.showMentionsList;
|
|
1297
1344
|
var _this$state = _this.state,
|
|
1298
1345
|
stateTrigger = _this$state.currentTrigger,
|
|
1299
1346
|
selectionEnd = _this$state.selectionEnd,
|
|
1300
1347
|
textareaValue = _this$state.value;
|
|
1301
|
-
var currentTrigger = showCommandsList ? '/' : stateTrigger;
|
|
1348
|
+
var currentTrigger = showCommandsList ? '/' : showMentionsList ? '@' : stateTrigger;
|
|
1302
1349
|
if (!currentTrigger) return;
|
|
1303
1350
|
|
|
1304
1351
|
var computeCaretPosition = function computeCaretPosition(position, token, startToken) {
|
|
@@ -1319,7 +1366,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1319
1366
|
}
|
|
1320
1367
|
};
|
|
1321
1368
|
|
|
1322
|
-
var textToModify = showCommandsList ? '/' : textareaValue.slice(0, selectionEnd);
|
|
1369
|
+
var textToModify = showCommandsList ? '/' : showMentionsList ? '@' : textareaValue.slice(0, selectionEnd);
|
|
1323
1370
|
var startOfTokenPosition = textToModify.lastIndexOf(currentTrigger); // we add space after emoji is selected if a caret position is next
|
|
1324
1371
|
|
|
1325
1372
|
var newTokenString = newToken.caretPosition === 'next' ? "".concat(newToken.text, " ") : newToken.text;
|
|
@@ -1345,7 +1392,8 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1345
1392
|
|
|
1346
1393
|
_this._closeAutocomplete();
|
|
1347
1394
|
|
|
1348
|
-
closeCommandsList();
|
|
1395
|
+
if (showCommandsList) closeCommandsList();
|
|
1396
|
+
if (showMentionsList) closeMentionsList();
|
|
1349
1397
|
});
|
|
1350
1398
|
|
|
1351
1399
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_getItemOnSelect", function (paramTrigger) {
|
|
@@ -1506,7 +1554,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1506
1554
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_cleanUpProps", function () {
|
|
1507
1555
|
var props = _objectSpread({}, _this.props);
|
|
1508
1556
|
|
|
1509
|
-
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
|
|
1510
1558
|
|
|
1511
1559
|
for (var prop in props) {
|
|
1512
1560
|
if (notSafe.includes(prop)) delete props[prop];
|
|
@@ -1663,6 +1711,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1663
1711
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getTriggerProps", function () {
|
|
1664
1712
|
var _this$props5 = _this.props,
|
|
1665
1713
|
showCommandsList = _this$props5.showCommandsList,
|
|
1714
|
+
showMentionsList = _this$props5.showMentionsList,
|
|
1666
1715
|
trigger = _this$props5.trigger;
|
|
1667
1716
|
var _this$state6 = _this.state,
|
|
1668
1717
|
component = _this$state6.component,
|
|
@@ -1686,18 +1735,18 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
1686
1735
|
values: suggestionData
|
|
1687
1736
|
};
|
|
1688
1737
|
|
|
1689
|
-
if (showCommandsList && trigger['/']) {
|
|
1738
|
+
if (showCommandsList && trigger['/'] || showMentionsList && trigger['@']) {
|
|
1690
1739
|
var currentCommands;
|
|
1691
|
-
var getCommands = trigger['/'].dataProvider;
|
|
1692
|
-
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) {
|
|
1693
1742
|
currentCommands = data;
|
|
1694
1743
|
});
|
|
1695
|
-
triggerProps.component = CommandItem;
|
|
1696
|
-
triggerProps.currentTrigger = '/';
|
|
1697
|
-
triggerProps.getTextToReplace = _this._getTextToReplace('/');
|
|
1698
|
-
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 ? '/' : '@');
|
|
1699
1748
|
triggerProps.selectionEnd = 1;
|
|
1700
|
-
triggerProps.value = '/';
|
|
1749
|
+
triggerProps.value = showCommandsList ? '/' : '@';
|
|
1701
1750
|
triggerProps.values = currentCommands;
|
|
1702
1751
|
}
|
|
1703
1752
|
|
|
@@ -1912,33 +1961,6 @@ ReactTextareaAutocomplete.propTypes = {
|
|
|
1912
1961
|
value: PropTypes__default['default'].string
|
|
1913
1962
|
};
|
|
1914
1963
|
|
|
1915
|
-
/**
|
|
1916
|
-
* A round avatar image with fallback to username's first letter
|
|
1917
|
-
*/
|
|
1918
|
-
var Avatar = function (props) {
|
|
1919
|
-
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;
|
|
1920
|
-
var _e = React.useState(false), error = _e[0], setError = _e[1];
|
|
1921
|
-
var _f = React.useState(false), loaded = _f[0], setLoaded = _f[1];
|
|
1922
|
-
React.useEffect(function () {
|
|
1923
|
-
setError(false);
|
|
1924
|
-
setLoaded(false);
|
|
1925
|
-
}, [image]);
|
|
1926
|
-
var nameStr = (name === null || name === void 0 ? void 0 : name.toString()) || '';
|
|
1927
|
-
var initials = getWholeChar(nameStr, 0);
|
|
1928
|
-
return (React__default['default'].createElement("div", { className: "str-chat__avatar str-chat__avatar--" + shape, "data-testid": 'avatar', onClick: onClick, onMouseOver: onMouseOver, style: {
|
|
1929
|
-
flexBasis: size + "px",
|
|
1930
|
-
fontSize: size / 2 + "px",
|
|
1931
|
-
height: size + "px",
|
|
1932
|
-
lineHeight: size + "px",
|
|
1933
|
-
width: size + "px",
|
|
1934
|
-
}, 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: {
|
|
1935
|
-
flexBasis: size + "px",
|
|
1936
|
-
height: size + "px",
|
|
1937
|
-
objectFit: 'cover',
|
|
1938
|
-
width: size + "px",
|
|
1939
|
-
} })) : (React__default['default'].createElement("div", { className: 'str-chat__avatar-fallback', "data-testid": 'avatar-fallback' }, initials))));
|
|
1940
|
-
};
|
|
1941
|
-
|
|
1942
1964
|
var channelReducer = function (state, action) {
|
|
1943
1965
|
var _a;
|
|
1944
1966
|
switch (action.type) {
|
|
@@ -2043,7 +2065,7 @@ var getStrippedEmojiData = function (data) { return (__assign(__assign({}, data)
|
|
|
2043
2065
|
|
|
2044
2066
|
var useCreateChannelStateContext = function (value) {
|
|
2045
2067
|
var _a;
|
|
2046
|
-
var acceptedFiles = value.acceptedFiles, channel = value.channel, _b = value.channelCapabilitiesArray, channelCapabilitiesArray = _b === void 0 ? [] : _b, channelConfig = value.channelConfig, 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;
|
|
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;
|
|
2047
2069
|
var channelId = channel.cid;
|
|
2048
2070
|
var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
|
|
2049
2071
|
var membersLength = Object.keys(members || []).length;
|
|
@@ -2063,24 +2085,24 @@ var useCreateChannelStateContext = function (value) {
|
|
|
2063
2085
|
? messages
|
|
2064
2086
|
: messages
|
|
2065
2087
|
.map(function (_a) {
|
|
2066
|
-
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;
|
|
2067
2089
|
return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
|
|
2068
2090
|
var type = _a.type;
|
|
2069
2091
|
return type;
|
|
2070
2092
|
}).join() : '') + pinned + reply_count + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
|
|
2071
2093
|
? updated_at.toISOString()
|
|
2072
|
-
: updated_at || '');
|
|
2094
|
+
: updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
|
|
2073
2095
|
})
|
|
2074
2096
|
.join();
|
|
2075
2097
|
var memoizedThreadMessageData = threadMessages
|
|
2076
2098
|
.map(function (_a) {
|
|
2077
|
-
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;
|
|
2078
2100
|
return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
|
|
2079
2101
|
var type = _a.type;
|
|
2080
2102
|
return type;
|
|
2081
2103
|
}).join() : '') + pinned + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
|
|
2082
2104
|
? updated_at.toISOString()
|
|
2083
|
-
: updated_at || '');
|
|
2105
|
+
: updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
|
|
2084
2106
|
})
|
|
2085
2107
|
.join();
|
|
2086
2108
|
var channelStateContext = React.useMemo(function () { return ({
|
|
@@ -2088,6 +2110,7 @@ var useCreateChannelStateContext = function (value) {
|
|
|
2088
2110
|
channel: channel,
|
|
2089
2111
|
channelCapabilities: channelCapabilities,
|
|
2090
2112
|
channelConfig: channelConfig,
|
|
2113
|
+
dragAndDropWindow: dragAndDropWindow,
|
|
2091
2114
|
error: error,
|
|
2092
2115
|
hasMore: hasMore,
|
|
2093
2116
|
loading: loading,
|
|
@@ -2509,7 +2532,7 @@ var showMessageActionsBox = function (actions) {
|
|
|
2509
2532
|
return true;
|
|
2510
2533
|
};
|
|
2511
2534
|
var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
2512
|
-
var _a, _b, _c, _d;
|
|
2535
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2513
2536
|
var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
|
|
2514
2537
|
var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
|
|
2515
2538
|
if (prevMessageUI !== nextMessageUI)
|
|
@@ -2527,7 +2550,9 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
2527
2550
|
prevMessage.status === nextMessage.status &&
|
|
2528
2551
|
prevMessage.text === nextMessage.text &&
|
|
2529
2552
|
prevMessage.type === nextMessage.type &&
|
|
2530
|
-
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);
|
|
2531
2556
|
if (!messagesAreEqual)
|
|
2532
2557
|
return false;
|
|
2533
2558
|
var deepEqualProps = deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
|
|
@@ -2540,7 +2565,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
2540
2565
|
);
|
|
2541
2566
|
};
|
|
2542
2567
|
var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
2543
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2568
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2544
2569
|
var prevLastReceivedId = prevProps.lastReceivedId, prevMessage = prevProps.message;
|
|
2545
2570
|
var nextLastReceivedId = nextProps.lastReceivedId, nextMessage = nextProps.message;
|
|
2546
2571
|
if (prevProps.editing !== nextProps.editing)
|
|
@@ -2566,7 +2591,9 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
|
2566
2591
|
prevMessage.status === nextMessage.status &&
|
|
2567
2592
|
prevMessage.text === nextMessage.text &&
|
|
2568
2593
|
prevMessage.type === nextMessage.type &&
|
|
2569
|
-
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);
|
|
2570
2597
|
if (!messagesAreEqual)
|
|
2571
2598
|
return false;
|
|
2572
2599
|
return true;
|
|
@@ -3292,32 +3319,33 @@ var useReactionHandler = function (message) {
|
|
|
3292
3319
|
};
|
|
3293
3320
|
var toggleReaction = throttle__default['default'](function (id, type, add) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3294
3321
|
var newReaction, tempMessage, messageResponse, _a;
|
|
3295
|
-
|
|
3296
|
-
|
|
3322
|
+
var _b;
|
|
3323
|
+
return __generator(this, function (_c) {
|
|
3324
|
+
switch (_c.label) {
|
|
3297
3325
|
case 0:
|
|
3298
|
-
if (!message)
|
|
3326
|
+
if (!message || ((_b = channel.data) === null || _b === void 0 ? void 0 : _b.frozen))
|
|
3299
3327
|
return [2 /*return*/];
|
|
3300
3328
|
newReaction = creatReactionPreview(type);
|
|
3301
3329
|
tempMessage = createMessagePreview(add, newReaction, message);
|
|
3302
|
-
|
|
3330
|
+
_c.label = 1;
|
|
3303
3331
|
case 1:
|
|
3304
|
-
|
|
3332
|
+
_c.trys.push([1, 6, , 7]);
|
|
3305
3333
|
updateMessage(tempMessage);
|
|
3306
3334
|
if (!add) return [3 /*break*/, 3];
|
|
3307
3335
|
return [4 /*yield*/, channel.sendReaction(id, { type: type })];
|
|
3308
3336
|
case 2:
|
|
3309
|
-
_a =
|
|
3337
|
+
_a = _c.sent();
|
|
3310
3338
|
return [3 /*break*/, 5];
|
|
3311
3339
|
case 3: return [4 /*yield*/, channel.deleteReaction(id, type)];
|
|
3312
3340
|
case 4:
|
|
3313
|
-
_a =
|
|
3314
|
-
|
|
3341
|
+
_a = _c.sent();
|
|
3342
|
+
_c.label = 5;
|
|
3315
3343
|
case 5:
|
|
3316
3344
|
messageResponse = _a;
|
|
3317
3345
|
updateMessage(messageResponse.message);
|
|
3318
3346
|
return [3 /*break*/, 7];
|
|
3319
3347
|
case 6:
|
|
3320
|
-
|
|
3348
|
+
_c.sent();
|
|
3321
3349
|
// revert to the original message if the API call fails
|
|
3322
3350
|
updateMessage(message);
|
|
3323
3351
|
return [3 /*break*/, 7];
|
|
@@ -3372,10 +3400,12 @@ var useReactionHandler = function (message) {
|
|
|
3372
3400
|
}); };
|
|
3373
3401
|
};
|
|
3374
3402
|
var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef, closeReactionSelectorOnClick) {
|
|
3375
|
-
var _a
|
|
3376
|
-
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];
|
|
3377
3406
|
var hasListener = React.useRef(false);
|
|
3378
|
-
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;
|
|
3379
3409
|
var messageDeleted = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
|
|
3380
3410
|
var closeDetailedReactions = React.useCallback(function (event) {
|
|
3381
3411
|
var _a;
|
|
@@ -3470,9 +3500,10 @@ var useUserHandler = function (message, eventHandlers) { return ({
|
|
|
3470
3500
|
|
|
3471
3501
|
var QuotedMessage = function () {
|
|
3472
3502
|
var _a, _b;
|
|
3473
|
-
var
|
|
3474
|
-
var
|
|
3503
|
+
var _c = useComponentContext('QuotedMessage'), Attachment = _c.Attachment, ContextAvatar = _c.Avatar;
|
|
3504
|
+
var _d = useMessageContext('QuotedMessage'), isMyMessage = _d.isMyMessage, message = _d.message;
|
|
3475
3505
|
var userLanguage = useTranslationContext('QuotedMessage').userLanguage;
|
|
3506
|
+
var Avatar$1 = ContextAvatar || Avatar;
|
|
3476
3507
|
var quoted_message = message.quoted_message;
|
|
3477
3508
|
if (!quoted_message)
|
|
3478
3509
|
return null;
|
|
@@ -3487,7 +3518,7 @@ var QuotedMessage = function () {
|
|
|
3487
3518
|
return null;
|
|
3488
3519
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
3489
3520
|
React__default['default'].createElement("div", { className: "" + (isMyMessage() ? 'quoted-message mine' : 'quoted-message') },
|
|
3490
|
-
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 })),
|
|
3491
3522
|
React__default['default'].createElement("div", { className: 'quoted-message-inner' },
|
|
3492
3523
|
quotedMessageAttachment && React__default['default'].createElement(Attachment, { attachments: [quotedMessageAttachment] }),
|
|
3493
3524
|
React__default['default'].createElement("div", null, quotedMessageText))),
|
|
@@ -3733,27 +3764,59 @@ var searchLocalUsers = function (params) {
|
|
|
3733
3764
|
});
|
|
3734
3765
|
return matchingUsers;
|
|
3735
3766
|
};
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
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
|
+
}); };
|
|
3757
3820
|
|
|
3758
3821
|
var useUserTrigger = function (params) {
|
|
3759
3822
|
var disableMentions = params.disableMentions, mentionAllAppUsers = params.mentionAllAppUsers, _a = params.mentionQueryParams, mentionQueryParams = _a === void 0 ? {} : _a, onSelectUser = params.onSelectUser, useMentionsTransliteration = params.useMentionsTransliteration;
|
|
@@ -4094,7 +4157,7 @@ var UnMemoizedChatAutoComplete = function (props) {
|
|
|
4094
4157
|
innerRef.current = ref;
|
|
4095
4158
|
}
|
|
4096
4159
|
}, [innerRef]);
|
|
4097
|
-
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 }));
|
|
4098
4161
|
};
|
|
4099
4162
|
var ChatAutoComplete = React__default['default'].memo(UnMemoizedChatAutoComplete);
|
|
4100
4163
|
|
|
@@ -4202,6 +4265,7 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4202
4265
|
var doImageUploadRequest = props.doImageUploadRequest, errorHandler = props.errorHandler;
|
|
4203
4266
|
var imageUploads = state.imageUploads;
|
|
4204
4267
|
var channel = useChannelStateContext('useImageUploads').channel;
|
|
4268
|
+
var getAppSettings = useChatContext('useImageUploads').getAppSettings;
|
|
4205
4269
|
var addNotification = useChannelActionContext('useImageUploads').addNotification;
|
|
4206
4270
|
var t = useTranslationContext('useImageUploads').t;
|
|
4207
4271
|
var removeImage = React.useCallback(function (id) {
|
|
@@ -4209,7 +4273,7 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4209
4273
|
// TODO: cancel upload if still uploading
|
|
4210
4274
|
}, []);
|
|
4211
4275
|
var uploadImage = React.useCallback(function (id) { return __awaiter(void 0, void 0, void 0, function () {
|
|
4212
|
-
var img, file, response, error_1, errorMessage, alreadyRemoved;
|
|
4276
|
+
var img, file, canUpload, response, error_1, errorMessage, alreadyRemoved;
|
|
4213
4277
|
return __generator(this, function (_a) {
|
|
4214
4278
|
switch (_a.label) {
|
|
4215
4279
|
case 0:
|
|
@@ -4220,22 +4284,35 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4220
4284
|
if (img.state !== 'uploading') {
|
|
4221
4285
|
dispatch({ id: id, state: 'uploading', type: 'setImageUpload' });
|
|
4222
4286
|
}
|
|
4223
|
-
|
|
4287
|
+
return [4 /*yield*/, checkUploadPermissions({
|
|
4288
|
+
addNotification: addNotification,
|
|
4289
|
+
file: file,
|
|
4290
|
+
getAppSettings: getAppSettings,
|
|
4291
|
+
t: t,
|
|
4292
|
+
uploadType: 'image',
|
|
4293
|
+
})];
|
|
4224
4294
|
case 1:
|
|
4225
|
-
_a.
|
|
4226
|
-
if (!
|
|
4227
|
-
|
|
4295
|
+
canUpload = _a.sent();
|
|
4296
|
+
if (!canUpload)
|
|
4297
|
+
return [2 /*return*/, removeImage(id)];
|
|
4298
|
+
_a.label = 2;
|
|
4228
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:
|
|
4229
4304
|
response = _a.sent();
|
|
4230
|
-
return [3 /*break*/,
|
|
4231
|
-
case
|
|
4232
|
-
case
|
|
4305
|
+
return [3 /*break*/, 6];
|
|
4306
|
+
case 4: return [4 /*yield*/, channel.sendImage(file)];
|
|
4307
|
+
case 5:
|
|
4233
4308
|
response = _a.sent();
|
|
4234
|
-
_a.label =
|
|
4235
|
-
case
|
|
4236
|
-
case
|
|
4309
|
+
_a.label = 6;
|
|
4310
|
+
case 6: return [3 /*break*/, 8];
|
|
4311
|
+
case 7:
|
|
4237
4312
|
error_1 = _a.sent();
|
|
4238
|
-
errorMessage = typeof error_1.message === 'string'
|
|
4313
|
+
errorMessage = typeof error_1.message === 'string'
|
|
4314
|
+
? error_1.message
|
|
4315
|
+
: t('Error uploading image');
|
|
4239
4316
|
addNotification(errorMessage, 'error');
|
|
4240
4317
|
alreadyRemoved = false;
|
|
4241
4318
|
if (!imageUploads[id]) {
|
|
@@ -4249,7 +4326,7 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
4249
4326
|
errorHandler(error_1, 'upload-image', __assign(__assign({}, file), { id: id }));
|
|
4250
4327
|
}
|
|
4251
4328
|
return [2 /*return*/];
|
|
4252
|
-
case
|
|
4329
|
+
case 8:
|
|
4253
4330
|
// If doImageUploadRequest returns any falsy value, then don't create the upload preview.
|
|
4254
4331
|
// This is for the case if someone wants to handle failure on app level.
|
|
4255
4332
|
if (!response) {
|
|
@@ -4306,6 +4383,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4306
4383
|
var fileUploads = state.fileUploads;
|
|
4307
4384
|
var channel = useChannelStateContext('useFileUploads').channel;
|
|
4308
4385
|
var addNotification = useChannelActionContext('useFileUploads').addNotification;
|
|
4386
|
+
var getAppSettings = useChatContext('useFileUploads').getAppSettings;
|
|
4309
4387
|
var t = useTranslationContext('useFileUploads').t;
|
|
4310
4388
|
var uploadFile = React.useCallback(function (id) {
|
|
4311
4389
|
dispatch({ id: id, state: 'uploading', type: 'setFileUpload' });
|
|
@@ -4316,7 +4394,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4316
4394
|
}, []);
|
|
4317
4395
|
React.useEffect(function () {
|
|
4318
4396
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
4319
|
-
var upload, file, id, response, error_1, errorMessage, alreadyRemoved;
|
|
4397
|
+
var upload, file, id, canUpload, response, error_1, errorMessage, alreadyRemoved;
|
|
4320
4398
|
return __generator(this, function (_a) {
|
|
4321
4399
|
switch (_a.label) {
|
|
4322
4400
|
case 0:
|
|
@@ -4324,22 +4402,35 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4324
4402
|
if (!upload)
|
|
4325
4403
|
return [2 /*return*/];
|
|
4326
4404
|
file = upload.file, id = upload.id;
|
|
4327
|
-
|
|
4405
|
+
return [4 /*yield*/, checkUploadPermissions({
|
|
4406
|
+
addNotification: addNotification,
|
|
4407
|
+
file: file,
|
|
4408
|
+
getAppSettings: getAppSettings,
|
|
4409
|
+
t: t,
|
|
4410
|
+
uploadType: 'file',
|
|
4411
|
+
})];
|
|
4328
4412
|
case 1:
|
|
4329
|
-
_a.
|
|
4330
|
-
if (!
|
|
4331
|
-
|
|
4413
|
+
canUpload = _a.sent();
|
|
4414
|
+
if (!canUpload)
|
|
4415
|
+
return [2 /*return*/, removeFile(id)];
|
|
4416
|
+
_a.label = 2;
|
|
4332
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:
|
|
4333
4422
|
response = _a.sent();
|
|
4334
|
-
return [3 /*break*/,
|
|
4335
|
-
case
|
|
4336
|
-
case
|
|
4423
|
+
return [3 /*break*/, 6];
|
|
4424
|
+
case 4: return [4 /*yield*/, channel.sendFile(file)];
|
|
4425
|
+
case 5:
|
|
4337
4426
|
response = _a.sent();
|
|
4338
|
-
_a.label =
|
|
4339
|
-
case
|
|
4340
|
-
case
|
|
4427
|
+
_a.label = 6;
|
|
4428
|
+
case 6: return [3 /*break*/, 8];
|
|
4429
|
+
case 7:
|
|
4341
4430
|
error_1 = _a.sent();
|
|
4342
|
-
errorMessage = typeof error_1.message === 'string'
|
|
4431
|
+
errorMessage = typeof error_1.message === 'string'
|
|
4432
|
+
? error_1.message
|
|
4433
|
+
: t('Error uploading file');
|
|
4343
4434
|
addNotification(errorMessage, 'error');
|
|
4344
4435
|
alreadyRemoved = false;
|
|
4345
4436
|
if (!fileUploads[id]) {
|
|
@@ -4353,7 +4444,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4353
4444
|
errorHandler(error_1, 'upload-file', file);
|
|
4354
4445
|
}
|
|
4355
4446
|
return [2 /*return*/];
|
|
4356
|
-
case
|
|
4447
|
+
case 8:
|
|
4357
4448
|
// If doImageUploadRequest returns any falsy value, then don't create the upload preview.
|
|
4358
4449
|
// This is for the case if someone wants to handle failure on app level.
|
|
4359
4450
|
if (!response) {
|
|
@@ -4378,7 +4469,7 @@ var useFileUploads = function (props, state, dispatch) {
|
|
|
4378
4469
|
};
|
|
4379
4470
|
|
|
4380
4471
|
var apiMaxNumberOfFiles = 10;
|
|
4381
|
-
var useAttachments = function (props, state, dispatch) {
|
|
4472
|
+
var useAttachments = function (props, state, dispatch, textareaRef) {
|
|
4382
4473
|
var noFiles = props.noFiles;
|
|
4383
4474
|
var fileUploads = state.fileUploads, imageUploads = state.imageUploads;
|
|
4384
4475
|
var _a = useChannelStateContext('useAttachments'), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
@@ -4399,6 +4490,7 @@ var useAttachments = function (props, state, dispatch) {
|
|
|
4399
4490
|
var numberOfUploads = numberOfImages + numberOfFiles;
|
|
4400
4491
|
var maxFilesLeft = maxFilesAllowed - numberOfUploads;
|
|
4401
4492
|
var uploadNewFiles = React.useCallback(function (files) {
|
|
4493
|
+
var _a;
|
|
4402
4494
|
Array.from(files)
|
|
4403
4495
|
.slice(0, maxFilesLeft)
|
|
4404
4496
|
.forEach(function (file) {
|
|
@@ -4412,6 +4504,7 @@ var useAttachments = function (props, state, dispatch) {
|
|
|
4412
4504
|
dispatch({ file: file, id: id, state: 'uploading', type: 'setFileUpload' });
|
|
4413
4505
|
}
|
|
4414
4506
|
});
|
|
4507
|
+
(_a = textareaRef === null || textareaRef === void 0 ? void 0 : textareaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
4415
4508
|
}, [maxFilesLeft, noFiles]);
|
|
4416
4509
|
return {
|
|
4417
4510
|
maxFilesLeft: maxFilesLeft,
|
|
@@ -4494,7 +4587,7 @@ var useMessageInputText = function (props, state, dispatch) {
|
|
|
4494
4587
|
};
|
|
4495
4588
|
};
|
|
4496
4589
|
|
|
4497
|
-
var useEmojiPicker = function (state, dispatch, insertText) {
|
|
4590
|
+
var useEmojiPicker = function (state, dispatch, insertText, textareaRef, closeEmojiPickerOnClick) {
|
|
4498
4591
|
var emojiPickerRef = React.useRef(null);
|
|
4499
4592
|
var closeEmojiPicker = React.useCallback(function (event) {
|
|
4500
4593
|
if (emojiPickerRef.current && !emojiPickerRef.current.contains(event.target)) {
|
|
@@ -4540,9 +4633,17 @@ var useEmojiPicker = function (state, dispatch, insertText) {
|
|
|
4540
4633
|
document.removeEventListener('keydown', handleEmojiEscape);
|
|
4541
4634
|
};
|
|
4542
4635
|
}, [closeEmojiPicker, state.emojiPickerIsOpen]);
|
|
4543
|
-
var onSelectEmoji = React.useCallback(function (emoji) {
|
|
4544
|
-
|
|
4545
|
-
|
|
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]);
|
|
4546
4647
|
return {
|
|
4547
4648
|
closeEmojiPicker: closeEmojiPicker,
|
|
4548
4649
|
emojiPickerRef: emojiPickerRef,
|
|
@@ -4757,7 +4858,7 @@ var initState = function (message) {
|
|
|
4757
4858
|
var id = generateRandomId();
|
|
4758
4859
|
acc[id] = {
|
|
4759
4860
|
file: {
|
|
4760
|
-
name: attachment.fallback,
|
|
4861
|
+
name: attachment.fallback || '',
|
|
4761
4862
|
},
|
|
4762
4863
|
id: id,
|
|
4763
4864
|
state: 'finished',
|
|
@@ -4864,11 +4965,12 @@ var messageInputReducer = function (state, action) {
|
|
|
4864
4965
|
* hook for MessageInput state
|
|
4865
4966
|
*/
|
|
4866
4967
|
var useMessageInputState = function (props) {
|
|
4867
|
-
var message = props.message;
|
|
4968
|
+
var closeEmojiPickerOnClick = props.closeEmojiPickerOnClick, message = props.message;
|
|
4868
4969
|
var _a = useChannelStateContext('useMessageInputState'), _b = _a.channelCapabilities, channelCapabilities = _b === void 0 ? {} : _b, channelConfig = _a.channelConfig;
|
|
4869
4970
|
var _c = React.useReducer(messageInputReducer, message, initState), state = _c[0], dispatch = _c[1];
|
|
4870
4971
|
var _d = useMessageInputText(props, state, dispatch), handleChange = _d.handleChange, insertText = _d.insertText, textareaRef = _d.textareaRef;
|
|
4871
4972
|
var _e = React.useState(false), showCommandsList = _e[0], setShowCommandsList = _e[1];
|
|
4973
|
+
var _f = React.useState(false), showMentionsList = _f[0], setShowMentionsList = _f[1];
|
|
4872
4974
|
var openCommandsList = function () {
|
|
4873
4975
|
dispatch({
|
|
4874
4976
|
getNewText: function () { return '/'; },
|
|
@@ -4877,8 +4979,16 @@ var useMessageInputState = function (props) {
|
|
|
4877
4979
|
setShowCommandsList(true);
|
|
4878
4980
|
};
|
|
4879
4981
|
var closeCommandsList = function () { return setShowCommandsList(false); };
|
|
4880
|
-
var
|
|
4881
|
-
|
|
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;
|
|
4882
4992
|
var handleSubmit = useSubmitHandler(props, state, dispatch, numberOfUploads).handleSubmit;
|
|
4883
4993
|
var onPaste = usePasteHandler(uploadNewFiles, insertText).onPaste;
|
|
4884
4994
|
var isUploadEnabled = (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.uploads) !== false && channelCapabilities['upload-file'] !== false;
|
|
@@ -4893,7 +5003,7 @@ var useMessageInputState = function (props) {
|
|
|
4893
5003
|
* TODO: fix the below at some point because this type casting is wrong
|
|
4894
5004
|
* and just forced to not have warnings currently with the unknown casting
|
|
4895
5005
|
*/
|
|
4896
|
-
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 });
|
|
4897
5007
|
};
|
|
4898
5008
|
|
|
4899
5009
|
var QuotedMessagePreviewHeader = function () {
|
|
@@ -4956,7 +5066,7 @@ var MessageInputFlat = function () {
|
|
|
4956
5066
|
};
|
|
4957
5067
|
|
|
4958
5068
|
var useCreateMessageInputContext = function (value) {
|
|
4959
|
-
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;
|
|
4960
5070
|
var editing = message === null || message === void 0 ? void 0 : message.editing;
|
|
4961
5071
|
var fileUploadsValue = Object.entries(fileUploads)
|
|
4962
5072
|
// eslint-disable-next-line
|
|
@@ -4981,6 +5091,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
4981
5091
|
clearEditingState: clearEditingState,
|
|
4982
5092
|
closeCommandsList: closeCommandsList,
|
|
4983
5093
|
closeEmojiPicker: closeEmojiPicker,
|
|
5094
|
+
closeMentionsList: closeMentionsList,
|
|
4984
5095
|
cooldownInterval: cooldownInterval,
|
|
4985
5096
|
cooldownRemaining: cooldownRemaining,
|
|
4986
5097
|
disabled: disabled,
|
|
@@ -5016,6 +5127,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5016
5127
|
onSelectUser: onSelectUser,
|
|
5017
5128
|
openCommandsList: openCommandsList,
|
|
5018
5129
|
openEmojiPicker: openEmojiPicker,
|
|
5130
|
+
openMentionsList: openMentionsList,
|
|
5019
5131
|
overrideSubmitHandler: overrideSubmitHandler,
|
|
5020
5132
|
parent: parent,
|
|
5021
5133
|
publishTypingEvent: publishTypingEvent,
|
|
@@ -5024,6 +5136,7 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5024
5136
|
setCooldownRemaining: setCooldownRemaining,
|
|
5025
5137
|
setText: setText,
|
|
5026
5138
|
showCommandsList: showCommandsList,
|
|
5139
|
+
showMentionsList: showMentionsList,
|
|
5027
5140
|
text: text,
|
|
5028
5141
|
textareaRef: textareaRef,
|
|
5029
5142
|
uploadFile: uploadFile,
|
|
@@ -5041,19 +5154,30 @@ var useCreateMessageInputContext = function (value) {
|
|
|
5041
5154
|
mentionedUsersLength,
|
|
5042
5155
|
parentId,
|
|
5043
5156
|
publishTypingEvent,
|
|
5157
|
+
showCommandsList,
|
|
5158
|
+
showMentionsList,
|
|
5044
5159
|
text,
|
|
5045
5160
|
]);
|
|
5046
5161
|
return messageInputContext;
|
|
5047
5162
|
};
|
|
5048
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
|
+
};
|
|
5049
5170
|
var UnMemoizedMessageInput = function (props) {
|
|
5050
5171
|
var PropInput = props.Input;
|
|
5172
|
+
var dragAndDropWindow = useChannelStateContext().dragAndDropWindow;
|
|
5051
5173
|
var _a = useComponentContext('MessageInput'), ContextInput = _a.Input, _b = _a.TriggerProvider, TriggerProvider = _b === void 0 ? DefaultTriggerProvider : _b;
|
|
5052
5174
|
var Input = PropInput || ContextInput || MessageInputFlat;
|
|
5053
|
-
var
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
|
|
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),
|
|
5057
5181
|
React__default['default'].createElement(TriggerProvider, null,
|
|
5058
5182
|
React__default['default'].createElement(Input, null))));
|
|
5059
5183
|
};
|
|
@@ -5411,6 +5535,20 @@ var MessageSimple = function (props) {
|
|
|
5411
5535
|
return React__default['default'].createElement(MemoizedMessageSimple, __assign({}, messageContext, props));
|
|
5412
5536
|
};
|
|
5413
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
|
+
|
|
5414
5552
|
var TypingContext = React__default['default'].createContext(undefined);
|
|
5415
5553
|
var TypingProvider = function (_a) {
|
|
5416
5554
|
var children = _a.children, value = _a.value;
|
|
@@ -5452,14 +5590,14 @@ var UnMemoizedChannel = function (props) {
|
|
|
5452
5590
|
};
|
|
5453
5591
|
var ChannelInner = function (props) {
|
|
5454
5592
|
var _a;
|
|
5455
|
-
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.
|
|
5456
|
-
var
|
|
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;
|
|
5457
5595
|
var t = useTranslationContext('Channel').t;
|
|
5458
|
-
var
|
|
5459
|
-
var
|
|
5460
|
-
var
|
|
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];
|
|
5461
5599
|
var notificationTimeouts = [];
|
|
5462
|
-
var
|
|
5600
|
+
var _m = React.useReducer(channelReducer, initialState), state = _m[0], dispatch = _m[1];
|
|
5463
5601
|
var isMounted = useIsMounted();
|
|
5464
5602
|
var originalTitle = React.useRef('');
|
|
5465
5603
|
var lastRead = React.useRef(new Date());
|
|
@@ -5823,7 +5961,7 @@ var ChannelInner = function (props) {
|
|
|
5823
5961
|
var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
|
|
5824
5962
|
var editMessage = useEditMessageHandler(doUpdateMessageRequest);
|
|
5825
5963
|
var typing = state.typing, restState = __rest(state, ["typing"]);
|
|
5826
|
-
var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, 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 }));
|
|
5827
5965
|
var channelActionContextValue = React.useMemo(function () { return ({
|
|
5828
5966
|
addNotification: addNotification,
|
|
5829
5967
|
closeThread: closeThread,
|
|
@@ -5893,6 +6031,11 @@ var ChannelInner = function (props) {
|
|
|
5893
6031
|
var windowsEmojiClass = useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/)
|
|
5894
6032
|
? 'str-chat--windows-flags'
|
|
5895
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]);
|
|
5896
6039
|
if (state.error) {
|
|
5897
6040
|
return (React__default['default'].createElement("div", { className: chatClass + " " + channelClass + " " + theme },
|
|
5898
6041
|
React__default['default'].createElement(LoadingErrorIndicator$1, { error: state.error })));
|
|
@@ -5911,7 +6054,8 @@ var ChannelInner = function (props) {
|
|
|
5911
6054
|
React__default['default'].createElement(ComponentProvider, { value: componentContextValue },
|
|
5912
6055
|
React__default['default'].createElement(EmojiProvider, { value: emojiContextValue },
|
|
5913
6056
|
React__default['default'].createElement(TypingProvider, { value: typingContextValue },
|
|
5914
|
-
React__default['default'].createElement("div", { className: "" + chatContainerClass },
|
|
6057
|
+
React__default['default'].createElement("div", { className: "" + chatContainerClass },
|
|
6058
|
+
React__default['default'].createElement(OptionalMessageInputProvider, __assign({}, optionalMessageInputProps), children)))))))));
|
|
5915
6059
|
};
|
|
5916
6060
|
/**
|
|
5917
6061
|
* A wrapper component that provides channel data and renders children.
|
|
@@ -6289,6 +6433,7 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
6289
6433
|
return __generator(this, function (_b) {
|
|
6290
6434
|
switch (_b.label) {
|
|
6291
6435
|
case 0:
|
|
6436
|
+
setError(false);
|
|
6292
6437
|
if (queryType === 'reload') {
|
|
6293
6438
|
setChannels([]);
|
|
6294
6439
|
setLoadingChannels(true);
|
|
@@ -6747,7 +6892,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6747
6892
|
return __generator(this, function (_a) {
|
|
6748
6893
|
switch (_a.label) {
|
|
6749
6894
|
case 0:
|
|
6750
|
-
if (channels.length
|
|
6895
|
+
if (!channels.length || channels.length > ((options === null || options === void 0 ? void 0 : options.limit) || MAX_QUERY_CHANNELS_LIMIT)) {
|
|
6751
6896
|
return [2 /*return*/];
|
|
6752
6897
|
}
|
|
6753
6898
|
if (!customActiveChannel) return [3 /*break*/, 3];
|
|
@@ -6798,7 +6943,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6798
6943
|
useUserPresenceChangedListener(setChannels);
|
|
6799
6944
|
React.useEffect(function () {
|
|
6800
6945
|
var handleEvent = function (event) {
|
|
6801
|
-
if (
|
|
6946
|
+
if (event.cid === (channel === null || channel === void 0 ? void 0 : channel.cid)) {
|
|
6802
6947
|
setActiveChannel();
|
|
6803
6948
|
}
|
|
6804
6949
|
};
|
|
@@ -6808,10 +6953,8 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6808
6953
|
client.off('channel.deleted', handleEvent);
|
|
6809
6954
|
client.off('channel.hidden', handleEvent);
|
|
6810
6955
|
};
|
|
6811
|
-
}, [channel]);
|
|
6956
|
+
}, [channel === null || channel === void 0 ? void 0 : channel.cid]);
|
|
6812
6957
|
var renderChannel = function (item) {
|
|
6813
|
-
if (!item)
|
|
6814
|
-
return null;
|
|
6815
6958
|
var previewProps = {
|
|
6816
6959
|
activeChannel: channel,
|
|
6817
6960
|
Avatar: Avatar$1,
|
|
@@ -6824,7 +6967,6 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6824
6967
|
};
|
|
6825
6968
|
return React__default['default'].createElement(ChannelPreview, __assign({}, previewProps));
|
|
6826
6969
|
};
|
|
6827
|
-
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))))); };
|
|
6828
6970
|
var chatClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.chat) || 'str-chat';
|
|
6829
6971
|
var channelListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.channelList) || 'str-chat-channel-list';
|
|
6830
6972
|
var navigationClass = navOpen ? 'str-chat-channel-list--open' : '';
|
|
@@ -6834,36 +6976,36 @@ var UnMemoizedChannelList = function (props) {
|
|
|
6834
6976
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
6835
6977
|
React__default['default'].createElement("div", { className: chatClass + " " + channelListClass + " " + theme + " " + navigationClass + " " + windowsEmojiClass, ref: channelListRef },
|
|
6836
6978
|
showChannelSearch && React__default['default'].createElement(ChannelSearch$1, __assign({}, additionalChannelSearchProps)),
|
|
6837
|
-
|
|
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)))))));
|
|
6838
6980
|
};
|
|
6839
6981
|
/**
|
|
6840
6982
|
* Renders a preview list of Channels, allowing you to select the Channel you want to open
|
|
6841
6983
|
*/
|
|
6842
6984
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
6843
6985
|
|
|
6844
|
-
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,"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..."};
|
|
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..."};
|
|
6845
6987
|
|
|
6846
|
-
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..."};
|
|
6847
6989
|
|
|
6848
|
-
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..."};
|
|
6849
6991
|
|
|
6850
|
-
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..."};
|
|
6851
6993
|
|
|
6852
|
-
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...":"🏙 अटैचमेंट"};
|
|
6853
6995
|
|
|
6854
|
-
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..."};
|
|
6855
6997
|
|
|
6856
|
-
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...":"🏙 アタッチメント..."};
|
|
6857
6999
|
|
|
6858
|
-
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...":"🏙 부착..."};
|
|
6859
7001
|
|
|
6860
|
-
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..."};
|
|
6861
7003
|
|
|
6862
|
-
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 ..."};
|
|
6863
7005
|
|
|
6864
|
-
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...":"🏙 Вложение..."};
|
|
6865
7007
|
|
|
6866
|
-
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..."};
|
|
6867
7009
|
|
|
6868
7010
|
var defaultNS = 'translation';
|
|
6869
7011
|
var defaultLng = 'en';
|
|
@@ -6959,19 +7101,19 @@ Dayjs__default['default'].updateLocale('it', {
|
|
|
6959
7101
|
Dayjs__default['default'].updateLocale('ja', {
|
|
6960
7102
|
calendar: {
|
|
6961
7103
|
lastDay: '[昨日] LT',
|
|
6962
|
-
lastWeek: '
|
|
7104
|
+
lastWeek: 'dddd LT',
|
|
6963
7105
|
nextDay: '[明日] LT',
|
|
6964
|
-
nextWeek: '
|
|
6965
|
-
sameDay: '[
|
|
7106
|
+
nextWeek: '[次の] dddd LT',
|
|
7107
|
+
sameDay: '[今日] LT',
|
|
6966
7108
|
sameElse: 'L',
|
|
6967
7109
|
},
|
|
6968
7110
|
});
|
|
6969
7111
|
Dayjs__default['default'].updateLocale('ko', {
|
|
6970
7112
|
calendar: {
|
|
6971
7113
|
lastDay: '[어제] LT',
|
|
6972
|
-
lastWeek: '[
|
|
7114
|
+
lastWeek: '[지난] dddd LT',
|
|
6973
7115
|
nextDay: '[내일] LT',
|
|
6974
|
-
nextWeek: 'dddd
|
|
7116
|
+
nextWeek: 'dddd LT',
|
|
6975
7117
|
sameDay: '[오늘] LT',
|
|
6976
7118
|
sameElse: 'L',
|
|
6977
7119
|
},
|
|
@@ -7464,7 +7606,7 @@ var Streami18n = /** @class */ (function () {
|
|
|
7464
7606
|
return Streami18n;
|
|
7465
7607
|
}());
|
|
7466
7608
|
|
|
7467
|
-
var version = '6.
|
|
7609
|
+
var version = '6.12.2';
|
|
7468
7610
|
|
|
7469
7611
|
var useChat = function (_a) {
|
|
7470
7612
|
var _b;
|
|
@@ -7480,13 +7622,19 @@ var useChat = function (_a) {
|
|
|
7480
7622
|
var clientMutes = (_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes;
|
|
7481
7623
|
var closeMobileNav = function () { return setNavOpen(false); };
|
|
7482
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
|
+
};
|
|
7483
7633
|
React.useEffect(function () {
|
|
7484
7634
|
if (client) {
|
|
7485
7635
|
var userAgent = client.getUserAgent();
|
|
7486
7636
|
if (!userAgent.includes('stream-chat-react')) {
|
|
7487
|
-
|
|
7488
|
-
* results in something like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
7489
|
-
*/
|
|
7637
|
+
// result looks like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
7490
7638
|
client.setUserAgent("stream-chat-react-" + version + "-" + userAgent);
|
|
7491
7639
|
}
|
|
7492
7640
|
}
|
|
@@ -7499,7 +7647,7 @@ var useChat = function (_a) {
|
|
|
7499
7647
|
};
|
|
7500
7648
|
client.on('notification.mutes_updated', handleEvent);
|
|
7501
7649
|
return function () { return client.off('notification.mutes_updated', handleEvent); };
|
|
7502
|
-
}, [
|
|
7650
|
+
}, [clientMutes === null || clientMutes === void 0 ? void 0 : clientMutes.length]);
|
|
7503
7651
|
React.useEffect(function () {
|
|
7504
7652
|
var _a;
|
|
7505
7653
|
var userLanguage = (_a = client.user) === null || _a === void 0 ? void 0 : _a.language;
|
|
@@ -7514,7 +7662,7 @@ var useChat = function (_a) {
|
|
|
7514
7662
|
streami18n.getTranslators().then(function (translator) {
|
|
7515
7663
|
setTranslators(__assign(__assign({}, translator), { userLanguage: userLanguage || defaultLanguage }));
|
|
7516
7664
|
});
|
|
7517
|
-
}, [
|
|
7665
|
+
}, [i18nInstance]);
|
|
7518
7666
|
var setActiveChannel = React.useCallback(function (activeChannel, watchers, event) {
|
|
7519
7667
|
if (watchers === void 0) { watchers = {}; }
|
|
7520
7668
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -7539,6 +7687,7 @@ var useChat = function (_a) {
|
|
|
7539
7687
|
return {
|
|
7540
7688
|
channel: channel,
|
|
7541
7689
|
closeMobileNav: closeMobileNav,
|
|
7690
|
+
getAppSettings: getAppSettings,
|
|
7542
7691
|
mutes: mutes,
|
|
7543
7692
|
navOpen: navOpen,
|
|
7544
7693
|
openMobileNav: openMobileNav,
|
|
@@ -7549,7 +7698,7 @@ var useChat = function (_a) {
|
|
|
7549
7698
|
|
|
7550
7699
|
var useCreateChatContext = function (value) {
|
|
7551
7700
|
var _a;
|
|
7552
|
-
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;
|
|
7553
7702
|
var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
|
|
7554
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);
|
|
7555
7704
|
var mutedUsersLength = mutes.length;
|
|
@@ -7558,13 +7707,14 @@ var useCreateChatContext = function (value) {
|
|
|
7558
7707
|
client: client,
|
|
7559
7708
|
closeMobileNav: closeMobileNav,
|
|
7560
7709
|
customClasses: customClasses,
|
|
7710
|
+
getAppSettings: getAppSettings,
|
|
7561
7711
|
mutes: mutes,
|
|
7562
7712
|
navOpen: navOpen,
|
|
7563
7713
|
openMobileNav: openMobileNav,
|
|
7564
7714
|
setActiveChannel: setActiveChannel,
|
|
7565
7715
|
theme: theme,
|
|
7566
7716
|
useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
|
|
7567
|
-
}); }, [channelCid, clientValues, mutedUsersLength, navOpen]);
|
|
7717
|
+
}); }, [channelCid, clientValues, getAppSettings, mutedUsersLength, navOpen]);
|
|
7568
7718
|
return chatContext;
|
|
7569
7719
|
};
|
|
7570
7720
|
|
|
@@ -7604,13 +7754,14 @@ var useCustomStyles = function (customStyles) {
|
|
|
7604
7754
|
*/
|
|
7605
7755
|
var Chat = function (props) {
|
|
7606
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;
|
|
7607
|
-
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;
|
|
7608
7758
|
useCustomStyles(darkMode ? darkModeTheme : customStyles);
|
|
7609
7759
|
var chatContextValue = useCreateChatContext({
|
|
7610
7760
|
channel: channel,
|
|
7611
7761
|
client: client,
|
|
7612
7762
|
closeMobileNav: closeMobileNav,
|
|
7613
7763
|
customClasses: customClasses,
|
|
7764
|
+
getAppSettings: getAppSettings,
|
|
7614
7765
|
mutes: mutes,
|
|
7615
7766
|
navOpen: navOpen,
|
|
7616
7767
|
openMobileNav: openMobileNav,
|
|
@@ -8416,7 +8567,7 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
|
|
|
8416
8567
|
};
|
|
8417
8568
|
|
|
8418
8569
|
var useEnrichedMessages = function (args) {
|
|
8419
|
-
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;
|
|
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;
|
|
8420
8571
|
var client = useChatContext('useEnrichedMessages').client;
|
|
8421
8572
|
var HeaderComponent = useComponentContext('useEnrichedMessages').HeaderComponent;
|
|
8422
8573
|
var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
@@ -8434,9 +8585,10 @@ var useEnrichedMessages = function (args) {
|
|
|
8434
8585
|
if (HeaderComponent) {
|
|
8435
8586
|
messagesWithDates = insertIntro(messagesWithDates, headerPosition);
|
|
8436
8587
|
}
|
|
8588
|
+
var groupStylesFn = groupStyles || getGroupStyles;
|
|
8437
8589
|
var messageGroupStyles = React.useMemo(function () {
|
|
8438
8590
|
return messagesWithDates.reduce(function (acc, message, i) {
|
|
8439
|
-
var style =
|
|
8591
|
+
var style = groupStylesFn(message, messagesWithDates[i - 1], messagesWithDates[i + 1], noGroupByUser);
|
|
8440
8592
|
if (style)
|
|
8441
8593
|
acc[message.id] = style;
|
|
8442
8594
|
return acc;
|
|
@@ -8486,7 +8638,7 @@ var useMessageListElements = function (props) {
|
|
|
8486
8638
|
}
|
|
8487
8639
|
var groupStyles = messageGroupStyles[message.id] || '';
|
|
8488
8640
|
var messageClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.message) || "str-chat__li str-chat__li--" + groupStyles;
|
|
8489
|
-
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 },
|
|
8490
8642
|
React__default['default'].createElement(Message, __assign({ groupStyles: [groupStyles], lastReceivedId: lastReceivedId, message: message, readBy: readData[message.id] || [], threadList: threadList }, internalMessageProps))));
|
|
8491
8643
|
});
|
|
8492
8644
|
}, [
|
|
@@ -8645,14 +8797,25 @@ var UnMemoizedMessageNotification = function (props) {
|
|
|
8645
8797
|
};
|
|
8646
8798
|
var MessageNotification = React__default['default'].memo(UnMemoizedMessageNotification);
|
|
8647
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
|
+
|
|
8648
8809
|
/**
|
|
8649
8810
|
* TypingIndicator lists users currently typing, it needs to be a child of Channel component
|
|
8650
8811
|
*/
|
|
8651
8812
|
var UnMemoizedTypingIndicator = function (props) {
|
|
8652
|
-
var
|
|
8653
|
-
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;
|
|
8654
8815
|
var client = useChatContext('TypingIndicator').client;
|
|
8655
|
-
var
|
|
8816
|
+
var ContextAvatar = useComponentContext('TypingIndicator').Avatar;
|
|
8817
|
+
var _c = useTypingContext('TypingIndicator').typing, typing = _c === void 0 ? {} : _c;
|
|
8818
|
+
var Avatar$1 = PropAvatar || ContextAvatar || Avatar;
|
|
8656
8819
|
if ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.typing_events) === false) {
|
|
8657
8820
|
return null;
|
|
8658
8821
|
}
|
|
@@ -8684,25 +8847,17 @@ var UnMemoizedTypingIndicator = function (props) {
|
|
|
8684
8847
|
};
|
|
8685
8848
|
var TypingIndicator = React__default['default'].memo(UnMemoizedTypingIndicator);
|
|
8686
8849
|
|
|
8687
|
-
var DefaultMessageListNotifications = function (props) {
|
|
8688
|
-
var hasNewMessages = props.hasNewMessages, MessageNotification = props.MessageNotification, notifications = props.notifications, scrollToBottom = props.scrollToBottom;
|
|
8689
|
-
var t = useTranslationContext('DefaultMessageListNotifications').t;
|
|
8690
|
-
return (React__default['default'].createElement("div", { className: 'str-chat__list-notifications' },
|
|
8691
|
-
notifications.map(function (notification) { return (React__default['default'].createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)); }),
|
|
8692
|
-
React__default['default'].createElement(ConnectionStatus, null),
|
|
8693
|
-
React__default['default'].createElement(MessageNotification, { onClick: scrollToBottom, showNotification: hasNewMessages }, t('New Messages!'))));
|
|
8694
|
-
};
|
|
8695
8850
|
var useInternalInfiniteScrollProps = function (props) {
|
|
8696
8851
|
var _a = useComponentContext('useInternalInfiniteScrollProps').LoadingIndicator, LoadingIndicator$1 = _a === void 0 ? LoadingIndicator : _a;
|
|
8697
8852
|
return __assign({ hasMore: props.hasMore, isLoading: props.loadingMore, loader: (React__default['default'].createElement(Center, { key: 'loadingindicator' },
|
|
8698
8853
|
React__default['default'].createElement(LoadingIndicator$1, { size: 20 }))), loadMore: useCallLoadMore(props.loadMore, props.messageLimit || 100) }, props.internalInfiniteScrollProps);
|
|
8699
8854
|
};
|
|
8700
8855
|
var MessageListWithContext = function (props) {
|
|
8701
|
-
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, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
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
|
|
8702
8857
|
_h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
8703
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;
|
|
8704
8859
|
var customClasses = useChatContext('MessageList').customClasses;
|
|
8705
|
-
var _l = useComponentContext('MessageList'), _m = _l.EmptyStateIndicator, EmptyStateIndicator$1 = _m === void 0 ? EmptyStateIndicator : _m, _o = _l.MessageListNotifications, MessageListNotifications = _o === void 0 ?
|
|
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;
|
|
8706
8861
|
var _r = useScrollLocationLogic({
|
|
8707
8862
|
messages: messages,
|
|
8708
8863
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
@@ -8710,6 +8865,7 @@ var MessageListWithContext = function (props) {
|
|
|
8710
8865
|
var _s = useEnrichedMessages({
|
|
8711
8866
|
channel: channel,
|
|
8712
8867
|
disableDateSeparator: disableDateSeparator,
|
|
8868
|
+
groupStyles: groupStyles,
|
|
8713
8869
|
headerPosition: headerPosition,
|
|
8714
8870
|
hideDeletedMessages: hideDeletedMessages,
|
|
8715
8871
|
hideNewMessageSeparator: hideNewMessageSeparator,
|
|
@@ -8759,7 +8915,7 @@ var MessageListWithContext = function (props) {
|
|
|
8759
8915
|
React__default['default'].createElement("ul", { className: 'str-chat__ul' }, elements),
|
|
8760
8916
|
React__default['default'].createElement(TypingIndicator$1, { threadList: threadList }),
|
|
8761
8917
|
React__default['default'].createElement("div", { key: 'bottom' })))),
|
|
8762
|
-
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 })));
|
|
8763
8919
|
};
|
|
8764
8920
|
/**
|
|
8765
8921
|
* The MessageList component renders a list of Messages.
|
|
@@ -8886,15 +9042,14 @@ function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
|
8886
9042
|
|
|
8887
9043
|
var PREPEND_OFFSET = Math.pow(10, 7);
|
|
8888
9044
|
var VirtualizedMessageListWithContext = function (props) {
|
|
8889
|
-
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,
|
|
8890
9046
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
8891
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;
|
|
8892
|
-
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.
|
|
8893
|
-
var
|
|
8894
|
-
var t = useTranslationContext('VirtualizedMessageList').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;
|
|
8895
9050
|
var lastRead = React.useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
8896
9051
|
var MessageUIComponent = propMessage || contextMessage;
|
|
8897
|
-
var
|
|
9052
|
+
var _w = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _w.giphyPreviewMessage, setGiphyPreviewMessage = _w.setGiphyPreviewMessage;
|
|
8898
9053
|
var processedMessages = React.useMemo(function () {
|
|
8899
9054
|
if (typeof messages === 'undefined') {
|
|
8900
9055
|
return [];
|
|
@@ -8925,7 +9080,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
8925
9080
|
client.userID,
|
|
8926
9081
|
]);
|
|
8927
9082
|
var virtuoso = React.useRef(null);
|
|
8928
|
-
var
|
|
9083
|
+
var _x = useNewMessageNotification(processedMessages, client.userID), atBottom = _x.atBottom, newMessagesNotification = _x.newMessagesNotification, setNewMessagesNotification = _x.setNewMessagesNotification;
|
|
8929
9084
|
var scrollToBottom = React.useCallback(function () {
|
|
8930
9085
|
if (virtuoso.current) {
|
|
8931
9086
|
virtuoso.current.scrollToIndex(processedMessages.length - 1);
|
|
@@ -9014,9 +9169,8 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9014
9169
|
var virtualizedMessageListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list';
|
|
9015
9170
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
9016
9171
|
React__default['default'].createElement("div", { className: virtualizedMessageListClass },
|
|
9017
|
-
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 } : {}))),
|
|
9018
|
-
|
|
9019
|
-
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 }),
|
|
9020
9174
|
giphyPreviewMessage && React__default['default'].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
|
|
9021
9175
|
};
|
|
9022
9176
|
/**
|
|
@@ -9027,9 +9181,9 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9027
9181
|
*/
|
|
9028
9182
|
function VirtualizedMessageList(props) {
|
|
9029
9183
|
var loadMore = useChannelActionContext('VirtualizedMessageList').loadMore;
|
|
9030
|
-
var _a = useChannelStateContext('VirtualizedMessageList'), channel = _a.channel, hasMore = _a.hasMore, loadingMore = _a.loadingMore, contextMessages = _a.messages;
|
|
9184
|
+
var _a = useChannelStateContext('VirtualizedMessageList'), channel = _a.channel, hasMore = _a.hasMore, loadingMore = _a.loadingMore, contextMessages = _a.messages, notifications = _a.notifications;
|
|
9031
9185
|
var messages = props.messages || contextMessages;
|
|
9032
|
-
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)));
|
|
9033
9187
|
}
|
|
9034
9188
|
|
|
9035
9189
|
/**
|
|
@@ -9246,14 +9400,18 @@ exports.generateRandomId = generateRandomId;
|
|
|
9246
9400
|
exports.getChannel = getChannel;
|
|
9247
9401
|
exports.getDisplayImage = getDisplayImage;
|
|
9248
9402
|
exports.getDisplayTitle = getDisplayTitle;
|
|
9403
|
+
exports.getGroupStyles = getGroupStyles;
|
|
9249
9404
|
exports.getImages = getImages;
|
|
9405
|
+
exports.getLastReceived = getLastReceived;
|
|
9250
9406
|
exports.getLatestMessagePreview = getLatestMessagePreview;
|
|
9251
9407
|
exports.getMessageActions = getMessageActions;
|
|
9252
9408
|
exports.getNonImageAttachments = getNonImageAttachments;
|
|
9253
9409
|
exports.getReadByTooltipText = getReadByTooltipText;
|
|
9410
|
+
exports.getReadStates = getReadStates;
|
|
9254
9411
|
exports.getWholeChar = getWholeChar;
|
|
9255
9412
|
exports.handleActionWarning = handleActionWarning;
|
|
9256
9413
|
exports.hiTranslations = hiTranslations;
|
|
9414
|
+
exports.insertIntro = insertIntro;
|
|
9257
9415
|
exports.isAudioAttachment = isAudioAttachment;
|
|
9258
9416
|
exports.isChannel = isChannel;
|
|
9259
9417
|
exports.isDate = isDate;
|
|
@@ -9282,6 +9440,7 @@ exports.moveChannelUp = moveChannelUp;
|
|
|
9282
9440
|
exports.nlTranslations = nlTranslations;
|
|
9283
9441
|
exports.noParsingFunctionWarning = noParsingFunctionWarning;
|
|
9284
9442
|
exports.notValidDateWarning = notValidDateWarning;
|
|
9443
|
+
exports.processMessages = processMessages;
|
|
9285
9444
|
exports.ptTranslations = ptTranslations;
|
|
9286
9445
|
exports.reactionHandlerWarning = reactionHandlerWarning;
|
|
9287
9446
|
exports.renderAttachmentActions = renderAttachmentActions;
|