stream-chat-react 11.13.1 → 11.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Window-44a85f63.js → Window-64e7e4c0.js} +174 -158
- package/dist/browser.full-bundle.js +171 -271
- 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/components/FileSizeIndicator.js +2 -2
- package/dist/components/Emojis/index.cjs.js +1 -2
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +3 -2
- package/dist/components/MessageInput/hooks/utils.d.ts +1 -0
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/utils.js +24 -7
- package/dist/constants/limits.d.ts +1 -0
- package/dist/constants/limits.d.ts.map +1 -1
- package/dist/constants/limits.js +1 -0
- package/dist/css/v2/index.css +3 -1
- package/dist/css/v2/index.layout.css +3 -1
- package/dist/i18n/Streami18n.d.ts +1 -0
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- 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 +2 -3
- package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +56 -8
- package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +22 -4
- package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +11 -2
- package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +14 -0
- package/dist/scss/v2/_global-theme-variables.scss +13 -13
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { prettifyFileSize } from '../../MessageInput/hooks/utils';
|
|
3
3
|
export var FileSizeIndicator = function (_a) {
|
|
4
4
|
var fileSize = _a.fileSize, maximumFractionDigits = _a.maximumFractionDigits;
|
|
5
5
|
if (!(fileSize && Number.isFinite(Number(fileSize))))
|
|
6
6
|
return null;
|
|
7
|
-
return (React.createElement("span", { className: 'str-chat__message-attachment-file--item-size', "data-testid": 'file-size-indicator' },
|
|
7
|
+
return (React.createElement("span", { className: 'str-chat__message-attachment-file--item-size', "data-testid": 'file-size-indicator' }, prettifyFileSize(fileSize, maximumFractionDigits)));
|
|
8
8
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Window = require('../../Window-
|
|
5
|
+
var Window = require('../../Window-64e7e4c0.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var Picker = require('@emoji-mart/react');
|
|
8
8
|
require('dayjs');
|
|
@@ -28,7 +28,6 @@ require('dayjs/locale/tr');
|
|
|
28
28
|
require('dayjs/locale/en');
|
|
29
29
|
require('react-player');
|
|
30
30
|
require('@braintree/sanitize-url');
|
|
31
|
-
require('pretty-bytes');
|
|
32
31
|
require('prop-types');
|
|
33
32
|
require('react-image-gallery');
|
|
34
33
|
require('linkifyjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageSimple.d.ts","sourceRoot":"","sources":["../../../src/components/Message/MessageSimple.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AA6NnE;;GAEG;AACH,eAAO,MAAM,aAAa,kKAQzB,CAAC"}
|
|
@@ -28,7 +28,7 @@ var MessageSimpleWithContext = function (props) {
|
|
|
28
28
|
var t = useTranslationContext('MessageSimple').t;
|
|
29
29
|
var _b = useState(false), isBounceDialogOpen = _b[0], setIsBounceDialogOpen = _b[1];
|
|
30
30
|
var _c = useState(false), isEditedTimestampOpen = _c[0], setEditedTimestampOpen = _c[1];
|
|
31
|
-
var _d = useComponentContext('MessageSimple'), Attachment = _d.Attachment, _e = _d.Avatar, Avatar = _e === void 0 ? DefaultAvatar : _e, _f = _d.EditMessageInput, EditMessageInput = _f === void 0 ? DefaultEditMessageForm : _f, _g = _d.MessageDeleted, MessageDeleted = _g === void 0 ? DefaultMessageDeleted : _g, _h = _d.MessageBouncePrompt, MessageBouncePrompt = _h === void 0 ? DefaultMessageBouncePrompt : _h, _j = _d.MessageOptions, MessageOptions = _j === void 0 ? DefaultMessageOptions : _j, _k = _d.MessageRepliesCountButton, MessageRepliesCountButton = _k === void 0 ? DefaultMessageRepliesCountButton : _k, _l = _d.MessageStatus, MessageStatus = _l === void 0 ? DefaultMessageStatus : _l, _m = _d.MessageTimestamp, MessageTimestamp = _m === void 0 ? DefaultMessageTimestamp : _m, _o = _d.ReactionSelector, ReactionSelector = _o === void 0 ? DefaultReactionSelector : _o, _p = _d.ReactionsList, ReactionsList = _p === void 0 ? DefaultReactionList : _p;
|
|
31
|
+
var _d = useComponentContext('MessageSimple'), Attachment = _d.Attachment, _e = _d.Avatar, Avatar = _e === void 0 ? DefaultAvatar : _e, _f = _d.EditMessageInput, EditMessageInput = _f === void 0 ? DefaultEditMessageForm : _f, _g = _d.MessageDeleted, MessageDeleted = _g === void 0 ? DefaultMessageDeleted : _g, _h = _d.MessageBouncePrompt, MessageBouncePrompt = _h === void 0 ? DefaultMessageBouncePrompt : _h, _j = _d.MessageOptions, MessageOptions = _j === void 0 ? DefaultMessageOptions : _j, _k = _d.MessageRepliesCountButton, MessageRepliesCountButton = _k === void 0 ? DefaultMessageRepliesCountButton : _k, _l = _d.MessageStatus, MessageStatus = _l === void 0 ? DefaultMessageStatus : _l, _m = _d.MessageTimestamp, MessageTimestamp = _m === void 0 ? DefaultMessageTimestamp : _m, _o = _d.ReactionSelector, ReactionSelector = _o === void 0 ? DefaultReactionSelector : _o, _p = _d.ReactionsList, ReactionsList = _p === void 0 ? DefaultReactionList : _p, PinIndicator = _d.PinIndicator;
|
|
32
32
|
var themeVersion = useChatContext('MessageSimple').themeVersion;
|
|
33
33
|
var hasAttachment = messageHasAttachments(message);
|
|
34
34
|
var hasReactions = messageHasReactions(message);
|
|
@@ -63,9 +63,9 @@ var MessageSimpleWithContext = function (props) {
|
|
|
63
63
|
var rootClassName = clsx('str-chat__message str-chat__message-simple', "str-chat__message--".concat(message.type), "str-chat__message--".concat(message.status), isMyMessage()
|
|
64
64
|
? 'str-chat__message--me str-chat__message-simple--me'
|
|
65
65
|
: 'str-chat__message--other', message.text ? 'str-chat__message--has-text' : 'has-no-text', {
|
|
66
|
-
'pinned-message': message.pinned,
|
|
67
66
|
'str-chat__message--has-attachment': hasAttachment,
|
|
68
67
|
'str-chat__message--highlighted': highlighted,
|
|
68
|
+
'str-chat__message--pinned pinned-message': message.pinned,
|
|
69
69
|
'str-chat__message--with-reactions str-chat__message-with-thread-link': canShowReactions,
|
|
70
70
|
'str-chat__message-send-can-be-retried': (message === null || message === void 0 ? void 0 : message.status) === 'failed' && (message === null || message === void 0 ? void 0 : message.errorStatusCode) !== 403,
|
|
71
71
|
'str-chat__virtual-message__wrapper--end': endOfGroup,
|
|
@@ -77,6 +77,7 @@ var MessageSimpleWithContext = function (props) {
|
|
|
77
77
|
React.createElement(MessageInput, __assign({ clearEditingState: clearEditingState, grow: true, hideSendButton: true, Input: EditMessageInput, message: message }, additionalMessageInputProps)))),
|
|
78
78
|
isBounceDialogOpen && (React.createElement(MessageBounceModal, { MessageBouncePrompt: MessageBouncePrompt, onClose: function () { return setIsBounceDialogOpen(false); }, open: isBounceDialogOpen })),
|
|
79
79
|
React.createElement("div", { className: rootClassName, key: message.id },
|
|
80
|
+
PinIndicator && React.createElement(PinIndicator, null),
|
|
80
81
|
themeVersion === '1' && React.createElement(MessageStatus, null),
|
|
81
82
|
message.user && (React.createElement(Avatar, { image: message.user.image, name: message.user.name || message.user.id, onClick: onUserClick, onMouseOver: onUserHover, user: message.user })),
|
|
82
83
|
React.createElement("div", { className: clsx('str-chat__message-inner', {
|
|
@@ -25,5 +25,6 @@ type CheckUploadPermissionsParams<StreamChatGenerics extends DefaultStreamChatGe
|
|
|
25
25
|
uploadType: 'image' | 'file';
|
|
26
26
|
};
|
|
27
27
|
export declare const checkUploadPermissions: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: CheckUploadPermissionsParams<StreamChatGenerics>) => Promise<boolean>;
|
|
28
|
+
export declare function prettifyFileSize(bytes: number, precision?: number): string;
|
|
28
29
|
export {};
|
|
29
30
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAA4C,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput/hooks/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAA4C,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,eAAO,MAAM,UAAU,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAQ/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,WAM7C,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,MAAM,QAAQ,MAAM,WAiC/D,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC1C,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,gBAAgB,6KAwC5B,CAAC;AAEF,KAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,eAAe,EAAE,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAClF,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,cAAc,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAChC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,kKAoFlC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,UAO5D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { DEFAULT_UPLOAD_SIZE_LIMIT_BYTES } from '../../../constants/limits';
|
|
2
3
|
export var accentsMap = {
|
|
3
4
|
a: 'á|à|ã|â|À|Á|Ã|Â',
|
|
4
5
|
c: 'ç|Ç',
|
|
@@ -81,7 +82,7 @@ export var searchLocalUsers = function (params) {
|
|
|
81
82
|
return matchingUsers;
|
|
82
83
|
};
|
|
83
84
|
export var checkUploadPermissions = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
-
var addNotification, file, getAppSettings, t, uploadType, appSettings, _a, allowed_file_extensions, allowed_mime_types, blocked_file_extensions, blocked_mime_types,
|
|
85
|
+
var addNotification, file, getAppSettings, t, uploadType, appSettings, _a, allowed_file_extensions, allowed_mime_types, blocked_file_extensions, blocked_mime_types, size_limit, sendNotAllowedErrorNotification, allowed, blocked, allowed, blocked, sizeLimit;
|
|
85
86
|
var _b, _c;
|
|
86
87
|
return __generator(this, function (_d) {
|
|
87
88
|
switch (_d.label) {
|
|
@@ -93,8 +94,8 @@ export var checkUploadPermissions = function (params) { return __awaiter(void 0,
|
|
|
93
94
|
appSettings = _d.sent();
|
|
94
95
|
_a = (uploadType === 'image'
|
|
95
96
|
? (_b = appSettings === null || appSettings === void 0 ? void 0 : appSettings.app) === null || _b === void 0 ? void 0 : _b.image_upload_config
|
|
96
|
-
: (_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;
|
|
97
|
-
|
|
97
|
+
: (_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, size_limit = _a.size_limit;
|
|
98
|
+
sendNotAllowedErrorNotification = function () {
|
|
98
99
|
return addNotification(t("Upload type: \"{{ type }}\" is not allowed", { type: file.type || 'unknown type' }), 'error');
|
|
99
100
|
};
|
|
100
101
|
if (allowed_file_extensions === null || allowed_file_extensions === void 0 ? void 0 : allowed_file_extensions.length) {
|
|
@@ -102,7 +103,7 @@ export var checkUploadPermissions = function (params) { return __awaiter(void 0,
|
|
|
102
103
|
return file.name.toLowerCase().endsWith(ext.toLowerCase());
|
|
103
104
|
});
|
|
104
105
|
if (!allowed) {
|
|
105
|
-
|
|
106
|
+
sendNotAllowedErrorNotification();
|
|
106
107
|
return [2 /*return*/, false];
|
|
107
108
|
}
|
|
108
109
|
}
|
|
@@ -111,25 +112,41 @@ export var checkUploadPermissions = function (params) { return __awaiter(void 0,
|
|
|
111
112
|
return file.name.toLowerCase().endsWith(ext.toLowerCase());
|
|
112
113
|
});
|
|
113
114
|
if (blocked) {
|
|
114
|
-
|
|
115
|
+
sendNotAllowedErrorNotification();
|
|
115
116
|
return [2 /*return*/, false];
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
119
|
if (allowed_mime_types === null || allowed_mime_types === void 0 ? void 0 : allowed_mime_types.length) {
|
|
119
120
|
allowed = allowed_mime_types.some(function (type) { var _a; return type.toLowerCase() === ((_a = file.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
|
|
120
121
|
if (!allowed) {
|
|
121
|
-
|
|
122
|
+
sendNotAllowedErrorNotification();
|
|
122
123
|
return [2 /*return*/, false];
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
if (blocked_mime_types === null || blocked_mime_types === void 0 ? void 0 : blocked_mime_types.length) {
|
|
126
127
|
blocked = blocked_mime_types.some(function (type) { var _a; return type.toLowerCase() === ((_a = file.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()); });
|
|
127
128
|
if (blocked) {
|
|
128
|
-
|
|
129
|
+
sendNotAllowedErrorNotification();
|
|
129
130
|
return [2 /*return*/, false];
|
|
130
131
|
}
|
|
131
132
|
}
|
|
133
|
+
sizeLimit = size_limit || DEFAULT_UPLOAD_SIZE_LIMIT_BYTES;
|
|
134
|
+
if (file.size && file.size > sizeLimit) {
|
|
135
|
+
addNotification(t('File is too large: {{ size }}, maximum upload size is {{ limit }}', {
|
|
136
|
+
limit: prettifyFileSize(sizeLimit),
|
|
137
|
+
size: prettifyFileSize(file.size),
|
|
138
|
+
}), 'error');
|
|
139
|
+
return [2 /*return*/, false];
|
|
140
|
+
}
|
|
132
141
|
return [2 /*return*/, true];
|
|
133
142
|
}
|
|
134
143
|
});
|
|
135
144
|
}); };
|
|
145
|
+
export function prettifyFileSize(bytes, precision) {
|
|
146
|
+
if (precision === void 0) { precision = 3; }
|
|
147
|
+
var units = ['B', 'kB', 'MB', 'GB'];
|
|
148
|
+
var exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
|
|
149
|
+
var mantissa = bytes / Math.pow(1024, exponent);
|
|
150
|
+
var formattedMantissa = precision === 0 ? Math.round(mantissa).toString() : mantissa.toPrecision(precision);
|
|
151
|
+
return "".concat(formattedMantissa, " ").concat(units[exponent]);
|
|
152
|
+
}
|
|
@@ -3,4 +3,5 @@ export declare const DEFAULT_NEXT_CHANNEL_PAGE_SIZE = 100;
|
|
|
3
3
|
export declare const DEFAULT_JUMP_TO_PAGE_SIZE = 100;
|
|
4
4
|
export declare const DEFAULT_THREAD_PAGE_SIZE = 50;
|
|
5
5
|
export declare const DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD = 250;
|
|
6
|
+
export declare const DEFAULT_UPLOAD_SIZE_LIMIT_BYTES: number;
|
|
6
7
|
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kCAAkC,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/constants/limits.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kCAAkC,MAAM,CAAC;AACtD,eAAO,MAAM,+BAA+B,QAAoB,CAAC"}
|
package/dist/constants/limits.js
CHANGED