stream-chat-react 9.4.1 → 9.5.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/browser.full-bundle.js +65 -93
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +1 -1
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +7 -0
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +10 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +26 -24
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.js +8 -1
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useImageUploads.js +17 -36
- package/dist/context/ChannelActionContext.d.ts +1 -1
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/DefaultEmoji.d.ts +3 -0
- package/dist/context/DefaultEmoji.d.ts.map +1 -0
- package/dist/context/DefaultEmoji.js +3 -0
- package/dist/context/DefaultEmojiPicker.d.ts +3 -0
- package/dist/context/DefaultEmojiPicker.d.ts.map +1 -0
- package/dist/context/DefaultEmojiPicker.js +3 -0
- package/dist/context/EmojiContext.d.ts.map +1 -1
- package/dist/context/EmojiContext.js +2 -58
- package/dist/css/index.css +1 -1
- package/dist/index.cjs.js +74 -86
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Gallery.scss +6 -0
- package/dist/scss/Message.scss +67 -34
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/index.cjs.js
CHANGED
|
@@ -54,6 +54,8 @@ var deepequal = require('react-fast-compare');
|
|
|
54
54
|
var DefaultEmojiIndex = require('emoji-mart/dist/utils/emoji-index/nimble-emoji-index.js');
|
|
55
55
|
var resizeObserver = require('@juggle/resize-observer');
|
|
56
56
|
var reactVirtuoso = require('react-virtuoso');
|
|
57
|
+
var nimbleEmoji = require('emoji-mart/dist/components/emoji/nimble-emoji');
|
|
58
|
+
var nimblePicker = require('emoji-mart/dist/components/picker/nimble-picker');
|
|
57
59
|
|
|
58
60
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
59
61
|
|
|
@@ -110,6 +112,8 @@ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
|
110
112
|
var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
|
|
111
113
|
var deepequal__default = /*#__PURE__*/_interopDefaultLegacy(deepequal);
|
|
112
114
|
var DefaultEmojiIndex__default = /*#__PURE__*/_interopDefaultLegacy(DefaultEmojiIndex);
|
|
115
|
+
var nimbleEmoji__default = /*#__PURE__*/_interopDefaultLegacy(nimbleEmoji);
|
|
116
|
+
var nimblePicker__default = /*#__PURE__*/_interopDefaultLegacy(nimblePicker);
|
|
113
117
|
|
|
114
118
|
/*! *****************************************************************************
|
|
115
119
|
Copyright (c) Microsoft Corporation.
|
|
@@ -2592,7 +2596,7 @@ var ReactTextareaAutocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
2592
2596
|
});
|
|
2593
2597
|
|
|
2594
2598
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_defaultShouldSubmit", function (event) {
|
|
2595
|
-
return event.key === 'Enter' && !event.shiftKey;
|
|
2599
|
+
return event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing;
|
|
2596
2600
|
});
|
|
2597
2601
|
|
|
2598
2602
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "_handleKeyDown", function (event) {
|
|
@@ -4846,32 +4850,12 @@ var UnMemoizedMessageTextComponent = function (props) {
|
|
|
4846
4850
|
};
|
|
4847
4851
|
var MessageText = React__default['default'].memo(UnMemoizedMessageTextComponent);
|
|
4848
4852
|
|
|
4849
|
-
var DefaultEmoji = React__default['default'].lazy(function () { return
|
|
4850
|
-
|
|
4851
|
-
return __generator(this, function (_a) {
|
|
4852
|
-
switch (_a.label) {
|
|
4853
|
-
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('emoji-mart/dist/components/emoji/nimble-emoji.js')); })];
|
|
4854
|
-
case 1:
|
|
4855
|
-
emoji = _a.sent();
|
|
4856
|
-
return [2 /*return*/, { default: emoji.default }];
|
|
4857
|
-
}
|
|
4858
|
-
});
|
|
4859
|
-
}); });
|
|
4860
|
-
var DefaultEmojiPicker = React__default['default'].lazy(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
4861
|
-
var emojiPicker;
|
|
4862
|
-
return __generator(this, function (_a) {
|
|
4863
|
-
switch (_a.label) {
|
|
4864
|
-
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('emoji-mart/dist/components/picker/nimble-picker.js')); })];
|
|
4865
|
-
case 1:
|
|
4866
|
-
emojiPicker = _a.sent();
|
|
4867
|
-
return [2 /*return*/, { default: emojiPicker.default }];
|
|
4868
|
-
}
|
|
4869
|
-
});
|
|
4870
|
-
}); });
|
|
4853
|
+
var DefaultEmoji$1 = React__default['default'].lazy(function () { return Promise.resolve().then(function () { return DefaultEmoji; }); });
|
|
4854
|
+
var DefaultEmojiPicker$1 = React__default['default'].lazy(function () { return Promise.resolve().then(function () { return DefaultEmojiPicker; }); });
|
|
4871
4855
|
var EmojiContext = React__default['default'].createContext(undefined);
|
|
4872
4856
|
var EmojiProvider = function (_a) {
|
|
4873
4857
|
var children = _a.children, value = _a.value;
|
|
4874
|
-
var _b = value.Emoji, Emoji = _b === void 0 ? DefaultEmoji : _b, emojiConfig = value.emojiConfig, _c = value.EmojiIndex, EmojiIndex = _c === void 0 ? DefaultEmojiIndex__default['default'] : _c, _d = value.EmojiPicker, EmojiPicker = _d === void 0 ? DefaultEmojiPicker : _d;
|
|
4858
|
+
var _b = value.Emoji, Emoji = _b === void 0 ? DefaultEmoji$1 : _b, emojiConfig = value.emojiConfig, _c = value.EmojiIndex, EmojiIndex = _c === void 0 ? DefaultEmojiIndex__default['default'] : _c, _d = value.EmojiPicker, EmojiPicker = _d === void 0 ? DefaultEmojiPicker$1 : _d;
|
|
4875
4859
|
var emojiContextValue = {
|
|
4876
4860
|
Emoji: Emoji,
|
|
4877
4861
|
emojiConfig: emojiConfig,
|
|
@@ -5584,8 +5568,9 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
5584
5568
|
}, []);
|
|
5585
5569
|
var uploadImage = React.useCallback(function (id) { return __awaiter(void 0, void 0, void 0, function () {
|
|
5586
5570
|
var img, file, canUpload, response, error_1, errorMessage, alreadyRemoved;
|
|
5587
|
-
|
|
5588
|
-
|
|
5571
|
+
var _a;
|
|
5572
|
+
return __generator(this, function (_b) {
|
|
5573
|
+
switch (_b.label) {
|
|
5589
5574
|
case 0:
|
|
5590
5575
|
img = imageUploads[id];
|
|
5591
5576
|
if (!img)
|
|
@@ -5602,24 +5587,24 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
5602
5587
|
uploadType: 'image',
|
|
5603
5588
|
})];
|
|
5604
5589
|
case 1:
|
|
5605
|
-
canUpload =
|
|
5590
|
+
canUpload = _b.sent();
|
|
5606
5591
|
if (!canUpload)
|
|
5607
5592
|
return [2 /*return*/, removeImage(id)];
|
|
5608
|
-
|
|
5593
|
+
_b.label = 2;
|
|
5609
5594
|
case 2:
|
|
5610
|
-
|
|
5595
|
+
_b.trys.push([2, 7, , 8]);
|
|
5611
5596
|
if (!doImageUploadRequest) return [3 /*break*/, 4];
|
|
5612
5597
|
return [4 /*yield*/, doImageUploadRequest(file, channel)];
|
|
5613
5598
|
case 3:
|
|
5614
|
-
response =
|
|
5599
|
+
response = _b.sent();
|
|
5615
5600
|
return [3 /*break*/, 6];
|
|
5616
5601
|
case 4: return [4 /*yield*/, channel.sendImage(file)];
|
|
5617
5602
|
case 5:
|
|
5618
|
-
response =
|
|
5619
|
-
|
|
5603
|
+
response = _b.sent();
|
|
5604
|
+
_b.label = 6;
|
|
5620
5605
|
case 6: return [3 /*break*/, 8];
|
|
5621
5606
|
case 7:
|
|
5622
|
-
error_1 =
|
|
5607
|
+
error_1 = _b.sent();
|
|
5623
5608
|
errorMessage = typeof error_1.message === 'string'
|
|
5624
5609
|
? error_1.message
|
|
5625
5610
|
: t('Error uploading image');
|
|
@@ -5643,8 +5628,11 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
5643
5628
|
removeImage(id);
|
|
5644
5629
|
return [2 /*return*/];
|
|
5645
5630
|
}
|
|
5631
|
+
if (img.previewUri)
|
|
5632
|
+
(_a = URL.revokeObjectURL) === null || _a === void 0 ? void 0 : _a.call(URL, img.previewUri);
|
|
5646
5633
|
dispatch({
|
|
5647
5634
|
id: id,
|
|
5635
|
+
previewUri: undefined,
|
|
5648
5636
|
state: 'finished',
|
|
5649
5637
|
type: 'setImageUpload',
|
|
5650
5638
|
url: response.file,
|
|
@@ -5654,33 +5642,10 @@ var useImageUploads = function (props, state, dispatch) {
|
|
|
5654
5642
|
});
|
|
5655
5643
|
}); }, [imageUploads, channel, doImageUploadRequest, errorHandler, removeImage]);
|
|
5656
5644
|
React.useEffect(function () {
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
if (upload) {
|
|
5662
|
-
var file = upload.file, id_1 = upload.id;
|
|
5663
|
-
// TODO: Possibly use URL.createObjectURL instead. However, then we need
|
|
5664
|
-
// to release the previews when not used anymore though.
|
|
5665
|
-
var reader_1 = new FileReader();
|
|
5666
|
-
reader_1.onload = function (event) {
|
|
5667
|
-
var _a;
|
|
5668
|
-
if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) !== 'string')
|
|
5669
|
-
return;
|
|
5670
|
-
dispatch({
|
|
5671
|
-
id: id_1,
|
|
5672
|
-
previewUri: event.target.result,
|
|
5673
|
-
type: 'setImageUpload',
|
|
5674
|
-
});
|
|
5675
|
-
};
|
|
5676
|
-
reader_1.readAsDataURL(file);
|
|
5677
|
-
uploadImage(id_1);
|
|
5678
|
-
return function () {
|
|
5679
|
-
reader_1.onload = null;
|
|
5680
|
-
};
|
|
5681
|
-
}
|
|
5682
|
-
}
|
|
5683
|
-
return;
|
|
5645
|
+
var upload = Object.values(imageUploads).find(function (imageUpload) { return imageUpload.state === 'uploading' && imageUpload.file; });
|
|
5646
|
+
if (!upload)
|
|
5647
|
+
return;
|
|
5648
|
+
uploadImage(upload.id);
|
|
5684
5649
|
}, [imageUploads, uploadImage]);
|
|
5685
5650
|
return {
|
|
5686
5651
|
removeImage: removeImage,
|
|
@@ -5804,11 +5769,18 @@ var useAttachments = function (props, state, dispatch, textareaRef) {
|
|
|
5804
5769
|
Array.from(files)
|
|
5805
5770
|
.slice(0, maxFilesLeft)
|
|
5806
5771
|
.forEach(function (file) {
|
|
5772
|
+
var _a;
|
|
5807
5773
|
var id = nanoid.nanoid();
|
|
5808
5774
|
if (file.type.startsWith('image/') &&
|
|
5809
5775
|
!file.type.endsWith('.photoshop') // photoshop files begin with 'image/'
|
|
5810
5776
|
) {
|
|
5811
|
-
dispatch({
|
|
5777
|
+
dispatch({
|
|
5778
|
+
file: file,
|
|
5779
|
+
id: id,
|
|
5780
|
+
previewUri: (_a = URL.createObjectURL) === null || _a === void 0 ? void 0 : _a.call(URL, file),
|
|
5781
|
+
state: 'uploading',
|
|
5782
|
+
type: 'setImageUpload',
|
|
5783
|
+
});
|
|
5812
5784
|
}
|
|
5813
5785
|
else if (file instanceof File && !noFiles) {
|
|
5814
5786
|
dispatch({ file: file, id: id, state: 'uploading', type: 'setFileUpload' });
|
|
@@ -6910,7 +6882,6 @@ var makeAddNotifications = function (setNotifications, notificationTimeouts) { r
|
|
|
6910
6882
|
notificationTimeouts.push(timeout);
|
|
6911
6883
|
}; };
|
|
6912
6884
|
|
|
6913
|
-
var JUMP_MESSAGE_PAGE_SIZE = 25;
|
|
6914
6885
|
var UnMemoizedChannel = function (props) {
|
|
6915
6886
|
var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a, LoadingErrorIndicator = props.LoadingErrorIndicator, LoadingIndicator = props.LoadingIndicator;
|
|
6916
6887
|
var _b = useChatContext('Channel'), contextChannel = _b.channel, channelsQueryState = _b.channelsQueryState;
|
|
@@ -7180,30 +7151,33 @@ var ChannelInner = function (props) {
|
|
|
7180
7151
|
});
|
|
7181
7152
|
});
|
|
7182
7153
|
};
|
|
7183
|
-
var jumpToMessage = function (messageId
|
|
7184
|
-
|
|
7185
|
-
return
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7202
|
-
|
|
7203
|
-
|
|
7204
|
-
|
|
7154
|
+
var jumpToMessage = function (messageId, messageLimit) {
|
|
7155
|
+
if (messageLimit === void 0) { messageLimit = 100; }
|
|
7156
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
7157
|
+
var indexOfMessage, hasMoreMessages;
|
|
7158
|
+
return __generator(this, function (_a) {
|
|
7159
|
+
switch (_a.label) {
|
|
7160
|
+
case 0:
|
|
7161
|
+
dispatch({ loadingMore: true, type: 'setLoadingMore' });
|
|
7162
|
+
return [4 /*yield*/, channel.state.loadMessageIntoState(messageId, undefined, messageLimit)];
|
|
7163
|
+
case 1:
|
|
7164
|
+
_a.sent();
|
|
7165
|
+
indexOfMessage = channel.state.messages.findIndex(function (message) { return message.id === messageId; });
|
|
7166
|
+
hasMoreMessages = indexOfMessage >= Math.floor(messageLimit / 2);
|
|
7167
|
+
loadMoreFinished(hasMoreMessages, channel.state.messages);
|
|
7168
|
+
dispatch({
|
|
7169
|
+
hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
|
|
7170
|
+
highlightedMessageId: messageId,
|
|
7171
|
+
type: 'jumpToMessageFinished',
|
|
7172
|
+
});
|
|
7173
|
+
setTimeout(function () {
|
|
7174
|
+
dispatch({ type: 'clearHighlightedMessage' });
|
|
7175
|
+
}, 500);
|
|
7176
|
+
return [2 /*return*/];
|
|
7177
|
+
}
|
|
7178
|
+
});
|
|
7205
7179
|
});
|
|
7206
|
-
}
|
|
7180
|
+
};
|
|
7207
7181
|
var jumpToLatestMessage = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
7208
7182
|
var hasMoreOlder;
|
|
7209
7183
|
return __generator(this, function (_a) {
|
|
@@ -8417,7 +8391,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
8417
8391
|
*/
|
|
8418
8392
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
8419
8393
|
|
|
8420
|
-
var version = '9.
|
|
8394
|
+
var version = '9.5.0';
|
|
8421
8395
|
|
|
8422
8396
|
var useChat = function (_a) {
|
|
8423
8397
|
var _b, _c;
|
|
@@ -10216,6 +10190,20 @@ var UnMemoizedWindow = function (props) {
|
|
|
10216
10190
|
*/
|
|
10217
10191
|
var Window = React__default['default'].memo(UnMemoizedWindow);
|
|
10218
10192
|
|
|
10193
|
+
// @ts-expect-error
|
|
10194
|
+
|
|
10195
|
+
var DefaultEmoji = /*#__PURE__*/Object.freeze({
|
|
10196
|
+
__proto__: null,
|
|
10197
|
+
'default': nimbleEmoji__default['default']
|
|
10198
|
+
});
|
|
10199
|
+
|
|
10200
|
+
// @ts-expect-error
|
|
10201
|
+
|
|
10202
|
+
var DefaultEmojiPicker = /*#__PURE__*/Object.freeze({
|
|
10203
|
+
__proto__: null,
|
|
10204
|
+
'default': nimblePicker__default['default']
|
|
10205
|
+
});
|
|
10206
|
+
|
|
10219
10207
|
exports.ActionsIcon = ActionsIcon;
|
|
10220
10208
|
exports.Attachment = Attachment;
|
|
10221
10209
|
exports.AttachmentActions = AttachmentActions;
|