stream-chat-react 12.14.0 → 12.15.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/Channel/Channel.d.ts +8 -2
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/MessageInput/MessageInput.js +3 -0
- package/dist/components/MessageInput/MessageInputFlat.js +28 -48
- package/dist/components/MessageInput/WithDragAndDropUpload.d.ts +37 -0
- package/dist/components/MessageInput/WithDragAndDropUpload.js +85 -0
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +12 -6
- package/dist/components/MessageInput/index.d.ts +1 -0
- package/dist/components/MessageInput/index.js +1 -0
- package/dist/components/Poll/PollActions/PollResults/PollResults.js +1 -1
- package/dist/context/MessageInputContext.js +3 -2
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/index.browser.cjs +454 -411
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +479 -435
- package/dist/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/index.browser.cjs +0 -3
- package/dist/plugins/Emojis/index.browser.cjs.map +2 -2
- package/dist/plugins/Emojis/index.node.cjs +0 -3
- package/dist/plugins/Emojis/index.node.cjs.map +2 -2
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
- package/dist/scss/v2/MessageInput/MessageInput-layout.scss +0 -13
- package/dist/scss/v2/MessageInput/MessageInput-theme.scss +8 -19
- package/dist/scss/v2/index.layout.scss +2 -1
- package/dist/scss/v2/index.scss +1 -0
- package/package.json +2 -2
- /package/dist/scss/v2/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
package/dist/index.node.cjs
CHANGED
|
@@ -10556,7 +10556,7 @@ var require_react_is = __commonJS({
|
|
|
10556
10556
|
var require_ast_to_react = __commonJS({
|
|
10557
10557
|
"node_modules/mml-react/node_modules/react-markdown/lib/ast-to-react.js"(exports2, module2) {
|
|
10558
10558
|
"use strict";
|
|
10559
|
-
var
|
|
10559
|
+
var React210 = require("react");
|
|
10560
10560
|
var xtend = require_immutable();
|
|
10561
10561
|
var ReactIs = require_react_is();
|
|
10562
10562
|
function astToReact(node2, options) {
|
|
@@ -10583,7 +10583,7 @@ var require_ast_to_react = __commonJS({
|
|
|
10583
10583
|
throw new Error("Renderer for type `".concat(node2.type, "` not defined or is not renderable"));
|
|
10584
10584
|
}
|
|
10585
10585
|
var nodeProps = getNodeProps(node2, key, options, renderer, parent, index3);
|
|
10586
|
-
return
|
|
10586
|
+
return React210.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || void 0);
|
|
10587
10587
|
function resolveChildren() {
|
|
10588
10588
|
return node2.children && node2.children.map(function(childNode, i) {
|
|
10589
10589
|
return astToReact(childNode, options, {
|
|
@@ -10597,7 +10597,7 @@ var require_ast_to_react = __commonJS({
|
|
|
10597
10597
|
var props = {
|
|
10598
10598
|
key
|
|
10599
10599
|
};
|
|
10600
|
-
var isSimpleRenderer = typeof renderer === "string" || renderer ===
|
|
10600
|
+
var isSimpleRenderer = typeof renderer === "string" || renderer === React210.Fragment;
|
|
10601
10601
|
if (opts.sourcePos && node2.position) {
|
|
10602
10602
|
props["data-sourcepos"] = flattenPosition(node2.position);
|
|
10603
10603
|
}
|
|
@@ -10750,14 +10750,14 @@ var require_ast_to_react = __commonJS({
|
|
|
10750
10750
|
function mergeNodeChildren(node2, parsedChildren) {
|
|
10751
10751
|
var el = node2.element;
|
|
10752
10752
|
if (Array.isArray(el)) {
|
|
10753
|
-
var Fragment3 =
|
|
10754
|
-
return
|
|
10753
|
+
var Fragment3 = React210.Fragment || "div";
|
|
10754
|
+
return React210.createElement(Fragment3, null, el);
|
|
10755
10755
|
}
|
|
10756
10756
|
if (el.props.children || parsedChildren) {
|
|
10757
|
-
var children =
|
|
10758
|
-
return
|
|
10757
|
+
var children = React210.Children.toArray(el.props.children).concat(parsedChildren);
|
|
10758
|
+
return React210.cloneElement(el, null, children);
|
|
10759
10759
|
}
|
|
10760
|
-
return
|
|
10760
|
+
return React210.cloneElement(el, null);
|
|
10761
10761
|
}
|
|
10762
10762
|
function flattenPosition(pos) {
|
|
10763
10763
|
return [pos.start.line, ":", pos.start.column, "-", pos.end.line, ":", pos.end.column].map(String).join("");
|
|
@@ -10881,9 +10881,9 @@ var require_renderers = __commonJS({
|
|
|
10881
10881
|
"node_modules/mml-react/node_modules/react-markdown/lib/renderers.js"(exports2, module2) {
|
|
10882
10882
|
"use strict";
|
|
10883
10883
|
var xtend = require_immutable();
|
|
10884
|
-
var
|
|
10885
|
-
var supportsStringRender = parseInt((
|
|
10886
|
-
var createElement =
|
|
10884
|
+
var React210 = require("react");
|
|
10885
|
+
var supportsStringRender = parseInt((React210.version || "16").slice(0, 2), 10) >= 16;
|
|
10886
|
+
var createElement = React210.createElement;
|
|
10887
10887
|
module2.exports = {
|
|
10888
10888
|
break: "br",
|
|
10889
10889
|
paragraph: "p",
|
|
@@ -10919,7 +10919,7 @@ var require_renderers = __commonJS({
|
|
|
10919
10919
|
}
|
|
10920
10920
|
function Root(props) {
|
|
10921
10921
|
var className = props.className;
|
|
10922
|
-
var root4 = !className &&
|
|
10922
|
+
var root4 = !className && React210.Fragment || "div";
|
|
10923
10923
|
return createElement(root4, className ? {
|
|
10924
10924
|
className
|
|
10925
10925
|
} : null, props.children);
|
|
@@ -10975,7 +10975,7 @@ var require_renderers = __commonJS({
|
|
|
10975
10975
|
var dangerous = props.allowDangerousHtml || props.escapeHtml === false;
|
|
10976
10976
|
var tag = props.isBlock ? "div" : "span";
|
|
10977
10977
|
if (!dangerous) {
|
|
10978
|
-
return createElement(
|
|
10978
|
+
return createElement(React210.Fragment || tag, null, props.value);
|
|
10979
10979
|
}
|
|
10980
10980
|
var nodeProps = {
|
|
10981
10981
|
dangerouslySetInnerHTML: {
|
|
@@ -10985,7 +10985,7 @@ var require_renderers = __commonJS({
|
|
|
10985
10985
|
return createElement(tag, nodeProps);
|
|
10986
10986
|
}
|
|
10987
10987
|
function ParsedHtml(props) {
|
|
10988
|
-
return props["data-sourcepos"] ?
|
|
10988
|
+
return props["data-sourcepos"] ? React210.cloneElement(props.element, {
|
|
10989
10989
|
"data-sourcepos": props["data-sourcepos"]
|
|
10990
10990
|
}) : props.element;
|
|
10991
10991
|
}
|
|
@@ -18837,8 +18837,8 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
18837
18837
|
function _interopDefault(ex) {
|
|
18838
18838
|
return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex;
|
|
18839
18839
|
}
|
|
18840
|
-
var
|
|
18841
|
-
var React__default = _interopDefault(
|
|
18840
|
+
var React210 = require("react");
|
|
18841
|
+
var React__default = _interopDefault(React210);
|
|
18842
18842
|
var parseXml = _interopDefault(require_src());
|
|
18843
18843
|
var dayjs = _interopDefault(require("dayjs"));
|
|
18844
18844
|
var sanitizeUrl4 = require("@braintree/sanitize-url");
|
|
@@ -19623,8 +19623,8 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19623
19623
|
className: "mml-carousel__track"
|
|
19624
19624
|
}, React__default.createElement("div", {
|
|
19625
19625
|
className: "mml-carousel__slides"
|
|
19626
|
-
},
|
|
19627
|
-
return
|
|
19626
|
+
}, React210.Children.map(children, function(child) {
|
|
19627
|
+
return React210.cloneElement(child, {
|
|
19628
19628
|
className: "mml-carousel__slide",
|
|
19629
19629
|
slideWidth
|
|
19630
19630
|
});
|
|
@@ -19668,7 +19668,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19668
19668
|
};
|
|
19669
19669
|
var Input = function Input2(_ref) {
|
|
19670
19670
|
var name2 = _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;
|
|
19671
|
-
var _useState =
|
|
19671
|
+
var _useState = React210.useState(value), state = _useState[0], setState = _useState[1];
|
|
19672
19672
|
var id = "mml-" + name2;
|
|
19673
19673
|
return React__default.createElement(React__default.Fragment, null, label && React__default.createElement("label", {
|
|
19674
19674
|
className: "mml-card-header",
|
|
@@ -19798,7 +19798,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19798
19798
|
};
|
|
19799
19799
|
var Number2 = function Number3(_ref) {
|
|
19800
19800
|
var name2 = _ref.name, value = _ref.value;
|
|
19801
|
-
var _useState =
|
|
19801
|
+
var _useState = React210.useState(parseInt("" + value, 10) || 0), state = _useState[0], setState = _useState[1];
|
|
19802
19802
|
return React__default.createElement("div", {
|
|
19803
19803
|
className: "mml-number"
|
|
19804
19804
|
}, React__default.createElement("input", {
|
|
@@ -19835,7 +19835,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19835
19835
|
var VIRTUOSO_START_INDEX = 1e4;
|
|
19836
19836
|
var DatePickerSelect = function DatePickerSelect2(props) {
|
|
19837
19837
|
var onChange = props.onChange, icalFilter = props.icalFilter, getItemData2 = props.getItemData, itemClassName = props.itemClassName, interval = props.interval, format = props.format, value = props.value;
|
|
19838
|
-
var generateItems =
|
|
19838
|
+
var generateItems = React210.useCallback(function(quantity, firstIdx) {
|
|
19839
19839
|
return Array(quantity).fill(true).map(function(_, idx) {
|
|
19840
19840
|
return getItemData2({
|
|
19841
19841
|
interval,
|
|
@@ -19847,11 +19847,11 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19847
19847
|
return !icalFilter || icalFilter && icalFilter(newItem.value);
|
|
19848
19848
|
});
|
|
19849
19849
|
}, [interval, format, value, icalFilter, getItemData2]);
|
|
19850
|
-
var _useState =
|
|
19851
|
-
var _useState2 =
|
|
19852
|
-
var initialIndexOffset =
|
|
19853
|
-
var _useState3 =
|
|
19854
|
-
var handleClick =
|
|
19850
|
+
var _useState = React210.useState(generateItems(ITEMS_PER_PAGE * 2, -ITEMS_PER_PAGE)), items = _useState[0], setItems = _useState[1];
|
|
19851
|
+
var _useState2 = React210.useState(VIRTUOSO_START_INDEX), firstItemIndex = _useState2[0], setFirstItemIndex = _useState2[1];
|
|
19852
|
+
var initialIndexOffset = React210.useRef(INITIAL_INDEX);
|
|
19853
|
+
var _useState3 = React210.useState(null), selectedIdx = _useState3[0], setSelectedIdx = _useState3[1];
|
|
19854
|
+
var handleClick = React210.useCallback(function(item) {
|
|
19855
19855
|
onChange(item.value);
|
|
19856
19856
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
19857
19857
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
@@ -19865,12 +19865,12 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19865
19865
|
}
|
|
19866
19866
|
setSelectedIdx(item.idx);
|
|
19867
19867
|
}, [setItems, generateItems, initialIndexOffset, onChange]);
|
|
19868
|
-
var appendItems =
|
|
19868
|
+
var appendItems = React210.useCallback(function(lastItemIndex) {
|
|
19869
19869
|
setItems(function(items2) {
|
|
19870
19870
|
return [].concat(items2, generateItems(ITEMS_PER_PAGE, lastItemIndex));
|
|
19871
19871
|
});
|
|
19872
19872
|
}, [setItems, generateItems]);
|
|
19873
|
-
var prependItems =
|
|
19873
|
+
var prependItems = React210.useCallback(function() {
|
|
19874
19874
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
19875
19875
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
19876
19876
|
if (initialIndexOffset) {
|
|
@@ -19882,7 +19882,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19882
19882
|
setFirstItemIndex(firstItemIndex2 - ITEMS_PER_PAGE);
|
|
19883
19883
|
return false;
|
|
19884
19884
|
}, [setItems, generateItems, initialIndexOffset]);
|
|
19885
|
-
|
|
19885
|
+
React210.useEffect(function() {
|
|
19886
19886
|
if (value) {
|
|
19887
19887
|
var initialSelectedIdx = null;
|
|
19888
19888
|
for (var i = 0; i < items.length; i++) {
|
|
@@ -19952,7 +19952,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
19952
19952
|
};
|
|
19953
19953
|
var DatePicker = function DatePicker2(_ref) {
|
|
19954
19954
|
var name2 = _ref.name, selected = _ref.selected, dateInterval = _ref.dateInterval, timeInterval = _ref.timeInterval, dateFormat = _ref.dateFormat, timeFormat = _ref.timeFormat, fullDay = _ref.fullDay, icalFilter = _ref.icalFilter;
|
|
19955
|
-
var _useState =
|
|
19955
|
+
var _useState = React210.useState(selected), date = _useState[0], setDate = _useState[1];
|
|
19956
19956
|
var handleChangeDate = function handleChangeDate2(value) {
|
|
19957
19957
|
setDate(function(prevDate) {
|
|
19958
19958
|
return prevDate.set("date", value.get("date")).set("month", value.get("month")).set("year", value.get("year"));
|
|
@@ -20032,14 +20032,14 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
20032
20032
|
}();
|
|
20033
20033
|
var Scheduler = function Scheduler2(_ref2) {
|
|
20034
20034
|
var name2 = _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;
|
|
20035
|
-
var _useState =
|
|
20036
|
-
var _useState2 =
|
|
20037
|
-
var _useState3 =
|
|
20035
|
+
var _useState = React210.useState(false), loading = _useState[0], setLoading = _useState[1];
|
|
20036
|
+
var _useState2 = React210.useState(""), error = _useState2[0], setError = _useState2[1];
|
|
20037
|
+
var _useState3 = React210.useState(function() {
|
|
20038
20038
|
return function() {
|
|
20039
20039
|
return true;
|
|
20040
20040
|
};
|
|
20041
20041
|
}), icalFilter = _useState3[0], setIcalFilter = _useState3[1];
|
|
20042
|
-
|
|
20042
|
+
React210.useEffect(function() {
|
|
20043
20043
|
if (!icalAvailability) return;
|
|
20044
20044
|
setLoading(true);
|
|
20045
20045
|
setupIcalFilter(icalAvailability, duration).then(setIcalFilter)["catch"](function(err) {
|
|
@@ -20243,13 +20243,13 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
20243
20243
|
}
|
|
20244
20244
|
var MML2 = function MML3(_ref) {
|
|
20245
20245
|
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;
|
|
20246
|
-
var _useState =
|
|
20247
|
-
var _useState2 =
|
|
20246
|
+
var _useState = React210.useState(""), error = _useState[0], setError = _useState[1];
|
|
20247
|
+
var _useState2 = React210.useState({
|
|
20248
20248
|
loading: false,
|
|
20249
20249
|
error: "",
|
|
20250
20250
|
success: ""
|
|
20251
20251
|
}), submitState = _useState2[0], setSubmitState = _useState2[1];
|
|
20252
|
-
var tree =
|
|
20252
|
+
var tree = React210.useMemo(function() {
|
|
20253
20253
|
try {
|
|
20254
20254
|
return Parse(source, converters2);
|
|
20255
20255
|
} catch (e2) {
|
|
@@ -20258,7 +20258,7 @@ var require_mml_react_cjs_development = __commonJS({
|
|
|
20258
20258
|
return null;
|
|
20259
20259
|
}
|
|
20260
20260
|
}, [source, converters2]);
|
|
20261
|
-
var handleSubmit =
|
|
20261
|
+
var handleSubmit = React210.useCallback(/* @__PURE__ */ function() {
|
|
20262
20262
|
var _ref2 = _asyncToGenerator(/* @__PURE__ */ runtime_1.mark(function _callee(event) {
|
|
20263
20263
|
var state;
|
|
20264
20264
|
return runtime_1.wrap(function _callee$(_context) {
|
|
@@ -20583,6 +20583,7 @@ __export(src_exports, {
|
|
|
20583
20583
|
WaveProgressBar: () => WaveProgressBar,
|
|
20584
20584
|
Window: () => Window,
|
|
20585
20585
|
WithComponents: () => WithComponents,
|
|
20586
|
+
WithDragAndDropUpload: () => WithDragAndDropUpload,
|
|
20586
20587
|
areMessagePropsEqual: () => areMessagePropsEqual,
|
|
20587
20588
|
areMessageUIPropsEqual: () => areMessageUIPropsEqual,
|
|
20588
20589
|
attachmentTypeIconMap: () => attachmentTypeIconMap,
|
|
@@ -21293,9 +21294,6 @@ var MessageInputContextProvider = ({
|
|
|
21293
21294
|
var useMessageInputContext = (componentName) => {
|
|
21294
21295
|
const contextValue = (0, import_react13.useContext)(MessageInputContext);
|
|
21295
21296
|
if (!contextValue) {
|
|
21296
|
-
console.warn(
|
|
21297
|
-
`The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure this hook is called within the MessageInput's UI component. The errored call is located in the ${componentName} component.`
|
|
21298
|
-
);
|
|
21299
21297
|
return {};
|
|
21300
21298
|
}
|
|
21301
21299
|
return contextValue;
|
|
@@ -40280,7 +40278,7 @@ ReactTextareaAutocomplete.propTypes = {
|
|
|
40280
40278
|
};
|
|
40281
40279
|
|
|
40282
40280
|
// src/components/Channel/Channel.tsx
|
|
40283
|
-
var
|
|
40281
|
+
var import_react258 = __toESM(require("react"));
|
|
40284
40282
|
var import_lodash22 = __toESM(require("lodash.debounce"));
|
|
40285
40283
|
var import_lodash23 = __toESM(require("lodash.defaultsdeep"));
|
|
40286
40284
|
var import_lodash24 = __toESM(require("lodash.throttle"));
|
|
@@ -44408,10 +44406,12 @@ var useSubmitHandler = (props, state, dispatch, numberOfUploads, enrichURLsContr
|
|
|
44408
44406
|
if (someAttachmentsUploading) {
|
|
44409
44407
|
return addNotification(t2("Wait until all attachments have uploaded"), "error");
|
|
44410
44408
|
}
|
|
44411
|
-
const
|
|
44412
|
-
|
|
44413
|
-
|
|
44414
|
-
|
|
44409
|
+
const attachmentsWithoutLinkPreviews = attachments.filter((att) => {
|
|
44410
|
+
const isSuccessfulUpload = att.localMetadata?.uploadState === "finished";
|
|
44411
|
+
const isNotUpload = !att.localMetadata?.uploadState;
|
|
44412
|
+
const isNotLinkPreview = !att.og_scrape_url;
|
|
44413
|
+
return isNotLinkPreview && (isSuccessfulUpload || isNotUpload);
|
|
44414
|
+
}).map((localAttachment) => {
|
|
44415
44415
|
const { localMetadata: _, ...attachment } = localAttachment;
|
|
44416
44416
|
return attachment;
|
|
44417
44417
|
});
|
|
@@ -44425,17 +44425,16 @@ var useSubmitHandler = (props, state, dispatch, numberOfUploads, enrichURLsContr
|
|
|
44425
44425
|
const someLinkPreviewsDismissed = Array.from(linkPreviews.values()).some(
|
|
44426
44426
|
(linkPreview) => linkPreview.state === "dismissed" /* DISMISSED */
|
|
44427
44427
|
);
|
|
44428
|
-
attachmentsFromLinkPreviews = someLinkPreviewsLoading ? [] : Array.from(linkPreviews.values()).filter(
|
|
44429
|
-
(linkPreview) => linkPreview.state === "loaded" /* LOADED */ && !attachmentsFromUploads.find(
|
|
44430
|
-
(attFromUpload) => attFromUpload.og_scrape_url === linkPreview.og_scrape_url
|
|
44431
|
-
)
|
|
44432
|
-
).map(
|
|
44428
|
+
attachmentsFromLinkPreviews = someLinkPreviewsLoading ? [] : Array.from(linkPreviews.values()).filter((linkPreview) => linkPreview.state === "loaded" /* LOADED */).map(
|
|
44433
44429
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44434
44430
|
({ state: linkPreviewState, ...ogAttachment }) => ogAttachment
|
|
44435
44431
|
);
|
|
44436
44432
|
sendOptions.skip_enrich_url = !someLinkPreviewsLoading && attachmentsFromLinkPreviews.length > 0 || someLinkPreviewsDismissed;
|
|
44437
44433
|
}
|
|
44438
|
-
const newAttachments = [
|
|
44434
|
+
const newAttachments = [
|
|
44435
|
+
...attachmentsWithoutLinkPreviews,
|
|
44436
|
+
...attachmentsFromLinkPreviews
|
|
44437
|
+
];
|
|
44439
44438
|
const actualMentionedUsers = Array.from(
|
|
44440
44439
|
new Set(
|
|
44441
44440
|
mentioned_users.filter(
|
|
@@ -45548,10 +45547,10 @@ var UnMemoizedConnectionStatus = () => {
|
|
|
45548
45547
|
var ConnectionStatus = import_react80.default.memo(UnMemoizedConnectionStatus);
|
|
45549
45548
|
|
|
45550
45549
|
// src/components/MessageList/GiphyPreviewMessage.tsx
|
|
45551
|
-
var
|
|
45550
|
+
var import_react227 = __toESM(require("react"));
|
|
45552
45551
|
|
|
45553
45552
|
// src/components/Message/Message.tsx
|
|
45554
|
-
var
|
|
45553
|
+
var import_react226 = __toESM(require("react"));
|
|
45555
45554
|
|
|
45556
45555
|
// src/components/Message/hooks/useActionHandler.ts
|
|
45557
45556
|
var handleActionWarning = `Action handler was called, but it is missing one of its required arguments.
|
|
@@ -49126,7 +49125,7 @@ var useMessageTextStreaming = ({
|
|
|
49126
49125
|
};
|
|
49127
49126
|
|
|
49128
49127
|
// src/components/Message/MessageSimple.tsx
|
|
49129
|
-
var
|
|
49128
|
+
var import_react225 = __toESM(require("react"));
|
|
49130
49129
|
var import_clsx60 = __toESM(require("clsx"));
|
|
49131
49130
|
|
|
49132
49131
|
// src/components/Message/icons.tsx
|
|
@@ -51069,7 +51068,7 @@ var PollOptionWithLatestVotes = ({
|
|
|
51069
51068
|
// src/components/Poll/PollActions/PollResults/PollResults.tsx
|
|
51070
51069
|
var pollStateSelector10 = (nextValue) => ({
|
|
51071
51070
|
name: nextValue.name,
|
|
51072
|
-
options: nextValue.options,
|
|
51071
|
+
options: [...nextValue.options],
|
|
51073
51072
|
vote_counts_by_option: nextValue.vote_counts_by_option
|
|
51074
51073
|
});
|
|
51075
51074
|
var PollResults = ({
|
|
@@ -53111,12 +53110,10 @@ var DefaultTriggerProvider = ({
|
|
|
53111
53110
|
};
|
|
53112
53111
|
|
|
53113
53112
|
// src/components/MessageInput/EditMessageForm.tsx
|
|
53114
|
-
var
|
|
53113
|
+
var import_react217 = __toESM(require("react"));
|
|
53115
53114
|
|
|
53116
53115
|
// src/components/MessageInput/MessageInputFlat.tsx
|
|
53117
|
-
var
|
|
53118
|
-
var import_clsx55 = __toESM(require("clsx"));
|
|
53119
|
-
var import_react_dropzone2 = require("react-dropzone");
|
|
53116
|
+
var import_react216 = __toESM(require("react"));
|
|
53120
53117
|
|
|
53121
53118
|
// src/components/MessageInput/SendButton.tsx
|
|
53122
53119
|
var import_react205 = __toESM(require("react"));
|
|
@@ -53521,9 +53518,83 @@ var AIStateIndicator = ({
|
|
|
53521
53518
|
return aiState in allowedStates ? /* @__PURE__ */ import_react214.default.createElement("div", { className: "str-chat__ai-state-indicator-container" }, /* @__PURE__ */ import_react214.default.createElement("p", { className: "str-chat__ai-state-indicator-text" }, allowedStates[aiState])) : null;
|
|
53522
53519
|
};
|
|
53523
53520
|
|
|
53521
|
+
// src/components/MessageInput/WithDragAndDropUpload.tsx
|
|
53522
|
+
var import_react215 = __toESM(require("react"));
|
|
53523
|
+
var import_react_dropzone2 = require("react-dropzone");
|
|
53524
|
+
var import_clsx55 = __toESM(require("clsx"));
|
|
53525
|
+
var DragAndDropUploadContext = import_react215.default.createContext({
|
|
53526
|
+
subscribeToDrop: null
|
|
53527
|
+
});
|
|
53528
|
+
var useDragAndDropUploadContext = () => (0, import_react215.useContext)(DragAndDropUploadContext);
|
|
53529
|
+
var useRegisterDropHandlers = ({ uploadNewFiles }) => {
|
|
53530
|
+
const { subscribeToDrop } = useDragAndDropUploadContext();
|
|
53531
|
+
(0, import_react215.useEffect)(() => {
|
|
53532
|
+
const unsubscribe = subscribeToDrop?.(uploadNewFiles);
|
|
53533
|
+
return unsubscribe;
|
|
53534
|
+
}, [subscribeToDrop, uploadNewFiles]);
|
|
53535
|
+
};
|
|
53536
|
+
var WithDragAndDropUpload = ({
|
|
53537
|
+
children,
|
|
53538
|
+
className,
|
|
53539
|
+
component: Component2 = "div",
|
|
53540
|
+
style
|
|
53541
|
+
}) => {
|
|
53542
|
+
const dropHandlersRef = (0, import_react215.useRef)(/* @__PURE__ */ new Set());
|
|
53543
|
+
const { acceptedFiles = [], multipleUploads } = useChannelStateContext();
|
|
53544
|
+
const { t: t2 } = useTranslationContext();
|
|
53545
|
+
const messageInputContext = useMessageInputContext();
|
|
53546
|
+
const dragAndDropUploadContext = useDragAndDropUploadContext();
|
|
53547
|
+
const isWithinMessageInputContext = typeof messageInputContext.uploadNewFiles === "function";
|
|
53548
|
+
const accept = (0, import_react215.useMemo)(
|
|
53549
|
+
() => acceptedFiles.reduce((mediaTypeMap, mediaType) => {
|
|
53550
|
+
mediaTypeMap[mediaType] ?? (mediaTypeMap[mediaType] = []);
|
|
53551
|
+
return mediaTypeMap;
|
|
53552
|
+
}, {}),
|
|
53553
|
+
[acceptedFiles]
|
|
53554
|
+
);
|
|
53555
|
+
const subscribeToDrop = (0, import_react215.useCallback)((fn) => {
|
|
53556
|
+
dropHandlersRef.current.add(fn);
|
|
53557
|
+
return () => {
|
|
53558
|
+
dropHandlersRef.current.delete(fn);
|
|
53559
|
+
};
|
|
53560
|
+
}, []);
|
|
53561
|
+
const handleDrop = (0, import_react215.useCallback)((files) => {
|
|
53562
|
+
dropHandlersRef.current.forEach((fn) => fn(files));
|
|
53563
|
+
}, []);
|
|
53564
|
+
const { getRootProps, isDragActive, isDragReject } = (0, import_react_dropzone2.useDropzone)({
|
|
53565
|
+
accept,
|
|
53566
|
+
// apply `disabled` rules if available, otherwise allow anything and
|
|
53567
|
+
// let the `uploadNewFiles` handle the limitations internally
|
|
53568
|
+
disabled: isWithinMessageInputContext ? !messageInputContext.isUploadEnabled || messageInputContext.maxFilesLeft === 0 : false,
|
|
53569
|
+
multiple: multipleUploads,
|
|
53570
|
+
noClick: true,
|
|
53571
|
+
onDrop: isWithinMessageInputContext ? messageInputContext.uploadNewFiles : handleDrop
|
|
53572
|
+
});
|
|
53573
|
+
if (dragAndDropUploadContext.subscribeToDrop !== null) {
|
|
53574
|
+
return /* @__PURE__ */ import_react215.default.createElement(Component2, { className }, children);
|
|
53575
|
+
}
|
|
53576
|
+
return /* @__PURE__ */ import_react215.default.createElement(
|
|
53577
|
+
DragAndDropUploadContext.Provider,
|
|
53578
|
+
{
|
|
53579
|
+
value: {
|
|
53580
|
+
subscribeToDrop
|
|
53581
|
+
}
|
|
53582
|
+
},
|
|
53583
|
+
/* @__PURE__ */ import_react215.default.createElement(Component2, { ...getRootProps({ className, style }) }, isDragActive && /* @__PURE__ */ import_react215.default.createElement(
|
|
53584
|
+
"div",
|
|
53585
|
+
{
|
|
53586
|
+
className: (0, import_clsx55.default)("str-chat__dropzone-container", {
|
|
53587
|
+
"str-chat__dropzone-container--not-accepted": isDragReject
|
|
53588
|
+
})
|
|
53589
|
+
},
|
|
53590
|
+
!isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Drag your files here")),
|
|
53591
|
+
isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Some of the files will not be accepted"))
|
|
53592
|
+
), children)
|
|
53593
|
+
);
|
|
53594
|
+
};
|
|
53595
|
+
|
|
53524
53596
|
// src/components/MessageInput/MessageInputFlat.tsx
|
|
53525
53597
|
var MessageInputFlat = () => {
|
|
53526
|
-
const { t: t2 } = useTranslationContext("MessageInputFlat");
|
|
53527
53598
|
const {
|
|
53528
53599
|
asyncMessagesMultiSendEnabled,
|
|
53529
53600
|
attachments,
|
|
@@ -53533,14 +53604,12 @@ var MessageInputFlat = () => {
|
|
|
53533
53604
|
hideSendButton,
|
|
53534
53605
|
isUploadEnabled,
|
|
53535
53606
|
linkPreviews,
|
|
53536
|
-
maxFilesLeft,
|
|
53537
53607
|
message,
|
|
53538
53608
|
numberOfUploads,
|
|
53539
53609
|
parent,
|
|
53540
53610
|
recordingController,
|
|
53541
53611
|
setCooldownRemaining,
|
|
53542
|
-
text: text7
|
|
53543
|
-
uploadNewFiles
|
|
53612
|
+
text: text7
|
|
53544
53613
|
} = useMessageInputContext("MessageInputFlat");
|
|
53545
53614
|
const {
|
|
53546
53615
|
AttachmentPreviewList: AttachmentPreviewList2 = AttachmentPreviewList,
|
|
@@ -53555,41 +53624,23 @@ var MessageInputFlat = () => {
|
|
|
53555
53624
|
StartRecordingAudioButton: StartRecordingAudioButton2 = StartRecordingAudioButton,
|
|
53556
53625
|
StopAIGenerationButton: StopAIGenerationButtonOverride
|
|
53557
53626
|
} = useComponentContext("MessageInputFlat");
|
|
53558
|
-
const {
|
|
53559
|
-
acceptedFiles = [],
|
|
53560
|
-
multipleUploads,
|
|
53561
|
-
quotedMessage
|
|
53562
|
-
} = useChannelStateContext("MessageInputFlat");
|
|
53627
|
+
const { quotedMessage } = useChannelStateContext("MessageInputFlat");
|
|
53563
53628
|
const { setQuotedMessage } = useChannelActionContext("MessageInputFlat");
|
|
53564
53629
|
const { channel } = useChatContext("MessageInputFlat");
|
|
53565
53630
|
const { aiState } = useAIState(channel);
|
|
53566
|
-
const stopGenerating = (0,
|
|
53631
|
+
const stopGenerating = (0, import_react216.useCallback)(() => channel?.stopAIResponse(), [channel]);
|
|
53567
53632
|
const [
|
|
53568
53633
|
showRecordingPermissionDeniedNotification,
|
|
53569
53634
|
setShowRecordingPermissionDeniedNotification
|
|
53570
|
-
] = (0,
|
|
53571
|
-
const closePermissionDeniedNotification = (0,
|
|
53635
|
+
] = (0, import_react216.useState)(false);
|
|
53636
|
+
const closePermissionDeniedNotification = (0, import_react216.useCallback)(() => {
|
|
53572
53637
|
setShowRecordingPermissionDeniedNotification(false);
|
|
53573
53638
|
}, []);
|
|
53574
|
-
const failedUploadsCount = (0,
|
|
53639
|
+
const failedUploadsCount = (0, import_react216.useMemo)(
|
|
53575
53640
|
() => attachments.filter((a2) => a2.localMetadata?.uploadState === "failed").length,
|
|
53576
53641
|
[attachments]
|
|
53577
53642
|
);
|
|
53578
|
-
|
|
53579
|
-
() => acceptedFiles.reduce((mediaTypeMap, mediaType) => {
|
|
53580
|
-
mediaTypeMap[mediaType] ?? (mediaTypeMap[mediaType] = []);
|
|
53581
|
-
return mediaTypeMap;
|
|
53582
|
-
}, {}),
|
|
53583
|
-
[acceptedFiles]
|
|
53584
|
-
);
|
|
53585
|
-
const { getRootProps, isDragActive, isDragReject } = (0, import_react_dropzone2.useDropzone)({
|
|
53586
|
-
accept,
|
|
53587
|
-
disabled: !isUploadEnabled || maxFilesLeft === 0,
|
|
53588
|
-
multiple: multipleUploads,
|
|
53589
|
-
noClick: true,
|
|
53590
|
-
onDrop: uploadNewFiles
|
|
53591
|
-
});
|
|
53592
|
-
(0, import_react215.useEffect)(() => {
|
|
53643
|
+
(0, import_react216.useEffect)(() => {
|
|
53593
53644
|
const handleQuotedMessageUpdate = (e2) => {
|
|
53594
53645
|
if (e2.message?.id !== quotedMessage?.id) return;
|
|
53595
53646
|
if (e2.type === "message.deleted") {
|
|
@@ -53605,40 +53656,31 @@ var MessageInputFlat = () => {
|
|
|
53605
53656
|
channel?.off("message.updated", handleQuotedMessageUpdate);
|
|
53606
53657
|
};
|
|
53607
53658
|
}, [channel, quotedMessage]);
|
|
53608
|
-
if (recordingController.recordingState) return /* @__PURE__ */
|
|
53659
|
+
if (recordingController.recordingState) return /* @__PURE__ */ import_react216.default.createElement(AudioRecorder2, null);
|
|
53609
53660
|
const displayQuotedMessage = !message && quotedMessage && quotedMessage.parent_id === parent?.id;
|
|
53610
53661
|
const recordingEnabled = !!(recordingController.recorder && navigator.mediaDevices);
|
|
53611
53662
|
const isRecording = !!recordingController.recordingState;
|
|
53612
53663
|
const StopAIGenerationButton2 = StopAIGenerationButtonOverride === void 0 ? StopAIGenerationButton : StopAIGenerationButtonOverride;
|
|
53613
53664
|
const shouldDisplayStopAIGeneration = [AIStates.Thinking, AIStates.Generating].includes(aiState) && !!StopAIGenerationButton2;
|
|
53614
|
-
return /* @__PURE__ */
|
|
53665
|
+
return /* @__PURE__ */ import_react216.default.createElement(WithDragAndDropUpload, { className: "str-chat__message-input", component: "div" }, recordingEnabled && recordingController.permissionState === "denied" && showRecordingPermissionDeniedNotification && /* @__PURE__ */ import_react216.default.createElement(
|
|
53615
53666
|
RecordingPermissionDeniedNotification2,
|
|
53616
53667
|
{
|
|
53617
53668
|
onClose: closePermissionDeniedNotification,
|
|
53618
53669
|
permissionName: "microphone" /* MIC */
|
|
53619
53670
|
}
|
|
53620
|
-
), findAndEnqueueURLsToEnrich && /* @__PURE__ */
|
|
53621
|
-
"div",
|
|
53622
|
-
{
|
|
53623
|
-
className: (0, import_clsx55.default)("str-chat__dropzone-container", {
|
|
53624
|
-
"str-chat__dropzone-container--not-accepted": isDragReject
|
|
53625
|
-
})
|
|
53626
|
-
},
|
|
53627
|
-
!isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Drag your files here")),
|
|
53628
|
-
isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Some of the files will not be accepted"))
|
|
53629
|
-
), displayQuotedMessage && /* @__PURE__ */ import_react215.default.createElement(QuotedMessagePreviewHeader, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-input-inner" }, /* @__PURE__ */ import_react215.default.createElement(AttachmentSelector2, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-textarea-container" }, displayQuotedMessage && /* @__PURE__ */ import_react215.default.createElement(QuotedMessagePreview2, { quotedMessage }), isUploadEnabled && !!(numberOfUploads + failedUploadsCount || attachments.length > 0) && /* @__PURE__ */ import_react215.default.createElement(AttachmentPreviewList2, null), /* @__PURE__ */ import_react215.default.createElement("div", { className: "str-chat__message-textarea-with-emoji-picker" }, /* @__PURE__ */ import_react215.default.createElement(ChatAutoComplete, null), EmojiPicker && /* @__PURE__ */ import_react215.default.createElement(EmojiPicker, null))), shouldDisplayStopAIGeneration ? /* @__PURE__ */ import_react215.default.createElement(StopAIGenerationButton2, { onClick: stopGenerating }) : !hideSendButton && /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, cooldownRemaining ? /* @__PURE__ */ import_react215.default.createElement(
|
|
53671
|
+
), findAndEnqueueURLsToEnrich && /* @__PURE__ */ import_react216.default.createElement(LinkPreviewList2, { linkPreviews: Array.from(linkPreviews.values()) }), displayQuotedMessage && /* @__PURE__ */ import_react216.default.createElement(QuotedMessagePreviewHeader, null), /* @__PURE__ */ import_react216.default.createElement("div", { className: "str-chat__message-input-inner" }, /* @__PURE__ */ import_react216.default.createElement(AttachmentSelector2, null), /* @__PURE__ */ import_react216.default.createElement("div", { className: "str-chat__message-textarea-container" }, displayQuotedMessage && /* @__PURE__ */ import_react216.default.createElement(QuotedMessagePreview2, { quotedMessage }), isUploadEnabled && !!(numberOfUploads + failedUploadsCount || attachments.length > 0) && /* @__PURE__ */ import_react216.default.createElement(AttachmentPreviewList2, null), /* @__PURE__ */ import_react216.default.createElement("div", { className: "str-chat__message-textarea-with-emoji-picker" }, /* @__PURE__ */ import_react216.default.createElement(ChatAutoComplete, null), EmojiPicker && /* @__PURE__ */ import_react216.default.createElement(EmojiPicker, null))), shouldDisplayStopAIGeneration ? /* @__PURE__ */ import_react216.default.createElement(StopAIGenerationButton2, { onClick: stopGenerating }) : !hideSendButton && /* @__PURE__ */ import_react216.default.createElement(import_react216.default.Fragment, null, cooldownRemaining ? /* @__PURE__ */ import_react216.default.createElement(
|
|
53630
53672
|
CooldownTimer2,
|
|
53631
53673
|
{
|
|
53632
53674
|
cooldownInterval: cooldownRemaining,
|
|
53633
53675
|
setCooldownRemaining
|
|
53634
53676
|
}
|
|
53635
|
-
) : /* @__PURE__ */
|
|
53677
|
+
) : /* @__PURE__ */ import_react216.default.createElement(import_react216.default.Fragment, null, /* @__PURE__ */ import_react216.default.createElement(
|
|
53636
53678
|
SendButton2,
|
|
53637
53679
|
{
|
|
53638
53680
|
disabled: !numberOfUploads && !text7.length && attachments.length - failedUploadsCount === 0,
|
|
53639
53681
|
sendMessage: handleSubmit
|
|
53640
53682
|
}
|
|
53641
|
-
), recordingEnabled && /* @__PURE__ */
|
|
53683
|
+
), recordingEnabled && /* @__PURE__ */ import_react216.default.createElement(
|
|
53642
53684
|
StartRecordingAudioButton2,
|
|
53643
53685
|
{
|
|
53644
53686
|
disabled: isRecording || !asyncMessagesMultiSendEnabled && attachments.some(
|
|
@@ -53649,29 +53691,29 @@ var MessageInputFlat = () => {
|
|
|
53649
53691
|
setShowRecordingPermissionDeniedNotification(true);
|
|
53650
53692
|
}
|
|
53651
53693
|
}
|
|
53652
|
-
)))))
|
|
53694
|
+
)))));
|
|
53653
53695
|
};
|
|
53654
53696
|
|
|
53655
53697
|
// src/components/MessageInput/EditMessageForm.tsx
|
|
53656
53698
|
var EditMessageForm = () => {
|
|
53657
53699
|
const { t: t2 } = useTranslationContext("EditMessageForm");
|
|
53658
53700
|
const { clearEditingState, handleSubmit } = useMessageInputContext("EditMessageForm");
|
|
53659
|
-
(0,
|
|
53701
|
+
(0, import_react217.useEffect)(() => {
|
|
53660
53702
|
const onKeyDown = (event) => {
|
|
53661
53703
|
if (event.key === "Escape") clearEditingState?.();
|
|
53662
53704
|
};
|
|
53663
53705
|
document.addEventListener("keydown", onKeyDown);
|
|
53664
53706
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
53665
53707
|
}, [clearEditingState]);
|
|
53666
|
-
return /* @__PURE__ */
|
|
53708
|
+
return /* @__PURE__ */ import_react217.default.createElement(
|
|
53667
53709
|
"form",
|
|
53668
53710
|
{
|
|
53669
53711
|
autoComplete: "off",
|
|
53670
53712
|
className: "str-chat__edit-message-form",
|
|
53671
53713
|
onSubmit: handleSubmit
|
|
53672
53714
|
},
|
|
53673
|
-
/* @__PURE__ */
|
|
53674
|
-
/* @__PURE__ */
|
|
53715
|
+
/* @__PURE__ */ import_react217.default.createElement(MessageInputFlat, null),
|
|
53716
|
+
/* @__PURE__ */ import_react217.default.createElement("div", { className: "str-chat__edit-message-form-options" }, /* @__PURE__ */ import_react217.default.createElement(
|
|
53675
53717
|
"button",
|
|
53676
53718
|
{
|
|
53677
53719
|
className: "str-chat__edit-message-cancel",
|
|
@@ -53679,7 +53721,7 @@ var EditMessageForm = () => {
|
|
|
53679
53721
|
onClick: clearEditingState
|
|
53680
53722
|
},
|
|
53681
53723
|
t2("Cancel")
|
|
53682
|
-
), /* @__PURE__ */
|
|
53724
|
+
), /* @__PURE__ */ import_react217.default.createElement(
|
|
53683
53725
|
"button",
|
|
53684
53726
|
{
|
|
53685
53727
|
className: "str-chat__edit-message-send",
|
|
@@ -53692,7 +53734,7 @@ var EditMessageForm = () => {
|
|
|
53692
53734
|
};
|
|
53693
53735
|
|
|
53694
53736
|
// src/components/MessageInput/MessageInput.tsx
|
|
53695
|
-
var
|
|
53737
|
+
var import_react218 = __toESM(require("react"));
|
|
53696
53738
|
var MessageInputProvider = (props) => {
|
|
53697
53739
|
const cooldownTimerState = useCooldownTimer();
|
|
53698
53740
|
const messageInputState = useMessageInputState(props);
|
|
@@ -53703,7 +53745,8 @@ var MessageInputProvider = (props) => {
|
|
|
53703
53745
|
...props,
|
|
53704
53746
|
emojiSearchIndex: props.emojiSearchIndex ?? emojiSearchIndex
|
|
53705
53747
|
});
|
|
53706
|
-
|
|
53748
|
+
useRegisterDropHandlers(messageInputContextValue);
|
|
53749
|
+
return /* @__PURE__ */ import_react218.default.createElement(MessageInputContextProvider, { value: messageInputContextValue }, props.children);
|
|
53707
53750
|
};
|
|
53708
53751
|
var UnMemoizedMessageInput = (props) => {
|
|
53709
53752
|
const { Input: PropInput } = props;
|
|
@@ -53712,35 +53755,35 @@ var UnMemoizedMessageInput = (props) => {
|
|
|
53712
53755
|
const Input = PropInput || ContextInput || MessageInputFlat;
|
|
53713
53756
|
const dialogManagerId = props.isThreadInput ? "message-input-dialog-manager-thread" : "message-input-dialog-manager";
|
|
53714
53757
|
if (dragAndDropWindow)
|
|
53715
|
-
return /* @__PURE__ */
|
|
53716
|
-
return /* @__PURE__ */
|
|
53758
|
+
return /* @__PURE__ */ import_react218.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react218.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react218.default.createElement(Input, null)));
|
|
53759
|
+
return /* @__PURE__ */ import_react218.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react218.default.createElement(MessageInputProvider, { ...props }, /* @__PURE__ */ import_react218.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react218.default.createElement(Input, null))));
|
|
53717
53760
|
};
|
|
53718
|
-
var MessageInput =
|
|
53761
|
+
var MessageInput = import_react218.default.memo(
|
|
53719
53762
|
UnMemoizedMessageInput
|
|
53720
53763
|
);
|
|
53721
53764
|
|
|
53722
53765
|
// src/components/Reactions/ReactionsList.tsx
|
|
53723
|
-
var
|
|
53766
|
+
var import_react222 = __toESM(require("react"));
|
|
53724
53767
|
var import_clsx57 = __toESM(require("clsx"));
|
|
53725
53768
|
|
|
53726
53769
|
// src/components/Reactions/ReactionsListModal.tsx
|
|
53727
|
-
var
|
|
53770
|
+
var import_react220 = __toESM(require("react"));
|
|
53728
53771
|
var import_clsx56 = __toESM(require("clsx"));
|
|
53729
53772
|
|
|
53730
53773
|
// src/components/Reactions/hooks/useFetchReactions.ts
|
|
53731
|
-
var
|
|
53774
|
+
var import_react219 = require("react");
|
|
53732
53775
|
function useFetchReactions(options) {
|
|
53733
53776
|
const { handleFetchReactions: contextHandleFetchReactions } = useMessageContext("useFetchReactions");
|
|
53734
|
-
const [reactions, setReactions] = (0,
|
|
53777
|
+
const [reactions, setReactions] = (0, import_react219.useState)([]);
|
|
53735
53778
|
const {
|
|
53736
53779
|
handleFetchReactions: propHandleFetchReactions,
|
|
53737
53780
|
reactionType,
|
|
53738
53781
|
shouldFetch,
|
|
53739
53782
|
sort
|
|
53740
53783
|
} = options;
|
|
53741
|
-
const [isLoading, setIsLoading] = (0,
|
|
53784
|
+
const [isLoading, setIsLoading] = (0, import_react219.useState)(shouldFetch);
|
|
53742
53785
|
const handleFetchReactions = propHandleFetchReactions ?? contextHandleFetchReactions;
|
|
53743
|
-
(0,
|
|
53786
|
+
(0, import_react219.useEffect)(() => {
|
|
53744
53787
|
if (!shouldFetch) {
|
|
53745
53788
|
return;
|
|
53746
53789
|
}
|
|
@@ -53796,24 +53839,24 @@ function ReactionsListModal({
|
|
|
53796
53839
|
shouldFetch: modalProps.open,
|
|
53797
53840
|
sort: reactionDetailsSort
|
|
53798
53841
|
});
|
|
53799
|
-
const reactionDetailsWithLegacyFallback = (0,
|
|
53842
|
+
const reactionDetailsWithLegacyFallback = (0, import_react220.useMemo)(
|
|
53800
53843
|
() => legacySortReactionDetails ? [...reactionDetails].sort(legacySortReactionDetails) : reactionDetails,
|
|
53801
53844
|
[legacySortReactionDetails, reactionDetails]
|
|
53802
53845
|
);
|
|
53803
|
-
return /* @__PURE__ */
|
|
53846
|
+
return /* @__PURE__ */ import_react220.default.createElement(
|
|
53804
53847
|
Modal,
|
|
53805
53848
|
{
|
|
53806
53849
|
...modalProps,
|
|
53807
53850
|
className: (0, import_clsx56.default)("str-chat__message-reactions-details-modal", modalProps.className)
|
|
53808
53851
|
},
|
|
53809
|
-
/* @__PURE__ */
|
|
53852
|
+
/* @__PURE__ */ import_react220.default.createElement(
|
|
53810
53853
|
"div",
|
|
53811
53854
|
{
|
|
53812
53855
|
className: "str-chat__message-reactions-details",
|
|
53813
53856
|
"data-testid": "reactions-list-modal"
|
|
53814
53857
|
},
|
|
53815
|
-
/* @__PURE__ */
|
|
53816
|
-
({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */
|
|
53858
|
+
/* @__PURE__ */ import_react220.default.createElement("div", { className: "str-chat__message-reactions-details-reaction-types" }, reactions.map(
|
|
53859
|
+
({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react220.default.createElement(
|
|
53817
53860
|
"div",
|
|
53818
53861
|
{
|
|
53819
53862
|
className: (0, import_clsx56.default)("str-chat__message-reactions-details-reaction-type", {
|
|
@@ -53825,25 +53868,25 @@ function ReactionsListModal({
|
|
|
53825
53868
|
reactionType
|
|
53826
53869
|
)
|
|
53827
53870
|
},
|
|
53828
|
-
/* @__PURE__ */
|
|
53871
|
+
/* @__PURE__ */ import_react220.default.createElement("span", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback" }, /* @__PURE__ */ import_react220.default.createElement(EmojiComponent, null)),
|
|
53829
53872
|
"\xA0",
|
|
53830
|
-
/* @__PURE__ */
|
|
53873
|
+
/* @__PURE__ */ import_react220.default.createElement("span", { className: "str-chat__message-reaction-count" }, reactionCount)
|
|
53831
53874
|
)
|
|
53832
53875
|
)),
|
|
53833
|
-
SelectedEmojiComponent && /* @__PURE__ */
|
|
53834
|
-
/* @__PURE__ */
|
|
53876
|
+
SelectedEmojiComponent && /* @__PURE__ */ import_react220.default.createElement("div", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big" }, /* @__PURE__ */ import_react220.default.createElement(SelectedEmojiComponent, null)),
|
|
53877
|
+
/* @__PURE__ */ import_react220.default.createElement(
|
|
53835
53878
|
"div",
|
|
53836
53879
|
{
|
|
53837
53880
|
className: "str-chat__message-reactions-details-reacting-users",
|
|
53838
53881
|
"data-testid": "all-reacting-users"
|
|
53839
53882
|
},
|
|
53840
|
-
areReactionsLoading ? /* @__PURE__ */
|
|
53883
|
+
areReactionsLoading ? /* @__PURE__ */ import_react220.default.createElement(LoadingIndicator, null) : reactionDetailsWithLegacyFallback.map(({ user }) => /* @__PURE__ */ import_react220.default.createElement(
|
|
53841
53884
|
"div",
|
|
53842
53885
|
{
|
|
53843
53886
|
className: "str-chat__message-reactions-details-reacting-user",
|
|
53844
53887
|
key: user?.id
|
|
53845
53888
|
},
|
|
53846
|
-
/* @__PURE__ */
|
|
53889
|
+
/* @__PURE__ */ import_react220.default.createElement(
|
|
53847
53890
|
Avatar,
|
|
53848
53891
|
{
|
|
53849
53892
|
className: "stream-chat__avatar--reaction",
|
|
@@ -53852,7 +53895,7 @@ function ReactionsListModal({
|
|
|
53852
53895
|
name: user?.name || user?.id
|
|
53853
53896
|
}
|
|
53854
53897
|
),
|
|
53855
|
-
/* @__PURE__ */
|
|
53898
|
+
/* @__PURE__ */ import_react220.default.createElement(
|
|
53856
53899
|
"span",
|
|
53857
53900
|
{
|
|
53858
53901
|
className: "str-chat__user-item--name",
|
|
@@ -53867,7 +53910,7 @@ function ReactionsListModal({
|
|
|
53867
53910
|
}
|
|
53868
53911
|
|
|
53869
53912
|
// src/components/Reactions/hooks/useProcessReactions.tsx
|
|
53870
|
-
var
|
|
53913
|
+
var import_react221 = require("react");
|
|
53871
53914
|
var defaultReactionsSort = (a2, b) => {
|
|
53872
53915
|
if (a2.firstReactionAt && b.firstReactionAt) {
|
|
53873
53916
|
return +a2.firstReactionAt - +b.firstReactionAt;
|
|
@@ -53889,19 +53932,19 @@ var useProcessReactions = (params) => {
|
|
|
53889
53932
|
const latestReactions = propReactions || message.latest_reactions;
|
|
53890
53933
|
const ownReactions = propOwnReactions || message?.own_reactions;
|
|
53891
53934
|
const reactionGroups = propReactionGroups || message?.reaction_groups;
|
|
53892
|
-
const isOwnReaction = (0,
|
|
53935
|
+
const isOwnReaction = (0, import_react221.useCallback)(
|
|
53893
53936
|
(reactionType) => ownReactions?.some((reaction) => reaction.type === reactionType) ?? false,
|
|
53894
53937
|
[ownReactions]
|
|
53895
53938
|
);
|
|
53896
|
-
const getEmojiByReactionType = (0,
|
|
53939
|
+
const getEmojiByReactionType = (0, import_react221.useCallback)(
|
|
53897
53940
|
(reactionType) => reactionOptions.find(({ type }) => type === reactionType)?.Component ?? null,
|
|
53898
53941
|
[reactionOptions]
|
|
53899
53942
|
);
|
|
53900
|
-
const isSupportedReaction = (0,
|
|
53943
|
+
const isSupportedReaction = (0, import_react221.useCallback)(
|
|
53901
53944
|
(reactionType) => reactionOptions.some((reactionOption) => reactionOption.type === reactionType),
|
|
53902
53945
|
[reactionOptions]
|
|
53903
53946
|
);
|
|
53904
|
-
const getLatestReactedUserNames = (0,
|
|
53947
|
+
const getLatestReactedUserNames = (0, import_react221.useCallback)(
|
|
53905
53948
|
(reactionType) => latestReactions?.flatMap((reaction) => {
|
|
53906
53949
|
if (reactionType && reactionType === reaction.type) {
|
|
53907
53950
|
const username = reaction.user?.name || reaction.user?.id;
|
|
@@ -53911,7 +53954,7 @@ var useProcessReactions = (params) => {
|
|
|
53911
53954
|
}) ?? [],
|
|
53912
53955
|
[latestReactions]
|
|
53913
53956
|
);
|
|
53914
|
-
const existingReactions = (0,
|
|
53957
|
+
const existingReactions = (0, import_react221.useMemo)(() => {
|
|
53915
53958
|
if (!reactionGroups) {
|
|
53916
53959
|
return [];
|
|
53917
53960
|
}
|
|
@@ -53945,7 +53988,7 @@ var useProcessReactions = (params) => {
|
|
|
53945
53988
|
sortReactions
|
|
53946
53989
|
]);
|
|
53947
53990
|
const hasReactions = existingReactions.length > 0;
|
|
53948
|
-
const totalReactionCount = (0,
|
|
53991
|
+
const totalReactionCount = (0, import_react221.useMemo)(
|
|
53949
53992
|
() => existingReactions.reduce((total, { reactionCount }) => total + reactionCount, 0),
|
|
53950
53993
|
[existingReactions]
|
|
53951
53994
|
);
|
|
@@ -53967,7 +54010,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
53967
54010
|
...rest
|
|
53968
54011
|
} = props;
|
|
53969
54012
|
const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
|
|
53970
|
-
const [selectedReactionType, setSelectedReactionType] = (0,
|
|
54013
|
+
const [selectedReactionType, setSelectedReactionType] = (0, import_react222.useState)(null);
|
|
53971
54014
|
const { t: t2 } = useTranslationContext("ReactionsList");
|
|
53972
54015
|
const { ReactionsListModal: ReactionsListModal2 = ReactionsListModal } = useComponentContext();
|
|
53973
54016
|
const handleReactionButtonClick = (reactionType) => {
|
|
@@ -53977,7 +54020,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
53977
54020
|
setSelectedReactionType(reactionType);
|
|
53978
54021
|
};
|
|
53979
54022
|
if (!hasReactions) return null;
|
|
53980
|
-
return /* @__PURE__ */
|
|
54023
|
+
return /* @__PURE__ */ import_react222.default.createElement(import_react222.default.Fragment, null, /* @__PURE__ */ import_react222.default.createElement(
|
|
53981
54024
|
"div",
|
|
53982
54025
|
{
|
|
53983
54026
|
"aria-label": t2("aria/Reaction list"),
|
|
@@ -53988,8 +54031,8 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
53988
54031
|
"data-testid": "reaction-list",
|
|
53989
54032
|
role: "figure"
|
|
53990
54033
|
},
|
|
53991
|
-
/* @__PURE__ */
|
|
53992
|
-
({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */
|
|
54034
|
+
/* @__PURE__ */ import_react222.default.createElement("ul", { className: "str-chat__message-reactions" }, existingReactions.map(
|
|
54035
|
+
({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react222.default.createElement(
|
|
53993
54036
|
"li",
|
|
53994
54037
|
{
|
|
53995
54038
|
className: (0, import_clsx57.default)("str-chat__message-reaction", {
|
|
@@ -53997,7 +54040,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
53997
54040
|
}),
|
|
53998
54041
|
key: reactionType
|
|
53999
54042
|
},
|
|
54000
|
-
/* @__PURE__ */
|
|
54043
|
+
/* @__PURE__ */ import_react222.default.createElement(
|
|
54001
54044
|
"button",
|
|
54002
54045
|
{
|
|
54003
54046
|
"aria-label": `Reactions: ${reactionType}`,
|
|
@@ -54005,9 +54048,9 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
54005
54048
|
onClick: () => handleReactionButtonClick(reactionType),
|
|
54006
54049
|
type: "button"
|
|
54007
54050
|
},
|
|
54008
|
-
/* @__PURE__ */
|
|
54051
|
+
/* @__PURE__ */ import_react222.default.createElement("span", { className: "str-chat__message-reaction-emoji" }, /* @__PURE__ */ import_react222.default.createElement(EmojiComponent, null)),
|
|
54009
54052
|
"\xA0",
|
|
54010
|
-
/* @__PURE__ */
|
|
54053
|
+
/* @__PURE__ */ import_react222.default.createElement(
|
|
54011
54054
|
"span",
|
|
54012
54055
|
{
|
|
54013
54056
|
className: "str-chat__message-reaction-count",
|
|
@@ -54017,8 +54060,8 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
54017
54060
|
)
|
|
54018
54061
|
)
|
|
54019
54062
|
)
|
|
54020
|
-
), /* @__PURE__ */
|
|
54021
|
-
), selectedReactionType !== null && /* @__PURE__ */
|
|
54063
|
+
), /* @__PURE__ */ import_react222.default.createElement("li", null, /* @__PURE__ */ import_react222.default.createElement("span", { className: "str-chat__reaction-list--counter" }, totalReactionCount)))
|
|
54064
|
+
), selectedReactionType !== null && /* @__PURE__ */ import_react222.default.createElement(
|
|
54022
54065
|
ReactionsListModal2,
|
|
54023
54066
|
{
|
|
54024
54067
|
handleFetchReactions,
|
|
@@ -54031,12 +54074,12 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
54031
54074
|
}
|
|
54032
54075
|
));
|
|
54033
54076
|
};
|
|
54034
|
-
var ReactionsList =
|
|
54077
|
+
var ReactionsList = import_react222.default.memo(
|
|
54035
54078
|
UnMemoizedReactionsList
|
|
54036
54079
|
);
|
|
54037
54080
|
|
|
54038
54081
|
// src/components/Reactions/SimpleReactionsList.tsx
|
|
54039
|
-
var
|
|
54082
|
+
var import_react223 = __toESM(require("react"));
|
|
54040
54083
|
var import_clsx58 = __toESM(require("clsx"));
|
|
54041
54084
|
var WithTooltip = ({
|
|
54042
54085
|
children,
|
|
@@ -54044,12 +54087,12 @@ var WithTooltip = ({
|
|
|
54044
54087
|
onMouseLeave,
|
|
54045
54088
|
title
|
|
54046
54089
|
}) => {
|
|
54047
|
-
const [referenceElement, setReferenceElement] = (0,
|
|
54090
|
+
const [referenceElement, setReferenceElement] = (0, import_react223.useState)(null);
|
|
54048
54091
|
const { handleEnter, handleLeave, tooltipVisible } = useEnterLeaveHandlers({
|
|
54049
54092
|
onMouseEnter,
|
|
54050
54093
|
onMouseLeave
|
|
54051
54094
|
});
|
|
54052
|
-
return /* @__PURE__ */
|
|
54095
|
+
return /* @__PURE__ */ import_react223.default.createElement(import_react223.default.Fragment, null, /* @__PURE__ */ import_react223.default.createElement(PopperTooltip, { referenceElement, visible: tooltipVisible }, title), /* @__PURE__ */ import_react223.default.createElement(
|
|
54053
54096
|
"span",
|
|
54054
54097
|
{
|
|
54055
54098
|
onMouseEnter: handleEnter,
|
|
@@ -54065,7 +54108,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
54065
54108
|
const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
|
|
54066
54109
|
const handleReaction = propHandleReaction || contextHandleReaction;
|
|
54067
54110
|
if (!hasReactions) return null;
|
|
54068
|
-
return /* @__PURE__ */
|
|
54111
|
+
return /* @__PURE__ */ import_react223.default.createElement("div", { className: "str-chat__message-reactions-container" }, /* @__PURE__ */ import_react223.default.createElement(
|
|
54069
54112
|
"ul",
|
|
54070
54113
|
{
|
|
54071
54114
|
className: "str-chat__simple-reactions-list str-chat__message-reactions",
|
|
@@ -54074,7 +54117,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
54074
54117
|
existingReactions.map(
|
|
54075
54118
|
({ EmojiComponent, isOwnReaction, latestReactedUserNames, reactionType }) => {
|
|
54076
54119
|
const tooltipContent = latestReactedUserNames.join(", ");
|
|
54077
|
-
return EmojiComponent && /* @__PURE__ */
|
|
54120
|
+
return EmojiComponent && /* @__PURE__ */ import_react223.default.createElement(
|
|
54078
54121
|
"li",
|
|
54079
54122
|
{
|
|
54080
54123
|
className: (0, import_clsx58.default)("str-chat__simple-reactions-list-item", {
|
|
@@ -54084,19 +54127,19 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
54084
54127
|
onClick: (event) => handleReaction(reactionType, event),
|
|
54085
54128
|
onKeyUp: (event) => handleReaction(reactionType, event)
|
|
54086
54129
|
},
|
|
54087
|
-
/* @__PURE__ */
|
|
54130
|
+
/* @__PURE__ */ import_react223.default.createElement(WithTooltip, { title: tooltipContent }, /* @__PURE__ */ import_react223.default.createElement(EmojiComponent, null))
|
|
54088
54131
|
);
|
|
54089
54132
|
}
|
|
54090
54133
|
),
|
|
54091
|
-
/* @__PURE__ */
|
|
54134
|
+
/* @__PURE__ */ import_react223.default.createElement("li", { className: "str-chat__simple-reactions-list-item--last-number" }, totalReactionCount)
|
|
54092
54135
|
));
|
|
54093
54136
|
};
|
|
54094
|
-
var SimpleReactionsList =
|
|
54137
|
+
var SimpleReactionsList = import_react223.default.memo(
|
|
54095
54138
|
UnMemoizedSimpleReactionsList
|
|
54096
54139
|
);
|
|
54097
54140
|
|
|
54098
54141
|
// src/components/Message/MessageEditedTimestamp.tsx
|
|
54099
|
-
var
|
|
54142
|
+
var import_react224 = __toESM(require("react"));
|
|
54100
54143
|
var import_clsx59 = __toESM(require("clsx"));
|
|
54101
54144
|
function MessageEditedTimestamp({
|
|
54102
54145
|
message: propMessage,
|
|
@@ -54112,7 +54155,7 @@ function MessageEditedTimestamp({
|
|
|
54112
54155
|
if (!isMessageEdited(message)) {
|
|
54113
54156
|
return null;
|
|
54114
54157
|
}
|
|
54115
|
-
return /* @__PURE__ */
|
|
54158
|
+
return /* @__PURE__ */ import_react224.default.createElement(
|
|
54116
54159
|
"div",
|
|
54117
54160
|
{
|
|
54118
54161
|
className: (0, import_clsx59.default)(
|
|
@@ -54123,7 +54166,7 @@ function MessageEditedTimestamp({
|
|
|
54123
54166
|
},
|
|
54124
54167
|
t2("Edited"),
|
|
54125
54168
|
" ",
|
|
54126
|
-
/* @__PURE__ */
|
|
54169
|
+
/* @__PURE__ */ import_react224.default.createElement(Timestamp2, { timestamp: message.message_text_updated_at, ...timestampProps })
|
|
54127
54170
|
);
|
|
54128
54171
|
}
|
|
54129
54172
|
|
|
@@ -54150,8 +54193,8 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54150
54193
|
} = props;
|
|
54151
54194
|
const { client } = useChatContext("MessageSimple");
|
|
54152
54195
|
const { t: t2 } = useTranslationContext("MessageSimple");
|
|
54153
|
-
const [isBounceDialogOpen, setIsBounceDialogOpen] = (0,
|
|
54154
|
-
const [isEditedTimestampOpen, setEditedTimestampOpen] = (0,
|
|
54196
|
+
const [isBounceDialogOpen, setIsBounceDialogOpen] = (0, import_react225.useState)(false);
|
|
54197
|
+
const [isEditedTimestampOpen, setEditedTimestampOpen] = (0, import_react225.useState)(false);
|
|
54155
54198
|
const {
|
|
54156
54199
|
Attachment: Attachment2 = Attachment,
|
|
54157
54200
|
Avatar: Avatar2 = Avatar,
|
|
@@ -54172,7 +54215,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54172
54215
|
} = useComponentContext("MessageSimple");
|
|
54173
54216
|
const hasAttachment = messageHasAttachments(message);
|
|
54174
54217
|
const hasReactions = messageHasReactions(message);
|
|
54175
|
-
const isAIGenerated = (0,
|
|
54218
|
+
const isAIGenerated = (0, import_react225.useMemo)(
|
|
54176
54219
|
() => isMessageAIGenerated?.(message),
|
|
54177
54220
|
[isMessageAIGenerated, message]
|
|
54178
54221
|
);
|
|
@@ -54180,10 +54223,10 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54180
54223
|
return null;
|
|
54181
54224
|
}
|
|
54182
54225
|
if (message.deleted_at || message.type === "deleted") {
|
|
54183
|
-
return /* @__PURE__ */
|
|
54226
|
+
return /* @__PURE__ */ import_react225.default.createElement(MessageDeleted2, { message });
|
|
54184
54227
|
}
|
|
54185
54228
|
if (isMessageBlocked(message)) {
|
|
54186
|
-
return /* @__PURE__ */
|
|
54229
|
+
return /* @__PURE__ */ import_react225.default.createElement(MessageBlocked2, null);
|
|
54187
54230
|
}
|
|
54188
54231
|
const showMetadata = !groupedByUser || endOfGroup;
|
|
54189
54232
|
const showReplyCountButton = !threadList && !!message.reply_count;
|
|
@@ -54217,14 +54260,14 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54217
54260
|
}
|
|
54218
54261
|
);
|
|
54219
54262
|
const poll = message.poll_id && client.polls.fromState(message.poll_id);
|
|
54220
|
-
return /* @__PURE__ */
|
|
54263
|
+
return /* @__PURE__ */ import_react225.default.createElement(import_react225.default.Fragment, null, editing && /* @__PURE__ */ import_react225.default.createElement(
|
|
54221
54264
|
Modal,
|
|
54222
54265
|
{
|
|
54223
54266
|
className: "str-chat__edit-message-modal",
|
|
54224
54267
|
onClose: clearEditingState,
|
|
54225
54268
|
open: editing
|
|
54226
54269
|
},
|
|
54227
|
-
/* @__PURE__ */
|
|
54270
|
+
/* @__PURE__ */ import_react225.default.createElement(
|
|
54228
54271
|
MessageInput,
|
|
54229
54272
|
{
|
|
54230
54273
|
clearEditingState,
|
|
@@ -54235,14 +54278,14 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54235
54278
|
...additionalMessageInputProps
|
|
54236
54279
|
}
|
|
54237
54280
|
)
|
|
54238
|
-
), isBounceDialogOpen && /* @__PURE__ */
|
|
54281
|
+
), isBounceDialogOpen && /* @__PURE__ */ import_react225.default.createElement(
|
|
54239
54282
|
MessageBounceModal,
|
|
54240
54283
|
{
|
|
54241
54284
|
MessageBouncePrompt: MessageBouncePrompt2,
|
|
54242
54285
|
onClose: () => setIsBounceDialogOpen(false),
|
|
54243
54286
|
open: isBounceDialogOpen
|
|
54244
54287
|
}
|
|
54245
|
-
), /* @__PURE__ */
|
|
54288
|
+
), /* @__PURE__ */ import_react225.default.createElement("div", { className: rootClassName2, key: message.id }, PinIndicator2 && /* @__PURE__ */ import_react225.default.createElement(PinIndicator2, null), message.user && /* @__PURE__ */ import_react225.default.createElement(
|
|
54246
54289
|
Avatar2,
|
|
54247
54290
|
{
|
|
54248
54291
|
image: message.user.image,
|
|
@@ -54251,7 +54294,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54251
54294
|
onMouseOver: onUserHover,
|
|
54252
54295
|
user: message.user
|
|
54253
54296
|
}
|
|
54254
|
-
), /* @__PURE__ */
|
|
54297
|
+
), /* @__PURE__ */ import_react225.default.createElement(
|
|
54255
54298
|
"div",
|
|
54256
54299
|
{
|
|
54257
54300
|
className: (0, import_clsx60.default)("str-chat__message-inner", {
|
|
@@ -54261,37 +54304,37 @@ var MessageSimpleWithContext = (props) => {
|
|
|
54261
54304
|
onClick: handleClick,
|
|
54262
54305
|
onKeyUp: handleClick
|
|
54263
54306
|
},
|
|
54264
|
-
/* @__PURE__ */
|
|
54265
|
-
/* @__PURE__ */
|
|
54266
|
-
/* @__PURE__ */
|
|
54307
|
+
/* @__PURE__ */ import_react225.default.createElement(MessageActions2, null),
|
|
54308
|
+
/* @__PURE__ */ import_react225.default.createElement("div", { className: "str-chat__message-reactions-host" }, hasReactions && /* @__PURE__ */ import_react225.default.createElement(ReactionsList2, { reverse: true })),
|
|
54309
|
+
/* @__PURE__ */ import_react225.default.createElement("div", { className: "str-chat__message-bubble" }, poll && /* @__PURE__ */ import_react225.default.createElement(Poll, { poll }), message.attachments?.length && !message.quoted_message ? /* @__PURE__ */ import_react225.default.createElement(
|
|
54267
54310
|
Attachment2,
|
|
54268
54311
|
{
|
|
54269
54312
|
actionHandler: handleAction,
|
|
54270
54313
|
attachments: message.attachments
|
|
54271
54314
|
}
|
|
54272
|
-
) : null, isAIGenerated ? /* @__PURE__ */
|
|
54315
|
+
) : null, isAIGenerated ? /* @__PURE__ */ import_react225.default.createElement(StreamedMessageText2, { message, renderText: renderText2 }) : /* @__PURE__ */ import_react225.default.createElement(MessageText, { message, renderText: renderText2 }), message.mml && /* @__PURE__ */ import_react225.default.createElement(
|
|
54273
54316
|
MML,
|
|
54274
54317
|
{
|
|
54275
54318
|
actionHandler: handleAction,
|
|
54276
54319
|
align: isMyMessage() ? "right" : "left",
|
|
54277
54320
|
source: message.mml
|
|
54278
54321
|
}
|
|
54279
|
-
), /* @__PURE__ */
|
|
54280
|
-
), showReplyCountButton && /* @__PURE__ */
|
|
54322
|
+
), /* @__PURE__ */ import_react225.default.createElement(MessageErrorIcon, null))
|
|
54323
|
+
), showReplyCountButton && /* @__PURE__ */ import_react225.default.createElement(
|
|
54281
54324
|
MessageRepliesCountButton2,
|
|
54282
54325
|
{
|
|
54283
54326
|
onClick: handleOpenThread,
|
|
54284
54327
|
reply_count: message.reply_count
|
|
54285
54328
|
}
|
|
54286
|
-
), showMetadata && /* @__PURE__ */
|
|
54329
|
+
), showMetadata && /* @__PURE__ */ import_react225.default.createElement("div", { className: "str-chat__message-metadata" }, /* @__PURE__ */ import_react225.default.createElement(MessageStatus2, null), !isMyMessage() && !!message.user && /* @__PURE__ */ import_react225.default.createElement("span", { className: "str-chat__message-simple-name" }, message.user.name || message.user.id), /* @__PURE__ */ import_react225.default.createElement(MessageTimestamp2, { customClass: "str-chat__message-simple-timestamp" }), isEdited && /* @__PURE__ */ import_react225.default.createElement("span", { className: "str-chat__mesage-simple-edited" }, t2("Edited")), isEdited && /* @__PURE__ */ import_react225.default.createElement(MessageEditedTimestamp, { calendar: true, open: isEditedTimestampOpen }))));
|
|
54287
54330
|
};
|
|
54288
|
-
var MemoizedMessageSimple =
|
|
54331
|
+
var MemoizedMessageSimple = import_react225.default.memo(
|
|
54289
54332
|
MessageSimpleWithContext,
|
|
54290
54333
|
areMessageUIPropsEqual
|
|
54291
54334
|
);
|
|
54292
54335
|
var MessageSimple = (props) => {
|
|
54293
54336
|
const messageContext = useMessageContext("MessageSimple");
|
|
54294
|
-
return /* @__PURE__ */
|
|
54337
|
+
return /* @__PURE__ */ import_react225.default.createElement(MemoizedMessageSimple, { ...messageContext, ...props });
|
|
54295
54338
|
};
|
|
54296
54339
|
|
|
54297
54340
|
// src/components/Message/Message.tsx
|
|
@@ -54327,11 +54370,11 @@ var MessageWithContext = (props) => {
|
|
|
54327
54370
|
canReply,
|
|
54328
54371
|
isMyMessage
|
|
54329
54372
|
} = userRoles;
|
|
54330
|
-
const messageIsUnread = (0,
|
|
54373
|
+
const messageIsUnread = (0, import_react226.useMemo)(
|
|
54331
54374
|
() => !!(!isMyMessage && client.user?.id && read && (!read[client.user.id] || message?.created_at && new Date(message.created_at).getTime() > read[client.user.id].last_read.getTime())),
|
|
54332
54375
|
[client, isMyMessage, message.created_at, read]
|
|
54333
54376
|
);
|
|
54334
|
-
const messageActionsHandler = (0,
|
|
54377
|
+
const messageActionsHandler = (0, import_react226.useCallback)(
|
|
54335
54378
|
() => getMessageActions(messageActions, {
|
|
54336
54379
|
canDelete,
|
|
54337
54380
|
canEdit,
|
|
@@ -54385,9 +54428,9 @@ var MessageWithContext = (props) => {
|
|
|
54385
54428
|
onUserHover,
|
|
54386
54429
|
setEditingState: setEdit
|
|
54387
54430
|
};
|
|
54388
|
-
return /* @__PURE__ */
|
|
54431
|
+
return /* @__PURE__ */ import_react226.default.createElement(MessageProvider, { value: messageContextValue }, /* @__PURE__ */ import_react226.default.createElement(MessageUIComponent, { groupedByUser }));
|
|
54389
54432
|
};
|
|
54390
|
-
var MemoizedMessage =
|
|
54433
|
+
var MemoizedMessage = import_react226.default.memo(
|
|
54391
54434
|
MessageWithContext,
|
|
54392
54435
|
areMessagePropsEqual
|
|
54393
54436
|
);
|
|
@@ -54454,7 +54497,7 @@ var Message = (props) => {
|
|
|
54454
54497
|
notify: addNotification
|
|
54455
54498
|
});
|
|
54456
54499
|
const highlighted = highlightedMessageId === message.id;
|
|
54457
|
-
return /* @__PURE__ */
|
|
54500
|
+
return /* @__PURE__ */ import_react226.default.createElement(
|
|
54458
54501
|
MemoizedMessage,
|
|
54459
54502
|
{
|
|
54460
54503
|
additionalMessageInputProps: props.additionalMessageInputProps,
|
|
@@ -54506,15 +54549,15 @@ var Message = (props) => {
|
|
|
54506
54549
|
// src/components/MessageList/GiphyPreviewMessage.tsx
|
|
54507
54550
|
var GiphyPreviewMessage = (props) => {
|
|
54508
54551
|
const { message } = props;
|
|
54509
|
-
return /* @__PURE__ */
|
|
54552
|
+
return /* @__PURE__ */ import_react227.default.createElement("div", { className: "giphy-preview-message" }, /* @__PURE__ */ import_react227.default.createElement(Message, { message }));
|
|
54510
54553
|
};
|
|
54511
54554
|
|
|
54512
54555
|
// src/components/MessageList/MessageList.tsx
|
|
54513
54556
|
var import_clsx62 = __toESM(require("clsx"));
|
|
54514
|
-
var
|
|
54557
|
+
var import_react246 = __toESM(require("react"));
|
|
54515
54558
|
|
|
54516
54559
|
// src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts
|
|
54517
|
-
var
|
|
54560
|
+
var import_react228 = require("react");
|
|
54518
54561
|
|
|
54519
54562
|
// src/components/MessageList/utils.ts
|
|
54520
54563
|
var import_nanoid9 = require("nanoid");
|
|
@@ -54721,7 +54764,7 @@ var useEnrichedMessages = (args) => {
|
|
|
54721
54764
|
} = args;
|
|
54722
54765
|
const { client } = useChatContext("useEnrichedMessages");
|
|
54723
54766
|
const { HeaderComponent } = useComponentContext("useEnrichedMessages");
|
|
54724
|
-
const lastRead = (0,
|
|
54767
|
+
const lastRead = (0, import_react228.useMemo)(() => channel.lastRead?.(), [channel]);
|
|
54725
54768
|
const enableDateSeparator = !disableDateSeparator;
|
|
54726
54769
|
let messagesWithDates = !enableDateSeparator && !hideDeletedMessages && hideNewMessageSeparator ? messages : processMessages({
|
|
54727
54770
|
enableDateSeparator,
|
|
@@ -54736,7 +54779,7 @@ var useEnrichedMessages = (args) => {
|
|
|
54736
54779
|
messagesWithDates = insertIntro(messagesWithDates, headerPosition);
|
|
54737
54780
|
}
|
|
54738
54781
|
const groupStylesFn = groupStyles || getGroupStyles;
|
|
54739
|
-
const messageGroupStyles = (0,
|
|
54782
|
+
const messageGroupStyles = (0, import_react228.useMemo)(
|
|
54740
54783
|
() => messagesWithDates.reduce((acc, message, i) => {
|
|
54741
54784
|
const style = groupStylesFn(
|
|
54742
54785
|
message,
|
|
@@ -54755,13 +54798,13 @@ var useEnrichedMessages = (args) => {
|
|
|
54755
54798
|
};
|
|
54756
54799
|
|
|
54757
54800
|
// src/components/MessageList/hooks/MessageList/useMessageListElements.tsx
|
|
54758
|
-
var
|
|
54801
|
+
var import_react230 = require("react");
|
|
54759
54802
|
|
|
54760
54803
|
// src/components/MessageList/hooks/useLastReadData.ts
|
|
54761
|
-
var
|
|
54804
|
+
var import_react229 = require("react");
|
|
54762
54805
|
var useLastReadData = (props) => {
|
|
54763
54806
|
const { messages, read, returnAllReadData, userID } = props;
|
|
54764
|
-
return (0,
|
|
54807
|
+
return (0, import_react229.useMemo)(
|
|
54765
54808
|
() => getReadStates(
|
|
54766
54809
|
messages.filter(({ user }) => user?.id === userID),
|
|
54767
54810
|
read,
|
|
@@ -54793,11 +54836,11 @@ var useMessageListElements = (props) => {
|
|
|
54793
54836
|
returnAllReadData,
|
|
54794
54837
|
userID: client.userID
|
|
54795
54838
|
});
|
|
54796
|
-
const lastReceivedMessageId = (0,
|
|
54839
|
+
const lastReceivedMessageId = (0, import_react230.useMemo)(
|
|
54797
54840
|
() => getLastReceived(enrichedMessages),
|
|
54798
54841
|
[enrichedMessages]
|
|
54799
54842
|
);
|
|
54800
|
-
const elements = (0,
|
|
54843
|
+
const elements = (0, import_react230.useMemo)(
|
|
54801
54844
|
() => renderMessages({
|
|
54802
54845
|
channelUnreadUiState,
|
|
54803
54846
|
components,
|
|
@@ -54824,7 +54867,7 @@ var useMessageListElements = (props) => {
|
|
|
54824
54867
|
};
|
|
54825
54868
|
|
|
54826
54869
|
// src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts
|
|
54827
|
-
var
|
|
54870
|
+
var import_react231 = require("react");
|
|
54828
54871
|
function useMessageListScrollManager(params) {
|
|
54829
54872
|
const {
|
|
54830
54873
|
loadMoreScrollThreshold,
|
|
@@ -54835,13 +54878,13 @@ function useMessageListScrollManager(params) {
|
|
|
54835
54878
|
showNewMessages
|
|
54836
54879
|
} = params;
|
|
54837
54880
|
const { client } = useChatContext("useMessageListScrollManager");
|
|
54838
|
-
const measures = (0,
|
|
54881
|
+
const measures = (0, import_react231.useRef)({
|
|
54839
54882
|
offsetHeight: 0,
|
|
54840
54883
|
scrollHeight: 0
|
|
54841
54884
|
});
|
|
54842
|
-
const messages = (0,
|
|
54843
|
-
const scrollTop = (0,
|
|
54844
|
-
(0,
|
|
54885
|
+
const messages = (0, import_react231.useRef)(void 0);
|
|
54886
|
+
const scrollTop = (0, import_react231.useRef)(0);
|
|
54887
|
+
(0, import_react231.useLayoutEffect)(() => {
|
|
54845
54888
|
const prevMeasures = measures.current;
|
|
54846
54889
|
const prevMessages = messages.current;
|
|
54847
54890
|
const newMessages = params.messages;
|
|
@@ -54881,7 +54924,7 @@ function useMessageListScrollManager(params) {
|
|
|
54881
54924
|
}
|
|
54882
54925
|
|
|
54883
54926
|
// src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx
|
|
54884
|
-
var
|
|
54927
|
+
var import_react232 = require("react");
|
|
54885
54928
|
var useScrollLocationLogic = (params) => {
|
|
54886
54929
|
const {
|
|
54887
54930
|
hasMoreNewer,
|
|
@@ -54891,12 +54934,12 @@ var useScrollLocationLogic = (params) => {
|
|
|
54891
54934
|
scrolledUpThreshold = 200,
|
|
54892
54935
|
suppressAutoscroll
|
|
54893
54936
|
} = params;
|
|
54894
|
-
const [hasNewMessages, setHasNewMessages] = (0,
|
|
54895
|
-
const [wrapperRect, setWrapperRect] = (0,
|
|
54896
|
-
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0,
|
|
54897
|
-
const closeToBottom = (0,
|
|
54898
|
-
const closeToTop = (0,
|
|
54899
|
-
const scrollToBottom = (0,
|
|
54937
|
+
const [hasNewMessages, setHasNewMessages] = (0, import_react232.useState)(false);
|
|
54938
|
+
const [wrapperRect, setWrapperRect] = (0, import_react232.useState)();
|
|
54939
|
+
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0, import_react232.useState)(true);
|
|
54940
|
+
const closeToBottom = (0, import_react232.useRef)(false);
|
|
54941
|
+
const closeToTop = (0, import_react232.useRef)(false);
|
|
54942
|
+
const scrollToBottom = (0, import_react232.useCallback)(() => {
|
|
54900
54943
|
if (!listElement?.scrollTo || hasMoreNewer || suppressAutoscroll) {
|
|
54901
54944
|
return;
|
|
54902
54945
|
}
|
|
@@ -54905,7 +54948,7 @@ var useScrollLocationLogic = (params) => {
|
|
|
54905
54948
|
});
|
|
54906
54949
|
setHasNewMessages(false);
|
|
54907
54950
|
}, [listElement, hasMoreNewer, suppressAutoscroll]);
|
|
54908
|
-
(0,
|
|
54951
|
+
(0, import_react232.useLayoutEffect)(() => {
|
|
54909
54952
|
if (listElement) {
|
|
54910
54953
|
setWrapperRect(listElement.getBoundingClientRect());
|
|
54911
54954
|
scrollToBottom();
|
|
@@ -54925,7 +54968,7 @@ var useScrollLocationLogic = (params) => {
|
|
|
54925
54968
|
scrollToBottom,
|
|
54926
54969
|
showNewMessages: () => setHasNewMessages(true)
|
|
54927
54970
|
});
|
|
54928
|
-
const onScroll = (0,
|
|
54971
|
+
const onScroll = (0, import_react232.useCallback)(
|
|
54929
54972
|
(event) => {
|
|
54930
54973
|
const element3 = event.target;
|
|
54931
54974
|
const scrollTop = element3.scrollTop;
|
|
@@ -54956,22 +54999,22 @@ var useScrollLocationLogic = (params) => {
|
|
|
54956
54999
|
};
|
|
54957
55000
|
|
|
54958
55001
|
// src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts
|
|
54959
|
-
var
|
|
55002
|
+
var import_react235 = require("react");
|
|
54960
55003
|
|
|
54961
55004
|
// src/components/MessageList/MessageListMainPanel.tsx
|
|
54962
|
-
var
|
|
55005
|
+
var import_react233 = __toESM(require("react"));
|
|
54963
55006
|
var MESSAGE_LIST_MAIN_PANEL_CLASS = "str-chat__main-panel-inner str-chat__message-list-main-panel";
|
|
54964
|
-
var MessageListMainPanel = ({ children }) => /* @__PURE__ */
|
|
55007
|
+
var MessageListMainPanel = ({ children }) => /* @__PURE__ */ import_react233.default.createElement("div", { className: MESSAGE_LIST_MAIN_PANEL_CLASS }, children);
|
|
54965
55008
|
|
|
54966
55009
|
// src/components/MessageList/UnreadMessagesSeparator.tsx
|
|
54967
|
-
var
|
|
55010
|
+
var import_react234 = __toESM(require("react"));
|
|
54968
55011
|
var UNREAD_MESSAGE_SEPARATOR_CLASS = "str-chat__unread-messages-separator";
|
|
54969
55012
|
var UnreadMessagesSeparator = ({
|
|
54970
55013
|
showCount,
|
|
54971
55014
|
unreadCount
|
|
54972
55015
|
}) => {
|
|
54973
55016
|
const { t: t2 } = useTranslationContext("UnreadMessagesSeparator");
|
|
54974
|
-
return /* @__PURE__ */
|
|
55017
|
+
return /* @__PURE__ */ import_react234.default.createElement(
|
|
54975
55018
|
"div",
|
|
54976
55019
|
{
|
|
54977
55020
|
className: UNREAD_MESSAGE_SEPARATOR_CLASS,
|
|
@@ -54997,10 +55040,10 @@ var useUnreadMessagesNotification = ({
|
|
|
54997
55040
|
unreadCount
|
|
54998
55041
|
}) => {
|
|
54999
55042
|
const { messages } = useChannelStateContext("UnreadMessagesNotification");
|
|
55000
|
-
const [show, setShow] = (0,
|
|
55001
|
-
const isScrolledAboveTargetTop = (0,
|
|
55043
|
+
const [show, setShow] = (0, import_react235.useState)(false);
|
|
55044
|
+
const isScrolledAboveTargetTop = (0, import_react235.useRef)(false);
|
|
55002
55045
|
const intersectionObserverIsSupported = typeof IntersectionObserver !== "undefined";
|
|
55003
|
-
(0,
|
|
55046
|
+
(0, import_react235.useEffect)(() => {
|
|
55004
55047
|
if (!(unreadCount && intersectionObserverIsSupported)) {
|
|
55005
55048
|
setShow(false);
|
|
55006
55049
|
return;
|
|
@@ -55047,7 +55090,7 @@ var useUnreadMessagesNotification = ({
|
|
|
55047
55090
|
showAlways,
|
|
55048
55091
|
unreadCount
|
|
55049
55092
|
]);
|
|
55050
|
-
(0,
|
|
55093
|
+
(0, import_react235.useEffect)(() => {
|
|
55051
55094
|
if (unreadCount && isMessageListScrolledToBottom && isScrolledAboveTargetTop.current) {
|
|
55052
55095
|
setShow(true);
|
|
55053
55096
|
isScrolledAboveTargetTop.current = false;
|
|
@@ -55057,7 +55100,7 @@ var useUnreadMessagesNotification = ({
|
|
|
55057
55100
|
};
|
|
55058
55101
|
|
|
55059
55102
|
// src/components/MessageList/hooks/useMarkRead.ts
|
|
55060
|
-
var
|
|
55103
|
+
var import_react236 = require("react");
|
|
55061
55104
|
var hasReadLastMessage = (channel, userId) => {
|
|
55062
55105
|
const latestMessageIdInChannel = channel.state.latestMessages.slice(-1)[0]?.id;
|
|
55063
55106
|
const lastReadMessageIdServer = channel.state.read[userId]?.last_read_message_id;
|
|
@@ -55071,7 +55114,7 @@ var useMarkRead = ({
|
|
|
55071
55114
|
const { client } = useChatContext("useMarkRead");
|
|
55072
55115
|
const { markRead, setChannelUnreadUiState } = useChannelActionContext("useMarkRead");
|
|
55073
55116
|
const { channel } = useChannelStateContext("useMarkRead");
|
|
55074
|
-
(0,
|
|
55117
|
+
(0, import_react236.useEffect)(() => {
|
|
55075
55118
|
const shouldMarkRead = () => !document.hidden && !wasMarkedUnread && !messageListIsThread && isMessageListScrolledToBottom && client.user?.id && !hasReadLastMessage(channel, client.user.id);
|
|
55076
55119
|
const onVisibilityChange = () => {
|
|
55077
55120
|
if (shouldMarkRead()) markRead();
|
|
@@ -55130,11 +55173,11 @@ function getPreviousLastMessage(messages, newMessage) {
|
|
|
55130
55173
|
}
|
|
55131
55174
|
|
|
55132
55175
|
// src/components/MessageList/MessageNotification.tsx
|
|
55133
|
-
var
|
|
55176
|
+
var import_react237 = __toESM(require("react"));
|
|
55134
55177
|
var UnMemoizedMessageNotification = (props) => {
|
|
55135
55178
|
const { children, onClick, showNotification = true } = props;
|
|
55136
55179
|
if (!showNotification) return null;
|
|
55137
|
-
return /* @__PURE__ */
|
|
55180
|
+
return /* @__PURE__ */ import_react237.default.createElement(
|
|
55138
55181
|
"button",
|
|
55139
55182
|
{
|
|
55140
55183
|
"aria-live": "polite",
|
|
@@ -55145,12 +55188,12 @@ var UnMemoizedMessageNotification = (props) => {
|
|
|
55145
55188
|
children
|
|
55146
55189
|
);
|
|
55147
55190
|
};
|
|
55148
|
-
var MessageNotification =
|
|
55191
|
+
var MessageNotification = import_react237.default.memo(
|
|
55149
55192
|
UnMemoizedMessageNotification
|
|
55150
55193
|
);
|
|
55151
55194
|
|
|
55152
55195
|
// src/components/MessageList/MessageListNotifications.tsx
|
|
55153
|
-
var
|
|
55196
|
+
var import_react238 = __toESM(require("react"));
|
|
55154
55197
|
var MessageListNotifications = (props) => {
|
|
55155
55198
|
const {
|
|
55156
55199
|
hasNewMessages,
|
|
@@ -55163,7 +55206,7 @@ var MessageListNotifications = (props) => {
|
|
|
55163
55206
|
unreadCount
|
|
55164
55207
|
} = props;
|
|
55165
55208
|
const { t: t2 } = useTranslationContext("MessageListNotifications");
|
|
55166
|
-
return /* @__PURE__ */
|
|
55209
|
+
return /* @__PURE__ */ import_react238.default.createElement("div", { className: "str-chat__list-notifications" }, notifications.map((notification) => /* @__PURE__ */ import_react238.default.createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)), /* @__PURE__ */ import_react238.default.createElement(ConnectionStatus, null), /* @__PURE__ */ import_react238.default.createElement(
|
|
55167
55210
|
MessageNotification2,
|
|
55168
55211
|
{
|
|
55169
55212
|
isMessageListScrolledToBottom,
|
|
@@ -55177,11 +55220,11 @@ var MessageListNotifications = (props) => {
|
|
|
55177
55220
|
};
|
|
55178
55221
|
|
|
55179
55222
|
// src/components/MessageList/UnreadMessagesNotification.tsx
|
|
55180
|
-
var
|
|
55223
|
+
var import_react240 = __toESM(require("react"));
|
|
55181
55224
|
|
|
55182
55225
|
// src/components/MessageList/icons.tsx
|
|
55183
|
-
var
|
|
55184
|
-
var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */
|
|
55226
|
+
var import_react239 = __toESM(require("react"));
|
|
55227
|
+
var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react239.default.createElement(
|
|
55185
55228
|
"svg",
|
|
55186
55229
|
{
|
|
55187
55230
|
className,
|
|
@@ -55192,7 +55235,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
|
|
|
55192
55235
|
width: "24",
|
|
55193
55236
|
xmlns: "http://www.w3.org/2000/svg"
|
|
55194
55237
|
},
|
|
55195
|
-
/* @__PURE__ */
|
|
55238
|
+
/* @__PURE__ */ import_react239.default.createElement(
|
|
55196
55239
|
"path",
|
|
55197
55240
|
{
|
|
55198
55241
|
d: "M7.41 8.29504L12 12.875L16.59 8.29504L18 9.70504L12 15.705L6 9.70504L7.41 8.29504Z",
|
|
@@ -55200,7 +55243,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
|
|
|
55200
55243
|
}
|
|
55201
55244
|
)
|
|
55202
55245
|
);
|
|
55203
|
-
var CloseIcon2 = () => /* @__PURE__ */
|
|
55246
|
+
var CloseIcon2 = () => /* @__PURE__ */ import_react239.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 14 13", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react239.default.createElement("path", { d: "M1.32227 12.3408C0.944336 11.9629 0.953125 11.3213 1.32227 10.9521L5.60254 6.66309L1.32227 2.38281C0.953125 2.01367 0.944336 1.37207 1.32227 0.994141C1.7002 0.616211 2.3418 0.625 2.71094 0.985352L7 5.27441L11.2803 0.994141C11.6494 0.625 12.291 0.616211 12.6689 0.994141C13.0469 1.37207 13.0381 2.01367 12.6689 2.38281L8.38867 6.66309L12.6689 10.9521C13.0381 11.3213 13.0469 11.9629 12.6689 12.3408C12.291 12.7188 11.6494 12.71 11.2803 12.3408L7 8.06055L2.71094 12.3408C2.3418 12.71 1.7002 12.7188 1.32227 12.3408Z" }));
|
|
55204
55247
|
|
|
55205
55248
|
// src/components/MessageList/UnreadMessagesNotification.tsx
|
|
55206
55249
|
var UnreadMessagesNotification = ({
|
|
@@ -55212,19 +55255,19 @@ var UnreadMessagesNotification = ({
|
|
|
55212
55255
|
"UnreadMessagesNotification"
|
|
55213
55256
|
);
|
|
55214
55257
|
const { t: t2 } = useTranslationContext("UnreadMessagesNotification");
|
|
55215
|
-
return /* @__PURE__ */
|
|
55258
|
+
return /* @__PURE__ */ import_react240.default.createElement(
|
|
55216
55259
|
"div",
|
|
55217
55260
|
{
|
|
55218
55261
|
className: "str-chat__unread-messages-notification",
|
|
55219
55262
|
"data-testid": "unread-messages-notification"
|
|
55220
55263
|
},
|
|
55221
|
-
/* @__PURE__ */
|
|
55222
|
-
/* @__PURE__ */
|
|
55264
|
+
/* @__PURE__ */ import_react240.default.createElement("button", { onClick: () => jumpToFirstUnreadMessage(queryMessageLimit) }, unreadCount && showCount ? t2("{{count}} unread", { count: unreadCount ?? 0 }) : t2("Unread messages")),
|
|
55265
|
+
/* @__PURE__ */ import_react240.default.createElement("button", { onClick: () => markRead() }, /* @__PURE__ */ import_react240.default.createElement(CloseIcon2, null))
|
|
55223
55266
|
);
|
|
55224
55267
|
};
|
|
55225
55268
|
|
|
55226
55269
|
// src/components/InfiniteScrollPaginator/InfiniteScroll.tsx
|
|
55227
|
-
var
|
|
55270
|
+
var import_react241 = __toESM(require("react"));
|
|
55228
55271
|
var mousewheelListener2 = (event) => {
|
|
55229
55272
|
if (event instanceof WheelEvent && event.deltaY === 1) {
|
|
55230
55273
|
event.preventDefault();
|
|
@@ -55255,10 +55298,10 @@ var InfiniteScroll = (props) => {
|
|
|
55255
55298
|
const loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
55256
55299
|
const hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
55257
55300
|
const hasPreviousPageFlag = hasPreviousPage || hasMore;
|
|
55258
|
-
const scrollComponent = (0,
|
|
55259
|
-
const previousOffset = (0,
|
|
55260
|
-
const previousReverseOffset = (0,
|
|
55261
|
-
const scrollListenerRef = (0,
|
|
55301
|
+
const scrollComponent = (0, import_react241.useRef)(void 0);
|
|
55302
|
+
const previousOffset = (0, import_react241.useRef)(void 0);
|
|
55303
|
+
const previousReverseOffset = (0, import_react241.useRef)(void 0);
|
|
55304
|
+
const scrollListenerRef = (0, import_react241.useRef)(void 0);
|
|
55262
55305
|
scrollListenerRef.current = () => {
|
|
55263
55306
|
const element4 = scrollComponent.current;
|
|
55264
55307
|
if (!element4 || element4.offsetParent === null) {
|
|
@@ -55282,7 +55325,7 @@ var InfiniteScroll = (props) => {
|
|
|
55282
55325
|
loadNextPageFn();
|
|
55283
55326
|
}
|
|
55284
55327
|
};
|
|
55285
|
-
(0,
|
|
55328
|
+
(0, import_react241.useEffect)(() => {
|
|
55286
55329
|
deprecationAndReplacementWarning(
|
|
55287
55330
|
[
|
|
55288
55331
|
[{ hasMoreNewer }, { hasNextPage }],
|
|
@@ -55293,7 +55336,7 @@ var InfiniteScroll = (props) => {
|
|
|
55293
55336
|
"InfiniteScroll"
|
|
55294
55337
|
);
|
|
55295
55338
|
}, []);
|
|
55296
|
-
(0,
|
|
55339
|
+
(0, import_react241.useEffect)(() => {
|
|
55297
55340
|
const scrollElement = scrollComponent.current?.parentNode;
|
|
55298
55341
|
if (!scrollElement) return;
|
|
55299
55342
|
const scrollListener = () => scrollListenerRef.current?.();
|
|
@@ -55305,7 +55348,7 @@ var InfiniteScroll = (props) => {
|
|
|
55305
55348
|
scrollElement.removeEventListener("resize", scrollListener, useCapture);
|
|
55306
55349
|
};
|
|
55307
55350
|
}, [initialLoad, useCapture]);
|
|
55308
|
-
(0,
|
|
55351
|
+
(0, import_react241.useEffect)(() => {
|
|
55309
55352
|
const scrollElement = scrollComponent.current?.parentNode;
|
|
55310
55353
|
if (scrollElement) {
|
|
55311
55354
|
scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
|
|
@@ -55326,11 +55369,11 @@ var InfiniteScroll = (props) => {
|
|
|
55326
55369
|
if (head) {
|
|
55327
55370
|
childrenArray.unshift(head);
|
|
55328
55371
|
}
|
|
55329
|
-
return
|
|
55372
|
+
return import_react241.default.createElement(element3, attributes, childrenArray);
|
|
55330
55373
|
};
|
|
55331
55374
|
|
|
55332
55375
|
// src/components/TypingIndicator/TypingIndicator.tsx
|
|
55333
|
-
var
|
|
55376
|
+
var import_react242 = __toESM(require("react"));
|
|
55334
55377
|
var import_clsx61 = __toESM(require("clsx"));
|
|
55335
55378
|
var useJoinTypingUsers = (names) => {
|
|
55336
55379
|
const { t: t2 } = useTranslationContext();
|
|
@@ -55368,7 +55411,7 @@ var UnMemoizedTypingIndicator = (props) => {
|
|
|
55368
55411
|
return null;
|
|
55369
55412
|
}
|
|
55370
55413
|
if (!isTypingActive) return null;
|
|
55371
|
-
return /* @__PURE__ */
|
|
55414
|
+
return /* @__PURE__ */ import_react242.default.createElement(
|
|
55372
55415
|
"div",
|
|
55373
55416
|
{
|
|
55374
55417
|
className: (0, import_clsx61.default)("str-chat__typing-indicator", {
|
|
@@ -55376,19 +55419,19 @@ var UnMemoizedTypingIndicator = (props) => {
|
|
|
55376
55419
|
}),
|
|
55377
55420
|
"data-testid": "typing-indicator"
|
|
55378
55421
|
},
|
|
55379
|
-
/* @__PURE__ */
|
|
55380
|
-
/* @__PURE__ */
|
|
55422
|
+
/* @__PURE__ */ import_react242.default.createElement("div", { className: "str-chat__typing-indicator__dots" }, /* @__PURE__ */ import_react242.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react242.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react242.default.createElement("span", { className: "str-chat__typing-indicator__dot" })),
|
|
55423
|
+
/* @__PURE__ */ import_react242.default.createElement("div", { className: "str-chat__typing-indicator__users", "data-testid": "typing-users" }, joinedTypingUsers)
|
|
55381
55424
|
);
|
|
55382
55425
|
};
|
|
55383
|
-
var TypingIndicator =
|
|
55426
|
+
var TypingIndicator = import_react242.default.memo(
|
|
55384
55427
|
UnMemoizedTypingIndicator
|
|
55385
55428
|
);
|
|
55386
55429
|
|
|
55387
55430
|
// src/components/MessageList/renderMessages.tsx
|
|
55388
|
-
var
|
|
55431
|
+
var import_react245 = __toESM(require("react"));
|
|
55389
55432
|
|
|
55390
55433
|
// src/components/DateSeparator/DateSeparator.tsx
|
|
55391
|
-
var
|
|
55434
|
+
var import_react243 = __toESM(require("react"));
|
|
55392
55435
|
var UnMemoizedDateSeparator = (props) => {
|
|
55393
55436
|
const {
|
|
55394
55437
|
calendar: calendar3,
|
|
@@ -55408,21 +55451,21 @@ var UnMemoizedDateSeparator = (props) => {
|
|
|
55408
55451
|
tDateTimeParser,
|
|
55409
55452
|
timestampTranslationKey: "timestamp/DateSeparator"
|
|
55410
55453
|
});
|
|
55411
|
-
return /* @__PURE__ */
|
|
55454
|
+
return /* @__PURE__ */ import_react243.default.createElement("div", { className: "str-chat__date-separator", "data-testid": "date-separator" }, (position4 === "right" || position4 === "center") && /* @__PURE__ */ import_react243.default.createElement("hr", { className: "str-chat__date-separator-line" }), /* @__PURE__ */ import_react243.default.createElement("div", { className: "str-chat__date-separator-date" }, unread ? `${t2("New")} - ${formattedDate}` : formattedDate), (position4 === "left" || position4 === "center") && /* @__PURE__ */ import_react243.default.createElement("hr", { className: "str-chat__date-separator-line" }));
|
|
55412
55455
|
};
|
|
55413
|
-
var DateSeparator =
|
|
55456
|
+
var DateSeparator = import_react243.default.memo(
|
|
55414
55457
|
UnMemoizedDateSeparator
|
|
55415
55458
|
);
|
|
55416
55459
|
|
|
55417
55460
|
// src/components/EventComponent/EventComponent.tsx
|
|
55418
|
-
var
|
|
55461
|
+
var import_react244 = __toESM(require("react"));
|
|
55419
55462
|
var UnMemoizedEventComponent = (props) => {
|
|
55420
55463
|
const { Avatar: Avatar2 = Avatar, calendar: calendar3, calendarFormats, format, message } = props;
|
|
55421
55464
|
const { t: t2, tDateTimeParser } = useTranslationContext("EventComponent");
|
|
55422
55465
|
const { created_at = "", event, text: text7, type } = message;
|
|
55423
55466
|
const getDateOptions = { messageCreatedAt: created_at.toString(), tDateTimeParser };
|
|
55424
55467
|
if (type === "system")
|
|
55425
|
-
return /* @__PURE__ */
|
|
55468
|
+
return /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__message--system", "data-testid": "message-system" }, /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__message--system__text" }, /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__message--system__line" }), /* @__PURE__ */ import_react244.default.createElement("p", null, text7), /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__message--system__line" })), /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__message--system__date" }, /* @__PURE__ */ import_react244.default.createElement("strong", null, getDateString({
|
|
55426
55469
|
...getDateOptions,
|
|
55427
55470
|
calendar: calendar3,
|
|
55428
55471
|
calendarFormats,
|
|
@@ -55433,11 +55476,11 @@ var UnMemoizedEventComponent = (props) => {
|
|
|
55433
55476
|
if (event?.type === "member.removed" || event?.type === "member.added") {
|
|
55434
55477
|
const name2 = event.user?.name || event.user?.id;
|
|
55435
55478
|
const sentence = `${name2} ${event.type === "member.added" ? "has joined the chat" : "was removed from the chat"}`;
|
|
55436
|
-
return /* @__PURE__ */
|
|
55479
|
+
return /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__event-component__channel-event" }, /* @__PURE__ */ import_react244.default.createElement(Avatar2, { image: event.user?.image, name: name2, user: event.user }), /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__event-component__channel-event__content" }, /* @__PURE__ */ import_react244.default.createElement("em", { className: "str-chat__event-component__channel-event__sentence" }, sentence), /* @__PURE__ */ import_react244.default.createElement("div", { className: "str-chat__event-component__channel-event__date" }, getDateString({ ...getDateOptions, format: "LT" }))));
|
|
55437
55480
|
}
|
|
55438
55481
|
return null;
|
|
55439
55482
|
};
|
|
55440
|
-
var EventComponent =
|
|
55483
|
+
var EventComponent = import_react244.default.memo(
|
|
55441
55484
|
UnMemoizedEventComponent
|
|
55442
55485
|
);
|
|
55443
55486
|
|
|
@@ -55465,7 +55508,7 @@ function defaultRenderMessages({
|
|
|
55465
55508
|
const message = messages[index3];
|
|
55466
55509
|
if (isDateSeparatorMessage(message)) {
|
|
55467
55510
|
renderedMessages.push(
|
|
55468
|
-
/* @__PURE__ */
|
|
55511
|
+
/* @__PURE__ */ import_react245.default.createElement("li", { key: `${message.date.toISOString()}-i` }, /* @__PURE__ */ import_react245.default.createElement(
|
|
55469
55512
|
DateSeparator2,
|
|
55470
55513
|
{
|
|
55471
55514
|
date: message.date,
|
|
@@ -55476,17 +55519,17 @@ function defaultRenderMessages({
|
|
|
55476
55519
|
);
|
|
55477
55520
|
} else if (message.customType === CUSTOM_MESSAGE_TYPE.intro && HeaderComponent) {
|
|
55478
55521
|
renderedMessages.push(
|
|
55479
|
-
/* @__PURE__ */
|
|
55522
|
+
/* @__PURE__ */ import_react245.default.createElement("li", { key: "intro" }, /* @__PURE__ */ import_react245.default.createElement(HeaderComponent, null))
|
|
55480
55523
|
);
|
|
55481
55524
|
} else if (message.type === "system") {
|
|
55482
55525
|
renderedMessages.push(
|
|
55483
|
-
/* @__PURE__ */
|
|
55526
|
+
/* @__PURE__ */ import_react245.default.createElement(
|
|
55484
55527
|
"li",
|
|
55485
55528
|
{
|
|
55486
55529
|
"data-message-id": message.id,
|
|
55487
55530
|
key: message.id || message.created_at
|
|
55488
55531
|
},
|
|
55489
|
-
/* @__PURE__ */
|
|
55532
|
+
/* @__PURE__ */ import_react245.default.createElement(MessageSystem, { message })
|
|
55490
55533
|
)
|
|
55491
55534
|
);
|
|
55492
55535
|
} else {
|
|
@@ -55505,19 +55548,19 @@ function defaultRenderMessages({
|
|
|
55505
55548
|
unreadMessageCount: channelUnreadUiState?.unread_messages
|
|
55506
55549
|
});
|
|
55507
55550
|
renderedMessages.push(
|
|
55508
|
-
/* @__PURE__ */
|
|
55551
|
+
/* @__PURE__ */ import_react245.default.createElement(import_react245.Fragment, { key: message.id || message.created_at }, isFirstUnreadMessage && UnreadMessagesSeparator2 && /* @__PURE__ */ import_react245.default.createElement("li", { className: "str-chat__li str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react245.default.createElement(
|
|
55509
55552
|
UnreadMessagesSeparator2,
|
|
55510
55553
|
{
|
|
55511
55554
|
unreadCount: channelUnreadUiState?.unread_messages
|
|
55512
55555
|
}
|
|
55513
|
-
)), /* @__PURE__ */
|
|
55556
|
+
)), /* @__PURE__ */ import_react245.default.createElement(
|
|
55514
55557
|
"li",
|
|
55515
55558
|
{
|
|
55516
55559
|
className: messageClass,
|
|
55517
55560
|
"data-message-id": message.id,
|
|
55518
55561
|
"data-testid": messageClass
|
|
55519
55562
|
},
|
|
55520
|
-
/* @__PURE__ */
|
|
55563
|
+
/* @__PURE__ */ import_react245.default.createElement(
|
|
55521
55564
|
Message,
|
|
55522
55565
|
{
|
|
55523
55566
|
groupStyles: [groupStyles],
|
|
@@ -55574,8 +55617,8 @@ var MessageListWithContext = (props) => {
|
|
|
55574
55617
|
threadList = false,
|
|
55575
55618
|
unsafeHTML = false
|
|
55576
55619
|
} = props;
|
|
55577
|
-
const [listElement, setListElement] =
|
|
55578
|
-
const [ulElement, setUlElement] =
|
|
55620
|
+
const [listElement, setListElement] = import_react246.default.useState(null);
|
|
55621
|
+
const [ulElement, setUlElement] = import_react246.default.useState(null);
|
|
55579
55622
|
const { customClasses } = useChatContext("MessageList");
|
|
55580
55623
|
const {
|
|
55581
55624
|
EmptyStateIndicator: EmptyStateIndicator2 = EmptyStateIndicator,
|
|
@@ -55663,24 +55706,24 @@ var MessageListWithContext = (props) => {
|
|
|
55663
55706
|
threadList
|
|
55664
55707
|
});
|
|
55665
55708
|
const messageListClass = customClasses?.messageList || "str-chat__list";
|
|
55666
|
-
const loadMore =
|
|
55709
|
+
const loadMore = import_react246.default.useCallback(() => {
|
|
55667
55710
|
if (loadMoreCallback) {
|
|
55668
55711
|
loadMoreCallback(messageLimit);
|
|
55669
55712
|
}
|
|
55670
55713
|
}, [loadMoreCallback, messageLimit]);
|
|
55671
|
-
const loadMoreNewer =
|
|
55714
|
+
const loadMoreNewer = import_react246.default.useCallback(() => {
|
|
55672
55715
|
if (loadMoreNewerCallback) {
|
|
55673
55716
|
loadMoreNewerCallback(messageLimit);
|
|
55674
55717
|
}
|
|
55675
55718
|
}, [loadMoreNewerCallback, messageLimit]);
|
|
55676
|
-
const scrollToBottomFromNotification =
|
|
55719
|
+
const scrollToBottomFromNotification = import_react246.default.useCallback(async () => {
|
|
55677
55720
|
if (hasMoreNewer) {
|
|
55678
55721
|
await jumpToLatestMessage();
|
|
55679
55722
|
} else {
|
|
55680
55723
|
scrollToBottom();
|
|
55681
55724
|
}
|
|
55682
55725
|
}, [scrollToBottom, hasMoreNewer]);
|
|
55683
|
-
|
|
55726
|
+
import_react246.default.useLayoutEffect(() => {
|
|
55684
55727
|
if (highlightedMessageId) {
|
|
55685
55728
|
const element3 = ulElement?.querySelector(
|
|
55686
55729
|
`[data-message-id='${highlightedMessageId}']`
|
|
@@ -55690,12 +55733,12 @@ var MessageListWithContext = (props) => {
|
|
|
55690
55733
|
}, [highlightedMessageId]);
|
|
55691
55734
|
const showEmptyStateIndicator = elements.length === 0 && !threadList;
|
|
55692
55735
|
const dialogManagerId = threadList ? "message-list-dialog-manager-thread" : "message-list-dialog-manager";
|
|
55693
|
-
return /* @__PURE__ */
|
|
55736
|
+
return /* @__PURE__ */ import_react246.default.createElement(MessageListContextProvider, { value: { listElement, scrollToBottom } }, /* @__PURE__ */ import_react246.default.createElement(MessageListMainPanel2, null, /* @__PURE__ */ import_react246.default.createElement(DialogManagerProvider, { id: dialogManagerId }, !threadList && showUnreadMessagesNotification && /* @__PURE__ */ import_react246.default.createElement(
|
|
55694
55737
|
UnreadMessagesNotification2,
|
|
55695
55738
|
{
|
|
55696
55739
|
unreadCount: channelUnreadUiState?.unread_messages
|
|
55697
55740
|
}
|
|
55698
|
-
), /* @__PURE__ */
|
|
55741
|
+
), /* @__PURE__ */ import_react246.default.createElement(
|
|
55699
55742
|
"div",
|
|
55700
55743
|
{
|
|
55701
55744
|
className: (0, import_clsx62.default)(messageListClass, customClasses?.threadList),
|
|
@@ -55703,7 +55746,7 @@ var MessageListWithContext = (props) => {
|
|
|
55703
55746
|
ref: setListElement,
|
|
55704
55747
|
tabIndex: 0
|
|
55705
55748
|
},
|
|
55706
|
-
showEmptyStateIndicator ? /* @__PURE__ */
|
|
55749
|
+
showEmptyStateIndicator ? /* @__PURE__ */ import_react246.default.createElement(EmptyStateIndicator2, { listType: threadList ? "thread" : "message" }) : /* @__PURE__ */ import_react246.default.createElement(
|
|
55707
55750
|
InfiniteScroll,
|
|
55708
55751
|
{
|
|
55709
55752
|
className: "str-chat__message-list-scroll",
|
|
@@ -55712,17 +55755,17 @@ var MessageListWithContext = (props) => {
|
|
|
55712
55755
|
hasPreviousPage: props.hasMore,
|
|
55713
55756
|
head: props.head,
|
|
55714
55757
|
isLoading: props.loadingMore,
|
|
55715
|
-
loader: /* @__PURE__ */
|
|
55758
|
+
loader: /* @__PURE__ */ import_react246.default.createElement("div", { className: "str-chat__list__loading", key: "loading-indicator" }, props.loadingMore && /* @__PURE__ */ import_react246.default.createElement(LoadingIndicator2, { size: 20 })),
|
|
55716
55759
|
loadNextPage: loadMoreNewer,
|
|
55717
55760
|
loadPreviousPage: loadMore,
|
|
55718
55761
|
threshold: loadMoreScrollThreshold,
|
|
55719
55762
|
...restInternalInfiniteScrollProps
|
|
55720
55763
|
},
|
|
55721
|
-
/* @__PURE__ */
|
|
55722
|
-
/* @__PURE__ */
|
|
55723
|
-
/* @__PURE__ */
|
|
55764
|
+
/* @__PURE__ */ import_react246.default.createElement("ul", { className: "str-chat__ul", ref: setUlElement }, elements),
|
|
55765
|
+
/* @__PURE__ */ import_react246.default.createElement(TypingIndicator2, { threadList }),
|
|
55766
|
+
/* @__PURE__ */ import_react246.default.createElement("div", { key: "bottom" })
|
|
55724
55767
|
)
|
|
55725
|
-
))), /* @__PURE__ */
|
|
55768
|
+
))), /* @__PURE__ */ import_react246.default.createElement(
|
|
55726
55769
|
MessageListNotifications2,
|
|
55727
55770
|
{
|
|
55728
55771
|
hasNewMessages,
|
|
@@ -55747,7 +55790,7 @@ var MessageList = (props) => {
|
|
|
55747
55790
|
// eslint-disable-line @typescript-eslint/no-unused-vars
|
|
55748
55791
|
...restChannelStateContext
|
|
55749
55792
|
} = useChannelStateContext("MessageList");
|
|
55750
|
-
return /* @__PURE__ */
|
|
55793
|
+
return /* @__PURE__ */ import_react246.default.createElement(
|
|
55751
55794
|
MessageListWithContext,
|
|
55752
55795
|
{
|
|
55753
55796
|
jumpToLatestMessage,
|
|
@@ -55760,16 +55803,16 @@ var MessageList = (props) => {
|
|
|
55760
55803
|
};
|
|
55761
55804
|
|
|
55762
55805
|
// src/components/MessageList/ScrollToBottomButton.tsx
|
|
55763
|
-
var
|
|
55806
|
+
var import_react247 = __toESM(require("react"));
|
|
55764
55807
|
var import_clsx63 = __toESM(require("clsx"));
|
|
55765
55808
|
var UnMemoizedScrollToBottomButton = (props) => {
|
|
55766
55809
|
const { isMessageListScrolledToBottom, onClick, threadList } = props;
|
|
55767
55810
|
const { channel: activeChannel, client } = useChatContext();
|
|
55768
55811
|
const { thread } = useChannelStateContext();
|
|
55769
|
-
const [countUnread, setCountUnread] = (0,
|
|
55770
|
-
const [replyCount, setReplyCount] = (0,
|
|
55812
|
+
const [countUnread, setCountUnread] = (0, import_react247.useState)(activeChannel?.countUnread() || 0);
|
|
55813
|
+
const [replyCount, setReplyCount] = (0, import_react247.useState)(thread?.reply_count || 0);
|
|
55771
55814
|
const observedEvent = threadList ? "message.updated" : "message.new";
|
|
55772
|
-
(0,
|
|
55815
|
+
(0, import_react247.useEffect)(() => {
|
|
55773
55816
|
const handleEvent = (event) => {
|
|
55774
55817
|
const newMessageInAnotherChannel = event.cid !== activeChannel?.cid;
|
|
55775
55818
|
const newMessageIsMine = event.user?.id === client.user?.id;
|
|
@@ -55791,14 +55834,14 @@ var UnMemoizedScrollToBottomButton = (props) => {
|
|
|
55791
55834
|
client.off(observedEvent, handleEvent);
|
|
55792
55835
|
};
|
|
55793
55836
|
}, [activeChannel, isMessageListScrolledToBottom, observedEvent, replyCount, thread]);
|
|
55794
|
-
(0,
|
|
55837
|
+
(0, import_react247.useEffect)(() => {
|
|
55795
55838
|
if (isMessageListScrolledToBottom) {
|
|
55796
55839
|
setCountUnread(0);
|
|
55797
55840
|
setReplyCount(thread?.reply_count || 0);
|
|
55798
55841
|
}
|
|
55799
55842
|
}, [isMessageListScrolledToBottom, thread]);
|
|
55800
55843
|
if (isMessageListScrolledToBottom) return null;
|
|
55801
|
-
return /* @__PURE__ */
|
|
55844
|
+
return /* @__PURE__ */ import_react247.default.createElement("div", { className: "str-chat__jump-to-latest-message" }, /* @__PURE__ */ import_react247.default.createElement(
|
|
55802
55845
|
"button",
|
|
55803
55846
|
{
|
|
55804
55847
|
"aria-live": "polite",
|
|
@@ -55809,8 +55852,8 @@ var UnMemoizedScrollToBottomButton = (props) => {
|
|
|
55809
55852
|
"data-testid": "message-notification",
|
|
55810
55853
|
onClick
|
|
55811
55854
|
},
|
|
55812
|
-
/* @__PURE__ */
|
|
55813
|
-
countUnread > 0 && /* @__PURE__ */
|
|
55855
|
+
/* @__PURE__ */ import_react247.default.createElement(ArrowDown, null),
|
|
55856
|
+
countUnread > 0 && /* @__PURE__ */ import_react247.default.createElement(
|
|
55814
55857
|
"div",
|
|
55815
55858
|
{
|
|
55816
55859
|
className: (0, import_clsx63.default)(
|
|
@@ -55823,23 +55866,23 @@ var UnMemoizedScrollToBottomButton = (props) => {
|
|
|
55823
55866
|
)
|
|
55824
55867
|
));
|
|
55825
55868
|
};
|
|
55826
|
-
var ScrollToBottomButton =
|
|
55869
|
+
var ScrollToBottomButton = import_react247.default.memo(
|
|
55827
55870
|
UnMemoizedScrollToBottomButton
|
|
55828
55871
|
);
|
|
55829
55872
|
|
|
55830
55873
|
// src/components/MessageList/VirtualizedMessageList.tsx
|
|
55831
|
-
var
|
|
55874
|
+
var import_react257 = __toESM(require("react"));
|
|
55832
55875
|
var import_react_virtuoso2 = require("react-virtuoso");
|
|
55833
55876
|
|
|
55834
55877
|
// src/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.ts
|
|
55835
|
-
var
|
|
55878
|
+
var import_react248 = require("react");
|
|
55836
55879
|
function useNewMessageNotification(messages, currentUserId, hasMoreNewer) {
|
|
55837
|
-
const [newMessagesNotification, setNewMessagesNotification] = (0,
|
|
55838
|
-
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0,
|
|
55839
|
-
const didMount = (0,
|
|
55840
|
-
const lastMessageId = (0,
|
|
55841
|
-
const atBottom = (0,
|
|
55842
|
-
(0,
|
|
55880
|
+
const [newMessagesNotification, setNewMessagesNotification] = (0, import_react248.useState)(false);
|
|
55881
|
+
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0, import_react248.useState)(true);
|
|
55882
|
+
const didMount = (0, import_react248.useRef)(false);
|
|
55883
|
+
const lastMessageId = (0, import_react248.useRef)("");
|
|
55884
|
+
const atBottom = (0, import_react248.useRef)(false);
|
|
55885
|
+
(0, import_react248.useEffect)(() => {
|
|
55843
55886
|
if (hasMoreNewer) {
|
|
55844
55887
|
setNewMessagesNotification(true);
|
|
55845
55888
|
return;
|
|
@@ -55865,17 +55908,17 @@ function useNewMessageNotification(messages, currentUserId, hasMoreNewer) {
|
|
|
55865
55908
|
}
|
|
55866
55909
|
|
|
55867
55910
|
// src/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.ts
|
|
55868
|
-
var
|
|
55911
|
+
var import_react249 = require("react");
|
|
55869
55912
|
var STATUSES_EXCLUDED_FROM_PREPEND = {
|
|
55870
55913
|
failed: true,
|
|
55871
55914
|
sending: true
|
|
55872
55915
|
};
|
|
55873
55916
|
function usePrependedMessagesCount(messages, hasDateSeparator) {
|
|
55874
55917
|
const firstRealMessageIndex = hasDateSeparator ? 1 : 0;
|
|
55875
|
-
const firstMessageOnFirstLoadedPage = (0,
|
|
55876
|
-
const previousFirstMessageOnFirstLoadedPage = (0,
|
|
55877
|
-
const previousNumItemsPrepended = (0,
|
|
55878
|
-
const numItemsPrepended = (0,
|
|
55918
|
+
const firstMessageOnFirstLoadedPage = (0, import_react249.useRef)(void 0);
|
|
55919
|
+
const previousFirstMessageOnFirstLoadedPage = (0, import_react249.useRef)(void 0);
|
|
55920
|
+
const previousNumItemsPrepended = (0, import_react249.useRef)(0);
|
|
55921
|
+
const numItemsPrepended = (0, import_react249.useMemo)(() => {
|
|
55879
55922
|
if (!messages || !messages.length) {
|
|
55880
55923
|
previousNumItemsPrepended.current = 0;
|
|
55881
55924
|
return 0;
|
|
@@ -55905,10 +55948,10 @@ function usePrependedMessagesCount(messages, hasDateSeparator) {
|
|
|
55905
55948
|
}
|
|
55906
55949
|
|
|
55907
55950
|
// src/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.ts
|
|
55908
|
-
var
|
|
55951
|
+
var import_react250 = require("react");
|
|
55909
55952
|
function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
55910
|
-
const lastFocusedOwnMessage = (0,
|
|
55911
|
-
const initialFocusRegistered = (0,
|
|
55953
|
+
const lastFocusedOwnMessage = (0, import_react250.useRef)("");
|
|
55954
|
+
const initialFocusRegistered = (0, import_react250.useRef)(false);
|
|
55912
55955
|
function recheckForNewOwnMessage() {
|
|
55913
55956
|
if (messages && messages.length > 0) {
|
|
55914
55957
|
const lastMessage = messages[messages.length - 1];
|
|
@@ -55919,7 +55962,7 @@ function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
|
55919
55962
|
}
|
|
55920
55963
|
return false;
|
|
55921
55964
|
}
|
|
55922
|
-
(0,
|
|
55965
|
+
(0, import_react250.useEffect)(() => {
|
|
55923
55966
|
if (messages && messages.length && !initialFocusRegistered.current) {
|
|
55924
55967
|
initialFocusRegistered.current = true;
|
|
55925
55968
|
recheckForNewOwnMessage();
|
|
@@ -55929,11 +55972,11 @@ function useShouldForceScrollToBottom(messages, currentUserId) {
|
|
|
55929
55972
|
}
|
|
55930
55973
|
|
|
55931
55974
|
// src/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.ts
|
|
55932
|
-
var
|
|
55975
|
+
var import_react251 = require("react");
|
|
55933
55976
|
var useGiphyPreview = (separateGiphyPreview) => {
|
|
55934
|
-
const [giphyPreviewMessage, setGiphyPreviewMessage] = (0,
|
|
55977
|
+
const [giphyPreviewMessage, setGiphyPreviewMessage] = (0, import_react251.useState)();
|
|
55935
55978
|
const { client } = useChatContext("useGiphyPreview");
|
|
55936
|
-
(0,
|
|
55979
|
+
(0, import_react251.useEffect)(() => {
|
|
55937
55980
|
const handleEvent = (event) => {
|
|
55938
55981
|
const { message, user } = event;
|
|
55939
55982
|
if (message?.command === "giphy" && user?.id === client.userID) {
|
|
@@ -55950,13 +55993,13 @@ var useGiphyPreview = (separateGiphyPreview) => {
|
|
|
55950
55993
|
};
|
|
55951
55994
|
|
|
55952
55995
|
// src/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.ts
|
|
55953
|
-
var
|
|
55996
|
+
var import_react252 = require("react");
|
|
55954
55997
|
var useMessageSetKey = ({
|
|
55955
55998
|
messages
|
|
55956
55999
|
}) => {
|
|
55957
|
-
const [messageSetKey, setMessageSetKey] = (0,
|
|
55958
|
-
const firstMessageId = (0,
|
|
55959
|
-
(0,
|
|
56000
|
+
const [messageSetKey, setMessageSetKey] = (0, import_react252.useState)(+/* @__PURE__ */ new Date());
|
|
56001
|
+
const firstMessageId = (0, import_react252.useRef)(void 0);
|
|
56002
|
+
(0, import_react252.useEffect)(() => {
|
|
55960
56003
|
const continuousSet = messages?.find(
|
|
55961
56004
|
(message) => message.id === firstMessageId.current
|
|
55962
56005
|
);
|
|
@@ -55971,24 +56014,24 @@ var useMessageSetKey = ({
|
|
|
55971
56014
|
};
|
|
55972
56015
|
|
|
55973
56016
|
// src/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.ts
|
|
55974
|
-
var
|
|
56017
|
+
var import_react253 = require("react");
|
|
55975
56018
|
var useScrollToBottomOnNewMessage = ({
|
|
55976
56019
|
messages,
|
|
55977
56020
|
scrollToBottom,
|
|
55978
56021
|
scrollToLatestMessageOnFocus
|
|
55979
56022
|
}) => {
|
|
55980
|
-
const [newMessagesReceivedInBackground, setNewMessagesReceivedInBackground] = (0,
|
|
55981
|
-
const scrollToBottomIfConfigured = (0,
|
|
56023
|
+
const [newMessagesReceivedInBackground, setNewMessagesReceivedInBackground] = (0, import_react253.useState)(false);
|
|
56024
|
+
const scrollToBottomIfConfigured = (0, import_react253.useRef)(void 0);
|
|
55982
56025
|
scrollToBottomIfConfigured.current = (event) => {
|
|
55983
56026
|
if (!scrollToLatestMessageOnFocus || !newMessagesReceivedInBackground || event.target !== window) {
|
|
55984
56027
|
return;
|
|
55985
56028
|
}
|
|
55986
56029
|
setTimeout(scrollToBottom, 100);
|
|
55987
56030
|
};
|
|
55988
|
-
(0,
|
|
56031
|
+
(0, import_react253.useEffect)(() => {
|
|
55989
56032
|
setNewMessagesReceivedInBackground(true);
|
|
55990
56033
|
}, [messages]);
|
|
55991
|
-
(0,
|
|
56034
|
+
(0, import_react253.useEffect)(() => {
|
|
55992
56035
|
const handleFocus = (event) => {
|
|
55993
56036
|
scrollToBottomIfConfigured.current?.(event);
|
|
55994
56037
|
};
|
|
@@ -56007,14 +56050,14 @@ var useScrollToBottomOnNewMessage = ({
|
|
|
56007
56050
|
};
|
|
56008
56051
|
|
|
56009
56052
|
// src/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.ts
|
|
56010
|
-
var
|
|
56053
|
+
var import_react254 = require("react");
|
|
56011
56054
|
var useUnreadMessagesNotificationVirtualized = ({
|
|
56012
56055
|
lastRead,
|
|
56013
56056
|
showAlways,
|
|
56014
56057
|
unreadCount
|
|
56015
56058
|
}) => {
|
|
56016
|
-
const [show, setShow] = (0,
|
|
56017
|
-
const toggleShowUnreadMessagesNotification = (0,
|
|
56059
|
+
const [show, setShow] = (0, import_react254.useState)(false);
|
|
56060
|
+
const toggleShowUnreadMessagesNotification = (0, import_react254.useCallback)(
|
|
56018
56061
|
(renderedMessages) => {
|
|
56019
56062
|
if (!unreadCount) return;
|
|
56020
56063
|
const firstRenderedMessage = renderedMessages[0];
|
|
@@ -56028,7 +56071,7 @@ var useUnreadMessagesNotificationVirtualized = ({
|
|
|
56028
56071
|
},
|
|
56029
56072
|
[lastRead, showAlways, unreadCount]
|
|
56030
56073
|
);
|
|
56031
|
-
(0,
|
|
56074
|
+
(0, import_react254.useEffect)(() => {
|
|
56032
56075
|
if (!unreadCount) setShow(false);
|
|
56033
56076
|
}, [unreadCount]);
|
|
56034
56077
|
return { show, toggleShowUnreadMessagesNotification };
|
|
@@ -56037,7 +56080,7 @@ var useUnreadMessagesNotificationVirtualized = ({
|
|
|
56037
56080
|
// src/components/MessageList/VirtualizedMessageListComponents.tsx
|
|
56038
56081
|
var import_clsx64 = __toESM(require("clsx"));
|
|
56039
56082
|
var import_lodash21 = __toESM(require("lodash.throttle"));
|
|
56040
|
-
var
|
|
56083
|
+
var import_react255 = __toESM(require("react"));
|
|
56041
56084
|
var PREPEND_OFFSET = 10 ** 7;
|
|
56042
56085
|
function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
|
|
56043
56086
|
return virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
|
|
@@ -56058,10 +56101,10 @@ var Item3 = ({
|
|
|
56058
56101
|
context,
|
|
56059
56102
|
...props
|
|
56060
56103
|
}) => {
|
|
56061
|
-
if (!context) return /* @__PURE__ */
|
|
56104
|
+
if (!context) return /* @__PURE__ */ import_react255.default.createElement(import_react255.default.Fragment, null);
|
|
56062
56105
|
const message = context.processedMessages[calculateItemIndex(props["data-item-index"], context.numItemsPrepended)];
|
|
56063
56106
|
const groupStyles = context.messageGroupStyles[message.id];
|
|
56064
|
-
return /* @__PURE__ */
|
|
56107
|
+
return /* @__PURE__ */ import_react255.default.createElement(
|
|
56065
56108
|
"div",
|
|
56066
56109
|
{
|
|
56067
56110
|
...props,
|
|
@@ -56075,13 +56118,13 @@ var Header = ({
|
|
|
56075
56118
|
context
|
|
56076
56119
|
}) => {
|
|
56077
56120
|
const { LoadingIndicator: LoadingIndicator2 = LoadingIndicator } = useComponentContext("VirtualizedMessageListHeader");
|
|
56078
|
-
return /* @__PURE__ */
|
|
56121
|
+
return /* @__PURE__ */ import_react255.default.createElement(import_react255.default.Fragment, null, context?.head, context?.loadingMore && LoadingIndicator2 && /* @__PURE__ */ import_react255.default.createElement("div", { className: "str-chat__virtual-list__loading" }, /* @__PURE__ */ import_react255.default.createElement(LoadingIndicator2, { size: 20 })));
|
|
56079
56122
|
};
|
|
56080
56123
|
var EmptyPlaceholder = ({
|
|
56081
56124
|
context
|
|
56082
56125
|
}) => {
|
|
56083
56126
|
const { EmptyStateIndicator: EmptyStateIndicator2 = EmptyStateIndicator } = useComponentContext("VirtualizedMessageList");
|
|
56084
|
-
return /* @__PURE__ */
|
|
56127
|
+
return /* @__PURE__ */ import_react255.default.createElement(import_react255.default.Fragment, null, EmptyStateIndicator2 && /* @__PURE__ */ import_react255.default.createElement(EmptyStateIndicator2, { listType: context?.threadList ? "thread" : "message" }));
|
|
56085
56128
|
};
|
|
56086
56129
|
var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
56087
56130
|
const {
|
|
@@ -56117,12 +56160,12 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
56117
56160
|
return customMessageRenderer(messageList, streamMessageIndex);
|
|
56118
56161
|
}
|
|
56119
56162
|
const message = messageList[streamMessageIndex];
|
|
56120
|
-
if (!message) return /* @__PURE__ */
|
|
56163
|
+
if (!message) return /* @__PURE__ */ import_react255.default.createElement("div", { style: { height: "1px" } });
|
|
56121
56164
|
if (isDateSeparatorMessage(message)) {
|
|
56122
|
-
return DateSeparator2 ? /* @__PURE__ */
|
|
56165
|
+
return DateSeparator2 ? /* @__PURE__ */ import_react255.default.createElement(DateSeparator2, { date: message.date, unread: message.unread }) : null;
|
|
56123
56166
|
}
|
|
56124
56167
|
if (message.type === "system") {
|
|
56125
|
-
return MessageSystem ? /* @__PURE__ */
|
|
56168
|
+
return MessageSystem ? /* @__PURE__ */ import_react255.default.createElement(MessageSystem, { message }) : null;
|
|
56126
56169
|
}
|
|
56127
56170
|
const groupedByUser = shouldGroupByUser && streamMessageIndex > 0 && message.user?.id === messageList[streamMessageIndex - 1].user?.id;
|
|
56128
56171
|
const maybePrevMessage = messageList[streamMessageIndex - 1];
|
|
@@ -56138,7 +56181,7 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
56138
56181
|
previousMessage: streamMessageIndex ? messageList[streamMessageIndex - 1] : void 0,
|
|
56139
56182
|
unreadMessageCount
|
|
56140
56183
|
});
|
|
56141
|
-
return /* @__PURE__ */
|
|
56184
|
+
return /* @__PURE__ */ import_react255.default.createElement(import_react255.default.Fragment, null, isFirstUnreadMessage && /* @__PURE__ */ import_react255.default.createElement("div", { className: "str-chat__unread-messages-separator-wrapper" }, /* @__PURE__ */ import_react255.default.createElement(UnreadMessagesSeparator2, { unreadCount: unreadMessageCount })), /* @__PURE__ */ import_react255.default.createElement(
|
|
56142
56185
|
Message,
|
|
56143
56186
|
{
|
|
56144
56187
|
additionalMessageInputProps,
|
|
@@ -56165,12 +56208,12 @@ var messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
56165
56208
|
};
|
|
56166
56209
|
|
|
56167
56210
|
// src/context/VirtualizedMessageListContext.tsx
|
|
56168
|
-
var
|
|
56169
|
-
var VirtualizedMessageListContext = (0,
|
|
56211
|
+
var import_react256 = __toESM(require("react"));
|
|
56212
|
+
var VirtualizedMessageListContext = (0, import_react256.createContext)(void 0);
|
|
56170
56213
|
var VirtualizedMessageListContextProvider = ({
|
|
56171
56214
|
children,
|
|
56172
56215
|
value
|
|
56173
|
-
}) => /* @__PURE__ */
|
|
56216
|
+
}) => /* @__PURE__ */ import_react256.default.createElement(
|
|
56174
56217
|
VirtualizedMessageListContext.Provider,
|
|
56175
56218
|
{
|
|
56176
56219
|
value
|
|
@@ -56185,7 +56228,7 @@ function captureResizeObserverExceededError(e2) {
|
|
|
56185
56228
|
}
|
|
56186
56229
|
}
|
|
56187
56230
|
function useCaptureResizeObserverExceededError() {
|
|
56188
|
-
(0,
|
|
56231
|
+
(0, import_react257.useEffect)(() => {
|
|
56189
56232
|
window.addEventListener("error", captureResizeObserverExceededError);
|
|
56190
56233
|
return () => {
|
|
56191
56234
|
window.removeEventListener("error", captureResizeObserverExceededError);
|
|
@@ -56271,15 +56314,15 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56271
56314
|
const { client, customClasses } = useChatContext(
|
|
56272
56315
|
"VirtualizedMessageList"
|
|
56273
56316
|
);
|
|
56274
|
-
const virtuoso = (0,
|
|
56275
|
-
const lastRead = (0,
|
|
56317
|
+
const virtuoso = (0, import_react257.useRef)(null);
|
|
56318
|
+
const lastRead = (0, import_react257.useMemo)(() => channel.lastRead?.(), [channel]);
|
|
56276
56319
|
const { show: showUnreadMessagesNotification, toggleShowUnreadMessagesNotification } = useUnreadMessagesNotificationVirtualized({
|
|
56277
56320
|
lastRead: channelUnreadUiState?.last_read,
|
|
56278
56321
|
showAlways: !!showUnreadNotificationAlways,
|
|
56279
56322
|
unreadCount: channelUnreadUiState?.unread_messages ?? 0
|
|
56280
56323
|
});
|
|
56281
56324
|
const { giphyPreviewMessage, setGiphyPreviewMessage } = useGiphyPreview(separateGiphyPreview);
|
|
56282
|
-
const processedMessages = (0,
|
|
56325
|
+
const processedMessages = (0, import_react257.useMemo)(() => {
|
|
56283
56326
|
if (typeof messages === "undefined") {
|
|
56284
56327
|
return [];
|
|
56285
56328
|
}
|
|
@@ -56311,12 +56354,12 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56311
56354
|
returnAllReadData,
|
|
56312
56355
|
userID: client.userID
|
|
56313
56356
|
});
|
|
56314
|
-
const lastReceivedMessageId = (0,
|
|
56357
|
+
const lastReceivedMessageId = (0, import_react257.useMemo)(
|
|
56315
56358
|
() => getLastReceived(processedMessages),
|
|
56316
56359
|
[processedMessages]
|
|
56317
56360
|
);
|
|
56318
56361
|
const groupStylesFn = groupStyles || getGroupStyles;
|
|
56319
|
-
const messageGroupStyles = (0,
|
|
56362
|
+
const messageGroupStyles = (0, import_react257.useMemo)(
|
|
56320
56363
|
() => processedMessages.reduce((acc, message, i) => {
|
|
56321
56364
|
const style = groupStylesFn(
|
|
56322
56365
|
message,
|
|
@@ -56349,7 +56392,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56349
56392
|
messageListIsThread: !!threadList,
|
|
56350
56393
|
wasMarkedUnread: !!channelUnreadUiState?.first_unread_message_id
|
|
56351
56394
|
});
|
|
56352
|
-
const scrollToBottom = (0,
|
|
56395
|
+
const scrollToBottom = (0, import_react257.useCallback)(async () => {
|
|
56353
56396
|
if (hasMoreNewer) {
|
|
56354
56397
|
await jumpToLatestMessage();
|
|
56355
56398
|
return;
|
|
@@ -56381,7 +56424,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56381
56424
|
processedMessages,
|
|
56382
56425
|
client.userID
|
|
56383
56426
|
);
|
|
56384
|
-
const handleItemsRendered = (0,
|
|
56427
|
+
const handleItemsRendered = (0, import_react257.useMemo)(
|
|
56385
56428
|
() => makeItemsRenderedHandler([toggleShowUnreadMessagesNotification], processedMessages),
|
|
56386
56429
|
[processedMessages, toggleShowUnreadMessagesNotification]
|
|
56387
56430
|
);
|
|
@@ -56394,7 +56437,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56394
56437
|
}
|
|
56395
56438
|
return isAtBottom ? stickToBottomScrollBehavior : false;
|
|
56396
56439
|
};
|
|
56397
|
-
const computeItemKey2 = (0,
|
|
56440
|
+
const computeItemKey2 = (0, import_react257.useCallback)(
|
|
56398
56441
|
(index3, _, { numItemsPrepended: numItemsPrepended2, processedMessages: processedMessages2 }) => processedMessages2[calculateItemIndex(index3, numItemsPrepended2)].id,
|
|
56399
56442
|
[]
|
|
56400
56443
|
);
|
|
@@ -56411,7 +56454,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56411
56454
|
loadMore?.(messageLimit);
|
|
56412
56455
|
}
|
|
56413
56456
|
};
|
|
56414
|
-
(0,
|
|
56457
|
+
(0, import_react257.useEffect)(() => {
|
|
56415
56458
|
let scrollTimeout;
|
|
56416
56459
|
if (highlightedMessageId) {
|
|
56417
56460
|
const index3 = findMessageIndex(processedMessages, highlightedMessageId);
|
|
@@ -56427,17 +56470,17 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56427
56470
|
}, [highlightedMessageId, processedMessages]);
|
|
56428
56471
|
if (!processedMessages) return null;
|
|
56429
56472
|
const dialogManagerId = threadList ? "virtualized-message-list-dialog-manager-thread" : "virtualized-message-list-dialog-manager";
|
|
56430
|
-
return /* @__PURE__ */
|
|
56473
|
+
return /* @__PURE__ */ import_react257.default.createElement(VirtualizedMessageListContextProvider, { value: { scrollToBottom } }, /* @__PURE__ */ import_react257.default.createElement(MessageListMainPanel2, null, /* @__PURE__ */ import_react257.default.createElement(DialogManagerProvider, { id: dialogManagerId }, !threadList && showUnreadMessagesNotification && /* @__PURE__ */ import_react257.default.createElement(
|
|
56431
56474
|
UnreadMessagesNotification2,
|
|
56432
56475
|
{
|
|
56433
56476
|
unreadCount: channelUnreadUiState?.unread_messages
|
|
56434
56477
|
}
|
|
56435
|
-
), /* @__PURE__ */
|
|
56478
|
+
), /* @__PURE__ */ import_react257.default.createElement(
|
|
56436
56479
|
"div",
|
|
56437
56480
|
{
|
|
56438
56481
|
className: customClasses?.virtualizedMessageList || "str-chat__virtual-list"
|
|
56439
56482
|
},
|
|
56440
|
-
/* @__PURE__ */
|
|
56483
|
+
/* @__PURE__ */ import_react257.default.createElement(
|
|
56441
56484
|
import_react_virtuoso2.Virtuoso,
|
|
56442
56485
|
{
|
|
56443
56486
|
atBottomStateChange,
|
|
@@ -56503,7 +56546,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56503
56546
|
...defaultItemHeight ? { defaultItemHeight } : {}
|
|
56504
56547
|
}
|
|
56505
56548
|
)
|
|
56506
|
-
)), TypingIndicator2 && /* @__PURE__ */
|
|
56549
|
+
)), TypingIndicator2 && /* @__PURE__ */ import_react257.default.createElement(TypingIndicator2, null)), /* @__PURE__ */ import_react257.default.createElement(
|
|
56507
56550
|
MessageListNotifications2,
|
|
56508
56551
|
{
|
|
56509
56552
|
hasNewMessages: newMessagesNotification,
|
|
@@ -56515,7 +56558,7 @@ var VirtualizedMessageListWithContext = (props) => {
|
|
|
56515
56558
|
threadList,
|
|
56516
56559
|
unreadCount: threadList ? void 0 : channelUnreadUiState?.unread_messages
|
|
56517
56560
|
}
|
|
56518
|
-
), giphyPreviewMessage && /* @__PURE__ */
|
|
56561
|
+
), giphyPreviewMessage && /* @__PURE__ */ import_react257.default.createElement(GiphyPreviewMessage2, { message: giphyPreviewMessage }));
|
|
56519
56562
|
};
|
|
56520
56563
|
function VirtualizedMessageList(props) {
|
|
56521
56564
|
const { jumpToLatestMessage, loadMore, loadMoreNewer } = useChannelActionContext("VirtualizedMessageList");
|
|
@@ -56533,7 +56576,7 @@ function VirtualizedMessageList(props) {
|
|
|
56533
56576
|
suppressAutoscroll
|
|
56534
56577
|
} = useChannelStateContext("VirtualizedMessageList");
|
|
56535
56578
|
const messages = props.messages || contextMessages;
|
|
56536
|
-
return /* @__PURE__ */
|
|
56579
|
+
return /* @__PURE__ */ import_react257.default.createElement(
|
|
56537
56580
|
VirtualizedMessageListWithContext,
|
|
56538
56581
|
{
|
|
56539
56582
|
channel,
|
|
@@ -56739,7 +56782,7 @@ var ChannelContainer = ({
|
|
|
56739
56782
|
customClasses
|
|
56740
56783
|
});
|
|
56741
56784
|
const className = (0, import_clsx65.default)(chatClass, theme, channelClass, additionalClassName);
|
|
56742
|
-
return /* @__PURE__ */
|
|
56785
|
+
return /* @__PURE__ */ import_react258.default.createElement("div", { id: CHANNEL_CONTAINER_ID, ...props, className }, children);
|
|
56743
56786
|
};
|
|
56744
56787
|
var UnMemoizedChannel = (props) => {
|
|
56745
56788
|
const {
|
|
@@ -56751,15 +56794,15 @@ var UnMemoizedChannel = (props) => {
|
|
|
56751
56794
|
const { channel: contextChannel, channelsQueryState } = useChatContext("Channel");
|
|
56752
56795
|
const channel = propsChannel || contextChannel;
|
|
56753
56796
|
if (channelsQueryState.queryInProgress === "reload" && LoadingIndicator2) {
|
|
56754
|
-
return /* @__PURE__ */
|
|
56797
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, /* @__PURE__ */ import_react258.default.createElement(LoadingIndicator2, null));
|
|
56755
56798
|
}
|
|
56756
56799
|
if (channelsQueryState.error && LoadingErrorIndicator2) {
|
|
56757
|
-
return /* @__PURE__ */
|
|
56800
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, /* @__PURE__ */ import_react258.default.createElement(LoadingErrorIndicator2, { error: channelsQueryState.error }));
|
|
56758
56801
|
}
|
|
56759
56802
|
if (!channel?.cid) {
|
|
56760
|
-
return /* @__PURE__ */
|
|
56803
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, EmptyPlaceholder2);
|
|
56761
56804
|
}
|
|
56762
|
-
return /* @__PURE__ */
|
|
56805
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelInner, { ...props, channel, key: channel.cid });
|
|
56763
56806
|
};
|
|
56764
56807
|
var ChannelInner = (props) => {
|
|
56765
56808
|
const {
|
|
@@ -56785,7 +56828,7 @@ var ChannelInner = (props) => {
|
|
|
56785
56828
|
optionalMessageInputProps = {},
|
|
56786
56829
|
skipMessageDataMemoization
|
|
56787
56830
|
} = props;
|
|
56788
|
-
const channelQueryOptions = (0,
|
|
56831
|
+
const channelQueryOptions = (0, import_react258.useMemo)(
|
|
56789
56832
|
() => (0, import_lodash23.default)(propChannelQueryOptions, {
|
|
56790
56833
|
messages: { limit: DEFAULT_INITIAL_CHANNEL_PAGE_SIZE }
|
|
56791
56834
|
}),
|
|
@@ -56796,13 +56839,13 @@ var ChannelInner = (props) => {
|
|
|
56796
56839
|
const chatContainerClass = getChatContainerClass(customClasses?.chatContainer);
|
|
56797
56840
|
const windowsEmojiClass = useImageFlagEmojisOnWindowsClass();
|
|
56798
56841
|
const thread = useThreadContext();
|
|
56799
|
-
const [channelConfig, setChannelConfig] = (0,
|
|
56800
|
-
const [notifications, setNotifications] = (0,
|
|
56801
|
-
const [quotedMessage, setQuotedMessage] = (0,
|
|
56802
|
-
const [channelUnreadUiState, _setChannelUnreadUiState] = (0,
|
|
56803
|
-
const notificationTimeouts = (0,
|
|
56804
|
-
const channelReducer = (0,
|
|
56805
|
-
const [state, dispatch] = (0,
|
|
56842
|
+
const [channelConfig, setChannelConfig] = (0, import_react258.useState)(channel.getConfig());
|
|
56843
|
+
const [notifications, setNotifications] = (0, import_react258.useState)([]);
|
|
56844
|
+
const [quotedMessage, setQuotedMessage] = (0, import_react258.useState)();
|
|
56845
|
+
const [channelUnreadUiState, _setChannelUnreadUiState] = (0, import_react258.useState)();
|
|
56846
|
+
const notificationTimeouts = (0, import_react258.useRef)([]);
|
|
56847
|
+
const channelReducer = (0, import_react258.useMemo)(() => makeChannelReducer(), []);
|
|
56848
|
+
const [state, dispatch] = (0, import_react258.useReducer)(
|
|
56806
56849
|
channelReducer,
|
|
56807
56850
|
// channel.initialized === false if client.channel().query() was not called, e.g. ChannelList is not used
|
|
56808
56851
|
// => Channel will call channel.watch() in useLayoutEffect => state.loading is used to signal the watch() call state
|
|
@@ -56814,10 +56857,10 @@ var ChannelInner = (props) => {
|
|
|
56814
56857
|
);
|
|
56815
56858
|
const jumpToMessageFromSearch = useSearchFocusedMessage();
|
|
56816
56859
|
const isMounted = useIsMounted();
|
|
56817
|
-
const originalTitle = (0,
|
|
56818
|
-
const lastRead = (0,
|
|
56819
|
-
const online = (0,
|
|
56820
|
-
const clearHighlightedMessageTimeoutId = (0,
|
|
56860
|
+
const originalTitle = (0, import_react258.useRef)("");
|
|
56861
|
+
const lastRead = (0, import_react258.useRef)(void 0);
|
|
56862
|
+
const online = (0, import_react258.useRef)(true);
|
|
56863
|
+
const clearHighlightedMessageTimeoutId = (0, import_react258.useRef)(
|
|
56821
56864
|
null
|
|
56822
56865
|
);
|
|
56823
56866
|
const channelCapabilitiesArray = channel.data?.own_capabilities;
|
|
@@ -56829,14 +56872,14 @@ var ChannelInner = (props) => {
|
|
|
56829
56872
|
trailing: true
|
|
56830
56873
|
}
|
|
56831
56874
|
);
|
|
56832
|
-
const setChannelUnreadUiState = (0,
|
|
56875
|
+
const setChannelUnreadUiState = (0, import_react258.useMemo)(
|
|
56833
56876
|
() => (0, import_lodash24.default)(_setChannelUnreadUiState, 200, {
|
|
56834
56877
|
leading: true,
|
|
56835
56878
|
trailing: false
|
|
56836
56879
|
}),
|
|
56837
56880
|
[]
|
|
56838
56881
|
);
|
|
56839
|
-
const markRead = (0,
|
|
56882
|
+
const markRead = (0, import_react258.useMemo)(
|
|
56840
56883
|
() => (0, import_lodash24.default)(
|
|
56841
56884
|
async (options) => {
|
|
56842
56885
|
const { updateChannelUiUnreadState = true } = options ?? {};
|
|
@@ -56939,7 +56982,7 @@ var ChannelInner = (props) => {
|
|
|
56939
56982
|
}
|
|
56940
56983
|
throttledCopyStateFromChannel();
|
|
56941
56984
|
};
|
|
56942
|
-
(0,
|
|
56985
|
+
(0, import_react258.useLayoutEffect)(() => {
|
|
56943
56986
|
let errored = false;
|
|
56944
56987
|
let done = false;
|
|
56945
56988
|
(async () => {
|
|
@@ -57005,12 +57048,12 @@ var ChannelInner = (props) => {
|
|
|
57005
57048
|
channelConfig?.read_events,
|
|
57006
57049
|
initializeOnMount
|
|
57007
57050
|
]);
|
|
57008
|
-
(0,
|
|
57051
|
+
(0, import_react258.useEffect)(() => {
|
|
57009
57052
|
if (!state.thread) return;
|
|
57010
57053
|
const message = state.messages?.find((m) => m.id === state.thread?.id);
|
|
57011
57054
|
if (message) dispatch({ message, type: "setThread" });
|
|
57012
57055
|
}, [state.messages, state.thread]);
|
|
57013
|
-
const handleHighlightedMessageChange = (0,
|
|
57056
|
+
const handleHighlightedMessageChange = (0, import_react258.useCallback)(
|
|
57014
57057
|
({
|
|
57015
57058
|
highlightDuration,
|
|
57016
57059
|
highlightedMessageId
|
|
@@ -57033,15 +57076,15 @@ var ChannelInner = (props) => {
|
|
|
57033
57076
|
},
|
|
57034
57077
|
[channel, searchController]
|
|
57035
57078
|
);
|
|
57036
|
-
(0,
|
|
57079
|
+
(0, import_react258.useEffect)(() => {
|
|
57037
57080
|
if (!jumpToMessageFromSearch?.id) return;
|
|
57038
57081
|
handleHighlightedMessageChange({ highlightedMessageId: jumpToMessageFromSearch.id });
|
|
57039
57082
|
}, [jumpToMessageFromSearch, handleHighlightedMessageChange]);
|
|
57040
|
-
const addNotification = (0,
|
|
57083
|
+
const addNotification = (0, import_react258.useMemo)(
|
|
57041
57084
|
() => makeAddNotifications(setNotifications, notificationTimeouts.current),
|
|
57042
57085
|
[]
|
|
57043
57086
|
);
|
|
57044
|
-
const loadMoreFinished = (0,
|
|
57087
|
+
const loadMoreFinished = (0, import_react258.useCallback)(
|
|
57045
57088
|
(0, import_lodash22.default)(
|
|
57046
57089
|
(hasMore, messages) => {
|
|
57047
57090
|
if (!isMounted.current) return;
|
|
@@ -57102,7 +57145,7 @@ var ChannelInner = (props) => {
|
|
|
57102
57145
|
});
|
|
57103
57146
|
return queryResponse.messages.length;
|
|
57104
57147
|
};
|
|
57105
|
-
const jumpToMessage = (0,
|
|
57148
|
+
const jumpToMessage = (0, import_react258.useCallback)(
|
|
57106
57149
|
async (messageId, messageLimit = DEFAULT_JUMP_TO_PAGE_SIZE, highlightDuration = DEFAULT_HIGHLIGHT_DURATION) => {
|
|
57107
57150
|
dispatch({ loadingMore: true, type: "setLoadingMore" });
|
|
57108
57151
|
await channel.state.loadMessageIntoState(messageId, void 0, messageLimit);
|
|
@@ -57114,14 +57157,14 @@ var ChannelInner = (props) => {
|
|
|
57114
57157
|
},
|
|
57115
57158
|
[channel, handleHighlightedMessageChange, loadMoreFinished]
|
|
57116
57159
|
);
|
|
57117
|
-
const jumpToLatestMessage = (0,
|
|
57160
|
+
const jumpToLatestMessage = (0, import_react258.useCallback)(async () => {
|
|
57118
57161
|
await channel.state.loadMessageIntoState("latest");
|
|
57119
57162
|
loadMoreFinished(channel.state.messagePagination.hasPrev, channel.state.messages);
|
|
57120
57163
|
dispatch({
|
|
57121
57164
|
type: "jumpToLatestMessage"
|
|
57122
57165
|
});
|
|
57123
57166
|
}, [channel, loadMoreFinished]);
|
|
57124
|
-
const jumpToFirstUnreadMessage = (0,
|
|
57167
|
+
const jumpToFirstUnreadMessage = (0, import_react258.useCallback)(
|
|
57125
57168
|
async (queryMessageLimit = DEFAULT_JUMP_TO_PAGE_SIZE, highlightDuration = DEFAULT_HIGHLIGHT_DURATION) => {
|
|
57126
57169
|
if (!channelUnreadUiState?.unread_messages) return;
|
|
57127
57170
|
let lastReadMessageId = channelUnreadUiState?.last_read_message_id;
|
|
@@ -57244,7 +57287,7 @@ var ChannelInner = (props) => {
|
|
|
57244
57287
|
channelUnreadUiState
|
|
57245
57288
|
]
|
|
57246
57289
|
);
|
|
57247
|
-
const deleteMessage = (0,
|
|
57290
|
+
const deleteMessage = (0, import_react258.useCallback)(
|
|
57248
57291
|
async (message) => {
|
|
57249
57292
|
if (!message?.id) {
|
|
57250
57293
|
throw new Error("Cannot delete a message - missing message ID.");
|
|
@@ -57401,7 +57444,7 @@ var ChannelInner = (props) => {
|
|
|
57401
57444
|
event?.preventDefault();
|
|
57402
57445
|
dispatch({ type: "closeThread" });
|
|
57403
57446
|
};
|
|
57404
|
-
const loadMoreThreadFinished = (0,
|
|
57447
|
+
const loadMoreThreadFinished = (0, import_react258.useCallback)(
|
|
57405
57448
|
(0, import_lodash22.default)(
|
|
57406
57449
|
(threadHasMore, threadMessages) => {
|
|
57407
57450
|
dispatch({
|
|
@@ -57465,7 +57508,7 @@ var ChannelInner = (props) => {
|
|
|
57465
57508
|
videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration,
|
|
57466
57509
|
watcher_count: state.watcherCount
|
|
57467
57510
|
});
|
|
57468
|
-
const channelActionContextValue = (0,
|
|
57511
|
+
const channelActionContextValue = (0, import_react258.useMemo)(
|
|
57469
57512
|
() => ({
|
|
57470
57513
|
addNotification,
|
|
57471
57514
|
closeThread,
|
|
@@ -57506,7 +57549,7 @@ var ChannelInner = (props) => {
|
|
|
57506
57549
|
setChannelUnreadUiState
|
|
57507
57550
|
]
|
|
57508
57551
|
);
|
|
57509
|
-
const componentContextValue = (0,
|
|
57552
|
+
const componentContextValue = (0, import_react258.useMemo)(
|
|
57510
57553
|
() => ({
|
|
57511
57554
|
Attachment: props.Attachment,
|
|
57512
57555
|
AttachmentPreviewList: props.AttachmentPreviewList,
|
|
@@ -57638,26 +57681,26 @@ var ChannelInner = (props) => {
|
|
|
57638
57681
|
typing
|
|
57639
57682
|
});
|
|
57640
57683
|
if (state.error) {
|
|
57641
|
-
return /* @__PURE__ */
|
|
57684
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, /* @__PURE__ */ import_react258.default.createElement(LoadingErrorIndicator2, { error: state.error }));
|
|
57642
57685
|
}
|
|
57643
57686
|
if (state.loading) {
|
|
57644
|
-
return /* @__PURE__ */
|
|
57687
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, /* @__PURE__ */ import_react258.default.createElement(LoadingIndicator2, null));
|
|
57645
57688
|
}
|
|
57646
57689
|
if (!channel.watch) {
|
|
57647
|
-
return /* @__PURE__ */
|
|
57690
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, null, /* @__PURE__ */ import_react258.default.createElement("div", null, t2("Channel Missing")));
|
|
57648
57691
|
}
|
|
57649
|
-
return /* @__PURE__ */
|
|
57692
|
+
return /* @__PURE__ */ import_react258.default.createElement(ChannelContainer, { className: windowsEmojiClass }, /* @__PURE__ */ import_react258.default.createElement(ChannelStateProvider, { value: channelStateContextValue }, /* @__PURE__ */ import_react258.default.createElement(ChannelActionProvider, { value: channelActionContextValue }, /* @__PURE__ */ import_react258.default.createElement(WithComponents, { overrides: componentContextValue }, /* @__PURE__ */ import_react258.default.createElement(TypingProvider, { value: typingContextValue }, /* @__PURE__ */ import_react258.default.createElement("div", { className: `${chatContainerClass}` }, dragAndDropWindow && /* @__PURE__ */ import_react258.default.createElement(DropzoneProvider, { ...optionalMessageInputProps }, children), !dragAndDropWindow && /* @__PURE__ */ import_react258.default.createElement(import_react258.default.Fragment, null, children)))))));
|
|
57650
57693
|
};
|
|
57651
|
-
var Channel =
|
|
57694
|
+
var Channel = import_react258.default.memo(UnMemoizedChannel);
|
|
57652
57695
|
|
|
57653
57696
|
// src/components/ChannelHeader/ChannelHeader.tsx
|
|
57654
|
-
var
|
|
57697
|
+
var import_react260 = __toESM(require("react"));
|
|
57655
57698
|
|
|
57656
57699
|
// src/components/ChannelHeader/icons.tsx
|
|
57657
|
-
var
|
|
57700
|
+
var import_react259 = __toESM(require("react"));
|
|
57658
57701
|
var MenuIcon2 = ({ title }) => {
|
|
57659
57702
|
const { t: t2 } = useTranslationContext("MenuIcon");
|
|
57660
|
-
return /* @__PURE__ */
|
|
57703
|
+
return /* @__PURE__ */ import_react259.default.createElement("svg", { "data-testid": "menu-icon", viewBox: "0 0 448 512", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react259.default.createElement("title", null, title ?? t2("Menu")), /* @__PURE__ */ import_react259.default.createElement(
|
|
57661
57704
|
"path",
|
|
57662
57705
|
{
|
|
57663
57706
|
d: "M0 88C0 74.75 10.75 64 24 64H424C437.3 64 448 74.75 448 88C448 101.3 437.3 112 424 112H24C10.75 112 0 101.3 0 88zM0 248C0 234.7 10.75 224 24 224H424C437.3 224 448 234.7 448 248C448 261.3 437.3 272 424 272H24C10.75 272 0 261.3 0 248zM424 432H24C10.75 432 0 421.3 0 408C0 394.7 10.75 384 24 384H424C437.3 384 448 394.7 448 408C448 421.3 437.3 432 424 432z",
|
|
@@ -57684,15 +57727,15 @@ var ChannelHeader = (props) => {
|
|
|
57684
57727
|
overrideTitle
|
|
57685
57728
|
});
|
|
57686
57729
|
const { member_count, subtitle } = channel?.data || {};
|
|
57687
|
-
return /* @__PURE__ */
|
|
57730
|
+
return /* @__PURE__ */ import_react260.default.createElement("div", { className: "str-chat__channel-header" }, /* @__PURE__ */ import_react260.default.createElement(
|
|
57688
57731
|
"button",
|
|
57689
57732
|
{
|
|
57690
57733
|
"aria-label": t2("aria/Menu"),
|
|
57691
57734
|
className: "str-chat__header-hamburger",
|
|
57692
57735
|
onClick: openMobileNav
|
|
57693
57736
|
},
|
|
57694
|
-
/* @__PURE__ */
|
|
57695
|
-
), /* @__PURE__ */
|
|
57737
|
+
/* @__PURE__ */ import_react260.default.createElement(MenuIcon3, null)
|
|
57738
|
+
), /* @__PURE__ */ import_react260.default.createElement(
|
|
57696
57739
|
Avatar2,
|
|
57697
57740
|
{
|
|
57698
57741
|
className: "str-chat__avatar--channel-header",
|
|
@@ -57700,36 +57743,36 @@ var ChannelHeader = (props) => {
|
|
|
57700
57743
|
image: displayImage,
|
|
57701
57744
|
name: displayTitle
|
|
57702
57745
|
}
|
|
57703
|
-
), /* @__PURE__ */
|
|
57746
|
+
), /* @__PURE__ */ import_react260.default.createElement("div", { className: "str-chat__channel-header-end" }, /* @__PURE__ */ import_react260.default.createElement("p", { className: "str-chat__channel-header-title" }, displayTitle, " ", live && /* @__PURE__ */ import_react260.default.createElement("span", { className: "str-chat__header-livestream-livelabel" }, t2("live"))), subtitle && /* @__PURE__ */ import_react260.default.createElement("p", { className: "str-chat__channel-header-subtitle" }, subtitle), /* @__PURE__ */ import_react260.default.createElement("p", { className: "str-chat__channel-header-info" }, !live && !!member_count && member_count > 0 && /* @__PURE__ */ import_react260.default.createElement(import_react260.default.Fragment, null, t2("{{ memberCount }} members", {
|
|
57704
57747
|
memberCount: member_count
|
|
57705
57748
|
}), ",", " "), t2("{{ watcherCount }} online", { watcherCount: watcher_count }))));
|
|
57706
57749
|
};
|
|
57707
57750
|
|
|
57708
57751
|
// src/components/Chat/Chat.tsx
|
|
57709
|
-
var
|
|
57752
|
+
var import_react264 = __toESM(require("react"));
|
|
57710
57753
|
var import_stream_chat6 = require("stream-chat");
|
|
57711
57754
|
|
|
57712
57755
|
// src/components/Chat/hooks/useChat.ts
|
|
57713
|
-
var
|
|
57756
|
+
var import_react261 = require("react");
|
|
57714
57757
|
var useChat = ({
|
|
57715
57758
|
client,
|
|
57716
57759
|
defaultLanguage = "en",
|
|
57717
57760
|
i18nInstance,
|
|
57718
57761
|
initialNavOpen
|
|
57719
57762
|
}) => {
|
|
57720
|
-
const [translators, setTranslators] = (0,
|
|
57763
|
+
const [translators, setTranslators] = (0, import_react261.useState)({
|
|
57721
57764
|
t: (key) => key,
|
|
57722
57765
|
tDateTimeParser: defaultDateTimeParser,
|
|
57723
57766
|
userLanguage: "en"
|
|
57724
57767
|
});
|
|
57725
|
-
const [channel, setChannel] = (0,
|
|
57726
|
-
const [mutes, setMutes] = (0,
|
|
57727
|
-
const [navOpen, setNavOpen] = (0,
|
|
57728
|
-
const [latestMessageDatesByChannels, setLatestMessageDatesByChannels] = (0,
|
|
57768
|
+
const [channel, setChannel] = (0, import_react261.useState)();
|
|
57769
|
+
const [mutes, setMutes] = (0, import_react261.useState)([]);
|
|
57770
|
+
const [navOpen, setNavOpen] = (0, import_react261.useState)(initialNavOpen);
|
|
57771
|
+
const [latestMessageDatesByChannels, setLatestMessageDatesByChannels] = (0, import_react261.useState)({});
|
|
57729
57772
|
const clientMutes = client.user?.mutes || [];
|
|
57730
57773
|
const closeMobileNav = () => setNavOpen(false);
|
|
57731
57774
|
const openMobileNav = () => setTimeout(() => setNavOpen(true), 100);
|
|
57732
|
-
const appSettings = (0,
|
|
57775
|
+
const appSettings = (0, import_react261.useRef)(
|
|
57733
57776
|
null
|
|
57734
57777
|
);
|
|
57735
57778
|
const getAppSettings = () => {
|
|
@@ -57739,9 +57782,9 @@ var useChat = ({
|
|
|
57739
57782
|
appSettings.current = client.getAppSettings();
|
|
57740
57783
|
return appSettings.current;
|
|
57741
57784
|
};
|
|
57742
|
-
(0,
|
|
57785
|
+
(0, import_react261.useEffect)(() => {
|
|
57743
57786
|
if (!client) return;
|
|
57744
|
-
const version = "12.
|
|
57787
|
+
const version = "12.15.1";
|
|
57745
57788
|
const userAgent = client.getUserAgent();
|
|
57746
57789
|
if (!userAgent.includes("stream-chat-react")) {
|
|
57747
57790
|
client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);
|
|
@@ -57753,7 +57796,7 @@ var useChat = ({
|
|
|
57753
57796
|
client.polls.unregisterSubscriptions();
|
|
57754
57797
|
};
|
|
57755
57798
|
}, [client]);
|
|
57756
|
-
(0,
|
|
57799
|
+
(0, import_react261.useEffect)(() => {
|
|
57757
57800
|
setMutes(clientMutes);
|
|
57758
57801
|
const handleEvent = (event) => {
|
|
57759
57802
|
setMutes(event.me?.mutes || []);
|
|
@@ -57761,7 +57804,7 @@ var useChat = ({
|
|
|
57761
57804
|
client.on("notification.mutes_updated", handleEvent);
|
|
57762
57805
|
return () => client.off("notification.mutes_updated", handleEvent);
|
|
57763
57806
|
}, [clientMutes?.length]);
|
|
57764
|
-
(0,
|
|
57807
|
+
(0, import_react261.useEffect)(() => {
|
|
57765
57808
|
let userLanguage = client.user?.language;
|
|
57766
57809
|
if (!userLanguage) {
|
|
57767
57810
|
const browserLanguage = window.navigator.language.slice(0, 2);
|
|
@@ -57778,7 +57821,7 @@ var useChat = ({
|
|
|
57778
57821
|
});
|
|
57779
57822
|
});
|
|
57780
57823
|
}, [i18nInstance]);
|
|
57781
|
-
const setActiveChannel = (0,
|
|
57824
|
+
const setActiveChannel = (0, import_react261.useCallback)(
|
|
57782
57825
|
async (activeChannel, watchers = {}, event) => {
|
|
57783
57826
|
if (event && event.preventDefault) event.preventDefault();
|
|
57784
57827
|
if (activeChannel && Object.keys(watchers).length) {
|
|
@@ -57789,7 +57832,7 @@ var useChat = ({
|
|
|
57789
57832
|
},
|
|
57790
57833
|
[]
|
|
57791
57834
|
);
|
|
57792
|
-
(0,
|
|
57835
|
+
(0, import_react261.useEffect)(() => {
|
|
57793
57836
|
setLatestMessageDatesByChannels({});
|
|
57794
57837
|
}, [client.user?.id]);
|
|
57795
57838
|
return {
|
|
@@ -57806,7 +57849,7 @@ var useChat = ({
|
|
|
57806
57849
|
};
|
|
57807
57850
|
|
|
57808
57851
|
// src/components/Chat/hooks/useCreateChatContext.ts
|
|
57809
|
-
var
|
|
57852
|
+
var import_react262 = require("react");
|
|
57810
57853
|
var useCreateChatContext = (value) => {
|
|
57811
57854
|
const {
|
|
57812
57855
|
channel,
|
|
@@ -57831,7 +57874,7 @@ var useCreateChatContext = (value) => {
|
|
|
57831
57874
|
const clientValues = `${client.clientID}${Object.keys(client.activeChannels).length}${Object.keys(client.listeners).length}${client.mutedChannels.length}
|
|
57832
57875
|
${client.user?.id}`;
|
|
57833
57876
|
const mutedUsersLength = mutes.length;
|
|
57834
|
-
const chatContext = (0,
|
|
57877
|
+
const chatContext = (0, import_react262.useMemo)(
|
|
57835
57878
|
() => ({
|
|
57836
57879
|
channel,
|
|
57837
57880
|
channelsQueryState,
|
|
@@ -57866,10 +57909,10 @@ var useCreateChatContext = (value) => {
|
|
|
57866
57909
|
};
|
|
57867
57910
|
|
|
57868
57911
|
// src/components/Chat/hooks/useChannelsQueryState.ts
|
|
57869
|
-
var
|
|
57912
|
+
var import_react263 = require("react");
|
|
57870
57913
|
var useChannelsQueryState = () => {
|
|
57871
|
-
const [error, setError] = (0,
|
|
57872
|
-
const [queryInProgress, setQueryInProgress] = (0,
|
|
57914
|
+
const [error, setError] = (0, import_react263.useState)(null);
|
|
57915
|
+
const [queryInProgress, setQueryInProgress] = (0, import_react263.useState)("uninitialized");
|
|
57873
57916
|
return {
|
|
57874
57917
|
error,
|
|
57875
57918
|
queryInProgress,
|
|
@@ -57904,7 +57947,7 @@ var Chat = (props) => {
|
|
|
57904
57947
|
translators
|
|
57905
57948
|
} = useChat({ client, defaultLanguage, i18nInstance, initialNavOpen });
|
|
57906
57949
|
const channelsQueryState = useChannelsQueryState();
|
|
57907
|
-
const searchController = (0,
|
|
57950
|
+
const searchController = (0, import_react264.useMemo)(
|
|
57908
57951
|
() => customChannelSearchController ?? new import_stream_chat6.SearchController({
|
|
57909
57952
|
sources: [
|
|
57910
57953
|
new import_stream_chat6.ChannelSearchSource(client),
|
|
@@ -57932,11 +57975,11 @@ var Chat = (props) => {
|
|
|
57932
57975
|
useImageFlagEmojisOnWindows
|
|
57933
57976
|
});
|
|
57934
57977
|
if (!translators.t) return null;
|
|
57935
|
-
return /* @__PURE__ */
|
|
57978
|
+
return /* @__PURE__ */ import_react264.default.createElement(ChatProvider, { value: chatContextValue }, /* @__PURE__ */ import_react264.default.createElement(TranslationProvider, { value: translators }, children));
|
|
57936
57979
|
};
|
|
57937
57980
|
|
|
57938
57981
|
// src/components/Chat/hooks/useCreateChatClient.ts
|
|
57939
|
-
var
|
|
57982
|
+
var import_react265 = require("react");
|
|
57940
57983
|
var import_stream_chat7 = require("stream-chat");
|
|
57941
57984
|
var useCreateChatClient = ({
|
|
57942
57985
|
apiKey,
|
|
@@ -57944,13 +57987,13 @@ var useCreateChatClient = ({
|
|
|
57944
57987
|
tokenOrProvider,
|
|
57945
57988
|
userData
|
|
57946
57989
|
}) => {
|
|
57947
|
-
const [chatClient, setChatClient] = (0,
|
|
57948
|
-
const [cachedUserData, setCachedUserData] = (0,
|
|
57990
|
+
const [chatClient, setChatClient] = (0, import_react265.useState)(null);
|
|
57991
|
+
const [cachedUserData, setCachedUserData] = (0, import_react265.useState)(userData);
|
|
57949
57992
|
if (userData.id !== cachedUserData.id) {
|
|
57950
57993
|
setCachedUserData(userData);
|
|
57951
57994
|
}
|
|
57952
|
-
const [cachedOptions] = (0,
|
|
57953
|
-
(0,
|
|
57995
|
+
const [cachedOptions] = (0, import_react265.useState)(options);
|
|
57996
|
+
(0, import_react265.useEffect)(() => {
|
|
57954
57997
|
const client = new import_stream_chat7.StreamChat(apiKey, void 0, cachedOptions);
|
|
57955
57998
|
let didUserConnectInterrupt = false;
|
|
57956
57999
|
const connectionPromise = client.connectUser(cachedUserData, tokenOrProvider).then(() => {
|
|
@@ -57968,17 +58011,17 @@ var useCreateChatClient = ({
|
|
|
57968
58011
|
};
|
|
57969
58012
|
|
|
57970
58013
|
// src/components/Thread/Thread.tsx
|
|
57971
|
-
var
|
|
58014
|
+
var import_react270 = __toESM(require("react"));
|
|
57972
58015
|
var import_clsx66 = __toESM(require("clsx"));
|
|
57973
58016
|
|
|
57974
58017
|
// src/components/Thread/ThreadHeader.tsx
|
|
57975
|
-
var
|
|
58018
|
+
var import_react267 = __toESM(require("react"));
|
|
57976
58019
|
|
|
57977
58020
|
// src/components/Thread/icons.tsx
|
|
57978
|
-
var
|
|
58021
|
+
var import_react266 = __toESM(require("react"));
|
|
57979
58022
|
var CloseIcon3 = ({ title }) => {
|
|
57980
58023
|
const { t: t2 } = useTranslationContext("CloseIcon");
|
|
57981
|
-
return /* @__PURE__ */
|
|
58024
|
+
return /* @__PURE__ */ import_react266.default.createElement(
|
|
57982
58025
|
"svg",
|
|
57983
58026
|
{
|
|
57984
58027
|
"data-testid": "close-no-outline",
|
|
@@ -57986,8 +58029,8 @@ var CloseIcon3 = ({ title }) => {
|
|
|
57986
58029
|
viewBox: "0 0 24 24",
|
|
57987
58030
|
xmlns: "http://www.w3.org/2000/svg"
|
|
57988
58031
|
},
|
|
57989
|
-
/* @__PURE__ */
|
|
57990
|
-
/* @__PURE__ */
|
|
58032
|
+
/* @__PURE__ */ import_react266.default.createElement("title", null, title ?? t2("Close")),
|
|
58033
|
+
/* @__PURE__ */ import_react266.default.createElement(
|
|
57991
58034
|
"path",
|
|
57992
58035
|
{
|
|
57993
58036
|
d: "M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z",
|
|
@@ -58007,7 +58050,7 @@ var ThreadHeader = (props) => {
|
|
|
58007
58050
|
overrideImage,
|
|
58008
58051
|
overrideTitle
|
|
58009
58052
|
});
|
|
58010
|
-
return /* @__PURE__ */
|
|
58053
|
+
return /* @__PURE__ */ import_react267.default.createElement("div", { className: "str-chat__thread-header" }, /* @__PURE__ */ import_react267.default.createElement("div", { className: "str-chat__thread-header-details" }, /* @__PURE__ */ import_react267.default.createElement("div", { className: "str-chat__thread-header-title" }, t2("Thread")), /* @__PURE__ */ import_react267.default.createElement("div", { className: "str-chat__thread-header-subtitle" }, displayTitle)), /* @__PURE__ */ import_react267.default.createElement(
|
|
58011
58054
|
"button",
|
|
58012
58055
|
{
|
|
58013
58056
|
"aria-label": t2("aria/Close thread"),
|
|
@@ -58015,26 +58058,26 @@ var ThreadHeader = (props) => {
|
|
|
58015
58058
|
"data-testid": "close-button",
|
|
58016
58059
|
onClick: closeThread
|
|
58017
58060
|
},
|
|
58018
|
-
/* @__PURE__ */
|
|
58061
|
+
/* @__PURE__ */ import_react267.default.createElement(CloseIcon3, null)
|
|
58019
58062
|
));
|
|
58020
58063
|
};
|
|
58021
58064
|
|
|
58022
58065
|
// src/components/Thread/ThreadHead.tsx
|
|
58023
|
-
var
|
|
58066
|
+
var import_react269 = __toESM(require("react"));
|
|
58024
58067
|
|
|
58025
58068
|
// src/components/Thread/ThreadStart.tsx
|
|
58026
|
-
var
|
|
58069
|
+
var import_react268 = __toESM(require("react"));
|
|
58027
58070
|
var ThreadStart = () => {
|
|
58028
58071
|
const { thread } = useChannelStateContext("ThreadStart");
|
|
58029
58072
|
const { t: t2 } = useTranslationContext("ThreadStart");
|
|
58030
58073
|
if (!thread?.reply_count) return null;
|
|
58031
|
-
return /* @__PURE__ */
|
|
58074
|
+
return /* @__PURE__ */ import_react268.default.createElement("div", { className: "str-chat__thread-start" }, t2("replyCount", { count: thread.reply_count }));
|
|
58032
58075
|
};
|
|
58033
58076
|
|
|
58034
58077
|
// src/components/Thread/ThreadHead.tsx
|
|
58035
58078
|
var ThreadHead = (props) => {
|
|
58036
58079
|
const { ThreadStart: ThreadStart2 = ThreadStart } = useComponentContext("ThreadHead");
|
|
58037
|
-
return /* @__PURE__ */
|
|
58080
|
+
return /* @__PURE__ */ import_react269.default.createElement("div", { className: "str-chat__parent-message-li" }, /* @__PURE__ */ import_react269.default.createElement(Message, { initialMessage: true, threadList: true, ...props }), /* @__PURE__ */ import_react269.default.createElement(ThreadStart2, null));
|
|
58038
58081
|
};
|
|
58039
58082
|
|
|
58040
58083
|
// src/components/Thread/Thread.tsx
|
|
@@ -58044,7 +58087,7 @@ var Thread = (props) => {
|
|
|
58044
58087
|
if (!thread && !threadInstance || channelConfig?.replies === false) return null;
|
|
58045
58088
|
return (
|
|
58046
58089
|
// FIXME: TS is having trouble here as at least one of the two would always be defined
|
|
58047
|
-
/* @__PURE__ */
|
|
58090
|
+
/* @__PURE__ */ import_react270.default.createElement(
|
|
58048
58091
|
ThreadInner,
|
|
58049
58092
|
{
|
|
58050
58093
|
...props,
|
|
@@ -58095,7 +58138,7 @@ var ThreadInner = (props) => {
|
|
|
58095
58138
|
const FallbackMessage = virtualized && VirtualMessage ? VirtualMessage : ContextMessage;
|
|
58096
58139
|
const MessageUIComponent = ThreadMessage || FallbackMessage;
|
|
58097
58140
|
const ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
|
|
58098
|
-
(0,
|
|
58141
|
+
(0, import_react270.useEffect)(() => {
|
|
58099
58142
|
if (thread?.id && thread?.reply_count) {
|
|
58100
58143
|
loadMoreThread();
|
|
58101
58144
|
}
|
|
@@ -58117,7 +58160,7 @@ var ThreadInner = (props) => {
|
|
|
58117
58160
|
const threadClass = customClasses?.thread || (0, import_clsx66.default)("str-chat__thread-container str-chat__thread", {
|
|
58118
58161
|
"str-chat__thread--virtualized": virtualized
|
|
58119
58162
|
});
|
|
58120
|
-
const head = /* @__PURE__ */
|
|
58163
|
+
const head = /* @__PURE__ */ import_react270.default.createElement(
|
|
58121
58164
|
ThreadHead2,
|
|
58122
58165
|
{
|
|
58123
58166
|
key: messageAsThread.id,
|
|
@@ -58126,7 +58169,7 @@ var ThreadInner = (props) => {
|
|
|
58126
58169
|
...additionalParentMessageProps
|
|
58127
58170
|
}
|
|
58128
58171
|
);
|
|
58129
|
-
return /* @__PURE__ */
|
|
58172
|
+
return /* @__PURE__ */ import_react270.default.createElement("div", { className: threadClass }, /* @__PURE__ */ import_react270.default.createElement(ThreadHeader2, { closeThread, thread: messageAsThread }), /* @__PURE__ */ import_react270.default.createElement(
|
|
58130
58173
|
ThreadMessageList,
|
|
58131
58174
|
{
|
|
58132
58175
|
disableDateSeparator: !enableDateSeparator,
|
|
@@ -58138,7 +58181,7 @@ var ThreadInner = (props) => {
|
|
|
58138
58181
|
...threadProps,
|
|
58139
58182
|
...virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps
|
|
58140
58183
|
}
|
|
58141
|
-
), /* @__PURE__ */
|
|
58184
|
+
), /* @__PURE__ */ import_react270.default.createElement(
|
|
58142
58185
|
MessageInput,
|
|
58143
58186
|
{
|
|
58144
58187
|
focus: autoFocus,
|
|
@@ -58152,12 +58195,12 @@ var ThreadInner = (props) => {
|
|
|
58152
58195
|
};
|
|
58153
58196
|
|
|
58154
58197
|
// src/components/Window/Window.tsx
|
|
58155
|
-
var
|
|
58198
|
+
var import_react271 = __toESM(require("react"));
|
|
58156
58199
|
var import_clsx67 = __toESM(require("clsx"));
|
|
58157
58200
|
var UnMemoizedWindow = (props) => {
|
|
58158
58201
|
const { children, thread: propThread } = props;
|
|
58159
58202
|
const { thread: contextThread } = useChannelStateContext("Window");
|
|
58160
|
-
return /* @__PURE__ */
|
|
58203
|
+
return /* @__PURE__ */ import_react271.default.createElement(
|
|
58161
58204
|
"div",
|
|
58162
58205
|
{
|
|
58163
58206
|
className: (0, import_clsx67.default)("str-chat__main-panel", {
|
|
@@ -58167,7 +58210,7 @@ var UnMemoizedWindow = (props) => {
|
|
|
58167
58210
|
children
|
|
58168
58211
|
);
|
|
58169
58212
|
};
|
|
58170
|
-
var Window =
|
|
58213
|
+
var Window = import_react271.default.memo(UnMemoizedWindow);
|
|
58171
58214
|
// Annotate the CommonJS export names for ESM import in node:
|
|
58172
58215
|
0 && (module.exports = {
|
|
58173
58216
|
ACTIONS_NOT_WORKING_IN_THREAD,
|
|
@@ -58374,6 +58417,7 @@ var Window = import_react270.default.memo(UnMemoizedWindow);
|
|
|
58374
58417
|
WaveProgressBar,
|
|
58375
58418
|
Window,
|
|
58376
58419
|
WithComponents,
|
|
58420
|
+
WithDragAndDropUpload,
|
|
58377
58421
|
areMessagePropsEqual,
|
|
58378
58422
|
areMessageUIPropsEqual,
|
|
58379
58423
|
attachmentTypeIconMap,
|