stream-chat-react 8.1.0 → 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.full-bundle.js +45 -28
- 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/Item.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +5 -8
- package/dist/components/Message/MessageCommerce.d.ts.map +1 -1
- package/dist/components/Message/MessageCommerce.js +2 -1
- package/dist/components/Message/MessageLivestream.d.ts.map +1 -1
- package/dist/components/Message/MessageLivestream.js +2 -1
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +2 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +2 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.js +5 -2
- package/dist/components/MessageList/utils.d.ts +1 -0
- package/dist/components/MessageList/utils.d.ts.map +1 -1
- package/dist/components/MessageList/utils.js +27 -13
- package/dist/constants/messageTypes.d.ts +5 -0
- package/dist/constants/messageTypes.d.ts.map +1 -0
- package/dist/constants/messageTypes.js +4 -0
- package/dist/css/index.css +1 -1
- package/dist/index.cjs.js +45 -28
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/ActionsBox.scss +2 -2
- package/dist/scss/Attachment.scss +1 -1
- package/dist/scss/ChannelList.scss +6 -0
- package/dist/scss/ChannelSearch.scss +12 -1
- package/dist/scss/Message.scss +86 -80
- package/dist/scss/MessageInput.scss +8 -2
- package/dist/scss/MessageInputFlat.scss +4 -0
- package/dist/scss/MessageNotification.scss +6 -18
- package/dist/scss/Thread.scss +20 -4
- package/dist/scss/_base.scss +4 -0
- package/dist/stories/connected-user.stories.d.ts.map +1 -1
- package/dist/stories/connected-user.stories.js +13 -39
- package/dist/stories/mark-read.stories.d.ts +4 -0
- package/dist/stories/mark-read.stories.d.ts.map +1 -0
- package/dist/stories/mark-read.stories.js +77 -0
- package/dist/stories/utils.d.ts +8 -0
- package/dist/stories/utils.d.ts.map +1 -1
- package/dist/stories/utils.js +33 -0
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -5
package/dist/index.cjs.js
CHANGED
|
@@ -3667,6 +3667,11 @@ var UnMemoizedMessageTimestamp = function (props) {
|
|
|
3667
3667
|
};
|
|
3668
3668
|
var MessageTimestamp = React__default['default'].memo(UnMemoizedMessageTimestamp);
|
|
3669
3669
|
|
|
3670
|
+
var CUSTOM_MESSAGE_TYPE = {
|
|
3671
|
+
date: 'message.date',
|
|
3672
|
+
intro: 'channel.intro',
|
|
3673
|
+
};
|
|
3674
|
+
|
|
3670
3675
|
var useCommandTrigger = function () {
|
|
3671
3676
|
var channelConfig = useChannelStateContext('useCommandTrigger').channelConfig;
|
|
3672
3677
|
var commands = channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.commands;
|
|
@@ -5561,7 +5566,7 @@ var MessageSimpleWithContext = function (props) {
|
|
|
5561
5566
|
var messageClasses = isMyMessage()
|
|
5562
5567
|
? 'str-chat__message str-chat__message--me str-chat__message-simple str-chat__message-simple--me'
|
|
5563
5568
|
: 'str-chat__message str-chat__message-simple';
|
|
5564
|
-
if (message.customType ===
|
|
5569
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date) {
|
|
5565
5570
|
return null;
|
|
5566
5571
|
}
|
|
5567
5572
|
if (message.deleted_at || message.type === 'deleted') {
|
|
@@ -5822,14 +5827,11 @@ var ChannelInner = function (props) {
|
|
|
5822
5827
|
}, [channel.cid, doMarkReadRequest]);
|
|
5823
5828
|
React.useEffect(function () {
|
|
5824
5829
|
var _a;
|
|
5825
|
-
if (state.thread
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
}
|
|
5831
|
-
}
|
|
5832
|
-
}
|
|
5830
|
+
if (!state.thread)
|
|
5831
|
+
return;
|
|
5832
|
+
var message = (_a = state.messages) === null || _a === void 0 ? void 0 : _a.find(function (m) { var _a; return m.id === ((_a = state.thread) === null || _a === void 0 ? void 0 : _a.id); });
|
|
5833
|
+
if (message)
|
|
5834
|
+
dispatch({ message: message, type: 'setThread' });
|
|
5833
5835
|
}, [state.messages, state.thread]);
|
|
5834
5836
|
/** MESSAGE */
|
|
5835
5837
|
// Adds a temporary notification to message list, will be removed after 5 seconds
|
|
@@ -7777,7 +7779,7 @@ var Streami18n = /** @class */ (function () {
|
|
|
7777
7779
|
return Streami18n;
|
|
7778
7780
|
}());
|
|
7779
7781
|
|
|
7780
|
-
var version = '8.1.
|
|
7782
|
+
var version = '8.1.1';
|
|
7781
7783
|
|
|
7782
7784
|
var useChat = function (_a) {
|
|
7783
7785
|
var _b, _c;
|
|
@@ -8230,7 +8232,7 @@ var MessageCommerceWithContext = function (props) {
|
|
|
8230
8232
|
if (message.deleted_at) {
|
|
8231
8233
|
return React__default['default'].createElement(MessageDeleted$1, { message: message });
|
|
8232
8234
|
}
|
|
8233
|
-
if (message.customType ===
|
|
8235
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date) {
|
|
8234
8236
|
return null;
|
|
8235
8237
|
}
|
|
8236
8238
|
return (React__default['default'].createElement("div", { className: ("\n\t\t\t\t\t\t" + messageClasses + "\n\t\t\t\t\t\tstr-chat__message-commerce--" + message.type + "\n\t\t\t\t\t\t" + (message.text ? 'str-chat__message-commerce--has-text' : 'str-chat__message-commerce--has-no-text') + "\n\t\t\t\t\t\t" + (hasAttachment ? 'str-chat__message-commerce--has-attachment' : '') + "\n " + (hasReactions && isReactionEnabled ? 'str-chat__message-commerce--with-reactions' : '') + "\n " + ("str-chat__message-commerce--" + firstGroupStyle) + "\n " + (message.pinned ? 'pinned-message' : '') + "\n\t\t\t\t\t").trim(), "data-testid": 'message-commerce-wrapper', key: message.id },
|
|
@@ -8271,7 +8273,7 @@ var MessageLivestreamWithContext = function (props) {
|
|
|
8271
8273
|
messageTextToRender,
|
|
8272
8274
|
]);
|
|
8273
8275
|
var firstGroupStyle = groupStyles ? groupStyles[0] : 'single';
|
|
8274
|
-
if (message.customType ===
|
|
8276
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date) {
|
|
8275
8277
|
return null;
|
|
8276
8278
|
}
|
|
8277
8279
|
if (message.deleted_at) {
|
|
@@ -8556,9 +8558,9 @@ var processMessages = function (params) {
|
|
|
8556
8558
|
// do not show date separator for current user's messages
|
|
8557
8559
|
if (enableDateSeparator && unread && ((_a = message.user) === null || _a === void 0 ? void 0 : _a.id) !== userId) {
|
|
8558
8560
|
newMessages.push({
|
|
8559
|
-
customType:
|
|
8561
|
+
customType: CUSTOM_MESSAGE_TYPE.date,
|
|
8560
8562
|
date: message.created_at,
|
|
8561
|
-
id: message.
|
|
8563
|
+
id: makeDateMessageId(message.created_at),
|
|
8562
8564
|
unread: unread,
|
|
8563
8565
|
});
|
|
8564
8566
|
}
|
|
@@ -8570,13 +8572,13 @@ var processMessages = function (params) {
|
|
|
8570
8572
|
(hideDeletedMessages &&
|
|
8571
8573
|
(previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.type) === 'deleted' &&
|
|
8572
8574
|
lastDateSeparator !== messageDate)) &&
|
|
8573
|
-
((_b = newMessages === null || newMessages === void 0 ? void 0 : newMessages[newMessages.length - 1]) === null || _b === void 0 ? void 0 : _b.customType) !==
|
|
8575
|
+
((_b = newMessages === null || newMessages === void 0 ? void 0 : newMessages[newMessages.length - 1]) === null || _b === void 0 ? void 0 : _b.customType) !== CUSTOM_MESSAGE_TYPE.date // do not show two date separators in a row)
|
|
8574
8576
|
) {
|
|
8575
8577
|
lastDateSeparator = messageDate;
|
|
8576
8578
|
newMessages.push({
|
|
8577
|
-
customType:
|
|
8579
|
+
customType: CUSTOM_MESSAGE_TYPE.date,
|
|
8578
8580
|
date: message.created_at,
|
|
8579
|
-
id: message.
|
|
8581
|
+
id: makeDateMessageId(message.created_at),
|
|
8580
8582
|
}, message);
|
|
8581
8583
|
}
|
|
8582
8584
|
else {
|
|
@@ -8589,6 +8591,16 @@ var processMessages = function (params) {
|
|
|
8589
8591
|
}
|
|
8590
8592
|
return newMessages;
|
|
8591
8593
|
};
|
|
8594
|
+
var makeDateMessageId = function (date) {
|
|
8595
|
+
var idSuffix;
|
|
8596
|
+
try {
|
|
8597
|
+
idSuffix = !date ? uuid.v4() : date instanceof Date ? date.toISOString() : date;
|
|
8598
|
+
}
|
|
8599
|
+
catch (e) {
|
|
8600
|
+
idSuffix = uuid.v4();
|
|
8601
|
+
}
|
|
8602
|
+
return CUSTOM_MESSAGE_TYPE.date + "-" + idSuffix;
|
|
8603
|
+
};
|
|
8592
8604
|
// fast since it usually iterates just the last few messages
|
|
8593
8605
|
var getLastReceived = function (messages) {
|
|
8594
8606
|
for (var i = messages.length - 1; i > 0; i -= 1) {
|
|
@@ -8631,7 +8643,9 @@ var getReadStates = function (messages, read, returnAllReadData) {
|
|
|
8631
8643
|
};
|
|
8632
8644
|
var insertIntro = function (messages, headerPosition) {
|
|
8633
8645
|
var newMessages = messages;
|
|
8634
|
-
var intro = {
|
|
8646
|
+
var intro = {
|
|
8647
|
+
customType: CUSTOM_MESSAGE_TYPE.intro,
|
|
8648
|
+
};
|
|
8635
8649
|
// if no headerPosition is set, HeaderComponent will go at the top
|
|
8636
8650
|
if (!headerPosition) {
|
|
8637
8651
|
newMessages.unshift(intro);
|
|
@@ -8654,7 +8668,7 @@ var insertIntro = function (messages, headerPosition) {
|
|
|
8654
8668
|
if (messageTime && messageTime < headerPosition) {
|
|
8655
8669
|
// if header position is also smaller than message time continue;
|
|
8656
8670
|
if (nextMessageTime && nextMessageTime < headerPosition) {
|
|
8657
|
-
if (messages[i + 1] && messages[i + 1].customType ===
|
|
8671
|
+
if (messages[i + 1] && messages[i + 1].customType === CUSTOM_MESSAGE_TYPE.date)
|
|
8658
8672
|
continue;
|
|
8659
8673
|
if (!nextMessageTime) {
|
|
8660
8674
|
newMessages.push(intro);
|
|
@@ -8671,24 +8685,24 @@ var insertIntro = function (messages, headerPosition) {
|
|
|
8671
8685
|
};
|
|
8672
8686
|
var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByUser) {
|
|
8673
8687
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
8674
|
-
if (message.customType ===
|
|
8688
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date)
|
|
8675
8689
|
return '';
|
|
8676
|
-
if (message.customType ===
|
|
8690
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.intro)
|
|
8677
8691
|
return '';
|
|
8678
8692
|
if (noGroupByUser || ((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) !== 0)
|
|
8679
8693
|
return 'single';
|
|
8680
8694
|
var isTopMessage = !previousMessage ||
|
|
8681
|
-
previousMessage.customType ===
|
|
8682
|
-
previousMessage.customType ===
|
|
8695
|
+
previousMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
|
|
8696
|
+
previousMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
|
|
8683
8697
|
previousMessage.type === 'system' ||
|
|
8684
8698
|
((_b = previousMessage.attachments) === null || _b === void 0 ? void 0 : _b.length) !== 0 ||
|
|
8685
8699
|
((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = previousMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
|
|
8686
8700
|
previousMessage.type === 'error' ||
|
|
8687
8701
|
previousMessage.deleted_at;
|
|
8688
8702
|
var isBottomMessage = !nextMessage ||
|
|
8689
|
-
nextMessage.customType ===
|
|
8703
|
+
nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
|
|
8690
8704
|
nextMessage.type === 'system' ||
|
|
8691
|
-
nextMessage.customType ===
|
|
8705
|
+
nextMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
|
|
8692
8706
|
((_e = nextMessage.attachments) === null || _e === void 0 ? void 0 : _e.length) !== 0 ||
|
|
8693
8707
|
((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_g = nextMessage.user) === null || _g === void 0 ? void 0 : _g.id) ||
|
|
8694
8708
|
nextMessage.type === 'error' ||
|
|
@@ -8764,11 +8778,13 @@ var useMessageListElements = function (props) {
|
|
|
8764
8778
|
return React.useMemo(function () {
|
|
8765
8779
|
return enrichedMessages.map(function (message) {
|
|
8766
8780
|
var _a;
|
|
8767
|
-
if (message.customType ===
|
|
8781
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date &&
|
|
8782
|
+
message.date &&
|
|
8783
|
+
isDate(message.date)) {
|
|
8768
8784
|
return (React__default['default'].createElement("li", { key: message.date.toISOString() + "-i" },
|
|
8769
8785
|
React__default['default'].createElement(DateSeparator$1, { date: message.date, formatDate: internalMessageProps.formatDate, unread: message.unread })));
|
|
8770
8786
|
}
|
|
8771
|
-
if (message.customType ===
|
|
8787
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.intro && HeaderComponent) {
|
|
8772
8788
|
return (React__default['default'].createElement("li", { key: 'intro' },
|
|
8773
8789
|
React__default['default'].createElement(HeaderComponent, null)));
|
|
8774
8790
|
}
|
|
@@ -9379,7 +9395,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9379
9395
|
return customMessageRenderer(messageList, streamMessageIndex);
|
|
9380
9396
|
}
|
|
9381
9397
|
var message = messageList[streamMessageIndex];
|
|
9382
|
-
if (message.customType ===
|
|
9398
|
+
if (message.customType === CUSTOM_MESSAGE_TYPE.date && message.date && isDate(message.date)) {
|
|
9383
9399
|
return React__default['default'].createElement(DateSeparator$1, { date: message.date, unread: message.unread });
|
|
9384
9400
|
}
|
|
9385
9401
|
if (!message)
|
|
@@ -9692,6 +9708,7 @@ exports.itTranslations = itTranslations;
|
|
|
9692
9708
|
exports.jaTranslations = jaTranslations;
|
|
9693
9709
|
exports.koTranslations = koTranslations;
|
|
9694
9710
|
exports.listener = Listeners;
|
|
9711
|
+
exports.makeDateMessageId = makeDateMessageId;
|
|
9695
9712
|
exports.markDownRenderers = markDownRenderers;
|
|
9696
9713
|
exports.matchMarkdownLinks = matchMarkdownLinks;
|
|
9697
9714
|
exports.mentionsMarkdownPlugin = mentionsMarkdownPlugin;
|