stream-chat-react 10.0.0-theming-v2.3 → 10.0.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 +216 -202
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +3 -3
- 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 +1 -1
- package/dist/components/Attachment/AttachmentContainer.js +2 -2
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +6 -1
- package/dist/components/ChannelList/ChannelList.d.ts +3 -9
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +24 -26
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +6 -3
- package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.js +19 -2
- package/dist/components/ChannelSearch/SearchBar.js +1 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts +3 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchInput.js +2 -2
- package/dist/components/ChannelSearch/SearchResults.js +1 -2
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +9 -7
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +23 -29
- package/dist/components/MessageActions/MessageActionsBox.js +1 -1
- package/dist/components/MessageInput/CooldownTimer.d.ts +7 -0
- package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -0
- package/dist/components/MessageInput/CooldownTimer.js +17 -0
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +1 -1
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +0 -5
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +1 -17
- package/dist/components/MessageInput/index.d.ts +1 -0
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +1 -0
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/index.css.map +1 -1
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.css.map +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/css/v2/index.layout.css.map +1 -1
- package/dist/index.cjs.js +214 -200
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Attachment.scss +45 -2
- package/dist/scss/Gallery.scss +12 -6
- package/dist/scss/Message.scss +2 -1
- package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +72 -46
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +2 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
|
@@ -5585,7 +5585,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
5585
5585
|
var handleActionClick = function (event, name, value) { return actionHandler === null || actionHandler === void 0 ? void 0 : actionHandler(name, value, event); };
|
|
5586
5586
|
return (React__default["default"].createElement("div", { className: 'str-chat__message-attachment-actions' },
|
|
5587
5587
|
React__default["default"].createElement("div", { className: 'str-chat__message-attachment-actions-form' },
|
|
5588
|
-
React__default["default"].createElement("span",
|
|
5588
|
+
React__default["default"].createElement("span", null, text),
|
|
5589
5589
|
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)); }))));
|
|
5590
5590
|
};
|
|
5591
5591
|
/**
|
|
@@ -13531,7 +13531,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
13531
13531
|
var actionHandler = _a.actionHandler, attachment = _a.attachment, _c = _a.AttachmentActions, AttachmentActions$1 = _c === void 0 ? AttachmentActions : _c;
|
|
13532
13532
|
if (!((_b = attachment.actions) === null || _b === void 0 ? void 0 : _b.length))
|
|
13533
13533
|
return null;
|
|
13534
|
-
return (React__default["default"].createElement(AttachmentActions$1, __assign$8({}, attachment, { actionHandler:
|
|
13534
|
+
return (React__default["default"].createElement(AttachmentActions$1, __assign$8({}, attachment, { actionHandler: actionHandler, actions: attachment.actions, id: attachment.id || '', text: attachment.text || '' })));
|
|
13535
13535
|
};
|
|
13536
13536
|
var GalleryContainer = function (_a) {
|
|
13537
13537
|
var attachment = _a.attachment, _b = _a.Gallery, Gallery$1 = _b === void 0 ? Gallery : _b;
|
|
@@ -13555,7 +13555,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
13555
13555
|
var componentType = 'card';
|
|
13556
13556
|
if (attachment.actions && attachment.actions.length) {
|
|
13557
13557
|
return (React__default["default"].createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
13558
|
-
React__default["default"].createElement("div", { className: 'str-chat__attachment'
|
|
13558
|
+
React__default["default"].createElement("div", { className: 'str-chat__attachment' },
|
|
13559
13559
|
React__default["default"].createElement(Card, __assign$8({}, attachment)),
|
|
13560
13560
|
React__default["default"].createElement(AttachmentActionsContainer, __assign$8({}, props)))));
|
|
13561
13561
|
}
|
|
@@ -40891,7 +40891,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
40891
40891
|
var customActionsArray = Object.keys(customMessageActions);
|
|
40892
40892
|
return (React__default["default"].createElement(React__default["default"].Fragment, null, customActionsArray.map(function (customAction) {
|
|
40893
40893
|
var customHandler = customMessageActions[customAction];
|
|
40894
|
-
return (React__default["default"].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', key: customAction, onClick: function (event) { return customHandler(message, event); }, role: 'option' }, customAction));
|
|
40894
|
+
return (React__default["default"].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item str-chat__message-actions-list-item-button', key: customAction, onClick: function (event) { return customHandler(message, event); }, role: 'option' }, customAction));
|
|
40895
40895
|
})));
|
|
40896
40896
|
};
|
|
40897
40897
|
var UnMemoizedMessageActionsBox = function (props) {
|
|
@@ -45385,46 +45385,6 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
45385
45385
|
|
|
45386
45386
|
function noop$1() {}
|
|
45387
45387
|
|
|
45388
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CooldownTimer = function (_a) {
|
|
45389
|
-
var cooldownInterval = _a.cooldownInterval, setCooldownRemaining = _a.setCooldownRemaining;
|
|
45390
|
-
var _b = React.useState(cooldownInterval), seconds = _b[0], setSeconds = _b[1];
|
|
45391
|
-
React.useEffect(function () {
|
|
45392
|
-
var countdownInterval = setInterval(function () {
|
|
45393
|
-
if (seconds > 0) {
|
|
45394
|
-
setSeconds(seconds - 1);
|
|
45395
|
-
}
|
|
45396
|
-
else {
|
|
45397
|
-
setCooldownRemaining(0);
|
|
45398
|
-
}
|
|
45399
|
-
}, 1000);
|
|
45400
|
-
return function () { return clearInterval(countdownInterval); };
|
|
45401
|
-
});
|
|
45402
|
-
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds === 0 ? null : seconds));
|
|
45403
|
-
};
|
|
45404
|
-
var useCooldownTimer = function () {
|
|
45405
|
-
var latestMessageDatesByChannels = useChatContext('useCooldownTimer').latestMessageDatesByChannels;
|
|
45406
|
-
var channel = useChannelStateContext('useCooldownTimer').channel;
|
|
45407
|
-
var _a = (channel.data ||
|
|
45408
|
-
{}), cooldownInterval = _a.cooldown, own_capabilities = _a.own_capabilities;
|
|
45409
|
-
var _b = React.useState(), cooldownRemaining = _b[0], setCooldownRemaining = _b[1];
|
|
45410
|
-
var skipCooldown = !(own_capabilities === null || own_capabilities === void 0 ? void 0 : own_capabilities.includes('slow-mode'));
|
|
45411
|
-
React.useEffect(function () {
|
|
45412
|
-
var latestMessageDate = latestMessageDatesByChannels[channel.cid];
|
|
45413
|
-
if (!cooldownInterval || !latestMessageDate) {
|
|
45414
|
-
return;
|
|
45415
|
-
}
|
|
45416
|
-
var remainingCooldown = Math.round(cooldownInterval - (new Date().getTime() - latestMessageDate.getTime()) / 1000);
|
|
45417
|
-
if (remainingCooldown > 0 && !skipCooldown) {
|
|
45418
|
-
setCooldownRemaining(remainingCooldown);
|
|
45419
|
-
}
|
|
45420
|
-
}, [channel.id, cooldownInterval, latestMessageDatesByChannels[channel.cid]]);
|
|
45421
|
-
return {
|
|
45422
|
-
cooldownInterval: cooldownInterval || 0,
|
|
45423
|
-
cooldownRemaining: cooldownRemaining,
|
|
45424
|
-
setCooldownRemaining: setCooldownRemaining,
|
|
45425
|
-
};
|
|
45426
|
-
};
|
|
45427
|
-
|
|
45428
45388
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var QuotedMessagePreviewHeader = function () {
|
|
45429
45389
|
var setQuotedMessage = useChannelActionContext('QuotedMessagePreview').setQuotedMessage;
|
|
45430
45390
|
var t = useTranslationContext('QuotedMessagePreview').t;
|
|
@@ -45525,6 +45485,23 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
45525
45485
|
state.uploading && React__default["default"].createElement(LoadingIndicatorIcon, { size: 17 }))));
|
|
45526
45486
|
};
|
|
45527
45487
|
|
|
45488
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CooldownTimer = function (_a) {
|
|
45489
|
+
var cooldownInterval = _a.cooldownInterval, setCooldownRemaining = _a.setCooldownRemaining;
|
|
45490
|
+
var _b = React.useState(cooldownInterval), seconds = _b[0], setSeconds = _b[1];
|
|
45491
|
+
React.useEffect(function () {
|
|
45492
|
+
var countdownInterval = setInterval(function () {
|
|
45493
|
+
if (seconds > 0) {
|
|
45494
|
+
setSeconds(seconds - 1);
|
|
45495
|
+
}
|
|
45496
|
+
else {
|
|
45497
|
+
setCooldownRemaining(0);
|
|
45498
|
+
}
|
|
45499
|
+
}, 1000);
|
|
45500
|
+
return function () { return clearInterval(countdownInterval); };
|
|
45501
|
+
});
|
|
45502
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds === 0 ? null : seconds));
|
|
45503
|
+
};
|
|
45504
|
+
|
|
45528
45505
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MessageInputFlat = function () {
|
|
45529
45506
|
var quotedMessage = useChannelStateContext('MessageInputFlat').quotedMessage;
|
|
45530
45507
|
var setQuotedMessage = useChannelActionContext('MessageInputFlat').setQuotedMessage;
|
|
@@ -45677,6 +45654,30 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
45677
45654
|
React__default["default"].createElement("button", { className: 'str-chat__edit-message-send', type: 'submit' }, t('Send'))))))));
|
|
45678
45655
|
};
|
|
45679
45656
|
|
|
45657
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCooldownTimer = function () {
|
|
45658
|
+
var latestMessageDatesByChannels = useChatContext('useCooldownTimer').latestMessageDatesByChannels;
|
|
45659
|
+
var channel = useChannelStateContext('useCooldownTimer').channel;
|
|
45660
|
+
var _a = (channel.data ||
|
|
45661
|
+
{}), cooldownInterval = _a.cooldown, own_capabilities = _a.own_capabilities;
|
|
45662
|
+
var _b = React.useState(), cooldownRemaining = _b[0], setCooldownRemaining = _b[1];
|
|
45663
|
+
var skipCooldown = !(own_capabilities === null || own_capabilities === void 0 ? void 0 : own_capabilities.includes('slow-mode'));
|
|
45664
|
+
React.useEffect(function () {
|
|
45665
|
+
var latestMessageDate = latestMessageDatesByChannels[channel.cid];
|
|
45666
|
+
if (!cooldownInterval || !latestMessageDate) {
|
|
45667
|
+
return;
|
|
45668
|
+
}
|
|
45669
|
+
var remainingCooldown = Math.round(cooldownInterval - (new Date().getTime() - latestMessageDate.getTime()) / 1000);
|
|
45670
|
+
if (remainingCooldown > 0 && !skipCooldown) {
|
|
45671
|
+
setCooldownRemaining(remainingCooldown);
|
|
45672
|
+
}
|
|
45673
|
+
}, [channel.id, cooldownInterval, latestMessageDatesByChannels[channel.cid]]);
|
|
45674
|
+
return {
|
|
45675
|
+
cooldownInterval: cooldownInterval || 0,
|
|
45676
|
+
cooldownRemaining: cooldownRemaining,
|
|
45677
|
+
setCooldownRemaining: setCooldownRemaining,
|
|
45678
|
+
};
|
|
45679
|
+
};
|
|
45680
|
+
|
|
45680
45681
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useEmojiIndex = function () {
|
|
45681
45682
|
var _a = useEmojiContext('useEmojiIndex'), emojiConfig = _a.emojiConfig, EmojiIndex = _a.EmojiIndex;
|
|
45682
45683
|
var emojiData = (emojiConfig || {}).emojiData;
|
|
@@ -47512,6 +47513,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
47512
47513
|
});
|
|
47513
47514
|
});
|
|
47514
47515
|
};
|
|
47516
|
+
var clearHighlightedMessageTimeoutId = React.useRef(null);
|
|
47515
47517
|
var jumpToMessage = function (messageId, messageLimit) {
|
|
47516
47518
|
if (messageLimit === void 0) { messageLimit = 100; }
|
|
47517
47519
|
return __awaiter$3(void 0, void 0, void 0, function () {
|
|
@@ -47531,7 +47533,11 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
47531
47533
|
highlightedMessageId: messageId,
|
|
47532
47534
|
type: 'jumpToMessageFinished',
|
|
47533
47535
|
});
|
|
47534
|
-
|
|
47536
|
+
if (clearHighlightedMessageTimeoutId.current) {
|
|
47537
|
+
clearTimeout(clearHighlightedMessageTimeoutId.current);
|
|
47538
|
+
}
|
|
47539
|
+
clearHighlightedMessageTimeoutId.current = setTimeout(function () {
|
|
47540
|
+
clearHighlightedMessageTimeoutId.current = null;
|
|
47535
47541
|
dispatch({ type: 'clearHighlightedMessage' });
|
|
47536
47542
|
}, 500);
|
|
47537
47543
|
return [2 /*return*/];
|
|
@@ -48441,151 +48447,34 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48441
48447
|
return (React__default["default"].createElement(Preview, __assign$8({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, setActiveChannel: setActiveChannel, unread: unread })));
|
|
48442
48448
|
};
|
|
48443
48449
|
|
|
48444
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var SearchInput = function (props) {
|
|
48445
|
-
var inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, query = props.query;
|
|
48446
|
-
var t = useTranslationContext('SearchInput').t;
|
|
48447
|
-
return (React__default["default"].createElement("input", { className: 'str-chat__channel-search-input', "data-testid": 'search-input', onChange: onSearch, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
48448
|
-
};
|
|
48449
|
-
|
|
48450
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MenuIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'menu-icon', fill: 'none', height: '24', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48451
|
-
React__default["default"].createElement("path", { clipRule: 'evenodd', d: 'M3 8V6H21V8H3ZM3 13H21V11H3V13ZM3 18H21V16H3V18Z', fill: 'black', fillRule: 'evenodd' }))); };
|
|
48452
|
-
var ReturnIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'return-icon', fill: 'none', height: '20', viewBox: '0 0 22 22', width: '20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48453
|
-
React__default["default"].createElement("path", { d: 'M21.6668 9.66666V12.3333H5.6529L12.9932 19.6736L11.1076 21.5592L0.54834 11L11.1076 0.440765L12.9932 2.32638L5.6529 9.66666H21.6668Z', fill: '#080707' }))); };
|
|
48454
|
-
var XIcon = function () { return (React__default["default"].createElement("svg", { fill: 'none', height: '14', viewBox: '0 0 14 14', width: '14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48455
|
-
React__default["default"].createElement("path", { d: 'M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z', fill: '#747881' }))); };
|
|
48456
|
-
var SearchIcon = function (_a) {
|
|
48457
|
-
var className = _a.className;
|
|
48458
|
-
return (React__default["default"].createElement("svg", { className: className, fill: 'none', height: '18', viewBox: '0 0 18 18', width: '18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48459
|
-
React__default["default"].createElement("path", { d: 'M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z', fill: '#747881' })));
|
|
48460
|
-
};
|
|
48461
|
-
|
|
48462
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
48463
|
-
|
|
48464
48450
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var isChannel = function (output) { return output.cid != null; };
|
|
48465
48451
|
|
|
48466
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var DefaultSearchEmpty = function () {
|
|
48467
|
-
var t = useTranslationContext('SearchResults').t;
|
|
48468
|
-
return (React__default["default"].createElement("div", { "aria-live": 'polite', className: 'str-chat__channel-search-container-empty' },
|
|
48469
|
-
React__default["default"].createElement(SearchIcon, null),
|
|
48470
|
-
t('No results found')));
|
|
48471
|
-
};
|
|
48472
|
-
var DefaultSearchResultsHeader = function (_a) {
|
|
48473
|
-
var results = _a.results;
|
|
48474
|
-
var t = useTranslationContext('SearchResultsHeader').t;
|
|
48475
|
-
return (React__default["default"].createElement("div", { className: 'str-chat__channel-search-results-header', "data-testid": 'channel-search-results-header' }, t('searchResultsCount', {
|
|
48476
|
-
count: results.length,
|
|
48477
|
-
})));
|
|
48478
|
-
};
|
|
48479
|
-
var DefaultSearchResultsList = function (props) {
|
|
48480
|
-
var focusedUser = props.focusedUser, results = props.results, _a = props.SearchResultItem, SearchResultItem = _a === void 0 ? DefaultSearchResultItem : _a, selectResult = props.selectResult;
|
|
48481
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, results.map(function (result, index) { return (React__default["default"].createElement(SearchResultItem, { focusedUser: focusedUser, index: index, key: index, result: result, selectResult: selectResult })); })));
|
|
48482
|
-
};
|
|
48483
|
-
var DefaultSearchResultItem = function (props) {
|
|
48484
|
-
var _a, _b;
|
|
48485
|
-
var focusedUser = props.focusedUser, index = props.index, result = props.result, selectResult = props.selectResult;
|
|
48486
|
-
var focused = focusedUser === index;
|
|
48487
|
-
var themeVersion = useChatContext().themeVersion;
|
|
48488
|
-
var className = clsx('str-chat__channel-search-result', focused && 'str-chat__channel-search-result--focused focused');
|
|
48489
|
-
if (isChannel(result)) {
|
|
48490
|
-
var channel_1 = result;
|
|
48491
|
-
return themeVersion === '2' ? (React__default["default"].createElement(ChannelPreview, { channel: channel_1, className: className, onSelect: function () { return selectResult(channel_1); } })) : (React__default["default"].createElement("button", { "aria-label": "Select Channel: ".concat(((_a = channel_1.data) === null || _a === void 0 ? void 0 : _a.name) || ''), className: className, "data-testid": 'channel-search-result-channel', onClick: function () { return selectResult(channel_1); }, role: 'option' },
|
|
48492
|
-
React__default["default"].createElement("div", { className: 'result-hashtag' }, "#"),
|
|
48493
|
-
React__default["default"].createElement("p", { className: 'channel-search__result-text' }, (_b = channel_1.data) === null || _b === void 0 ? void 0 : _b.name)));
|
|
48494
|
-
}
|
|
48495
|
-
else {
|
|
48496
|
-
return (React__default["default"].createElement("button", { "aria-label": "Select User Channel: ".concat(result.name || ''), className: className, "data-testid": 'channel-search-result-user', onClick: function () { return selectResult(result); }, role: 'option' },
|
|
48497
|
-
React__default["default"].createElement(Avatar, { image: result.image, name: result.name || result.id, size: themeVersion === '2' ? 40 : undefined, user: result }),
|
|
48498
|
-
React__default["default"].createElement("div", { className: 'str-chat__channel-search-result--display-name' }, result.name || result.id)));
|
|
48499
|
-
}
|
|
48500
|
-
};
|
|
48501
|
-
var ResultsContainer = function (_a) {
|
|
48502
|
-
var children = _a.children, popupResults = _a.popupResults;
|
|
48503
|
-
var containerStyle = popupResults ? 'popup' : 'inline';
|
|
48504
|
-
return (React__default["default"].createElement("div", { "aria-label": 'Channel search results', className: "str-chat__channel-search-container str-chat__channel-search-result-list ".concat(containerStyle) }, children));
|
|
48505
|
-
};
|
|
48506
|
-
var SearchResults = function (props) {
|
|
48507
|
-
var popupResults = props.popupResults, results = props.results, searching = props.searching, _a = props.SearchEmpty, SearchEmpty = _a === void 0 ? DefaultSearchEmpty : _a, _b = props.SearchResultsHeader, SearchResultsHeader = _b === void 0 ? DefaultSearchResultsHeader : _b, SearchLoading = props.SearchLoading, _c = props.SearchResultItem, SearchResultItem = _c === void 0 ? DefaultSearchResultItem : _c, _d = props.SearchResultsList, SearchResultsList = _d === void 0 ? DefaultSearchResultsList : _d, selectResult = props.selectResult;
|
|
48508
|
-
var t = useTranslationContext('SearchResults').t;
|
|
48509
|
-
var _e = React.useState(), focusedResult = _e[0], setFocusedResult = _e[1];
|
|
48510
|
-
var handleKeyDown = React.useCallback(function (event) {
|
|
48511
|
-
if (event.key === 'ArrowUp') {
|
|
48512
|
-
setFocusedResult(function (prevFocused) {
|
|
48513
|
-
if (prevFocused === undefined)
|
|
48514
|
-
return 0;
|
|
48515
|
-
return prevFocused === 0 ? results.length - 1 : prevFocused - 1;
|
|
48516
|
-
});
|
|
48517
|
-
}
|
|
48518
|
-
if (event.key === 'ArrowDown') {
|
|
48519
|
-
setFocusedResult(function (prevFocused) {
|
|
48520
|
-
if (prevFocused === undefined)
|
|
48521
|
-
return 0;
|
|
48522
|
-
return prevFocused === results.length - 1 ? 0 : prevFocused + 1;
|
|
48523
|
-
});
|
|
48524
|
-
}
|
|
48525
|
-
if (event.key === 'Enter') {
|
|
48526
|
-
event.preventDefault();
|
|
48527
|
-
if (focusedResult !== undefined) {
|
|
48528
|
-
selectResult(results[focusedResult]);
|
|
48529
|
-
return setFocusedResult(undefined);
|
|
48530
|
-
}
|
|
48531
|
-
}
|
|
48532
|
-
}, [focusedResult]);
|
|
48533
|
-
React.useEffect(function () {
|
|
48534
|
-
document.addEventListener('keydown', handleKeyDown, false);
|
|
48535
|
-
return function () { return document.removeEventListener('keydown', handleKeyDown); };
|
|
48536
|
-
}, [handleKeyDown]);
|
|
48537
|
-
if (searching) {
|
|
48538
|
-
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults }, SearchLoading ? (React__default["default"].createElement(SearchLoading, null)) : (React__default["default"].createElement("div", { className: 'str-chat__channel-search-container-searching', "data-testid": 'search-in-progress-indicator' }, t('Searching...')))));
|
|
48539
|
-
}
|
|
48540
|
-
if (!results.length) {
|
|
48541
|
-
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults },
|
|
48542
|
-
React__default["default"].createElement(SearchEmpty, null)));
|
|
48543
|
-
}
|
|
48544
|
-
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults },
|
|
48545
|
-
React__default["default"].createElement(SearchResultsHeader, { results: results }),
|
|
48546
|
-
React__default["default"].createElement(SearchResultsList, { focusedUser: focusedResult, results: results, SearchResultItem: SearchResultItem, selectResult: selectResult })));
|
|
48547
|
-
};
|
|
48548
|
-
|
|
48549
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedChannelSearch = function (props) {
|
|
48550
|
-
var clearState = props.clearState, SearchResultsList = props.SearchResultsList, inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, _a = props.popupResults, popupResults = _a === void 0 ? false : _a, query = props.query, results = props.results, SearchEmpty = props.SearchEmpty, searching = props.searching, _b = props.SearchInput, SearchInput$1 = _b === void 0 ? SearchInput : _b, SearchLoading = props.SearchLoading, SearchResultItem = props.SearchResultItem, SearchResultsHeader = props.SearchResultsHeader, selectResult = props.selectResult;
|
|
48551
|
-
return (React__default["default"].createElement("div", { className: 'str-chat__channel-search', "data-testid": 'channel-search' },
|
|
48552
|
-
React__default["default"].createElement(SearchInput$1, { clearState: clearState, inputRef: inputRef, onSearch: onSearch, placeholder: placeholder, query: query }),
|
|
48553
|
-
query && (React__default["default"].createElement(SearchResults, { popupResults: popupResults, results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, SearchResultsList: SearchResultsList, selectResult: selectResult }))));
|
|
48554
|
-
};
|
|
48555
|
-
/**
|
|
48556
|
-
* The ChannelSearch component makes a query users call and displays the results in a list.
|
|
48557
|
-
* Clicking on a list item will navigate you into a channel with the selected user. It can be used
|
|
48558
|
-
* on its own or added to the ChannelList component by setting the `showChannelSearch` prop to true.
|
|
48559
|
-
*/
|
|
48560
|
-
var ChannelSearch = React__default["default"].memo(UnMemoizedChannelSearch);
|
|
48561
|
-
|
|
48562
48452
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelSearch = function (_a) {
|
|
48563
|
-
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.
|
|
48453
|
+
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchForChannels, searchForChannels = _e === void 0 ? false : _e, searchFunction = _a.searchFunction, searchQueryParams = _a.searchQueryParams, setChannels = _a.setChannels;
|
|
48564
48454
|
var _f = useChatContext('useChannelSearch'), client = _f.client, navOpen = _f.navOpen, setActiveChannel = _f.setActiveChannel, themeVersion = _f.themeVersion;
|
|
48565
48455
|
var _g = React.useState(false), inputIsFocused = _g[0], setInputIsFocused = _g[1];
|
|
48566
48456
|
var _h = React.useState(''), query = _h[0], setQuery = _h[1];
|
|
48567
48457
|
var _j = React.useState([]), results = _j[0], setResults = _j[1];
|
|
48568
|
-
var _k = React.useState(false),
|
|
48569
|
-
var _l = React.useState(false), searching = _l[0], setSearching = _l[1];
|
|
48458
|
+
var _k = React.useState(false), searching = _k[0], setSearching = _k[1];
|
|
48570
48459
|
var inputRef = React.useRef(null);
|
|
48571
48460
|
var searchBarRef = React.useRef(null);
|
|
48572
|
-
var clearState = function () {
|
|
48461
|
+
var clearState = React.useCallback(function () {
|
|
48573
48462
|
setQuery('');
|
|
48574
48463
|
setResults([]);
|
|
48575
|
-
setResultsOpen(false);
|
|
48576
48464
|
setSearching(false);
|
|
48577
|
-
};
|
|
48578
|
-
var activateSearch = function () {
|
|
48465
|
+
}, []);
|
|
48466
|
+
var activateSearch = React.useCallback(function () {
|
|
48579
48467
|
setInputIsFocused(true);
|
|
48580
|
-
};
|
|
48581
|
-
var exitSearch = function () {
|
|
48468
|
+
}, []);
|
|
48469
|
+
var exitSearch = React.useCallback(function () {
|
|
48582
48470
|
var _a;
|
|
48583
48471
|
setInputIsFocused(false);
|
|
48584
48472
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
48585
48473
|
clearState();
|
|
48586
|
-
|
|
48474
|
+
onSearchExit === null || onSearchExit === void 0 ? void 0 : onSearchExit();
|
|
48475
|
+
}, [clearState, onSearchExit]);
|
|
48587
48476
|
React.useEffect(function () {
|
|
48588
|
-
if (
|
|
48477
|
+
if (disabled)
|
|
48589
48478
|
return;
|
|
48590
48479
|
var clickListener = function (event) {
|
|
48591
48480
|
var _a, _b;
|
|
@@ -48596,17 +48485,15 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48596
48485
|
: (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target);
|
|
48597
48486
|
if (isInputClick)
|
|
48598
48487
|
return;
|
|
48599
|
-
if ((
|
|
48600
|
-
(resultsOpen && clearSearchOnClickOutside) ||
|
|
48601
|
-
(inputIsFocused && !query)) {
|
|
48488
|
+
if ((inputIsFocused && (!query || navOpen)) || clearSearchOnClickOutside) {
|
|
48602
48489
|
exitSearch();
|
|
48603
48490
|
}
|
|
48604
48491
|
};
|
|
48605
48492
|
document.addEventListener('click', clickListener);
|
|
48606
48493
|
return function () { return document.removeEventListener('click', clickListener); };
|
|
48607
|
-
}, [
|
|
48494
|
+
}, [disabled, inputIsFocused]);
|
|
48608
48495
|
React.useEffect(function () {
|
|
48609
|
-
if (!
|
|
48496
|
+
if (!inputRef.current || disabled)
|
|
48610
48497
|
return;
|
|
48611
48498
|
var handleKeyDown = function (event) {
|
|
48612
48499
|
if (event.key === 'Escape')
|
|
@@ -48618,7 +48505,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48618
48505
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', handleKeyDown);
|
|
48619
48506
|
};
|
|
48620
48507
|
}, []);
|
|
48621
|
-
var selectResult = function (result) { return __awaiter$3(void 0, void 0, void 0, function () {
|
|
48508
|
+
var selectResult = React.useCallback(function (result) { return __awaiter$3(void 0, void 0, void 0, function () {
|
|
48622
48509
|
var selectedChannel, newChannel;
|
|
48623
48510
|
return __generator$3(this, function (_a) {
|
|
48624
48511
|
switch (_a.label) {
|
|
@@ -48629,7 +48516,6 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48629
48516
|
return [4 /*yield*/, onSelectResult({
|
|
48630
48517
|
setQuery: setQuery,
|
|
48631
48518
|
setResults: setResults,
|
|
48632
|
-
setResultsOpen: setResultsOpen,
|
|
48633
48519
|
setSearching: setSearching,
|
|
48634
48520
|
}, result)];
|
|
48635
48521
|
case 1:
|
|
@@ -48651,13 +48537,13 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48651
48537
|
case 5:
|
|
48652
48538
|
setChannels(function (channels) { return lodash_uniqby(__spreadArray$1([selectedChannel], channels, true), 'cid'); });
|
|
48653
48539
|
if (clearSearchOnClickOutside) {
|
|
48654
|
-
|
|
48540
|
+
exitSearch();
|
|
48655
48541
|
}
|
|
48656
48542
|
return [2 /*return*/];
|
|
48657
48543
|
}
|
|
48658
48544
|
});
|
|
48659
|
-
}); };
|
|
48660
|
-
var getChannels = function (text) { return __awaiter$3(void 0, void 0, void 0, function () {
|
|
48545
|
+
}); }, [clearSearchOnClickOutside, client, exitSearch, onSelectResult]);
|
|
48546
|
+
var getChannels = React.useCallback(function (text) { return __awaiter$3(void 0, void 0, void 0, function () {
|
|
48661
48547
|
var userResponse, channelResponse, _a, channels, users_1, users, error_1;
|
|
48662
48548
|
var _b, _c, _d, _e, _f, _g;
|
|
48663
48549
|
return __generator$3(this, function (_h) {
|
|
@@ -48678,14 +48564,12 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48678
48564
|
case 3:
|
|
48679
48565
|
_a = _h.sent(), channels = _a[0], users_1 = _a[1].users;
|
|
48680
48566
|
setResults(__spreadArray$1(__spreadArray$1([], channels, true), users_1, true));
|
|
48681
|
-
setResultsOpen(true);
|
|
48682
48567
|
setSearching(false);
|
|
48683
48568
|
return [2 /*return*/];
|
|
48684
48569
|
case 4: return [4 /*yield*/, Promise.resolve(userResponse)];
|
|
48685
48570
|
case 5:
|
|
48686
48571
|
users = (_h.sent()).users;
|
|
48687
48572
|
setResults(users);
|
|
48688
|
-
setResultsOpen(true);
|
|
48689
48573
|
return [3 /*break*/, 7];
|
|
48690
48574
|
case 6:
|
|
48691
48575
|
error_1 = _h.sent();
|
|
@@ -48697,17 +48581,16 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48697
48581
|
return [2 /*return*/];
|
|
48698
48582
|
}
|
|
48699
48583
|
});
|
|
48700
|
-
}); };
|
|
48584
|
+
}); }, [client, searching]);
|
|
48701
48585
|
var getChannelsThrottled = lodash_throttle(getChannels, 200);
|
|
48702
|
-
var onSearch = function (event) {
|
|
48586
|
+
var onSearch = React.useCallback(function (event) {
|
|
48703
48587
|
event.preventDefault();
|
|
48704
|
-
if (
|
|
48588
|
+
if (disabled)
|
|
48705
48589
|
return;
|
|
48706
48590
|
if (searchFunction) {
|
|
48707
48591
|
searchFunction({
|
|
48708
48592
|
setQuery: setQuery,
|
|
48709
48593
|
setResults: setResults,
|
|
48710
|
-
setResultsOpen: setResultsOpen,
|
|
48711
48594
|
setSearching: setSearching,
|
|
48712
48595
|
}, event);
|
|
48713
48596
|
}
|
|
@@ -48715,7 +48598,8 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48715
48598
|
setQuery(event.target.value);
|
|
48716
48599
|
getChannelsThrottled(event.target.value);
|
|
48717
48600
|
}
|
|
48718
|
-
|
|
48601
|
+
onSearchCallback === null || onSearchCallback === void 0 ? void 0 : onSearchCallback(event);
|
|
48602
|
+
}, [disabled, getChannelsThrottled, searchFunction]);
|
|
48719
48603
|
return {
|
|
48720
48604
|
activateSearch: activateSearch,
|
|
48721
48605
|
clearState: clearState,
|
|
@@ -48731,6 +48615,24 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48731
48615
|
};
|
|
48732
48616
|
};
|
|
48733
48617
|
|
|
48618
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MenuIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'menu-icon', fill: 'none', height: '24', viewBox: '0 0 24 24', width: '24', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48619
|
+
React__default["default"].createElement("path", { clipRule: 'evenodd', d: 'M3 8V6H21V8H3ZM3 13H21V11H3V13ZM3 18H21V16H3V18Z', fill: 'black', fillRule: 'evenodd' }))); };
|
|
48620
|
+
var ReturnIcon = function () { return (React__default["default"].createElement("svg", { "data-testid": 'return-icon', fill: 'none', height: '20', viewBox: '0 0 22 22', width: '20', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48621
|
+
React__default["default"].createElement("path", { d: 'M21.6668 9.66666V12.3333H5.6529L12.9932 19.6736L11.1076 21.5592L0.54834 11L11.1076 0.440765L12.9932 2.32638L5.6529 9.66666H21.6668Z', fill: '#080707' }))); };
|
|
48622
|
+
var XIcon = function () { return (React__default["default"].createElement("svg", { fill: 'none', height: '14', viewBox: '0 0 14 14', width: '14', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48623
|
+
React__default["default"].createElement("path", { d: 'M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z', fill: '#747881' }))); };
|
|
48624
|
+
var SearchIcon = function (_a) {
|
|
48625
|
+
var className = _a.className;
|
|
48626
|
+
return (React__default["default"].createElement("svg", { className: className, fill: 'none', height: '18', viewBox: '0 0 18 18', width: '18', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48627
|
+
React__default["default"].createElement("path", { d: 'M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z', fill: '#747881' })));
|
|
48628
|
+
};
|
|
48629
|
+
|
|
48630
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var SearchInput = function (props) {
|
|
48631
|
+
var disabled = props.disabled, inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, query = props.query;
|
|
48632
|
+
var t = useTranslationContext('SearchInput').t;
|
|
48633
|
+
return (React__default["default"].createElement("input", { className: 'str-chat__channel-search-input', "data-testid": 'search-input', disabled: disabled, onChange: onSearch, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
48634
|
+
};
|
|
48635
|
+
|
|
48734
48636
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var SearchBarButton = function (_a) {
|
|
48735
48637
|
var children = _a.children, className = _a.className, onClick = _a.onClick;
|
|
48736
48638
|
return (React__default["default"].createElement("button", { className: clsx('str-chat__channel-search-bar-button', className), "data-testid": 'search-bar-button', onClick: onClick }, children));
|
|
@@ -48782,7 +48684,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48782
48684
|
}, []);
|
|
48783
48685
|
var handleClearClick = React.useCallback(function () {
|
|
48784
48686
|
var _a;
|
|
48785
|
-
|
|
48687
|
+
exitSearch();
|
|
48786
48688
|
(_a = inputProps.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
48787
48689
|
}, []);
|
|
48788
48690
|
return (React__default["default"].createElement("div", { className: 'str-chat__channel-search-bar', "data-testid": 'search-bar', ref: searchBarRef },
|
|
@@ -48799,6 +48701,106 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48799
48701
|
React__default["default"].createElement(AppMenu, null)))));
|
|
48800
48702
|
};
|
|
48801
48703
|
|
|
48704
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
48705
|
+
|
|
48706
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var DefaultSearchEmpty = function () {
|
|
48707
|
+
var t = useTranslationContext('SearchResults').t;
|
|
48708
|
+
return (React__default["default"].createElement("div", { "aria-live": 'polite', className: 'str-chat__channel-search-container-empty' },
|
|
48709
|
+
React__default["default"].createElement(SearchIcon, null),
|
|
48710
|
+
t('No results found')));
|
|
48711
|
+
};
|
|
48712
|
+
var DefaultSearchResultsHeader = function (_a) {
|
|
48713
|
+
var results = _a.results;
|
|
48714
|
+
var t = useTranslationContext('SearchResultsHeader').t;
|
|
48715
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__channel-search-results-header', "data-testid": 'channel-search-results-header' }, t('searchResultsCount', {
|
|
48716
|
+
count: results.length,
|
|
48717
|
+
})));
|
|
48718
|
+
};
|
|
48719
|
+
var DefaultSearchResultsList = function (props) {
|
|
48720
|
+
var focusedUser = props.focusedUser, results = props.results, _a = props.SearchResultItem, SearchResultItem = _a === void 0 ? DefaultSearchResultItem : _a, selectResult = props.selectResult;
|
|
48721
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, results.map(function (result, index) { return (React__default["default"].createElement(SearchResultItem, { focusedUser: focusedUser, index: index, key: index, result: result, selectResult: selectResult })); })));
|
|
48722
|
+
};
|
|
48723
|
+
var DefaultSearchResultItem = function (props) {
|
|
48724
|
+
var _a, _b;
|
|
48725
|
+
var focusedUser = props.focusedUser, index = props.index, result = props.result, selectResult = props.selectResult;
|
|
48726
|
+
var focused = focusedUser === index;
|
|
48727
|
+
var themeVersion = useChatContext().themeVersion;
|
|
48728
|
+
var className = clsx('str-chat__channel-search-result', focused && 'str-chat__channel-search-result--focused focused');
|
|
48729
|
+
if (isChannel(result)) {
|
|
48730
|
+
var channel_1 = result;
|
|
48731
|
+
return themeVersion === '2' ? (React__default["default"].createElement(ChannelPreview, { channel: channel_1, className: className, onSelect: function () { return selectResult(channel_1); } })) : (React__default["default"].createElement("button", { "aria-label": "Select Channel: ".concat(((_a = channel_1.data) === null || _a === void 0 ? void 0 : _a.name) || ''), className: className, "data-testid": 'channel-search-result-channel', onClick: function () { return selectResult(channel_1); }, role: 'option' },
|
|
48732
|
+
React__default["default"].createElement("div", { className: 'result-hashtag' }, "#"),
|
|
48733
|
+
React__default["default"].createElement("p", { className: 'channel-search__result-text' }, (_b = channel_1.data) === null || _b === void 0 ? void 0 : _b.name)));
|
|
48734
|
+
}
|
|
48735
|
+
else {
|
|
48736
|
+
return (React__default["default"].createElement("button", { "aria-label": "Select User Channel: ".concat(result.name || ''), className: className, "data-testid": 'channel-search-result-user', onClick: function () { return selectResult(result); }, role: 'option' },
|
|
48737
|
+
React__default["default"].createElement(Avatar, { image: result.image, name: result.name || result.id, size: themeVersion === '2' ? 40 : undefined, user: result }),
|
|
48738
|
+
React__default["default"].createElement("div", { className: 'str-chat__channel-search-result--display-name' }, result.name || result.id)));
|
|
48739
|
+
}
|
|
48740
|
+
};
|
|
48741
|
+
var ResultsContainer = function (_a) {
|
|
48742
|
+
var children = _a.children, popupResults = _a.popupResults;
|
|
48743
|
+
return (React__default["default"].createElement("div", { "aria-label": 'Channel search results', className: clsx("str-chat__channel-search-container str-chat__channel-search-result-list", popupResults ? 'popup' : 'inline') }, children));
|
|
48744
|
+
};
|
|
48745
|
+
var SearchResults = function (props) {
|
|
48746
|
+
var popupResults = props.popupResults, results = props.results, searching = props.searching, _a = props.SearchEmpty, SearchEmpty = _a === void 0 ? DefaultSearchEmpty : _a, _b = props.SearchResultsHeader, SearchResultsHeader = _b === void 0 ? DefaultSearchResultsHeader : _b, SearchLoading = props.SearchLoading, _c = props.SearchResultItem, SearchResultItem = _c === void 0 ? DefaultSearchResultItem : _c, _d = props.SearchResultsList, SearchResultsList = _d === void 0 ? DefaultSearchResultsList : _d, selectResult = props.selectResult;
|
|
48747
|
+
var t = useTranslationContext('SearchResults').t;
|
|
48748
|
+
var _e = React.useState(), focusedResult = _e[0], setFocusedResult = _e[1];
|
|
48749
|
+
var handleKeyDown = React.useCallback(function (event) {
|
|
48750
|
+
if (event.key === 'ArrowUp') {
|
|
48751
|
+
setFocusedResult(function (prevFocused) {
|
|
48752
|
+
if (prevFocused === undefined)
|
|
48753
|
+
return 0;
|
|
48754
|
+
return prevFocused === 0 ? results.length - 1 : prevFocused - 1;
|
|
48755
|
+
});
|
|
48756
|
+
}
|
|
48757
|
+
if (event.key === 'ArrowDown') {
|
|
48758
|
+
setFocusedResult(function (prevFocused) {
|
|
48759
|
+
if (prevFocused === undefined)
|
|
48760
|
+
return 0;
|
|
48761
|
+
return prevFocused === results.length - 1 ? 0 : prevFocused + 1;
|
|
48762
|
+
});
|
|
48763
|
+
}
|
|
48764
|
+
if (event.key === 'Enter') {
|
|
48765
|
+
event.preventDefault();
|
|
48766
|
+
if (focusedResult !== undefined) {
|
|
48767
|
+
selectResult(results[focusedResult]);
|
|
48768
|
+
return setFocusedResult(undefined);
|
|
48769
|
+
}
|
|
48770
|
+
}
|
|
48771
|
+
}, [focusedResult]);
|
|
48772
|
+
React.useEffect(function () {
|
|
48773
|
+
document.addEventListener('keydown', handleKeyDown, false);
|
|
48774
|
+
return function () { return document.removeEventListener('keydown', handleKeyDown); };
|
|
48775
|
+
}, [handleKeyDown]);
|
|
48776
|
+
if (searching) {
|
|
48777
|
+
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults }, SearchLoading ? (React__default["default"].createElement(SearchLoading, null)) : (React__default["default"].createElement("div", { className: 'str-chat__channel-search-container-searching', "data-testid": 'search-in-progress-indicator' }, t('Searching...')))));
|
|
48778
|
+
}
|
|
48779
|
+
if (!results.length) {
|
|
48780
|
+
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults },
|
|
48781
|
+
React__default["default"].createElement(SearchEmpty, null)));
|
|
48782
|
+
}
|
|
48783
|
+
return (React__default["default"].createElement(ResultsContainer, { popupResults: popupResults },
|
|
48784
|
+
React__default["default"].createElement(SearchResultsHeader, { results: results }),
|
|
48785
|
+
React__default["default"].createElement(SearchResultsList, { focusedUser: focusedResult, results: results, SearchResultItem: SearchResultItem, selectResult: selectResult })));
|
|
48786
|
+
};
|
|
48787
|
+
|
|
48788
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedChannelSearch = function (props) {
|
|
48789
|
+
var AppMenu = props.AppMenu, ClearInputIcon = props.ClearInputIcon, ExitSearchIcon = props.ExitSearchIcon, MenuIcon = props.MenuIcon, placeholder = props.placeholder, _a = props.popupResults, popupResults = _a === void 0 ? false : _a, _b = props.SearchBar, SearchBar$1 = _b === void 0 ? SearchBar : _b, SearchEmpty = props.SearchEmpty, _c = props.SearchInput, SearchInput$1 = _c === void 0 ? SearchInput : _c, SearchLoading = props.SearchLoading, SearchInputIcon = props.SearchInputIcon, SearchResultItem = props.SearchResultItem, SearchResultsList = props.SearchResultsList, SearchResultsHeader = props.SearchResultsHeader, channelSearchParams = __rest$4(props, ["AppMenu", "ClearInputIcon", "ExitSearchIcon", "MenuIcon", "placeholder", "popupResults", "SearchBar", "SearchEmpty", "SearchInput", "SearchLoading", "SearchInputIcon", "SearchResultItem", "SearchResultsList", "SearchResultsHeader"]);
|
|
48790
|
+
var themeVersion = useChatContext('ChannelSearch').themeVersion;
|
|
48791
|
+
var _d = useChannelSearch(channelSearchParams), activateSearch = _d.activateSearch, clearState = _d.clearState, exitSearch = _d.exitSearch, inputIsFocused = _d.inputIsFocused, inputRef = _d.inputRef, onSearch = _d.onSearch, query = _d.query, results = _d.results, searchBarRef = _d.searchBarRef, searching = _d.searching, selectResult = _d.selectResult;
|
|
48792
|
+
var showSearchBarV2 = themeVersion === '2';
|
|
48793
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__channel-search', "data-testid": 'channel-search' },
|
|
48794
|
+
showSearchBarV2 ? (React__default["default"].createElement(SearchBar$1, { activateSearch: activateSearch, AppMenu: AppMenu, ClearInputIcon: ClearInputIcon, clearState: clearState, disabled: channelSearchParams.disabled, exitSearch: exitSearch, ExitSearchIcon: ExitSearchIcon, inputIsFocused: inputIsFocused, inputRef: inputRef, MenuIcon: MenuIcon, onSearch: onSearch, placeholder: placeholder, query: query, searchBarRef: searchBarRef, SearchInput: SearchInput$1, SearchInputIcon: SearchInputIcon })) : (React__default["default"].createElement(SearchInput$1, { clearState: clearState, disabled: channelSearchParams.disabled, inputRef: inputRef, onSearch: onSearch, placeholder: placeholder, query: query })),
|
|
48795
|
+
query && (React__default["default"].createElement(SearchResults, { popupResults: popupResults, results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, SearchResultsList: SearchResultsList, selectResult: selectResult }))));
|
|
48796
|
+
};
|
|
48797
|
+
/**
|
|
48798
|
+
* The ChannelSearch component makes a query users call and displays the results in a list.
|
|
48799
|
+
* Clicking on a list item will navigate you into a channel with the selected user. It can be used
|
|
48800
|
+
* on its own or added to the ChannelList component by setting the `showChannelSearch` prop to true.
|
|
48801
|
+
*/
|
|
48802
|
+
var ChannelSearch = React__default["default"].memo(UnMemoizedChannelSearch);
|
|
48803
|
+
|
|
48802
48804
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ChatBubble = function () { return (React__default["default"].createElement("svg", { "data-testid": 'chat-bubble', fill: 'none', height: '96', viewBox: '0 0 136 136', width: '96', xmlns: 'http://www.w3.org/2000/svg' },
|
|
48803
48805
|
React__default["default"].createElement("path", { d: 'M106 24.5H30C24.775 24.5 20.5 28.775 20.5 34V119.5L39.5 100.5H106C111.225 100.5 115.5 96.225 115.5 91V34C115.5 28.775 111.225 24.5 106 24.5ZM106 91H39.5L30 100.5V34H106V91Z', fill: '#B4B7BB' }))); };
|
|
48804
48806
|
|
|
@@ -48847,11 +48849,11 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48847
48849
|
var DEFAULT_OPTIONS = {};
|
|
48848
48850
|
var DEFAULT_SORT = {};
|
|
48849
48851
|
var UnMemoizedChannelList = function (props) {
|
|
48850
|
-
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch$1 = _b === void 0 ? ChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator$1 = _c === void 0 ? EmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, renderChannels = props.renderChannels, _h = props.
|
|
48851
|
-
var
|
|
48852
|
-
var _q = useChatContext('ChannelList'), channel = _q.channel, channelsQueryState = _q.channelsQueryState, client = _q.client, closeMobileNav = _q.closeMobileNav, customClasses = _q.customClasses, _r = _q.navOpen, navOpen = _r === void 0 ? false : _r, setActiveChannel = _q.setActiveChannel, theme = _q.theme, themeVersion = _q.themeVersion, useImageFlagEmojisOnWindows = _q.useImageFlagEmojisOnWindows;
|
|
48852
|
+
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch$1 = _b === void 0 ? ChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator$1 = _c === void 0 ? EmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, renderChannels = props.renderChannels, _h = props.sendChannelsToList, sendChannelsToList = _h === void 0 ? false : _h, _j = props.setActiveChannelOnMount, setActiveChannelOnMount = _j === void 0 ? true : _j, _k = props.showChannelSearch, showChannelSearch = _k === void 0 ? false : _k, _l = props.sort, sort = _l === void 0 ? DEFAULT_SORT : _l, _m = props.watchers, watchers = _m === void 0 ? {} : _m;
|
|
48853
|
+
var _o = useChatContext('ChannelList'), channel = _o.channel, channelsQueryState = _o.channelsQueryState, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
48853
48854
|
var channelListRef = React.useRef(null);
|
|
48854
|
-
var
|
|
48855
|
+
var _q = React.useState(0), channelUpdateCount = _q[0], setChannelUpdateCount = _q[1];
|
|
48856
|
+
var _r = React.useState(false), searchActive = _r[0], setSearchActive = _r[1];
|
|
48855
48857
|
/**
|
|
48856
48858
|
* Set a channel with id {customActiveChannel} as active and move it to the top of the list.
|
|
48857
48859
|
* If customActiveChannel prop is absent, then set the first channel in list as active channel.
|
|
@@ -48896,9 +48898,22 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48896
48898
|
* force a re-render. Incrementing this dummy variable ensures the channel previews update.
|
|
48897
48899
|
*/
|
|
48898
48900
|
var forceUpdate = function () { return setChannelUpdateCount(function (count) { return count + 1; }); };
|
|
48899
|
-
var
|
|
48900
|
-
|
|
48901
|
-
|
|
48901
|
+
var onSearch = React.useCallback(function (event) {
|
|
48902
|
+
var _a;
|
|
48903
|
+
if (!event.target.value) {
|
|
48904
|
+
setSearchActive(false);
|
|
48905
|
+
}
|
|
48906
|
+
else {
|
|
48907
|
+
setSearchActive(true);
|
|
48908
|
+
}
|
|
48909
|
+
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearch) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps, event);
|
|
48910
|
+
}, []);
|
|
48911
|
+
var onSearchExit = React.useCallback(function () {
|
|
48912
|
+
var _a;
|
|
48913
|
+
setSearchActive(false);
|
|
48914
|
+
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
48915
|
+
}, []);
|
|
48916
|
+
var _s = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _s.channels, hasNextPage = _s.hasNextPage, loadNextPage = _s.loadNextPage, setChannels = _s.setChannels;
|
|
48902
48917
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
48903
48918
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
48904
48919
|
useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -48943,12 +48958,11 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48943
48958
|
'str-chat--windows-flags': useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/),
|
|
48944
48959
|
'str-chat-channel-list--open': navOpen,
|
|
48945
48960
|
});
|
|
48946
|
-
var
|
|
48961
|
+
var showChannelList = !searchActive || (additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.popupResults);
|
|
48947
48962
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
48948
48963
|
React__default["default"].createElement("div", { className: className, ref: channelListRef },
|
|
48949
|
-
showChannelSearch &&
|
|
48950
|
-
|
|
48951
|
-
query && showSearchV2 ? (React__default["default"].createElement(SearchResults, { results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, SearchResultsList: SearchResultsList, selectResult: selectResult })) : (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress === 'reload', 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: channelsQueryState.queryInProgress === 'load-more' }, renderChannels
|
|
48964
|
+
showChannelSearch && (React__default["default"].createElement(ChannelSearch$1, __assign$8({ onSearch: onSearch, onSearchExit: onSearchExit, setChannels: setChannels }, additionalChannelSearchProps))),
|
|
48965
|
+
showChannelList && (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress === 'reload', 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: channelsQueryState.queryInProgress === 'load-more' }, renderChannels
|
|
48952
48966
|
? renderChannels(loadedChannels, renderChannel)
|
|
48953
48967
|
: loadedChannels.map(function (channel) { return renderChannel(channel); }))))))));
|
|
48954
48968
|
};
|
|
@@ -48963,7 +48977,7 @@ var StreamChatReact = (function (exports, React, streamChat, ReactDOM) {
|
|
|
48963
48977
|
|
|
48964
48978
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
48965
48979
|
|
|
48966
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version = '10.0.0
|
|
48980
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version = '10.0.0';
|
|
48967
48981
|
|
|
48968
48982
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
|
|
48969
48983
|
var _b, _c;
|