stream-chat-react 12.1.0 → 12.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChannelList/ChannelList.d.ts +3 -0
- package/dist/components/ChannelList/ChannelList.js +5 -2
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +2 -3
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +1 -2
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +1 -2
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +1 -2
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +1 -2
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.js +1 -2
- package/dist/components/ChannelList/hooks/useMessageNewListener.js +7 -2
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +1 -2
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +1 -2
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js +1 -2
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +1 -2
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +6 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +11 -9
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +2 -2
- package/dist/components/ChannelPreview/utils.js +2 -3
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +2 -2
- package/dist/components/MessageList/VirtualizedMessageList.js +2 -1
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +2 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +0 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +21 -17
- package/dist/index.browser.cjs +80 -57
- package/dist/index.browser.cjs.map +3 -3
- package/dist/index.node.cjs +104 -81
- package/dist/index.node.cjs.map +3 -3
- package/package.json +1 -1
package/dist/index.node.cjs
CHANGED
|
@@ -10274,7 +10274,7 @@ var require_disallow_node = __commonJS({
|
|
|
10274
10274
|
var require_ast_to_react = __commonJS({
|
|
10275
10275
|
"node_modules/mml-react/node_modules/react-markdown/lib/ast-to-react.js"(exports2, module2) {
|
|
10276
10276
|
"use strict";
|
|
10277
|
-
var
|
|
10277
|
+
var React170 = require("react");
|
|
10278
10278
|
var xtend = require_immutable();
|
|
10279
10279
|
var ReactIs2 = require("react-is");
|
|
10280
10280
|
function astToReact(node2, options) {
|
|
@@ -10301,7 +10301,7 @@ var require_ast_to_react = __commonJS({
|
|
|
10301
10301
|
throw new Error("Renderer for type `".concat(node2.type, "` not defined or is not renderable"));
|
|
10302
10302
|
}
|
|
10303
10303
|
var nodeProps = getNodeProps(node2, key, options, renderer, parent, index3);
|
|
10304
|
-
return
|
|
10304
|
+
return React170.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || void 0);
|
|
10305
10305
|
function resolveChildren() {
|
|
10306
10306
|
return node2.children && node2.children.map(function(childNode, i) {
|
|
10307
10307
|
return astToReact(childNode, options, {
|
|
@@ -10315,7 +10315,7 @@ var require_ast_to_react = __commonJS({
|
|
|
10315
10315
|
var props = {
|
|
10316
10316
|
key
|
|
10317
10317
|
};
|
|
10318
|
-
var isSimpleRenderer = typeof renderer === "string" || renderer ===
|
|
10318
|
+
var isSimpleRenderer = typeof renderer === "string" || renderer === React170.Fragment;
|
|
10319
10319
|
if (opts.sourcePos && node2.position) {
|
|
10320
10320
|
props["data-sourcepos"] = flattenPosition2(node2.position);
|
|
10321
10321
|
}
|
|
@@ -10468,14 +10468,14 @@ var require_ast_to_react = __commonJS({
|
|
|
10468
10468
|
function mergeNodeChildren(node2, parsedChildren) {
|
|
10469
10469
|
var el = node2.element;
|
|
10470
10470
|
if (Array.isArray(el)) {
|
|
10471
|
-
var Fragment2 =
|
|
10472
|
-
return
|
|
10471
|
+
var Fragment2 = React170.Fragment || "div";
|
|
10472
|
+
return React170.createElement(Fragment2, null, el);
|
|
10473
10473
|
}
|
|
10474
10474
|
if (el.props.children || parsedChildren) {
|
|
10475
|
-
var children =
|
|
10476
|
-
return
|
|
10475
|
+
var children = React170.Children.toArray(el.props.children).concat(parsedChildren);
|
|
10476
|
+
return React170.cloneElement(el, null, children);
|
|
10477
10477
|
}
|
|
10478
|
-
return
|
|
10478
|
+
return React170.cloneElement(el, null);
|
|
10479
10479
|
}
|
|
10480
10480
|
function flattenPosition2(pos) {
|
|
10481
10481
|
return [pos.start.line, ":", pos.start.column, "-", pos.end.line, ":", pos.end.column].map(String).join("");
|
|
@@ -10599,9 +10599,9 @@ var require_renderers = __commonJS({
|
|
|
10599
10599
|
"node_modules/mml-react/node_modules/react-markdown/lib/renderers.js"(exports2, module2) {
|
|
10600
10600
|
"use strict";
|
|
10601
10601
|
var xtend = require_immutable();
|
|
10602
|
-
var
|
|
10603
|
-
var supportsStringRender = parseInt((
|
|
10604
|
-
var createElement =
|
|
10602
|
+
var React170 = require("react");
|
|
10603
|
+
var supportsStringRender = parseInt((React170.version || "16").slice(0, 2), 10) >= 16;
|
|
10604
|
+
var createElement = React170.createElement;
|
|
10605
10605
|
module2.exports = {
|
|
10606
10606
|
break: "br",
|
|
10607
10607
|
paragraph: "p",
|
|
@@ -10637,7 +10637,7 @@ var require_renderers = __commonJS({
|
|
|
10637
10637
|
}
|
|
10638
10638
|
function Root(props) {
|
|
10639
10639
|
var className = props.className;
|
|
10640
|
-
var root2 = !className &&
|
|
10640
|
+
var root2 = !className && React170.Fragment || "div";
|
|
10641
10641
|
return createElement(root2, className ? {
|
|
10642
10642
|
className
|
|
10643
10643
|
} : null, props.children);
|
|
@@ -10693,7 +10693,7 @@ var require_renderers = __commonJS({
|
|
|
10693
10693
|
var dangerous = props.allowDangerousHtml || props.escapeHtml === false;
|
|
10694
10694
|
var tag = props.isBlock ? "div" : "span";
|
|
10695
10695
|
if (!dangerous) {
|
|
10696
|
-
return createElement(
|
|
10696
|
+
return createElement(React170.Fragment || tag, null, props.value);
|
|
10697
10697
|
}
|
|
10698
10698
|
var nodeProps = {
|
|
10699
10699
|
dangerouslySetInnerHTML: {
|
|
@@ -10703,7 +10703,7 @@ var require_renderers = __commonJS({
|
|
|
10703
10703
|
return createElement(tag, nodeProps);
|
|
10704
10704
|
}
|
|
10705
10705
|
function ParsedHtml(props) {
|
|
10706
|
-
return props["data-sourcepos"] ?
|
|
10706
|
+
return props["data-sourcepos"] ? React170.cloneElement(props.element, {
|
|
10707
10707
|
"data-sourcepos": props["data-sourcepos"]
|
|
10708
10708
|
}) : props.element;
|
|
10709
10709
|
}
|
|
@@ -18555,8 +18555,8 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
18555
18555
|
function _interopDefault(ex) {
|
|
18556
18556
|
return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex;
|
|
18557
18557
|
}
|
|
18558
|
-
var
|
|
18559
|
-
var React__default = _interopDefault(
|
|
18558
|
+
var React170 = require("react");
|
|
18559
|
+
var React__default = _interopDefault(React170);
|
|
18560
18560
|
var parseXml = _interopDefault(require_src());
|
|
18561
18561
|
var dayjs = _interopDefault(require("dayjs"));
|
|
18562
18562
|
var sanitizeUrl4 = require("@braintree/sanitize-url");
|
|
@@ -19341,8 +19341,8 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19341
19341
|
className: "mml-carousel__track"
|
|
19342
19342
|
}, React__default.createElement("div", {
|
|
19343
19343
|
className: "mml-carousel__slides"
|
|
19344
|
-
},
|
|
19345
|
-
return
|
|
19344
|
+
}, React170.Children.map(children, function(child) {
|
|
19345
|
+
return React170.cloneElement(child, {
|
|
19346
19346
|
className: "mml-carousel__slide",
|
|
19347
19347
|
slideWidth
|
|
19348
19348
|
});
|
|
@@ -19386,7 +19386,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19386
19386
|
};
|
|
19387
19387
|
var Input = function Input2(_ref) {
|
|
19388
19388
|
var name = _ref.name, label = _ref.label, _ref$value = _ref.value, value = _ref$value === void 0 ? "" : _ref$value, _ref$type = _ref.type, type = _ref$type === void 0 ? "text" : _ref$type, _ref$placeholder = _ref.placeholder, placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder;
|
|
19389
|
-
var _useState =
|
|
19389
|
+
var _useState = React170.useState(value), state = _useState[0], setState = _useState[1];
|
|
19390
19390
|
var id = "mml-" + name;
|
|
19391
19391
|
return React__default.createElement(React__default.Fragment, null, label && React__default.createElement("label", {
|
|
19392
19392
|
className: "mml-card-header",
|
|
@@ -19516,7 +19516,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19516
19516
|
};
|
|
19517
19517
|
var Number2 = function Number3(_ref) {
|
|
19518
19518
|
var name = _ref.name, value = _ref.value;
|
|
19519
|
-
var _useState =
|
|
19519
|
+
var _useState = React170.useState(parseInt("" + value, 10) || 0), state = _useState[0], setState = _useState[1];
|
|
19520
19520
|
return React__default.createElement("div", {
|
|
19521
19521
|
className: "mml-number"
|
|
19522
19522
|
}, React__default.createElement("input", {
|
|
@@ -19553,7 +19553,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19553
19553
|
var VIRTUOSO_START_INDEX = 1e4;
|
|
19554
19554
|
var DatePickerSelect = function DatePickerSelect2(props) {
|
|
19555
19555
|
var onChange = props.onChange, icalFilter = props.icalFilter, getItemData2 = props.getItemData, itemClassName = props.itemClassName, interval = props.interval, format = props.format, value = props.value;
|
|
19556
|
-
var generateItems =
|
|
19556
|
+
var generateItems = React170.useCallback(function(quantity, firstIdx) {
|
|
19557
19557
|
return Array(quantity).fill(true).map(function(_, idx) {
|
|
19558
19558
|
return getItemData2({
|
|
19559
19559
|
interval,
|
|
@@ -19565,11 +19565,11 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19565
19565
|
return !icalFilter || icalFilter && icalFilter(newItem.value);
|
|
19566
19566
|
});
|
|
19567
19567
|
}, [interval, format, value, icalFilter, getItemData2]);
|
|
19568
|
-
var _useState =
|
|
19569
|
-
var _useState2 =
|
|
19570
|
-
var initialIndexOffset =
|
|
19571
|
-
var _useState3 =
|
|
19572
|
-
var handleClick =
|
|
19568
|
+
var _useState = React170.useState(generateItems(ITEMS_PER_PAGE * 2, -ITEMS_PER_PAGE)), items = _useState[0], setItems = _useState[1];
|
|
19569
|
+
var _useState2 = React170.useState(VIRTUOSO_START_INDEX), firstItemIndex = _useState2[0], setFirstItemIndex = _useState2[1];
|
|
19570
|
+
var initialIndexOffset = React170.useRef(INITIAL_INDEX);
|
|
19571
|
+
var _useState3 = React170.useState(null), selectedIdx = _useState3[0], setSelectedIdx = _useState3[1];
|
|
19572
|
+
var handleClick = React170.useCallback(function(item) {
|
|
19573
19573
|
onChange(item.value);
|
|
19574
19574
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
19575
19575
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
@@ -19583,12 +19583,12 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19583
19583
|
}
|
|
19584
19584
|
setSelectedIdx(item.idx);
|
|
19585
19585
|
}, [setItems, generateItems, initialIndexOffset, onChange]);
|
|
19586
|
-
var appendItems =
|
|
19586
|
+
var appendItems = React170.useCallback(function(lastItemIndex) {
|
|
19587
19587
|
setItems(function(items2) {
|
|
19588
19588
|
return [].concat(items2, generateItems(ITEMS_PER_PAGE, lastItemIndex));
|
|
19589
19589
|
});
|
|
19590
19590
|
}, [setItems, generateItems]);
|
|
19591
|
-
var prependItems =
|
|
19591
|
+
var prependItems = React170.useCallback(function() {
|
|
19592
19592
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
19593
19593
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
19594
19594
|
if (initialIndexOffset) {
|
|
@@ -19600,7 +19600,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19600
19600
|
setFirstItemIndex(firstItemIndex2 - ITEMS_PER_PAGE);
|
|
19601
19601
|
return false;
|
|
19602
19602
|
}, [setItems, generateItems, initialIndexOffset]);
|
|
19603
|
-
|
|
19603
|
+
React170.useEffect(function() {
|
|
19604
19604
|
if (value) {
|
|
19605
19605
|
var initialSelectedIdx = null;
|
|
19606
19606
|
for (var i = 0; i < items.length; i++) {
|
|
@@ -19670,7 +19670,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19670
19670
|
};
|
|
19671
19671
|
var DatePicker = function DatePicker2(_ref) {
|
|
19672
19672
|
var name = _ref.name, selected = _ref.selected, dateInterval = _ref.dateInterval, timeInterval = _ref.timeInterval, dateFormat = _ref.dateFormat, timeFormat = _ref.timeFormat, fullDay = _ref.fullDay, icalFilter = _ref.icalFilter;
|
|
19673
|
-
var _useState =
|
|
19673
|
+
var _useState = React170.useState(selected), date = _useState[0], setDate = _useState[1];
|
|
19674
19674
|
var handleChangeDate = function handleChangeDate2(value) {
|
|
19675
19675
|
setDate(function(prevDate) {
|
|
19676
19676
|
return prevDate.set("date", value.get("date")).set("month", value.get("month")).set("year", value.get("year"));
|
|
@@ -19750,14 +19750,14 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19750
19750
|
}();
|
|
19751
19751
|
var Scheduler = function Scheduler2(_ref2) {
|
|
19752
19752
|
var name = _ref2.name, selected = _ref2.selected, icalAvailability = _ref2.icalAvailability, _ref2$duration = _ref2.duration, duration = _ref2$duration === void 0 ? 30 : _ref2$duration, _ref2$dateInterval = _ref2.dateInterval, dateInterval = _ref2$dateInterval === void 0 ? 1 : _ref2$dateInterval, _ref2$timeInterval = _ref2.timeInterval, timeInterval = _ref2$timeInterval === void 0 ? 30 : _ref2$timeInterval, _ref2$dateFormat = _ref2.dateFormat, dateFormat = _ref2$dateFormat === void 0 ? "ddd MMM DD" : _ref2$dateFormat, _ref2$timeFormat = _ref2.timeFormat, timeFormat = _ref2$timeFormat === void 0 ? "hh:mm A" : _ref2$timeFormat, _ref2$fullDay = _ref2.fullDay, fullDay = _ref2$fullDay === void 0 ? false : _ref2$fullDay;
|
|
19753
|
-
var _useState =
|
|
19754
|
-
var _useState2 =
|
|
19755
|
-
var _useState3 =
|
|
19753
|
+
var _useState = React170.useState(false), loading = _useState[0], setLoading = _useState[1];
|
|
19754
|
+
var _useState2 = React170.useState(""), error = _useState2[0], setError = _useState2[1];
|
|
19755
|
+
var _useState3 = React170.useState(function() {
|
|
19756
19756
|
return function() {
|
|
19757
19757
|
return true;
|
|
19758
19758
|
};
|
|
19759
19759
|
}), icalFilter = _useState3[0], setIcalFilter = _useState3[1];
|
|
19760
|
-
|
|
19760
|
+
React170.useEffect(function() {
|
|
19761
19761
|
if (!icalAvailability) return;
|
|
19762
19762
|
setLoading(true);
|
|
19763
19763
|
setupIcalFilter(icalAvailability, duration).then(setIcalFilter)["catch"](function(err) {
|
|
@@ -19961,13 +19961,13 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19961
19961
|
}
|
|
19962
19962
|
var MML2 = function MML3(_ref) {
|
|
19963
19963
|
var source = _ref.source, onSubmit = _ref.onSubmit, converters2 = _ref.converters, _ref$theme = _ref.theme, theme = _ref$theme === void 0 ? "" : _ref$theme, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$Loading = _ref.Loading, Loading$1 = _ref$Loading === void 0 ? Loading : _ref$Loading, _ref$Error = _ref.Error, Error2 = _ref$Error === void 0 ? Error$1 : _ref$Error, _ref$Success = _ref.Success, Success$1 = _ref$Success === void 0 ? Success : _ref$Success;
|
|
19964
|
-
var _useState =
|
|
19965
|
-
var _useState2 =
|
|
19964
|
+
var _useState = React170.useState(""), error = _useState[0], setError = _useState[1];
|
|
19965
|
+
var _useState2 = React170.useState({
|
|
19966
19966
|
loading: false,
|
|
19967
19967
|
error: "",
|
|
19968
19968
|
success: ""
|
|
19969
19969
|
}), submitState = _useState2[0], setSubmitState = _useState2[1];
|
|
19970
|
-
var tree =
|
|
19970
|
+
var tree = React170.useMemo(function() {
|
|
19971
19971
|
try {
|
|
19972
19972
|
return Parse(source, converters2);
|
|
19973
19973
|
} catch (e2) {
|
|
@@ -19976,7 +19976,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19976
19976
|
return null;
|
|
19977
19977
|
}
|
|
19978
19978
|
}, [source, converters2]);
|
|
19979
|
-
var handleSubmit =
|
|
19979
|
+
var handleSubmit = React170.useCallback(/* @__PURE__ */ function() {
|
|
19980
19980
|
var _ref2 = _asyncToGenerator(/* @__PURE__ */ runtime_1.mark(function _callee(event) {
|
|
19981
19981
|
var state;
|
|
19982
19982
|
return runtime_1.wrap(function _callee$(_context) {
|
|
@@ -43586,7 +43586,7 @@ var UnMemoizedChannelPreviewMessenger = (props) => {
|
|
|
43586
43586
|
className: customClassName = "",
|
|
43587
43587
|
displayImage,
|
|
43588
43588
|
displayTitle,
|
|
43589
|
-
|
|
43589
|
+
latestMessagePreview,
|
|
43590
43590
|
onSelect: customOnSelectChannel,
|
|
43591
43591
|
setActiveChannel,
|
|
43592
43592
|
unread,
|
|
@@ -43628,7 +43628,7 @@ var UnMemoizedChannelPreviewMessenger = (props) => {
|
|
|
43628
43628
|
name: avatarName
|
|
43629
43629
|
}
|
|
43630
43630
|
)),
|
|
43631
|
-
/* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-end" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-end-first-row" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-messenger--name" }, /* @__PURE__ */ import_react83.default.createElement("span", null, displayTitle)), !!unread && /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-unread-badge", "data-testid": "unread-badge" }, unread)), /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-messenger--last-message" },
|
|
43631
|
+
/* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-end" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-end-first-row" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-messenger--name" }, /* @__PURE__ */ import_react83.default.createElement("span", null, displayTitle)), !!unread && /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-unread-badge", "data-testid": "unread-badge" }, unread)), /* @__PURE__ */ import_react83.default.createElement("div", { className: "str-chat__channel-preview-messenger--last-message" }, latestMessagePreview))
|
|
43632
43632
|
);
|
|
43633
43633
|
};
|
|
43634
43634
|
var ChannelPreviewMessenger = import_react83.default.memo(
|
|
@@ -43655,7 +43655,7 @@ var import_react86 = require("react");
|
|
|
43655
43655
|
var import_react85 = __toESM(require("react"));
|
|
43656
43656
|
var renderPreviewText = (text5) => /* @__PURE__ */ import_react85.default.createElement(ReactMarkdown, { skipHtml: true }, text5);
|
|
43657
43657
|
var getLatestMessagePreview = (channel, t2, userLanguage = "en") => {
|
|
43658
|
-
const latestMessage = channel.state.
|
|
43658
|
+
const latestMessage = channel.state.latestMessages[channel.state.latestMessages.length - 1];
|
|
43659
43659
|
const previewTextToRender = latestMessage?.i18n?.[`${userLanguage}_text`] || latestMessage?.text;
|
|
43660
43660
|
if (!latestMessage) {
|
|
43661
43661
|
return t2("Nothing yet...");
|
|
@@ -43664,8 +43664,7 @@ var getLatestMessagePreview = (channel, t2, userLanguage = "en") => {
|
|
|
43664
43664
|
return t2("Message deleted");
|
|
43665
43665
|
}
|
|
43666
43666
|
if (previewTextToRender) {
|
|
43667
|
-
|
|
43668
|
-
return renderedText;
|
|
43667
|
+
return renderPreviewText(previewTextToRender);
|
|
43669
43668
|
}
|
|
43670
43669
|
if (latestMessage.command) {
|
|
43671
43670
|
return `/${latestMessage.command}`;
|
|
@@ -43773,7 +43772,12 @@ var useMessageDeliveryStatus = ({
|
|
|
43773
43772
|
|
|
43774
43773
|
// src/components/ChannelPreview/ChannelPreview.tsx
|
|
43775
43774
|
var ChannelPreview = (props) => {
|
|
43776
|
-
const {
|
|
43775
|
+
const {
|
|
43776
|
+
channel,
|
|
43777
|
+
Preview = ChannelPreviewMessenger,
|
|
43778
|
+
channelUpdateCount,
|
|
43779
|
+
getLatestMessagePreview: getLatestMessagePreview2 = getLatestMessagePreview
|
|
43780
|
+
} = props;
|
|
43777
43781
|
const { channel: activeChannel, client, setActiveChannel } = useChatContext(
|
|
43778
43782
|
"ChannelPreview"
|
|
43779
43783
|
);
|
|
@@ -43820,21 +43824,25 @@ var ChannelPreview = (props) => {
|
|
|
43820
43824
|
);
|
|
43821
43825
|
(0, import_react88.useEffect)(() => {
|
|
43822
43826
|
refreshUnreadCount();
|
|
43823
|
-
const handleEvent = (
|
|
43824
|
-
|
|
43827
|
+
const handleEvent = () => {
|
|
43828
|
+
setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
|
|
43825
43829
|
refreshUnreadCount();
|
|
43826
43830
|
};
|
|
43827
43831
|
channel.on("message.new", handleEvent);
|
|
43828
43832
|
channel.on("message.updated", handleEvent);
|
|
43829
43833
|
channel.on("message.deleted", handleEvent);
|
|
43834
|
+
channel.on("message.undeleted", handleEvent);
|
|
43835
|
+
channel.on("channel.truncated", handleEvent);
|
|
43830
43836
|
return () => {
|
|
43831
43837
|
channel.off("message.new", handleEvent);
|
|
43832
43838
|
channel.off("message.updated", handleEvent);
|
|
43833
43839
|
channel.off("message.deleted", handleEvent);
|
|
43840
|
+
channel.off("message.undeleted", handleEvent);
|
|
43841
|
+
channel.off("channel.truncated", handleEvent);
|
|
43834
43842
|
};
|
|
43835
|
-
}, [refreshUnreadCount, channelUpdateCount]);
|
|
43843
|
+
}, [channel, refreshUnreadCount, channelUpdateCount]);
|
|
43836
43844
|
if (!Preview) return null;
|
|
43837
|
-
const
|
|
43845
|
+
const latestMessagePreview = getLatestMessagePreview2(channel, t2, userLanguage);
|
|
43838
43846
|
return /* @__PURE__ */ import_react88.default.createElement(
|
|
43839
43847
|
Preview,
|
|
43840
43848
|
{
|
|
@@ -43843,7 +43851,8 @@ var ChannelPreview = (props) => {
|
|
|
43843
43851
|
displayImage,
|
|
43844
43852
|
displayTitle,
|
|
43845
43853
|
lastMessage,
|
|
43846
|
-
latestMessage,
|
|
43854
|
+
latestMessage: latestMessagePreview,
|
|
43855
|
+
latestMessagePreview,
|
|
43847
43856
|
messageDeliveryStatus,
|
|
43848
43857
|
setActiveChannel,
|
|
43849
43858
|
unread
|
|
@@ -49103,39 +49112,39 @@ var useMessageSetKey = ({
|
|
|
49103
49112
|
};
|
|
49104
49113
|
|
|
49105
49114
|
// src/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.ts
|
|
49106
|
-
var import_react182 =
|
|
49115
|
+
var import_react182 = require("react");
|
|
49107
49116
|
var useScrollToBottomOnNewMessage = ({
|
|
49108
49117
|
messages,
|
|
49109
49118
|
scrollToBottom,
|
|
49110
49119
|
scrollToLatestMessageOnFocus
|
|
49111
49120
|
}) => {
|
|
49112
|
-
const [newMessagesReceivedInBackground, setNewMessagesReceivedInBackground] = import_react182.
|
|
49113
|
-
|
|
49114
|
-
)
|
|
49115
|
-
|
|
49116
|
-
|
|
49117
|
-
|
|
49121
|
+
const [newMessagesReceivedInBackground, setNewMessagesReceivedInBackground] = (0, import_react182.useState)(false);
|
|
49122
|
+
const scrollToBottomIfConfigured = (0, import_react182.useRef)();
|
|
49123
|
+
scrollToBottomIfConfigured.current = (event) => {
|
|
49124
|
+
if (!scrollToLatestMessageOnFocus || !newMessagesReceivedInBackground || event.target !== window) {
|
|
49125
|
+
return;
|
|
49126
|
+
}
|
|
49127
|
+
setTimeout(scrollToBottom, 100);
|
|
49128
|
+
};
|
|
49118
49129
|
(0, import_react182.useEffect)(() => {
|
|
49119
49130
|
setNewMessagesReceivedInBackground(true);
|
|
49120
49131
|
}, [messages]);
|
|
49121
|
-
const scrollToBottomIfConfigured = (0, import_react182.useCallback)(
|
|
49122
|
-
(event) => {
|
|
49123
|
-
if (!scrollToLatestMessageOnFocus || !newMessagesReceivedInBackground || event.target !== window)
|
|
49124
|
-
return;
|
|
49125
|
-
setTimeout(scrollToBottom, 100);
|
|
49126
|
-
},
|
|
49127
|
-
[scrollToLatestMessageOnFocus, scrollToBottom, newMessagesReceivedInBackground]
|
|
49128
|
-
);
|
|
49129
49132
|
(0, import_react182.useEffect)(() => {
|
|
49133
|
+
const handleFocus = (event) => {
|
|
49134
|
+
scrollToBottomIfConfigured.current?.(event);
|
|
49135
|
+
};
|
|
49136
|
+
const handleBlur = () => {
|
|
49137
|
+
setNewMessagesReceivedInBackground(false);
|
|
49138
|
+
};
|
|
49130
49139
|
if (typeof window !== "undefined") {
|
|
49131
|
-
window.addEventListener("focus",
|
|
49132
|
-
window.addEventListener("blur",
|
|
49140
|
+
window.addEventListener("focus", handleFocus);
|
|
49141
|
+
window.addEventListener("blur", handleBlur);
|
|
49133
49142
|
}
|
|
49134
49143
|
return () => {
|
|
49135
|
-
window.removeEventListener("focus",
|
|
49136
|
-
window.removeEventListener("blur",
|
|
49144
|
+
window.removeEventListener("focus", handleFocus);
|
|
49145
|
+
window.removeEventListener("blur", handleBlur);
|
|
49137
49146
|
};
|
|
49138
|
-
}, [
|
|
49147
|
+
}, []);
|
|
49139
49148
|
};
|
|
49140
49149
|
|
|
49141
49150
|
// src/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.ts
|
|
@@ -49236,6 +49245,7 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
49236
49245
|
messageGroupStyles,
|
|
49237
49246
|
MessageSystem,
|
|
49238
49247
|
numItemsPrepended,
|
|
49248
|
+
openThread,
|
|
49239
49249
|
ownMessagesReadByOthers,
|
|
49240
49250
|
processedMessages: messageList,
|
|
49241
49251
|
reactionDetailsSort,
|
|
@@ -49288,6 +49298,7 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
49288
49298
|
message,
|
|
49289
49299
|
Message: MessageUIComponent,
|
|
49290
49300
|
messageActions,
|
|
49301
|
+
openThread,
|
|
49291
49302
|
reactionDetailsSort,
|
|
49292
49303
|
readBy: ownMessagesReadByOthers[message.id] || [],
|
|
49293
49304
|
sortReactionDetails,
|
|
@@ -49354,6 +49365,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
49354
49365
|
messageLimit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE,
|
|
49355
49366
|
messages,
|
|
49356
49367
|
notifications,
|
|
49368
|
+
openThread,
|
|
49357
49369
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
49358
49370
|
overscan = 0,
|
|
49359
49371
|
read,
|
|
@@ -49569,6 +49581,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
49569
49581
|
messageGroupStyles,
|
|
49570
49582
|
MessageSystem,
|
|
49571
49583
|
numItemsPrepended,
|
|
49584
|
+
openThread,
|
|
49572
49585
|
ownMessagesReadByOthers,
|
|
49573
49586
|
processedMessages,
|
|
49574
49587
|
reactionDetailsSort,
|
|
@@ -50759,7 +50772,7 @@ var useChannelDeletedListener = (setChannels, customHandler) => {
|
|
|
50759
50772
|
return () => {
|
|
50760
50773
|
client.off("channel.deleted", handleEvent);
|
|
50761
50774
|
};
|
|
50762
|
-
}, [customHandler]);
|
|
50775
|
+
}, [client, customHandler, setChannels]);
|
|
50763
50776
|
};
|
|
50764
50777
|
|
|
50765
50778
|
// src/components/ChannelList/hooks/useChannelHiddenListener.ts
|
|
@@ -50783,7 +50796,7 @@ var useChannelHiddenListener = (setChannels, customHandler) => {
|
|
|
50783
50796
|
return () => {
|
|
50784
50797
|
client.off("channel.hidden", handleEvent);
|
|
50785
50798
|
};
|
|
50786
|
-
}, [customHandler]);
|
|
50799
|
+
}, [client, customHandler, setChannels]);
|
|
50787
50800
|
};
|
|
50788
50801
|
|
|
50789
50802
|
// src/components/ChannelList/hooks/useChannelTruncatedListener.ts
|
|
@@ -50804,7 +50817,7 @@ var useChannelTruncatedListener = (setChannels, customHandler, forceUpdate) => {
|
|
|
50804
50817
|
return () => {
|
|
50805
50818
|
client.off("channel.truncated", handleEvent);
|
|
50806
50819
|
};
|
|
50807
|
-
}, [customHandler]);
|
|
50820
|
+
}, [client, customHandler, forceUpdate, setChannels]);
|
|
50808
50821
|
};
|
|
50809
50822
|
|
|
50810
50823
|
// src/components/ChannelList/hooks/useChannelUpdatedListener.ts
|
|
@@ -50837,7 +50850,7 @@ var useChannelUpdatedListener = (setChannels, customHandler, forceUpdate) => {
|
|
|
50837
50850
|
return () => {
|
|
50838
50851
|
client.off("channel.updated", handleEvent);
|
|
50839
50852
|
};
|
|
50840
|
-
}, [customHandler]);
|
|
50853
|
+
}, [client, customHandler, forceUpdate, setChannels]);
|
|
50841
50854
|
};
|
|
50842
50855
|
|
|
50843
50856
|
// src/components/ChannelList/hooks/useChannelVisibleListener.ts
|
|
@@ -50862,7 +50875,7 @@ var useChannelVisibleListener = (setChannels, customHandler) => {
|
|
|
50862
50875
|
return () => {
|
|
50863
50876
|
client.off("channel.visible", handleEvent);
|
|
50864
50877
|
};
|
|
50865
|
-
}, [customHandler]);
|
|
50878
|
+
}, [client, customHandler, setChannels]);
|
|
50866
50879
|
};
|
|
50867
50880
|
|
|
50868
50881
|
// src/components/ChannelList/hooks/useConnectionRecoveredListener.ts
|
|
@@ -50879,7 +50892,7 @@ var useConnectionRecoveredListener = (forceUpdate) => {
|
|
|
50879
50892
|
return () => {
|
|
50880
50893
|
client.off("connection.recovered", handleEvent);
|
|
50881
50894
|
};
|
|
50882
|
-
}, []);
|
|
50895
|
+
}, [client, forceUpdate]);
|
|
50883
50896
|
};
|
|
50884
50897
|
|
|
50885
50898
|
// src/components/ChannelList/hooks/useMessageNewListener.ts
|
|
@@ -50923,7 +50936,13 @@ var useMessageNewListener = (setChannels, customHandler, lockChannelOrder = fals
|
|
|
50923
50936
|
return () => {
|
|
50924
50937
|
client.off("message.new", handleEvent);
|
|
50925
50938
|
};
|
|
50926
|
-
}, [
|
|
50939
|
+
}, [
|
|
50940
|
+
allowNewMessagesFromUnfilteredChannels,
|
|
50941
|
+
client,
|
|
50942
|
+
customHandler,
|
|
50943
|
+
lockChannelOrder,
|
|
50944
|
+
setChannels
|
|
50945
|
+
]);
|
|
50927
50946
|
};
|
|
50928
50947
|
|
|
50929
50948
|
// src/components/ChannelList/hooks/useMobileNavigation.ts
|
|
@@ -50971,7 +50990,7 @@ var useNotificationAddedToChannelListener = (setChannels, customHandler, allowNe
|
|
|
50971
50990
|
return () => {
|
|
50972
50991
|
client.off("notification.added_to_channel", handleEvent);
|
|
50973
50992
|
};
|
|
50974
|
-
}, [customHandler]);
|
|
50993
|
+
}, [allowNewMessagesFromUnfilteredChannels, client, customHandler, setChannels]);
|
|
50975
50994
|
};
|
|
50976
50995
|
|
|
50977
50996
|
// src/components/ChannelList/hooks/useNotificationMessageNewListener.ts
|
|
@@ -50996,7 +51015,7 @@ var useNotificationMessageNewListener = (setChannels, customHandler, allowNewMes
|
|
|
50996
51015
|
return () => {
|
|
50997
51016
|
client.off("notification.message_new", handleEvent);
|
|
50998
51017
|
};
|
|
50999
|
-
}, [customHandler]);
|
|
51018
|
+
}, [allowNewMessagesFromUnfilteredChannels, client, customHandler, setChannels]);
|
|
51000
51019
|
};
|
|
51001
51020
|
|
|
51002
51021
|
// src/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.ts
|
|
@@ -51017,7 +51036,7 @@ var useNotificationRemovedFromChannelListener = (setChannels, customHandler) =>
|
|
|
51017
51036
|
return () => {
|
|
51018
51037
|
client.off("notification.removed_from_channel", handleEvent);
|
|
51019
51038
|
};
|
|
51020
|
-
}, [customHandler]);
|
|
51039
|
+
}, [client, customHandler, setChannels]);
|
|
51021
51040
|
};
|
|
51022
51041
|
|
|
51023
51042
|
// src/components/ChannelList/hooks/usePaginatedChannels.ts
|
|
@@ -51124,7 +51143,7 @@ var useUserPresenceChangedListener = (setChannels) => {
|
|
|
51124
51143
|
return () => {
|
|
51125
51144
|
client.off("user.presence.changed", handleEvent);
|
|
51126
51145
|
};
|
|
51127
|
-
}, []);
|
|
51146
|
+
}, [client, setChannels]);
|
|
51128
51147
|
};
|
|
51129
51148
|
|
|
51130
51149
|
// src/components/ChannelSearch/ChannelSearch.tsx
|
|
@@ -51829,6 +51848,7 @@ var UnMemoizedChannelList = (props) => {
|
|
|
51829
51848
|
customQueryChannels,
|
|
51830
51849
|
EmptyStateIndicator: EmptyStateIndicator2 = EmptyStateIndicator,
|
|
51831
51850
|
filters,
|
|
51851
|
+
getLatestMessagePreview: getLatestMessagePreview2,
|
|
51832
51852
|
LoadingErrorIndicator: LoadingErrorIndicator2 = NullComponent,
|
|
51833
51853
|
LoadingIndicator: LoadingIndicator2 = LoadingChannels,
|
|
51834
51854
|
List: List2 = ChannelListMessenger,
|
|
@@ -51891,7 +51911,9 @@ var UnMemoizedChannelList = (props) => {
|
|
|
51891
51911
|
setActiveChannel(channels2[0], watchers);
|
|
51892
51912
|
}
|
|
51893
51913
|
};
|
|
51894
|
-
const forceUpdate = () => setChannelUpdateCount((count) => count + 1)
|
|
51914
|
+
const forceUpdate = (0, import_react211.useCallback)(() => setChannelUpdateCount((count) => count + 1), [
|
|
51915
|
+
setChannelUpdateCount
|
|
51916
|
+
]);
|
|
51895
51917
|
const onSearch = (0, import_react211.useCallback)((event) => {
|
|
51896
51918
|
if (!event.target.value) {
|
|
51897
51919
|
setSearchActive(false);
|
|
@@ -51959,6 +51981,7 @@ var UnMemoizedChannelList = (props) => {
|
|
|
51959
51981
|
channel: item,
|
|
51960
51982
|
// forces the update of preview component on channel update
|
|
51961
51983
|
channelUpdateCount,
|
|
51984
|
+
getLatestMessagePreview: getLatestMessagePreview2,
|
|
51962
51985
|
key: item.cid,
|
|
51963
51986
|
Preview,
|
|
51964
51987
|
setActiveChannel,
|