stream-chat-react 11.0.0-rc.2 → 11.0.0-rc.4
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 +474 -419
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentActions.js +3 -1
- package/dist/components/AutoCompleteTextarea/Item.js +1 -1
- package/dist/components/AutoCompleteTextarea/List.js +14 -14
- package/dist/components/Channel/Channel.d.ts +3 -0
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +26 -2
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +2 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +2 -2
- package/dist/components/Chat/Chat.d.ts +4 -1
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/Chat.js +3 -1
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +3 -3
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChannelsQueryState.js +1 -1
- package/dist/components/Chat/hooks/useChat.d.ts +2 -0
- package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChat.js +7 -4
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useCreateChatContext.js +5 -1
- package/dist/components/Emojis/EmojiPicker.d.ts +1 -2
- package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -1
- package/dist/components/Emojis/EmojiPicker.js +7 -3
- package/dist/components/Emojis/index.cjs.js +25 -4
- package/dist/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
- package/dist/components/LoadMore/LoadMoreButton.js +5 -2
- package/dist/components/Message/hooks/useDeleteHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useDeleteHandler.js +5 -5
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +19 -2
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/ImageDropzone.js +3 -1
- package/dist/context/ChannelActionContext.d.ts +2 -1
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts +29 -2
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/v2/emoji-mart.css +1 -0
- package/dist/css/v2/emoji-replacement.css +1 -0
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/i18n/Streami18n.d.ts +7 -3
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/Streami18n.js +3 -4
- package/dist/i18n/de.json +15 -2
- package/dist/i18n/en.json +3 -0
- package/dist/i18n/es.json +15 -2
- package/dist/i18n/fr.json +15 -2
- package/dist/i18n/hi.json +15 -2
- package/dist/i18n/it.json +15 -2
- package/dist/i18n/ja.json +15 -2
- package/dist/i18n/ko.json +15 -2
- package/dist/i18n/nl.json +15 -2
- package/dist/i18n/pt.json +15 -2
- package/dist/i18n/ru.json +15 -2
- package/dist/i18n/tr.json +15 -2
- package/dist/{icons-0801b1e9.js → icons-5ee8c22b.js} +46 -47
- package/dist/index.cjs.js +94 -42
- package/dist/scss/MessageInput.scss +6 -0
- package/dist/scss/_base.scss +0 -41
- package/dist/scss/index.scss +0 -1
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +6 -0
- package/dist/scss/v2/MessageInput/MessageInput-layout.scss +1 -1
- package/dist/scss/v2/_emoji-replacement.scss +1 -0
- package/dist/scss/v2/index.layout.scss +0 -1
- package/dist/scss/v2/index.scss +0 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +15 -3
package/dist/index.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var icons = require('./icons-
|
|
5
|
+
var icons = require('./icons-5ee8c22b.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var ReactPlayer = require('react-player');
|
|
8
8
|
var prettybytes = require('pretty-bytes');
|
|
@@ -111,11 +111,12 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i
|
|
|
111
111
|
|
|
112
112
|
var UnMemoizedAttachmentActions = function (props) {
|
|
113
113
|
var actionHandler = props.actionHandler, actions = props.actions, id = props.id, text = props.text;
|
|
114
|
+
var t = icons.useTranslationContext('UnMemoizedAttachmentActions').t;
|
|
114
115
|
var handleActionClick = function (event, name, value) { return actionHandler === null || actionHandler === void 0 ? void 0 : actionHandler(name, value, event); };
|
|
115
116
|
return (React__default["default"].createElement("div", { className: 'str-chat__message-attachment-actions' },
|
|
116
117
|
React__default["default"].createElement("div", { className: 'str-chat__message-attachment-actions-form' },
|
|
117
118
|
React__default["default"].createElement("span", null, text),
|
|
118
|
-
actions.map(function (action) { return (React__default["default"].createElement("button", { className: "str-chat__message-attachment-actions-button str-chat__message-attachment-actions-button--".concat(action.style), "data-testid": "".concat(action.name), "data-value": action.value, key: "".concat(id, "-").concat(action.value), onClick: function (event) { return handleActionClick(event, action.name, action.value); } }, action.text)); }))));
|
|
119
|
+
actions.map(function (action) { return (React__default["default"].createElement("button", { className: "str-chat__message-attachment-actions-button str-chat__message-attachment-actions-button--".concat(action.style), "data-testid": "".concat(action.name), "data-value": action.value, key: "".concat(id, "-").concat(action.value), onClick: function (event) { return handleActionClick(event, action.name, action.value); } }, action.text ? t(action.text) : null)); }))));
|
|
119
120
|
};
|
|
120
121
|
/**
|
|
121
122
|
* A component for rendering the actions you can take on an attachment.
|
|
@@ -2796,6 +2797,7 @@ function noop() {}
|
|
|
2796
2797
|
|
|
2797
2798
|
var ImageDropzone = function (_a) {
|
|
2798
2799
|
var _b = _a.accept, acceptedFiles = _b === void 0 ? [] : _b, children = _a.children, disabled = _a.disabled, handleFiles = _a.handleFiles, maxNumberOfFiles = _a.maxNumberOfFiles, multiple = _a.multiple;
|
|
2800
|
+
var t = icons.useTranslationContext('ImageDropzone').t;
|
|
2799
2801
|
var handleDrop = React.useCallback(function (accepted) {
|
|
2800
2802
|
if (!handleFiles) {
|
|
2801
2803
|
return;
|
|
@@ -2830,7 +2832,7 @@ var ImageDropzone = function (_a) {
|
|
|
2830
2832
|
React__default["default"].createElement("div", { className: 'rfu-dropzone__inner' },
|
|
2831
2833
|
React__default["default"].createElement("svg", { height: '41', viewBox: '0 0 41 41', width: '41', xmlns: 'http://www.w3.org/2000/svg' },
|
|
2832
2834
|
React__default["default"].createElement("path", { d: 'M40.517 28.002V3.997c0-2.197-1.808-3.992-4.005-3.992H12.507a4.004 4.004 0 0 0-3.992 3.993v24.004a4.004 4.004 0 0 0 3.992 3.993h24.005c2.197 0 4.005-1.795 4.005-3.993zm-22.002-7.997l4.062 5.42 5.937-7.423 7.998 10H12.507l6.008-7.997zM.517 8.003V36c0 2.198 1.795 4.005 3.993 4.005h27.997V36H4.51V8.002H.517z', fill: '#000', fillRule: 'nonzero' })),
|
|
2833
|
-
React__default["default"].createElement("p", null,
|
|
2835
|
+
React__default["default"].createElement("p", null, t('Drag your files here to add to your post')))),
|
|
2834
2836
|
children));
|
|
2835
2837
|
};
|
|
2836
2838
|
|
|
@@ -3334,7 +3336,7 @@ var Item$1 = /*#__PURE__*/React__default["default"].forwardRef(function Item(pro
|
|
|
3334
3336
|
style: style
|
|
3335
3337
|
}, /*#__PURE__*/React__default["default"].createElement("a", {
|
|
3336
3338
|
href: "",
|
|
3337
|
-
onClick:
|
|
3339
|
+
onClick: handleClick,
|
|
3338
3340
|
onFocus: handleSelect,
|
|
3339
3341
|
onMouseEnter: handleSelect,
|
|
3340
3342
|
ref: innerRef
|
|
@@ -25319,11 +25321,11 @@ var List = function List(_ref) {
|
|
|
25319
25321
|
var SuggestionHeader = PropHeader || AutocompleteSuggestionHeader || DefaultSuggestionListHeader;
|
|
25320
25322
|
var _useState = React.useState(undefined),
|
|
25321
25323
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
25322
|
-
|
|
25323
|
-
|
|
25324
|
+
selectedItemIndex = _useState2[0],
|
|
25325
|
+
setSelectedItemIndex = _useState2[1];
|
|
25324
25326
|
var itemsRef = [];
|
|
25325
25327
|
var isSelected = function isSelected(item) {
|
|
25326
|
-
return
|
|
25328
|
+
return selectedItemIndex === values.findIndex(function (value) {
|
|
25327
25329
|
return getId(value) === getId(item);
|
|
25328
25330
|
});
|
|
25329
25331
|
};
|
|
@@ -25354,32 +25356,30 @@ var List = function List(_ref) {
|
|
|
25354
25356
|
}, [modifyText, findItemIndex]);
|
|
25355
25357
|
var selectItem = React.useCallback(function (item) {
|
|
25356
25358
|
var index = findItemIndex(item);
|
|
25357
|
-
|
|
25359
|
+
setSelectedItemIndex(index);
|
|
25358
25360
|
}, [findItemIndex]);
|
|
25359
25361
|
var handleKeyDown = React.useCallback(function (event) {
|
|
25360
25362
|
if (event.key === 'ArrowUp') {
|
|
25361
|
-
|
|
25363
|
+
setSelectedItemIndex(function (prevSelected) {
|
|
25362
25364
|
if (prevSelected === undefined) return 0;
|
|
25363
|
-
var
|
|
25364
|
-
dropdownScroll(itemsRef[
|
|
25365
|
-
return
|
|
25365
|
+
var newIndex = prevSelected === 0 ? values.length - 1 : prevSelected - 1;
|
|
25366
|
+
dropdownScroll(itemsRef[newIndex]);
|
|
25367
|
+
return newIndex;
|
|
25366
25368
|
});
|
|
25367
25369
|
}
|
|
25368
25370
|
if (event.key === 'ArrowDown') {
|
|
25369
|
-
|
|
25371
|
+
setSelectedItemIndex(function (prevSelected) {
|
|
25370
25372
|
if (prevSelected === undefined) return 0;
|
|
25371
|
-
var
|
|
25372
|
-
dropdownScroll(itemsRef[
|
|
25373
|
-
return
|
|
25373
|
+
var newIndex = prevSelected === values.length - 1 ? 0 : prevSelected + 1;
|
|
25374
|
+
dropdownScroll(itemsRef[newIndex]);
|
|
25375
|
+
return newIndex;
|
|
25374
25376
|
});
|
|
25375
25377
|
}
|
|
25376
|
-
if ((event.key === 'Enter' || event.key === 'Tab') &&
|
|
25377
|
-
handleClick(event);
|
|
25378
|
+
if ((event.key === 'Enter' || event.key === 'Tab') && selectedItemIndex !== undefined) {
|
|
25379
|
+
handleClick(event, values[selectedItemIndex]);
|
|
25378
25380
|
}
|
|
25379
25381
|
return null;
|
|
25380
|
-
}, [
|
|
25381
|
-
);
|
|
25382
|
-
|
|
25382
|
+
}, [selectedItemIndex, values]);
|
|
25383
25383
|
React.useEffect(function () {
|
|
25384
25384
|
document.addEventListener('keydown', handleKeyDown, false);
|
|
25385
25385
|
return function () {
|
|
@@ -27403,6 +27403,7 @@ var CooldownTimer = function (_a) {
|
|
|
27403
27403
|
var useCommandTrigger = function () {
|
|
27404
27404
|
var themeVersion = icons.useChatContext('useCommandTrigger').themeVersion;
|
|
27405
27405
|
var channelConfig = icons.useChannelStateContext('useCommandTrigger').channelConfig;
|
|
27406
|
+
var t = icons.useTranslationContext('useCommandTrigger').t;
|
|
27406
27407
|
var commands = channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.commands;
|
|
27407
27408
|
return {
|
|
27408
27409
|
component: CommandItem,
|
|
@@ -27411,7 +27412,7 @@ var useCommandTrigger = function () {
|
|
|
27411
27412
|
return [];
|
|
27412
27413
|
}
|
|
27413
27414
|
var selectedCommands = commands.filter(function (command) { var _a; return ((_a = command.name) === null || _a === void 0 ? void 0 : _a.indexOf(query)) !== -1; });
|
|
27414
|
-
// sort alphabetically unless
|
|
27415
|
+
// sort alphabetically unless you're matching the first char
|
|
27415
27416
|
selectedCommands.sort(function (a, b) {
|
|
27416
27417
|
var _a, _b;
|
|
27417
27418
|
var nameA = (_a = a.name) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
@@ -27435,8 +27436,23 @@ var useCommandTrigger = function () {
|
|
|
27435
27436
|
});
|
|
27436
27437
|
var result = selectedCommands.slice(0, themeVersion === '2' ? 5 : 10);
|
|
27437
27438
|
if (onReady)
|
|
27438
|
-
onReady(result
|
|
27439
|
+
onReady(result
|
|
27440
|
+
.filter(function (result) {
|
|
27439
27441
|
return result.name !== undefined;
|
|
27442
|
+
})
|
|
27443
|
+
.map(function (commandData) {
|
|
27444
|
+
var translatedCommandData = {
|
|
27445
|
+
name: commandData.name,
|
|
27446
|
+
};
|
|
27447
|
+
if (commandData.args)
|
|
27448
|
+
translatedCommandData.args = t("".concat(commandData.name, "-command-args"), {
|
|
27449
|
+
defaultValue: commandData.args,
|
|
27450
|
+
});
|
|
27451
|
+
if (commandData.description)
|
|
27452
|
+
translatedCommandData.description = t("".concat(commandData.name, "-command-description"), {
|
|
27453
|
+
defaultValue: commandData.description,
|
|
27454
|
+
});
|
|
27455
|
+
return translatedCommandData;
|
|
27440
27456
|
}), query);
|
|
27441
27457
|
return result;
|
|
27442
27458
|
},
|
|
@@ -29993,7 +30009,7 @@ var UnMemoizedChannel = function (props) {
|
|
|
29993
30009
|
};
|
|
29994
30010
|
var ChannelInner = function (props) {
|
|
29995
30011
|
var _a;
|
|
29996
|
-
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, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _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;
|
|
30012
|
+
var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _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;
|
|
29997
30013
|
var _h = icons.useChatContext('Channel'), client = _h.client, customClasses = _h.customClasses, latestMessageDatesByChannels = _h.latestMessageDatesByChannels, mutes = _h.mutes, theme = _h.theme;
|
|
29998
30014
|
var t = icons.useTranslationContext('Channel').t;
|
|
29999
30015
|
var _j = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _j.channelClass, chatClass = _j.chatClass, chatContainerClass = _j.chatContainerClass, windowsEmojiClass = _j.windowsEmojiClass;
|
|
@@ -30330,6 +30346,28 @@ var ChannelInner = function (props) {
|
|
|
30330
30346
|
}
|
|
30331
30347
|
});
|
|
30332
30348
|
}); };
|
|
30349
|
+
var deleteMessage = React.useCallback(function (message) { return icons.__awaiter(void 0, void 0, void 0, function () {
|
|
30350
|
+
var deletedMessage, result;
|
|
30351
|
+
return icons.__generator(this, function (_a) {
|
|
30352
|
+
switch (_a.label) {
|
|
30353
|
+
case 0:
|
|
30354
|
+
if (!(message === null || message === void 0 ? void 0 : message.id)) {
|
|
30355
|
+
throw new Error('Cannot delete a message - missing message ID.');
|
|
30356
|
+
}
|
|
30357
|
+
if (!doDeleteMessageRequest) return [3 /*break*/, 2];
|
|
30358
|
+
return [4 /*yield*/, doDeleteMessageRequest(message)];
|
|
30359
|
+
case 1:
|
|
30360
|
+
deletedMessage = _a.sent();
|
|
30361
|
+
return [3 /*break*/, 4];
|
|
30362
|
+
case 2: return [4 /*yield*/, client.deleteMessage(message.id)];
|
|
30363
|
+
case 3:
|
|
30364
|
+
result = _a.sent();
|
|
30365
|
+
deletedMessage = result.message;
|
|
30366
|
+
_a.label = 4;
|
|
30367
|
+
case 4: return [2 /*return*/, deletedMessage];
|
|
30368
|
+
}
|
|
30369
|
+
});
|
|
30370
|
+
}); }, [client, doDeleteMessageRequest]);
|
|
30333
30371
|
var updateMessage = function (updatedMessage) {
|
|
30334
30372
|
// add the message to the local channel state
|
|
30335
30373
|
channel.state.addMessageSorted(updatedMessage, true);
|
|
@@ -30513,6 +30551,7 @@ var ChannelInner = function (props) {
|
|
|
30513
30551
|
var channelActionContextValue = React.useMemo(function () { return ({
|
|
30514
30552
|
addNotification: addNotification,
|
|
30515
30553
|
closeThread: closeThread,
|
|
30554
|
+
deleteMessage: deleteMessage,
|
|
30516
30555
|
dispatch: dispatch,
|
|
30517
30556
|
editMessage: editMessage,
|
|
30518
30557
|
jumpToLatestMessage: jumpToLatestMessage,
|
|
@@ -30531,6 +30570,7 @@ var ChannelInner = function (props) {
|
|
|
30531
30570
|
updateMessage: updateMessage,
|
|
30532
30571
|
}); }, [
|
|
30533
30572
|
channel.cid,
|
|
30573
|
+
deleteMessage,
|
|
30534
30574
|
enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn,
|
|
30535
30575
|
enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed,
|
|
30536
30576
|
loadMore,
|
|
@@ -31074,8 +31114,7 @@ var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
|
|
|
31074
31114
|
var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
|
|
31075
31115
|
var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
|
|
31076
31116
|
if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
|
|
31077
|
-
var _a = icons.useChatContext('usePaginatedChannels').channelsQueryState, error =
|
|
31078
|
-
var _b = React.useState([]), channels = _b[0], setChannels = _b[1];
|
|
31117
|
+
var _a = icons.useChatContext('usePaginatedChannels'), channels = _a.channels, _b = _a.channelsQueryState, error = _b.error, setError = _b.setError, setQueryInProgress = _b.setQueryInProgress, setChannels = _a.setChannels;
|
|
31079
31118
|
var _c = React.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
|
|
31080
31119
|
var lastRecoveryTimestamp = React.useRef();
|
|
31081
31120
|
var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
|
|
@@ -31155,6 +31194,7 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
31155
31194
|
React.useEffect(function () {
|
|
31156
31195
|
queryChannels('reload');
|
|
31157
31196
|
}, [filterString, sortString]);
|
|
31197
|
+
// FIXME: state refactor (breaking change) is needed - do not forward `channels` and `setChannel`
|
|
31158
31198
|
return {
|
|
31159
31199
|
channels: channels,
|
|
31160
31200
|
hasNextPage: hasNextPage,
|
|
@@ -31756,13 +31796,15 @@ var deprecationAndReplacementWarning = function (pairs, component) {
|
|
|
31756
31796
|
};
|
|
31757
31797
|
|
|
31758
31798
|
var UnMemoizedLoadMoreButton = function (_a) {
|
|
31759
|
-
var
|
|
31799
|
+
var children = _a.children, isLoading = _a.isLoading, onClick = _a.onClick, refreshing = _a.refreshing;
|
|
31800
|
+
var t = icons.useTranslationContext('UnMemoizedLoadMoreButton').t;
|
|
31801
|
+
var childrenOrDefaultString = children !== null && children !== void 0 ? children : t('Load more');
|
|
31760
31802
|
var loading = typeof isLoading !== 'undefined' ? isLoading : refreshing;
|
|
31761
31803
|
React.useEffect(function () {
|
|
31762
31804
|
deprecationAndReplacementWarning([[{ refreshing: refreshing }, { isLoading: isLoading }]], 'LoadMoreButton');
|
|
31763
31805
|
}, []);
|
|
31764
31806
|
return (React__default["default"].createElement("div", { className: 'str-chat__load-more-button' },
|
|
31765
|
-
React__default["default"].createElement("button", { "aria-label": 'Load More Channels', className: 'str-chat__load-more-button__button str-chat__cta-button', "data-testid": 'load-more-button', disabled: loading, onClick: onClick }, loading ? React__default["default"].createElement(LoadingIndicator, null) :
|
|
31807
|
+
React__default["default"].createElement("button", { "aria-label": 'Load More Channels', className: 'str-chat__load-more-button__button str-chat__cta-button', "data-testid": 'load-more-button', disabled: loading, onClick: onClick }, loading ? React__default["default"].createElement(LoadingIndicator, null) : childrenOrDefaultString)));
|
|
31766
31808
|
};
|
|
31767
31809
|
var LoadMoreButton = React__default["default"].memo(UnMemoizedLoadMoreButton);
|
|
31768
31810
|
|
|
@@ -31897,7 +31939,8 @@ var UnMemoizedChannelList = function (props) {
|
|
|
31897
31939
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
31898
31940
|
React__default["default"].createElement("div", { className: className, ref: channelListRef },
|
|
31899
31941
|
showChannelSearch && (React__default["default"].createElement(ChannelSearch$1, icons.__assign({ onSearch: onSearch, onSearchExit: onSearchExit, setChannels: setChannels }, additionalChannelSearchProps))),
|
|
31900
|
-
showChannelList && (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress
|
|
31942
|
+
showChannelList && (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: !!channelsQueryState.queryInProgress &&
|
|
31943
|
+
['reload', 'uninitialized'].includes(channelsQueryState.queryInProgress), 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, isLoading: channelsQueryState.queryInProgress === 'load-more', loadNextPage: loadNextPage }, renderChannels
|
|
31901
31944
|
? renderChannels(loadedChannels, renderChannel)
|
|
31902
31945
|
: loadedChannels.map(function (channel) { return renderChannel(channel); }))))))));
|
|
31903
31946
|
};
|
|
@@ -31906,7 +31949,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
31906
31949
|
*/
|
|
31907
31950
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
31908
31951
|
|
|
31909
|
-
var version = '11.0.0-rc.
|
|
31952
|
+
var version = '11.0.0-rc.4';
|
|
31910
31953
|
|
|
31911
31954
|
var useChat = function (_a) {
|
|
31912
31955
|
var _b, _c;
|
|
@@ -31916,10 +31959,11 @@ var useChat = function (_a) {
|
|
|
31916
31959
|
tDateTimeParser: icons.defaultDateTimeParser,
|
|
31917
31960
|
userLanguage: 'en',
|
|
31918
31961
|
}), translators = _e[0], setTranslators = _e[1];
|
|
31919
|
-
var _f = React.useState(),
|
|
31920
|
-
var _g = React.useState(
|
|
31921
|
-
var _h = React.useState(
|
|
31922
|
-
var _j = React.useState(
|
|
31962
|
+
var _f = React.useState([]), channels = _f[0], setChannels = _f[1];
|
|
31963
|
+
var _g = React.useState(), channel = _g[0], setChannel = _g[1];
|
|
31964
|
+
var _h = React.useState([]), mutes = _h[0], setMutes = _h[1];
|
|
31965
|
+
var _j = React.useState(initialNavOpen), navOpen = _j[0], setNavOpen = _j[1];
|
|
31966
|
+
var _k = React.useState({}), latestMessageDatesByChannels = _k[0], setLatestMessageDatesByChannels = _k[1];
|
|
31923
31967
|
var clientMutes = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes) || [];
|
|
31924
31968
|
var closeMobileNav = function () { return setNavOpen(false); };
|
|
31925
31969
|
var openMobileNav = function () { return setTimeout(function () { return setNavOpen(true); }, 100); };
|
|
@@ -31990,6 +32034,7 @@ var useChat = function (_a) {
|
|
|
31990
32034
|
}, [(_c = client.user) === null || _c === void 0 ? void 0 : _c.id]);
|
|
31991
32035
|
return {
|
|
31992
32036
|
channel: channel,
|
|
32037
|
+
channels: channels,
|
|
31993
32038
|
closeMobileNav: closeMobileNav,
|
|
31994
32039
|
getAppSettings: getAppSettings,
|
|
31995
32040
|
latestMessageDatesByChannels: latestMessageDatesByChannels,
|
|
@@ -31997,13 +32042,14 @@ var useChat = function (_a) {
|
|
|
31997
32042
|
navOpen: navOpen,
|
|
31998
32043
|
openMobileNav: openMobileNav,
|
|
31999
32044
|
setActiveChannel: setActiveChannel,
|
|
32045
|
+
setChannels: setChannels,
|
|
32000
32046
|
translators: translators,
|
|
32001
32047
|
};
|
|
32002
32048
|
};
|
|
32003
32049
|
|
|
32004
32050
|
var useCreateChatContext = function (value) {
|
|
32005
32051
|
var _a;
|
|
32006
|
-
var channel = value.channel, channelsQueryState = value.channelsQueryState, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, themeVersion = value.themeVersion, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
32052
|
+
var channel = value.channel, channels = value.channels, channelsQueryState = value.channelsQueryState, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, setChannels = value.setChannels, theme = value.theme, themeVersion = value.themeVersion, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
32007
32053
|
var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
|
|
32008
32054
|
var channelsQueryError = channelsQueryState.error;
|
|
32009
32055
|
var channelsQueryInProgress = channelsQueryState.queryInProgress;
|
|
@@ -32011,6 +32057,7 @@ var useCreateChatContext = function (value) {
|
|
|
32011
32057
|
var mutedUsersLength = mutes.length;
|
|
32012
32058
|
var chatContext = React.useMemo(function () { return ({
|
|
32013
32059
|
channel: channel,
|
|
32060
|
+
channels: channels,
|
|
32014
32061
|
channelsQueryState: channelsQueryState,
|
|
32015
32062
|
client: client,
|
|
32016
32063
|
closeMobileNav: closeMobileNav,
|
|
@@ -32021,6 +32068,7 @@ var useCreateChatContext = function (value) {
|
|
|
32021
32068
|
navOpen: navOpen,
|
|
32022
32069
|
openMobileNav: openMobileNav,
|
|
32023
32070
|
setActiveChannel: setActiveChannel,
|
|
32071
|
+
setChannels: setChannels,
|
|
32024
32072
|
theme: theme,
|
|
32025
32073
|
themeVersion: themeVersion,
|
|
32026
32074
|
useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
|
|
@@ -32028,17 +32076,19 @@ var useCreateChatContext = function (value) {
|
|
|
32028
32076
|
channelCid,
|
|
32029
32077
|
channelsQueryError,
|
|
32030
32078
|
channelsQueryInProgress,
|
|
32079
|
+
channels,
|
|
32031
32080
|
clientValues,
|
|
32032
32081
|
getAppSettings,
|
|
32033
32082
|
mutedUsersLength,
|
|
32034
32083
|
navOpen,
|
|
32084
|
+
setChannels,
|
|
32035
32085
|
]);
|
|
32036
32086
|
return chatContext;
|
|
32037
32087
|
};
|
|
32038
32088
|
|
|
32039
32089
|
var useChannelsQueryState = function () {
|
|
32040
32090
|
var _a = React.useState(null), error = _a[0], setError = _a[1];
|
|
32041
|
-
var _b = React.useState(
|
|
32091
|
+
var _b = React.useState('uninitialized'), queryInProgress = _b[0], setQueryInProgress = _b[1];
|
|
32042
32092
|
return {
|
|
32043
32093
|
error: error,
|
|
32044
32094
|
queryInProgress: queryInProgress,
|
|
@@ -32090,7 +32140,7 @@ var useCustomStyles = function (customStyles) {
|
|
|
32090
32140
|
*/
|
|
32091
32141
|
var Chat = function (props) {
|
|
32092
32142
|
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;
|
|
32093
|
-
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
|
|
32143
|
+
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, channels = _e.channels, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, setChannels = _e.setChannels, translators = _e.translators;
|
|
32094
32144
|
var channelsQueryState = useChannelsQueryState();
|
|
32095
32145
|
var themeVersion = typeof window !== 'undefined'
|
|
32096
32146
|
? (window
|
|
@@ -32101,6 +32151,7 @@ var Chat = function (props) {
|
|
|
32101
32151
|
useCustomStyles(darkMode ? darkModeTheme : customStyles);
|
|
32102
32152
|
var chatContextValue = useCreateChatContext({
|
|
32103
32153
|
channel: channel,
|
|
32154
|
+
channels: channels,
|
|
32104
32155
|
channelsQueryState: channelsQueryState,
|
|
32105
32156
|
client: client,
|
|
32106
32157
|
closeMobileNav: closeMobileNav,
|
|
@@ -32111,6 +32162,7 @@ var Chat = function (props) {
|
|
|
32111
32162
|
navOpen: navOpen,
|
|
32112
32163
|
openMobileNav: openMobileNav,
|
|
32113
32164
|
setActiveChannel: setActiveChannel,
|
|
32165
|
+
setChannels: setChannels,
|
|
32114
32166
|
theme: theme,
|
|
32115
32167
|
themeVersion: themeVersion,
|
|
32116
32168
|
useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
|
|
@@ -32308,11 +32360,11 @@ function useActionHandler(message) {
|
|
|
32308
32360
|
var useDeleteHandler = function (message, notifications) {
|
|
32309
32361
|
if (notifications === void 0) { notifications = {}; }
|
|
32310
32362
|
var getErrorNotification = notifications.getErrorNotification, notify = notifications.notify;
|
|
32311
|
-
var
|
|
32363
|
+
var _a = icons.useChannelActionContext('useDeleteHandler'), deleteMessage = _a.deleteMessage, updateMessage = _a.updateMessage;
|
|
32312
32364
|
var client = icons.useChatContext('useDeleteHandler').client;
|
|
32313
32365
|
var t = icons.useTranslationContext('useDeleteHandler').t;
|
|
32314
32366
|
return function (event) { return icons.__awaiter(void 0, void 0, void 0, function () {
|
|
32315
|
-
var
|
|
32367
|
+
var deletedMessage, errorMessage;
|
|
32316
32368
|
return icons.__generator(this, function (_a) {
|
|
32317
32369
|
switch (_a.label) {
|
|
32318
32370
|
case 0:
|
|
@@ -32323,10 +32375,10 @@ var useDeleteHandler = function (message, notifications) {
|
|
|
32323
32375
|
_a.label = 1;
|
|
32324
32376
|
case 1:
|
|
32325
32377
|
_a.trys.push([1, 3, , 4]);
|
|
32326
|
-
return [4 /*yield*/,
|
|
32378
|
+
return [4 /*yield*/, deleteMessage(message)];
|
|
32327
32379
|
case 2:
|
|
32328
|
-
|
|
32329
|
-
updateMessage(
|
|
32380
|
+
deletedMessage = _a.sent();
|
|
32381
|
+
updateMessage(deletedMessage);
|
|
32330
32382
|
return [3 /*break*/, 4];
|
|
32331
32383
|
case 3:
|
|
32332
32384
|
_a.sent();
|
package/dist/scss/_base.scss
CHANGED
|
@@ -105,47 +105,6 @@
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
/* declare a font faces for our Emoji Replacement font, based on the default font used by Stream Chat React */
|
|
109
|
-
|
|
110
|
-
$emoji-flag-unicode-range: U+1F1E6-1F1FF;
|
|
111
|
-
|
|
112
|
-
/* png based woff for most browsers */
|
|
113
|
-
@font-face {
|
|
114
|
-
font-family: ReplaceFlagEmojiPNG;
|
|
115
|
-
src: url('#{$assetsPath}/NotoColorEmoji-flags.woff2') format('woff2');
|
|
116
|
-
/* using the unicode-range attribute to limit the reach of the Flag Emoji web font to only flags */
|
|
117
|
-
unicode-range: $emoji-flag-unicode-range;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* svg based for firefox */
|
|
121
|
-
@font-face {
|
|
122
|
-
font-family: ReplaceFlagEmojiSVG;
|
|
123
|
-
src: url('#{$assetsPath}/EmojiOneColor.woff2') format('woff2');
|
|
124
|
-
unicode-range: $emoji-flag-unicode-range;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.str-chat--windows-flags {
|
|
128
|
-
.str-chat__textarea__textarea,
|
|
129
|
-
.str-chat__message-text-inner *,
|
|
130
|
-
.str-chat__emoji-item--entity,
|
|
131
|
-
.emoji-mart-emoji-native * {
|
|
132
|
-
font-family: ReplaceFlagEmojiPNG, var(--second-font), sans-serif;
|
|
133
|
-
font-display: swap;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
@-moz-document url-prefix('') {
|
|
138
|
-
.str-chat--windows-flags {
|
|
139
|
-
.str-chat__textarea__textarea,
|
|
140
|
-
.str-chat__message-text-inner *,
|
|
141
|
-
.str-chat__emoji-item--entity,
|
|
142
|
-
.emoji-mart-emoji-native * {
|
|
143
|
-
font-family: ReplaceFlagEmojiSVG, var(--second-font), sans-serif;
|
|
144
|
-
font-display: swap;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
108
|
.str-chat-channel-list {
|
|
150
109
|
float: left;
|
|
151
110
|
}
|
package/dist/scss/index.scss
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
@import './base.scss';
|
|
4
4
|
|
|
5
5
|
// External dependencies (copied from libraries to rectify built file path discrepancies)
|
|
6
|
-
@import '../vendor/emoji-mart.scss'; // copy from '../../node_modules/emoji-mart/css/emoji-mart.css'
|
|
7
6
|
@import '../vendor/mml-react.scss'; // copy from '../../node_modules/mml-react/dist/styles/index.css'
|
|
8
7
|
@import '../vendor/react-file-utils.scss'; // copy from '../../node_modules/react-file-utils/dist/index.css'
|
|
9
8
|
@import '../vendor/react-image-gallery.scss'; // copy from '../../node_modules/react-image-gallery/styles/css/image-gallery.css'
|
|
@@ -18,6 +18,7 @@ $emoji-flag-unicode-range: U+1F1E6-1F1FF;
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.str-chat--windows-flags {
|
|
21
|
+
// TODO: consider adding the rule for reactions (list & selector) if we ever decide to make them use native emojis
|
|
21
22
|
.str-chat__textarea__textarea,
|
|
22
23
|
.str-chat__message-text-inner *,
|
|
23
24
|
.str-chat__emoji-item--entity,
|
package/dist/scss/v2/index.scss
CHANGED
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "11.0.0-rc.
|
|
1
|
+
export declare const version = "11.0.0-rc.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var version = '11.0.0-rc.
|
|
1
|
+
export var version = '11.0.0-rc.4';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react",
|
|
3
|
-
"version": "11.0.0-rc.
|
|
3
|
+
"version": "11.0.0-rc.4",
|
|
4
4
|
"description": "React components to create chat conversations or livestream style chat",
|
|
5
5
|
"author": "GetStream",
|
|
6
6
|
"homepage": "https://getstream.io/chat/",
|
|
@@ -24,9 +24,20 @@
|
|
|
24
24
|
"require": "./dist/components/Emojis/index.cjs.js",
|
|
25
25
|
"import": "./dist/components/Emojis/index.js",
|
|
26
26
|
"default": "./dist/components/Emojis/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./dist/css/*": {
|
|
29
|
+
"default": "./dist/css/*"
|
|
30
|
+
},
|
|
31
|
+
"./dist/scss/*": {
|
|
32
|
+
"default": "./dist/scss/*"
|
|
33
|
+
},
|
|
34
|
+
"./css/*": {
|
|
35
|
+
"default": "./dist/css/*"
|
|
36
|
+
},
|
|
37
|
+
"./scss/*": {
|
|
38
|
+
"default": "./dist/scss/*"
|
|
27
39
|
}
|
|
28
40
|
},
|
|
29
|
-
"style": "dist/css/v2/index.css",
|
|
30
41
|
"sideEffects": [
|
|
31
42
|
"*.css"
|
|
32
43
|
],
|
|
@@ -42,7 +53,7 @@
|
|
|
42
53
|
"dependencies": {
|
|
43
54
|
"@braintree/sanitize-url": "^6.0.4",
|
|
44
55
|
"@popperjs/core": "^2.11.5",
|
|
45
|
-
"@stream-io/stream-chat-css": "^
|
|
56
|
+
"@stream-io/stream-chat-css": "^4.0.0-rc.5",
|
|
46
57
|
"clsx": "^2.0.0",
|
|
47
58
|
"dayjs": "^1.10.4",
|
|
48
59
|
"emoji-regex": "^9.2.0",
|
|
@@ -151,6 +162,7 @@
|
|
|
151
162
|
"babel-plugin-module-resolver": "^4.1.0",
|
|
152
163
|
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
|
|
153
164
|
"codecov": "^3.8.1",
|
|
165
|
+
"conventional-changelog-conventionalcommits": "^7.0.2",
|
|
154
166
|
"core-js": "^3.6.5",
|
|
155
167
|
"css-loader": "^5.0.1",
|
|
156
168
|
"emoji-mart": "^5.5.2",
|