stream-chat-react 12.12.0 → 12.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChannelList/ChannelList.d.ts +2 -2
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +4 -4
- package/dist/components/ChannelPreview/utils.d.ts +2 -2
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/Message/QuotedMessage.d.ts +3 -1
- package/dist/components/Message/QuotedMessage.js +14 -11
- package/dist/components/Message/types.d.ts +2 -2
- package/dist/components/MessageInput/MessageInputFlat.js +2 -1
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +3 -1
- package/dist/components/MessageInput/QuotedMessagePreview.js +4 -3
- package/dist/components/MessageList/utils.js +3 -0
- package/dist/context/MessageContext.d.ts +2 -2
- package/dist/css/v2/emoji-mart.css +1 -1
- package/dist/css/v2/index.css +1 -3
- package/dist/css/v2/index.layout.css +1 -3
- package/dist/experimental/index.browser.cjs.map +2 -2
- package/dist/experimental/index.node.cjs.map +2 -2
- package/dist/index.browser.cjs +449 -428
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +337 -316
- package/dist/index.node.cjs.map +4 -4
- package/dist/scss/v2/Channel/Channel-layout.scss +2 -1
- package/dist/scss/v2/Message/Message-layout.scss +1 -1
- package/dist/scss/v2/Message/Message-theme.scss +5 -5
- package/dist/scss/v2/vendor/react-image-gallery.scss +3 -1
- package/package.json +8 -8
package/dist/index.browser.cjs
CHANGED
|
@@ -16187,10 +16187,10 @@ function Parse(source, customConvertors) {
|
|
|
16187
16187
|
var XMLNodes = SourceToXML(source);
|
|
16188
16188
|
return XMLtoMMLTree(XMLNodes, customConvertors);
|
|
16189
16189
|
}
|
|
16190
|
-
var
|
|
16190
|
+
var import_react206, import_parse_xml, import_dayjs4, import_sanitize_url4, import_react_markdown3, import_linkifyjs3, import_ical_expander, import_react_virtuoso2, import_isBetween, runtime_1, MMLTag, Card2, Icon3, CardHeader2, CardBody, ButtonList, SvgIcon, IconGoogle, IconMicrosoft, IconApple, isIE, getCurrentURL, CALENDAR_SERVICES, AddToCalendar, Button, Carousel, CarouselItem, Col, Error$1, Image2, Input, SIZE, Progress, Loading, truncate, matchMarkdownLinks2, MDLinkRender, markDownRenderers2, allowedMarkups, MD, Number2, Row, ITEMS_PER_PAGE, VERTICAL_COMPENSATION, INITIAL_INDEX, VIRTUOSO_START_INDEX, DatePickerSelect, getItemData, DatePickerDate, getItemData$1, DatePickerTime, DatePicker, setupIcalFilter, Scheduler, Success, Text, converters, Tree, MML;
|
|
16191
16191
|
var init_mml_react_esm = __esm({
|
|
16192
16192
|
"node_modules/mml-react/dist/mml-react.esm.js"() {
|
|
16193
|
-
|
|
16193
|
+
import_react206 = __toESM(require("react"));
|
|
16194
16194
|
import_parse_xml = __toESM(require_src());
|
|
16195
16195
|
import_dayjs4 = __toESM(require("dayjs"));
|
|
16196
16196
|
import_sanitize_url4 = require("@braintree/sanitize-url");
|
|
@@ -16720,57 +16720,57 @@ var init_mml_react_esm = __esm({
|
|
|
16720
16720
|
}();
|
|
16721
16721
|
Card2 = function Card3(_ref) {
|
|
16722
16722
|
var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, children = _ref.children;
|
|
16723
|
-
return
|
|
16723
|
+
return import_react206.default.createElement("div", {
|
|
16724
16724
|
className: "mml-card " + className
|
|
16725
16725
|
}, children);
|
|
16726
16726
|
};
|
|
16727
16727
|
Icon3 = function Icon4(_ref) {
|
|
16728
16728
|
var name2 = _ref.name;
|
|
16729
|
-
return
|
|
16729
|
+
return import_react206.default.createElement("i", {
|
|
16730
16730
|
className: "mml-icon material-icons"
|
|
16731
16731
|
}, name2);
|
|
16732
16732
|
};
|
|
16733
16733
|
CardHeader2 = function CardHeader3(_ref) {
|
|
16734
16734
|
var text8 = _ref.text, _ref$icon = _ref.icon, icon2 = _ref$icon === void 0 ? "" : _ref$icon, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
|
|
16735
|
-
return
|
|
16735
|
+
return import_react206.default.createElement("div", {
|
|
16736
16736
|
className: "mml-card-header " + className
|
|
16737
|
-
}, icon2 &&
|
|
16737
|
+
}, icon2 && import_react206.default.createElement(Icon3, {
|
|
16738
16738
|
name: icon2
|
|
16739
|
-
}),
|
|
16739
|
+
}), import_react206.default.createElement("span", {
|
|
16740
16740
|
className: "mml-card-header__text"
|
|
16741
16741
|
}, text8));
|
|
16742
16742
|
};
|
|
16743
16743
|
CardBody = function CardBody2(_ref) {
|
|
16744
16744
|
var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, children = _ref.children;
|
|
16745
|
-
return
|
|
16745
|
+
return import_react206.default.createElement("div", {
|
|
16746
16746
|
className: "mml-card-body " + className
|
|
16747
16747
|
}, children);
|
|
16748
16748
|
};
|
|
16749
16749
|
ButtonList = function ButtonList2(_ref) {
|
|
16750
16750
|
var children = _ref.children, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? "" : _ref$variant;
|
|
16751
|
-
return
|
|
16751
|
+
return import_react206.default.createElement("div", {
|
|
16752
16752
|
className: "mml-btnlist " + (variant === "floating" ? " mml-btnlist--floating" : "mml-btnlist--grounded")
|
|
16753
16753
|
}, children);
|
|
16754
16754
|
};
|
|
16755
16755
|
SvgIcon = function SvgIcon2(_ref) {
|
|
16756
16756
|
var path2 = _ref.path;
|
|
16757
|
-
return
|
|
16757
|
+
return import_react206.default.createElement("i", {
|
|
16758
16758
|
className: "mml-icon"
|
|
16759
|
-
},
|
|
16759
|
+
}, import_react206.default.createElement("svg", {
|
|
16760
16760
|
className: "mml-icon__svg",
|
|
16761
16761
|
xmlns: "http://www.w3.org/2000/svg",
|
|
16762
16762
|
viewBox: "0 0 24 24"
|
|
16763
|
-
},
|
|
16763
|
+
}, import_react206.default.createElement("path", {
|
|
16764
16764
|
d: path2
|
|
16765
16765
|
})));
|
|
16766
16766
|
};
|
|
16767
|
-
IconGoogle = /* @__PURE__ */
|
|
16767
|
+
IconGoogle = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
|
|
16768
16768
|
path: "M21.35 11.1h-9.17v2.73h6.5c-.33 3.8-3.5 5.44-6.5 5.44C8.36 19.27 5 16.25 5 12c0-4.1 3.2-7.27 7.2-7.27 3.1 0 4.9 1.97 4.9 1.97L19 4.72S16.56 2 12.1 2C6.42 2 2.03 6.8 2.03 12c0 5.05 4.13 10 10.22 10 5.35 0 9.25-3.67 9.25-9.1 0-1.15-.15-1.8-.15-1.8h0z"
|
|
16769
16769
|
});
|
|
16770
|
-
IconMicrosoft = /* @__PURE__ */
|
|
16770
|
+
IconMicrosoft = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
|
|
16771
16771
|
path: "M3 12V6.75l6-1.32v6.48L3 12m17-9v8.75l-10 .15V5.2L20 3M3 13l6 .1v6.8l-6-1.15V13m17 .25V22l-10-1.9v-7l10 .15z"
|
|
16772
16772
|
});
|
|
16773
|
-
IconApple = /* @__PURE__ */
|
|
16773
|
+
IconApple = /* @__PURE__ */ import_react206.default.createElement(SvgIcon, {
|
|
16774
16774
|
path: "M18.7 19.5c-.83 1.24-1.7 2.45-3.05 2.47-1.34.03-1.77-.8-3.3-.8-1.53 0-2 .77-3.27.82-1.3.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.4c.87-1.52 2.43-2.48 4.12-2.5 1.28-.02 2.5.87 3.3.87.78 0 2.26-1.07 3.8-.9.65.03 2.47.26 3.64 1.98-.1.06-2.17 1.28-2.15 3.8.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.2-.7.85-1.83 1.5-2.95 1.42-.15-1.15.4-2.35 1.05-3.1z"
|
|
16775
16775
|
});
|
|
16776
16776
|
isIE = typeof window !== "undefined" && window.navigator.msSaveOrOpenBlob && window.Blob;
|
|
@@ -16826,14 +16826,14 @@ var init_mml_react_esm = __esm({
|
|
|
16826
16826
|
window.open(url, "_blank");
|
|
16827
16827
|
}
|
|
16828
16828
|
}
|
|
16829
|
-
return
|
|
16829
|
+
return import_react206.default.createElement(Card2, {
|
|
16830
16830
|
className: "mml-add-to-calendar " + className
|
|
16831
|
-
},
|
|
16831
|
+
}, import_react206.default.createElement(CardHeader2, {
|
|
16832
16832
|
icon: "date_range",
|
|
16833
16833
|
text: "Add to My Calendar"
|
|
16834
|
-
}),
|
|
16834
|
+
}), import_react206.default.createElement(CardBody, null, import_react206.default.createElement(ButtonList, null, CALENDAR_SERVICES.map(function(_ref3) {
|
|
16835
16835
|
var id = _ref3.id, label = _ref3.label, Icon5 = _ref3.Icon;
|
|
16836
|
-
return
|
|
16836
|
+
return import_react206.default.createElement("a", {
|
|
16837
16837
|
key: id,
|
|
16838
16838
|
className: "mml-btn " + (Icon5 ? "mml-btn--with-icon" : ""),
|
|
16839
16839
|
onClick: handleLinkClick,
|
|
@@ -16851,15 +16851,15 @@ var init_mml_react_esm = __esm({
|
|
|
16851
16851
|
className += " mml-btn--text";
|
|
16852
16852
|
}
|
|
16853
16853
|
className += variant === "floating" ? " mml-btn--floating" : " mml-btn--grounded";
|
|
16854
|
-
if (url) return
|
|
16854
|
+
if (url) return import_react206.default.createElement("a", {
|
|
16855
16855
|
className: "mml-btn " + className,
|
|
16856
16856
|
href: (0, import_sanitize_url4.sanitizeUrl)(url),
|
|
16857
16857
|
target: "_blank",
|
|
16858
16858
|
rel: "nofollow noreferrer noopener"
|
|
16859
|
-
}, icon2 &&
|
|
16859
|
+
}, icon2 && import_react206.default.createElement(Icon3, {
|
|
16860
16860
|
name: icon2
|
|
16861
16861
|
}), text8);
|
|
16862
|
-
return
|
|
16862
|
+
return import_react206.default.createElement("button", {
|
|
16863
16863
|
className: "mml-btn " + className,
|
|
16864
16864
|
type: "submit",
|
|
16865
16865
|
name: name2,
|
|
@@ -16872,20 +16872,20 @@ var init_mml_react_esm = __esm({
|
|
|
16872
16872
|
input2.value = value || "";
|
|
16873
16873
|
(_event$currentTarget = event.currentTarget) == null ? void 0 : (_event$currentTarget$ = _event$currentTarget.closest("form")) == null ? void 0 : _event$currentTarget$.appendChild(input2);
|
|
16874
16874
|
}
|
|
16875
|
-
}, icon2 &&
|
|
16875
|
+
}, icon2 && import_react206.default.createElement(Icon3, {
|
|
16876
16876
|
name: icon2
|
|
16877
16877
|
}), text8);
|
|
16878
16878
|
};
|
|
16879
16879
|
Carousel = function Carousel2(_ref) {
|
|
16880
16880
|
var children = _ref.children, _ref$slideWidth = _ref.slideWidth, slideWidth = _ref$slideWidth === void 0 ? "120px" : _ref$slideWidth, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
|
|
16881
|
-
return
|
|
16881
|
+
return import_react206.default.createElement("div", {
|
|
16882
16882
|
className: "mml-carousel " + className
|
|
16883
|
-
},
|
|
16883
|
+
}, import_react206.default.createElement("div", {
|
|
16884
16884
|
className: "mml-carousel__track"
|
|
16885
|
-
},
|
|
16885
|
+
}, import_react206.default.createElement("div", {
|
|
16886
16886
|
className: "mml-carousel__slides"
|
|
16887
|
-
},
|
|
16888
|
-
return (0,
|
|
16887
|
+
}, import_react206.Children.map(children, function(child) {
|
|
16888
|
+
return (0, import_react206.cloneElement)(child, {
|
|
16889
16889
|
className: "mml-carousel__slide",
|
|
16890
16890
|
slideWidth
|
|
16891
16891
|
});
|
|
@@ -16894,7 +16894,7 @@ var init_mml_react_esm = __esm({
|
|
|
16894
16894
|
CarouselItem = function CarouselItem2(_ref) {
|
|
16895
16895
|
var children = _ref.children, slideWidth = _ref.slideWidth, _ref$width = _ref.width, width = _ref$width === void 0 ? "" : _ref$width, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
|
|
16896
16896
|
var finalWidth = width || slideWidth;
|
|
16897
|
-
return
|
|
16897
|
+
return import_react206.default.createElement("div", {
|
|
16898
16898
|
className: "mml-carousel-item " + className,
|
|
16899
16899
|
style: {
|
|
16900
16900
|
flex: "0 0 " + finalWidth,
|
|
@@ -16907,20 +16907,20 @@ var init_mml_react_esm = __esm({
|
|
|
16907
16907
|
var classNames = "mml-col-" + width;
|
|
16908
16908
|
if (offset) classNames = classNames + (" mml-offset-" + offset);
|
|
16909
16909
|
classNames = classNames + (" mml-align-" + align);
|
|
16910
|
-
return
|
|
16910
|
+
return import_react206.default.createElement("div", {
|
|
16911
16911
|
className: classNames
|
|
16912
16912
|
}, children);
|
|
16913
16913
|
};
|
|
16914
16914
|
Error$1 = function Error2(_ref) {
|
|
16915
16915
|
var _ref$error = _ref.error, error = _ref$error === void 0 ? "" : _ref$error;
|
|
16916
16916
|
if (!error) return null;
|
|
16917
|
-
return
|
|
16917
|
+
return import_react206.default.createElement("span", {
|
|
16918
16918
|
className: "mml-error"
|
|
16919
16919
|
}, error);
|
|
16920
16920
|
};
|
|
16921
16921
|
Image2 = function Image3(_ref) {
|
|
16922
16922
|
var src = _ref.src, _ref$alt = _ref.alt, alt = _ref$alt === void 0 ? "" : _ref$alt, _ref$title = _ref.title, title = _ref$title === void 0 ? "" : _ref$title, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
|
|
16923
|
-
return
|
|
16923
|
+
return import_react206.default.createElement("img", {
|
|
16924
16924
|
className: ("mml-image " + className).trim(),
|
|
16925
16925
|
src,
|
|
16926
16926
|
alt,
|
|
@@ -16929,14 +16929,14 @@ var init_mml_react_esm = __esm({
|
|
|
16929
16929
|
};
|
|
16930
16930
|
Input = function Input2(_ref) {
|
|
16931
16931
|
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;
|
|
16932
|
-
var _useState = (0,
|
|
16932
|
+
var _useState = (0, import_react206.useState)(value), state = _useState[0], setState = _useState[1];
|
|
16933
16933
|
var id = "mml-" + name2;
|
|
16934
|
-
return
|
|
16934
|
+
return import_react206.default.createElement(import_react206.default.Fragment, null, label && import_react206.default.createElement("label", {
|
|
16935
16935
|
className: "mml-card-header",
|
|
16936
16936
|
htmlFor: id
|
|
16937
|
-
},
|
|
16937
|
+
}, import_react206.default.createElement("span", {
|
|
16938
16938
|
className: "mml-card-header__text"
|
|
16939
|
-
}, label)),
|
|
16939
|
+
}, label)), import_react206.default.createElement("input", {
|
|
16940
16940
|
id,
|
|
16941
16941
|
className: "mml-input",
|
|
16942
16942
|
name: name2,
|
|
@@ -16953,7 +16953,7 @@ var init_mml_react_esm = __esm({
|
|
|
16953
16953
|
var size = _ref.size, _ref$thickness = _ref.thickness, thickness = _ref$thickness === void 0 ? 3.6 : _ref$thickness, color2 = _ref.color;
|
|
16954
16954
|
thickness = typeof thickness === "string" ? parseFloat(thickness) : thickness;
|
|
16955
16955
|
size = typeof size === "string" && /^\d+$/.test(size) || typeof size === "number" ? size + "px" : size;
|
|
16956
|
-
return
|
|
16956
|
+
return import_react206.default.createElement("span", {
|
|
16957
16957
|
className: "mml-progress",
|
|
16958
16958
|
role: "progressbar",
|
|
16959
16959
|
style: {
|
|
@@ -16961,10 +16961,10 @@ var init_mml_react_esm = __esm({
|
|
|
16961
16961
|
height: size,
|
|
16962
16962
|
color: color2
|
|
16963
16963
|
}
|
|
16964
|
-
},
|
|
16964
|
+
}, import_react206.default.createElement("svg", {
|
|
16965
16965
|
className: "mml-progress__svg",
|
|
16966
16966
|
viewBox: SIZE / 2 + " " + SIZE / 2 + " " + SIZE + " " + SIZE
|
|
16967
|
-
},
|
|
16967
|
+
}, import_react206.default.createElement("circle", {
|
|
16968
16968
|
className: "mml-progress__circle",
|
|
16969
16969
|
cx: SIZE,
|
|
16970
16970
|
cy: SIZE,
|
|
@@ -16976,13 +16976,13 @@ var init_mml_react_esm = __esm({
|
|
|
16976
16976
|
Loading = function Loading2(_ref) {
|
|
16977
16977
|
var _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$loading = _ref.loading, loading = _ref$loading === void 0 ? false : _ref$loading, text8 = _ref.text, size = _ref.size, thickness = _ref.thickness, color2 = _ref.color;
|
|
16978
16978
|
if (!loading) return null;
|
|
16979
|
-
return
|
|
16979
|
+
return import_react206.default.createElement("div", {
|
|
16980
16980
|
className: "mml-loading " + className
|
|
16981
|
-
},
|
|
16981
|
+
}, import_react206.default.createElement(Progress, Object.assign({}, {
|
|
16982
16982
|
size,
|
|
16983
16983
|
thickness,
|
|
16984
16984
|
color: color2
|
|
16985
|
-
})), text8 &&
|
|
16985
|
+
})), text8 && import_react206.default.createElement("div", {
|
|
16986
16986
|
className: "mml-loading__text"
|
|
16987
16987
|
}, text8));
|
|
16988
16988
|
};
|
|
@@ -17005,7 +17005,7 @@ var init_mml_react_esm = __esm({
|
|
|
17005
17005
|
};
|
|
17006
17006
|
MDLinkRender = function MDLinkRender2(props) {
|
|
17007
17007
|
if (!props.href || !props.href.startsWith("http") && !props.href.startsWith("mailto:")) return props.children;
|
|
17008
|
-
return
|
|
17008
|
+
return import_react206.default.createElement("a", {
|
|
17009
17009
|
href: props.href,
|
|
17010
17010
|
target: "_blank",
|
|
17011
17011
|
rel: "nofollow noreferrer noopener"
|
|
@@ -17044,9 +17044,9 @@ var init_mml_react_esm = __esm({
|
|
|
17044
17044
|
var displayLink = type === "email" ? value : truncate(value.replace(/(http(s?):\/\/)?(www\.)?/, ""), 20);
|
|
17045
17045
|
newText = newText.replace(value, "[" + displayLink + "](" + encodeURI(href) + ")");
|
|
17046
17046
|
});
|
|
17047
|
-
return
|
|
17047
|
+
return import_react206.default.createElement("div", {
|
|
17048
17048
|
className: "mml-md"
|
|
17049
|
-
},
|
|
17049
|
+
}, import_react206.default.createElement(import_react_markdown3.default, {
|
|
17050
17050
|
allowedTypes: allowedMarkups,
|
|
17051
17051
|
renderers: markDownRenderers2,
|
|
17052
17052
|
source: newText,
|
|
@@ -17059,34 +17059,34 @@ var init_mml_react_esm = __esm({
|
|
|
17059
17059
|
};
|
|
17060
17060
|
Number2 = function Number3(_ref) {
|
|
17061
17061
|
var name2 = _ref.name, value = _ref.value;
|
|
17062
|
-
var _useState = (0,
|
|
17063
|
-
return
|
|
17062
|
+
var _useState = (0, import_react206.useState)(parseInt("" + value, 10) || 0), state = _useState[0], setState = _useState[1];
|
|
17063
|
+
return import_react206.default.createElement("div", {
|
|
17064
17064
|
className: "mml-number"
|
|
17065
|
-
},
|
|
17065
|
+
}, import_react206.default.createElement("input", {
|
|
17066
17066
|
name: name2,
|
|
17067
17067
|
value: state,
|
|
17068
17068
|
type: "hidden"
|
|
17069
|
-
}),
|
|
17069
|
+
}), import_react206.default.createElement("span", {
|
|
17070
17070
|
className: "mml-btn mml-btn--floating mml-btn--icon mml-number__dec",
|
|
17071
17071
|
onClick: function onClick() {
|
|
17072
17072
|
return setState(state - 1);
|
|
17073
17073
|
}
|
|
17074
|
-
},
|
|
17074
|
+
}, import_react206.default.createElement(Icon3, {
|
|
17075
17075
|
name: "remove"
|
|
17076
|
-
})),
|
|
17076
|
+
})), import_react206.default.createElement("span", {
|
|
17077
17077
|
className: "mml-number__count"
|
|
17078
|
-
}, state),
|
|
17078
|
+
}, state), import_react206.default.createElement("span", {
|
|
17079
17079
|
className: "mml-btn mml-btn--floating mml-btn--icon mml-number__inc",
|
|
17080
17080
|
onClick: function onClick() {
|
|
17081
17081
|
return setState(state + 1);
|
|
17082
17082
|
}
|
|
17083
|
-
},
|
|
17083
|
+
}, import_react206.default.createElement(Icon3, {
|
|
17084
17084
|
name: "add"
|
|
17085
17085
|
})));
|
|
17086
17086
|
};
|
|
17087
17087
|
Row = function Row2(_ref) {
|
|
17088
17088
|
var children = _ref.children;
|
|
17089
|
-
return
|
|
17089
|
+
return import_react206.default.createElement("div", {
|
|
17090
17090
|
className: "mml-row"
|
|
17091
17091
|
}, children);
|
|
17092
17092
|
};
|
|
@@ -17096,7 +17096,7 @@ var init_mml_react_esm = __esm({
|
|
|
17096
17096
|
VIRTUOSO_START_INDEX = 1e4;
|
|
17097
17097
|
DatePickerSelect = function DatePickerSelect2(props) {
|
|
17098
17098
|
var onChange = props.onChange, icalFilter = props.icalFilter, getItemData4 = props.getItemData, itemClassName = props.itemClassName, interval = props.interval, format = props.format, value = props.value;
|
|
17099
|
-
var generateItems = (0,
|
|
17099
|
+
var generateItems = (0, import_react206.useCallback)(function(quantity, firstIdx) {
|
|
17100
17100
|
return Array(quantity).fill(true).map(function(_, idx) {
|
|
17101
17101
|
return getItemData4({
|
|
17102
17102
|
interval,
|
|
@@ -17108,11 +17108,11 @@ var init_mml_react_esm = __esm({
|
|
|
17108
17108
|
return !icalFilter || icalFilter && icalFilter(newItem.value);
|
|
17109
17109
|
});
|
|
17110
17110
|
}, [interval, format, value, icalFilter, getItemData4]);
|
|
17111
|
-
var _useState = (0,
|
|
17112
|
-
var _useState2 = (0,
|
|
17113
|
-
var initialIndexOffset = (0,
|
|
17114
|
-
var _useState3 = (0,
|
|
17115
|
-
var handleClick = (0,
|
|
17111
|
+
var _useState = (0, import_react206.useState)(generateItems(ITEMS_PER_PAGE * 2, -ITEMS_PER_PAGE)), items = _useState[0], setItems = _useState[1];
|
|
17112
|
+
var _useState2 = (0, import_react206.useState)(VIRTUOSO_START_INDEX), firstItemIndex = _useState2[0], setFirstItemIndex = _useState2[1];
|
|
17113
|
+
var initialIndexOffset = (0, import_react206.useRef)(INITIAL_INDEX);
|
|
17114
|
+
var _useState3 = (0, import_react206.useState)(null), selectedIdx = _useState3[0], setSelectedIdx = _useState3[1];
|
|
17115
|
+
var handleClick = (0, import_react206.useCallback)(function(item2) {
|
|
17116
17116
|
onChange(item2.value);
|
|
17117
17117
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
17118
17118
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
@@ -17126,12 +17126,12 @@ var init_mml_react_esm = __esm({
|
|
|
17126
17126
|
}
|
|
17127
17127
|
setSelectedIdx(item2.idx);
|
|
17128
17128
|
}, [setItems, generateItems, initialIndexOffset, onChange]);
|
|
17129
|
-
var appendItems = (0,
|
|
17129
|
+
var appendItems = (0, import_react206.useCallback)(function(lastItemIndex) {
|
|
17130
17130
|
setItems(function(items2) {
|
|
17131
17131
|
return [].concat(items2, generateItems(ITEMS_PER_PAGE, lastItemIndex));
|
|
17132
17132
|
});
|
|
17133
17133
|
}, [setItems, generateItems]);
|
|
17134
|
-
var prependItems = (0,
|
|
17134
|
+
var prependItems = (0, import_react206.useCallback)(function() {
|
|
17135
17135
|
var firstItemIndex2 = initialIndexOffset.current || 0;
|
|
17136
17136
|
var nextFirstItemIdx = firstItemIndex2 - INITIAL_INDEX - ITEMS_PER_PAGE;
|
|
17137
17137
|
if (initialIndexOffset) {
|
|
@@ -17143,7 +17143,7 @@ var init_mml_react_esm = __esm({
|
|
|
17143
17143
|
setFirstItemIndex(firstItemIndex2 - ITEMS_PER_PAGE);
|
|
17144
17144
|
return false;
|
|
17145
17145
|
}, [setItems, generateItems, initialIndexOffset]);
|
|
17146
|
-
(0,
|
|
17146
|
+
(0, import_react206.useEffect)(function() {
|
|
17147
17147
|
if (value) {
|
|
17148
17148
|
var initialSelectedIdx = null;
|
|
17149
17149
|
for (var i = 0; i < items.length; i++) {
|
|
@@ -17155,11 +17155,11 @@ var init_mml_react_esm = __esm({
|
|
|
17155
17155
|
setSelectedIdx(initialSelectedIdx);
|
|
17156
17156
|
}
|
|
17157
17157
|
}, []);
|
|
17158
|
-
return
|
|
17158
|
+
return import_react206.default.createElement(import_react_virtuoso2.Virtuoso, {
|
|
17159
17159
|
data: items,
|
|
17160
17160
|
firstItemIndex,
|
|
17161
17161
|
itemContent: function itemContent(_, item2) {
|
|
17162
|
-
return
|
|
17162
|
+
return import_react206.default.createElement("div", {
|
|
17163
17163
|
className: itemClassName + (" mml-datepicker__item " + (item2.idx === selectedIdx ? "mml-datepicker__item--selected" : "")),
|
|
17164
17164
|
onClick: function onClick() {
|
|
17165
17165
|
return handleClick(item2);
|
|
@@ -17183,9 +17183,9 @@ var init_mml_react_esm = __esm({
|
|
|
17183
17183
|
};
|
|
17184
17184
|
};
|
|
17185
17185
|
DatePickerDate = function DatePickerDate2(props) {
|
|
17186
|
-
return
|
|
17186
|
+
return import_react206.default.createElement("div", {
|
|
17187
17187
|
className: "mml-datepicker__select mml-datepicker__date"
|
|
17188
|
-
},
|
|
17188
|
+
}, import_react206.default.createElement(DatePickerSelect, Object.assign({}, props, {
|
|
17189
17189
|
itemClassName: "mml-datepicker__item--day",
|
|
17190
17190
|
getItemData
|
|
17191
17191
|
})));
|
|
@@ -17204,16 +17204,16 @@ var init_mml_react_esm = __esm({
|
|
|
17204
17204
|
};
|
|
17205
17205
|
};
|
|
17206
17206
|
DatePickerTime = function DatePickerTime2(props) {
|
|
17207
|
-
return
|
|
17207
|
+
return import_react206.default.createElement("div", {
|
|
17208
17208
|
className: "mml-datepicker__select mml-datepicker__time"
|
|
17209
|
-
},
|
|
17209
|
+
}, import_react206.default.createElement(DatePickerSelect, Object.assign({}, props, {
|
|
17210
17210
|
itemClassName: "mml-datepicker__item--time",
|
|
17211
17211
|
getItemData: getItemData$1
|
|
17212
17212
|
})));
|
|
17213
17213
|
};
|
|
17214
17214
|
DatePicker = function DatePicker2(_ref) {
|
|
17215
17215
|
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;
|
|
17216
|
-
var _useState = (0,
|
|
17216
|
+
var _useState = (0, import_react206.useState)(selected), date = _useState[0], setDate = _useState[1];
|
|
17217
17217
|
var handleChangeDate = function handleChangeDate2(value) {
|
|
17218
17218
|
setDate(function(prevDate) {
|
|
17219
17219
|
return prevDate.set("date", value.get("date")).set("month", value.get("month")).set("year", value.get("year"));
|
|
@@ -17224,19 +17224,19 @@ var init_mml_react_esm = __esm({
|
|
|
17224
17224
|
return prevDate.set("minute", value.get("minute")).set("hour", value.get("hour"));
|
|
17225
17225
|
});
|
|
17226
17226
|
};
|
|
17227
|
-
return
|
|
17227
|
+
return import_react206.default.createElement("div", {
|
|
17228
17228
|
className: "mml-datepicker mml-datepicker--" + (fullDay ? "single" : "double")
|
|
17229
|
-
},
|
|
17229
|
+
}, import_react206.default.createElement("input", {
|
|
17230
17230
|
name: name2,
|
|
17231
17231
|
value: date.toISOString(),
|
|
17232
17232
|
type: "hidden"
|
|
17233
|
-
}),
|
|
17233
|
+
}), import_react206.default.createElement(DatePickerDate, {
|
|
17234
17234
|
icalFilter,
|
|
17235
17235
|
format: dateFormat,
|
|
17236
17236
|
value: date,
|
|
17237
17237
|
onChange: handleChangeDate,
|
|
17238
17238
|
interval: dateInterval
|
|
17239
|
-
}), !fullDay &&
|
|
17239
|
+
}), !fullDay && import_react206.default.createElement(DatePickerTime, {
|
|
17240
17240
|
icalFilter,
|
|
17241
17241
|
format: timeFormat,
|
|
17242
17242
|
value: date,
|
|
@@ -17293,14 +17293,14 @@ var init_mml_react_esm = __esm({
|
|
|
17293
17293
|
}();
|
|
17294
17294
|
Scheduler = function Scheduler2(_ref2) {
|
|
17295
17295
|
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;
|
|
17296
|
-
var _useState = (0,
|
|
17297
|
-
var _useState2 = (0,
|
|
17298
|
-
var _useState3 = (0,
|
|
17296
|
+
var _useState = (0, import_react206.useState)(false), loading = _useState[0], setLoading = _useState[1];
|
|
17297
|
+
var _useState2 = (0, import_react206.useState)(""), error = _useState2[0], setError = _useState2[1];
|
|
17298
|
+
var _useState3 = (0, import_react206.useState)(function() {
|
|
17299
17299
|
return function() {
|
|
17300
17300
|
return true;
|
|
17301
17301
|
};
|
|
17302
17302
|
}), icalFilter = _useState3[0], setIcalFilter = _useState3[1];
|
|
17303
|
-
(0,
|
|
17303
|
+
(0, import_react206.useEffect)(function() {
|
|
17304
17304
|
if (!icalAvailability) return;
|
|
17305
17305
|
setLoading(true);
|
|
17306
17306
|
setupIcalFilter(icalAvailability, duration).then(setIcalFilter)["catch"](function(err) {
|
|
@@ -17313,17 +17313,17 @@ var init_mml_react_esm = __esm({
|
|
|
17313
17313
|
return setLoading(false);
|
|
17314
17314
|
});
|
|
17315
17315
|
}, [icalAvailability, duration]);
|
|
17316
|
-
return
|
|
17316
|
+
return import_react206.default.createElement(Card2, {
|
|
17317
17317
|
className: "mml-scheduler"
|
|
17318
|
-
},
|
|
17318
|
+
}, import_react206.default.createElement(CardHeader2, {
|
|
17319
17319
|
icon: "date_range",
|
|
17320
17320
|
text: "Scheduler"
|
|
17321
|
-
}),
|
|
17321
|
+
}), import_react206.default.createElement(CardBody, null, error && !loading && import_react206.default.createElement(Error$1, {
|
|
17322
17322
|
error: "Failed, error: " + error
|
|
17323
|
-
}), !error && loading &&
|
|
17323
|
+
}), !error && loading && import_react206.default.createElement(Loading, {
|
|
17324
17324
|
loading: true,
|
|
17325
17325
|
text: "Loading availability"
|
|
17326
|
-
}), !error && !loading &&
|
|
17326
|
+
}), !error && !loading && import_react206.default.createElement(DatePicker, {
|
|
17327
17327
|
name: name2,
|
|
17328
17328
|
selected: selected ? (0, import_dayjs4.default)(selected) : (0, import_dayjs4.default)().startOf("hour"),
|
|
17329
17329
|
dateInterval,
|
|
@@ -17336,20 +17336,20 @@ var init_mml_react_esm = __esm({
|
|
|
17336
17336
|
};
|
|
17337
17337
|
Success = function Success2(_ref) {
|
|
17338
17338
|
var success = _ref.success;
|
|
17339
|
-
if (success) return
|
|
17339
|
+
if (success) return import_react206.default.createElement("div", {
|
|
17340
17340
|
className: "mml-success"
|
|
17341
17341
|
}, success);
|
|
17342
17342
|
return null;
|
|
17343
17343
|
};
|
|
17344
17344
|
Text = function Text2(_ref) {
|
|
17345
17345
|
var text8 = _ref.text, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className;
|
|
17346
|
-
return
|
|
17346
|
+
return import_react206.default.createElement("div", {
|
|
17347
17347
|
className: ("mml-text " + className).trim()
|
|
17348
17348
|
}, text8);
|
|
17349
17349
|
};
|
|
17350
17350
|
converters = {
|
|
17351
17351
|
button: function button(tag) {
|
|
17352
|
-
return
|
|
17352
|
+
return import_react206.default.createElement(Button, Object.assign({}, tag.attributes, {
|
|
17353
17353
|
key: tag.key,
|
|
17354
17354
|
text: tag.getText(),
|
|
17355
17355
|
name: tag.attributes.name,
|
|
@@ -17357,19 +17357,19 @@ var init_mml_react_esm = __esm({
|
|
|
17357
17357
|
}));
|
|
17358
17358
|
},
|
|
17359
17359
|
button_list: function button_list(tag, children) {
|
|
17360
|
-
return
|
|
17360
|
+
return import_react206.default.createElement(ButtonList, Object.assign({}, tag.attributes, {
|
|
17361
17361
|
key: tag.key
|
|
17362
17362
|
}), children);
|
|
17363
17363
|
},
|
|
17364
17364
|
input: function input(tag) {
|
|
17365
|
-
return
|
|
17365
|
+
return import_react206.default.createElement(Input, Object.assign({}, tag.attributes, {
|
|
17366
17366
|
key: tag.key,
|
|
17367
17367
|
name: tag.attributes.name,
|
|
17368
17368
|
value: tag.attributes.value
|
|
17369
17369
|
}));
|
|
17370
17370
|
},
|
|
17371
17371
|
add_to_calendar: function add_to_calendar(tag) {
|
|
17372
|
-
return
|
|
17372
|
+
return import_react206.default.createElement(AddToCalendar, Object.assign({}, tag.attributes, {
|
|
17373
17373
|
key: tag.key,
|
|
17374
17374
|
title: tag.attributes.title,
|
|
17375
17375
|
start: tag.attributes.start,
|
|
@@ -17377,41 +17377,41 @@ var init_mml_react_esm = __esm({
|
|
|
17377
17377
|
}));
|
|
17378
17378
|
},
|
|
17379
17379
|
col: function col(tag, children) {
|
|
17380
|
-
return
|
|
17380
|
+
return import_react206.default.createElement(Col, Object.assign({}, tag.attributes, {
|
|
17381
17381
|
key: tag.key
|
|
17382
17382
|
}), children);
|
|
17383
17383
|
},
|
|
17384
17384
|
row: function row(tag, children) {
|
|
17385
|
-
return
|
|
17385
|
+
return import_react206.default.createElement(Row, Object.assign({}, tag.attributes, {
|
|
17386
17386
|
key: tag.key
|
|
17387
17387
|
}), children);
|
|
17388
17388
|
},
|
|
17389
17389
|
icon: function icon(tag) {
|
|
17390
|
-
return
|
|
17390
|
+
return import_react206.default.createElement(Icon3, Object.assign({}, tag.attributes, {
|
|
17391
17391
|
key: tag.key,
|
|
17392
17392
|
name: tag.attributes.name
|
|
17393
17393
|
}));
|
|
17394
17394
|
},
|
|
17395
17395
|
image: function image3(tag) {
|
|
17396
|
-
return
|
|
17396
|
+
return import_react206.default.createElement(Image2, Object.assign({}, tag.attributes, {
|
|
17397
17397
|
key: tag.key,
|
|
17398
17398
|
src: tag.attributes.src
|
|
17399
17399
|
}));
|
|
17400
17400
|
},
|
|
17401
17401
|
md: function md(tag) {
|
|
17402
|
-
return
|
|
17402
|
+
return import_react206.default.createElement(MD, Object.assign({}, tag.attributes, {
|
|
17403
17403
|
key: tag.key,
|
|
17404
17404
|
text: tag.getText()
|
|
17405
17405
|
}));
|
|
17406
17406
|
},
|
|
17407
17407
|
text: function text7(tag) {
|
|
17408
|
-
return
|
|
17408
|
+
return import_react206.default.createElement(Text, Object.assign({}, tag.attributes, {
|
|
17409
17409
|
key: tag.key,
|
|
17410
17410
|
text: tag.getText()
|
|
17411
17411
|
}));
|
|
17412
17412
|
},
|
|
17413
17413
|
scheduler: function scheduler(tag) {
|
|
17414
|
-
return
|
|
17414
|
+
return import_react206.default.createElement(Scheduler, Object.assign({}, tag.attributes, {
|
|
17415
17415
|
key: tag.key,
|
|
17416
17416
|
name: tag.attributes.name,
|
|
17417
17417
|
dateInterval: parseInt(tag.attributes.dateInterval, 10) || 1,
|
|
@@ -17423,19 +17423,19 @@ var init_mml_react_esm = __esm({
|
|
|
17423
17423
|
}));
|
|
17424
17424
|
},
|
|
17425
17425
|
carousel: function carousel(tag, children) {
|
|
17426
|
-
return
|
|
17426
|
+
return import_react206.default.createElement(Carousel, Object.assign({
|
|
17427
17427
|
slideWidth: tag.attributes.slideWidth
|
|
17428
17428
|
}, tag.attributes, {
|
|
17429
17429
|
key: tag.key
|
|
17430
17430
|
}), children);
|
|
17431
17431
|
},
|
|
17432
17432
|
item: function item(tag, children) {
|
|
17433
|
-
return
|
|
17433
|
+
return import_react206.default.createElement(CarouselItem, Object.assign({}, tag.attributes, {
|
|
17434
17434
|
key: tag.key
|
|
17435
17435
|
}), children);
|
|
17436
17436
|
},
|
|
17437
17437
|
number: function number2(tag) {
|
|
17438
|
-
return
|
|
17438
|
+
return import_react206.default.createElement(Number2, Object.assign({}, tag.attributes, {
|
|
17439
17439
|
key: tag.key,
|
|
17440
17440
|
name: tag.attributes.name,
|
|
17441
17441
|
value: tag.attributes.value
|
|
@@ -17473,13 +17473,13 @@ var init_mml_react_esm = __esm({
|
|
|
17473
17473
|
}();
|
|
17474
17474
|
MML = function MML2(_ref) {
|
|
17475
17475
|
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, Error3 = _ref$Error === void 0 ? Error$1 : _ref$Error, _ref$Success = _ref.Success, Success$1 = _ref$Success === void 0 ? Success : _ref$Success;
|
|
17476
|
-
var _useState = (0,
|
|
17477
|
-
var _useState2 = (0,
|
|
17476
|
+
var _useState = (0, import_react206.useState)(""), error = _useState[0], setError = _useState[1];
|
|
17477
|
+
var _useState2 = (0, import_react206.useState)({
|
|
17478
17478
|
loading: false,
|
|
17479
17479
|
error: "",
|
|
17480
17480
|
success: ""
|
|
17481
17481
|
}), submitState = _useState2[0], setSubmitState = _useState2[1];
|
|
17482
|
-
var tree = (0,
|
|
17482
|
+
var tree = (0, import_react206.useMemo)(function() {
|
|
17483
17483
|
try {
|
|
17484
17484
|
return Parse(source, converters2);
|
|
17485
17485
|
} catch (e2) {
|
|
@@ -17488,7 +17488,7 @@ var init_mml_react_esm = __esm({
|
|
|
17488
17488
|
return null;
|
|
17489
17489
|
}
|
|
17490
17490
|
}, [source, converters2]);
|
|
17491
|
-
var handleSubmit = (0,
|
|
17491
|
+
var handleSubmit = (0, import_react206.useCallback)(/* @__PURE__ */ function() {
|
|
17492
17492
|
var _ref2 = _asyncToGenerator(/* @__PURE__ */ runtime_1.mark(function _callee(event) {
|
|
17493
17493
|
var state;
|
|
17494
17494
|
return runtime_1.wrap(function _callee$(_context) {
|
|
@@ -17542,24 +17542,24 @@ var init_mml_react_esm = __esm({
|
|
|
17542
17542
|
return _ref2.apply(this, arguments);
|
|
17543
17543
|
};
|
|
17544
17544
|
}(), [onSubmit, tree]);
|
|
17545
|
-
return
|
|
17545
|
+
return import_react206.default.createElement("div", {
|
|
17546
17546
|
className: "mml-container " + theme + " " + className,
|
|
17547
17547
|
"data-testid": "mml-container"
|
|
17548
|
-
}, error ?
|
|
17548
|
+
}, error ? import_react206.default.createElement("div", {
|
|
17549
17549
|
className: "mml-wrap"
|
|
17550
|
-
}, Error3 &&
|
|
17550
|
+
}, Error3 && import_react206.default.createElement(Error3, {
|
|
17551
17551
|
error
|
|
17552
|
-
})) :
|
|
17552
|
+
})) : import_react206.default.createElement("form", {
|
|
17553
17553
|
onSubmit: handleSubmit,
|
|
17554
17554
|
className: "mml-wrap",
|
|
17555
17555
|
"data-testid": "mml-form"
|
|
17556
|
-
}, tree != null && tree.type ?
|
|
17556
|
+
}, tree != null && tree.type ? import_react206.default.createElement("div", {
|
|
17557
17557
|
className: "mml-card"
|
|
17558
|
-
}, tree == null ? void 0 : tree.reactElements) : tree == null ? void 0 : tree.reactElements, submitState.loading && Loading$1 &&
|
|
17558
|
+
}, tree == null ? void 0 : tree.reactElements) : tree == null ? void 0 : tree.reactElements, submitState.loading && Loading$1 && import_react206.default.createElement(Loading$1, {
|
|
17559
17559
|
loading: submitState.loading
|
|
17560
|
-
}), submitState.success && Success$1 &&
|
|
17560
|
+
}), submitState.success && Success$1 && import_react206.default.createElement(Success$1, {
|
|
17561
17561
|
success: submitState.success
|
|
17562
|
-
}), submitState.error && Error3 &&
|
|
17562
|
+
}), submitState.error && Error3 && import_react206.default.createElement(Error3, {
|
|
17563
17563
|
error: submitState.error
|
|
17564
17564
|
})));
|
|
17565
17565
|
};
|
|
@@ -40855,10 +40855,10 @@ var UnMemoizedConnectionStatus = () => {
|
|
|
40855
40855
|
var ConnectionStatus = import_react80.default.memo(UnMemoizedConnectionStatus);
|
|
40856
40856
|
|
|
40857
40857
|
// src/components/MessageList/GiphyPreviewMessage.tsx
|
|
40858
|
-
var
|
|
40858
|
+
var import_react226 = __toESM(require("react"));
|
|
40859
40859
|
|
|
40860
40860
|
// src/components/Message/Message.tsx
|
|
40861
|
-
var
|
|
40861
|
+
var import_react225 = __toESM(require("react"));
|
|
40862
40862
|
|
|
40863
40863
|
// src/components/Message/hooks/useActionHandler.ts
|
|
40864
40864
|
var handleActionWarning = `Action handler was called, but it is missing one of its required arguments.
|
|
@@ -44432,7 +44432,7 @@ var useMessageTextStreaming = ({
|
|
|
44432
44432
|
};
|
|
44433
44433
|
|
|
44434
44434
|
// src/components/Message/MessageSimple.tsx
|
|
44435
|
-
var
|
|
44435
|
+
var import_react224 = __toESM(require("react"));
|
|
44436
44436
|
var import_clsx59 = __toESM(require("clsx"));
|
|
44437
44437
|
|
|
44438
44438
|
// src/components/Message/icons.tsx
|
|
@@ -47027,19 +47027,30 @@ var PollCreationDialog = ({ close }) => {
|
|
|
47027
47027
|
};
|
|
47028
47028
|
|
|
47029
47029
|
// src/components/Message/QuotedMessage.tsx
|
|
47030
|
-
var QuotedMessage = (
|
|
47030
|
+
var QuotedMessage = ({
|
|
47031
|
+
renderText: propsRenderText
|
|
47032
|
+
}) => {
|
|
47031
47033
|
const { Attachment: Attachment2 = Attachment, Avatar: ContextAvatar } = useComponentContext("QuotedMessage");
|
|
47032
47034
|
const { client } = useChatContext();
|
|
47033
|
-
const {
|
|
47035
|
+
const {
|
|
47036
|
+
isMyMessage,
|
|
47037
|
+
message,
|
|
47038
|
+
renderText: contextRenderText
|
|
47039
|
+
} = useMessageContext("QuotedMessage");
|
|
47034
47040
|
const { t: t2, userLanguage } = useTranslationContext("QuotedMessage");
|
|
47035
47041
|
const { jumpToMessage } = useChannelActionContext("QuotedMessage");
|
|
47042
|
+
const renderText2 = propsRenderText ?? contextRenderText ?? renderText;
|
|
47036
47043
|
const Avatar2 = ContextAvatar || Avatar;
|
|
47037
47044
|
const { quoted_message } = message;
|
|
47045
|
+
const poll = quoted_message?.poll_id && client.polls.fromState(quoted_message.poll_id);
|
|
47046
|
+
const quotedMessageDeleted = quoted_message?.deleted_at || quoted_message?.type === "deleted";
|
|
47047
|
+
const quotedMessageText = quotedMessageDeleted ? t2("This message was deleted...") : quoted_message?.i18n?.[`${userLanguage}_text`] || quoted_message?.text;
|
|
47048
|
+
const quotedMessageAttachment = quoted_message?.attachments?.length && !quotedMessageDeleted ? quoted_message.attachments[0] : null;
|
|
47049
|
+
const renderedText = (0, import_react179.useMemo)(
|
|
47050
|
+
() => renderText2(quotedMessageText, quoted_message?.mentioned_users),
|
|
47051
|
+
[quotedMessageText, quoted_message?.mentioned_users, renderText2]
|
|
47052
|
+
);
|
|
47038
47053
|
if (!quoted_message) return null;
|
|
47039
|
-
const poll = quoted_message.poll_id && client.polls.fromState(quoted_message.poll_id);
|
|
47040
|
-
const quotedMessageDeleted = quoted_message.deleted_at || quoted_message.type === "deleted";
|
|
47041
|
-
const quotedMessageText = quotedMessageDeleted ? t2("This message was deleted...") : quoted_message.i18n?.[`${userLanguage}_text`] || quoted_message.text;
|
|
47042
|
-
const quotedMessageAttachment = quoted_message.attachments?.length && !quotedMessageDeleted ? quoted_message.attachments[0] : null;
|
|
47043
47054
|
if (!quoted_message.poll && !quotedMessageText && !quotedMessageAttachment) return null;
|
|
47044
47055
|
return /* @__PURE__ */ import_react179.default.createElement(import_react179.default.Fragment, null, /* @__PURE__ */ import_react179.default.createElement(
|
|
47045
47056
|
"div",
|
|
@@ -47073,7 +47084,7 @@ var QuotedMessage = () => {
|
|
|
47073
47084
|
className: "str-chat__quoted-message-bubble__text",
|
|
47074
47085
|
"data-testid": "quoted-message-text"
|
|
47075
47086
|
},
|
|
47076
|
-
|
|
47087
|
+
renderedText
|
|
47077
47088
|
))
|
|
47078
47089
|
)
|
|
47079
47090
|
), message.attachments?.length ? /* @__PURE__ */ import_react179.default.createElement(Attachment2, { attachments: message.attachments }) : null);
|
|
@@ -48380,10 +48391,10 @@ var DefaultTriggerProvider = ({
|
|
|
48380
48391
|
};
|
|
48381
48392
|
|
|
48382
48393
|
// src/components/MessageInput/EditMessageForm.tsx
|
|
48383
|
-
var
|
|
48394
|
+
var import_react216 = __toESM(require("react"));
|
|
48384
48395
|
|
|
48385
48396
|
// src/components/MessageInput/MessageInputFlat.tsx
|
|
48386
|
-
var
|
|
48397
|
+
var import_react215 = __toESM(require("react"));
|
|
48387
48398
|
var import_clsx54 = __toESM(require("clsx"));
|
|
48388
48399
|
var import_react_dropzone2 = require("react-dropzone");
|
|
48389
48400
|
|
|
@@ -48425,40 +48436,170 @@ var StopAIGenerationButton = ({
|
|
|
48425
48436
|
};
|
|
48426
48437
|
|
|
48427
48438
|
// src/components/MessageInput/QuotedMessagePreview.tsx
|
|
48428
|
-
var
|
|
48439
|
+
var import_react210 = __toESM(require("react"));
|
|
48440
|
+
|
|
48441
|
+
// src/components/Message/FixedHeightMessage.tsx
|
|
48442
|
+
var import_react208 = __toESM(require("react"));
|
|
48443
|
+
|
|
48444
|
+
// src/components/MML/MML.tsx
|
|
48445
|
+
var import_react207 = __toESM(require("react"));
|
|
48446
|
+
var MMLReact = import_react207.default.lazy(async () => {
|
|
48447
|
+
const mml = await Promise.resolve().then(() => (init_mml_react_esm(), mml_react_esm_exports));
|
|
48448
|
+
return { default: mml.MML };
|
|
48449
|
+
});
|
|
48450
|
+
var MML3 = (props) => {
|
|
48451
|
+
const { actionHandler, align = "right", source } = props;
|
|
48452
|
+
const { theme } = useChatContext("MML");
|
|
48453
|
+
return /* @__PURE__ */ import_react207.default.createElement(import_react207.Suspense, { fallback: null }, /* @__PURE__ */ import_react207.default.createElement(
|
|
48454
|
+
MMLReact,
|
|
48455
|
+
{
|
|
48456
|
+
className: `mml-align-${align}`,
|
|
48457
|
+
Loading: null,
|
|
48458
|
+
onSubmit: actionHandler,
|
|
48459
|
+
source,
|
|
48460
|
+
Success: null,
|
|
48461
|
+
theme: (theme || "").replace(" ", "-")
|
|
48462
|
+
}
|
|
48463
|
+
));
|
|
48464
|
+
};
|
|
48465
|
+
|
|
48466
|
+
// src/components/Message/FixedHeightMessage.tsx
|
|
48467
|
+
var selectColor = (number3, dark) => {
|
|
48468
|
+
const hue = number3 * 137.508;
|
|
48469
|
+
return `hsl(${hue},${dark ? "50%" : "85%"}, ${dark ? "75%" : "55%"})`;
|
|
48470
|
+
};
|
|
48471
|
+
var hashUserId = (userId) => {
|
|
48472
|
+
const hash = userId.split("").reduce((acc, c) => {
|
|
48473
|
+
acc = (acc << 5) - acc + c.charCodeAt(0);
|
|
48474
|
+
return acc & acc;
|
|
48475
|
+
}, 0);
|
|
48476
|
+
return Math.abs(hash) / 10 ** Math.ceil(Math.log10(Math.abs(hash) + 1));
|
|
48477
|
+
};
|
|
48478
|
+
var getUserColor = (theme, userId) => selectColor(hashUserId(userId), theme.includes("dark"));
|
|
48479
|
+
var UnMemoizedFixedHeightMessage = (props) => {
|
|
48480
|
+
const { groupedByUser: propGroupedByUser, message: propMessage } = props;
|
|
48481
|
+
const { theme } = useChatContext("FixedHeightMessage");
|
|
48482
|
+
const { groupedByUser: contextGroupedByUser, message: contextMessage } = useMessageContext("FixedHeightMessage");
|
|
48483
|
+
const { MessageDeleted: MessageDeleted2 = MessageDeleted } = useComponentContext("FixedHeightMessage");
|
|
48484
|
+
const { userLanguage } = useTranslationContext("FixedHeightMessage");
|
|
48485
|
+
const groupedByUser = propGroupedByUser !== void 0 ? propGroupedByUser : contextGroupedByUser;
|
|
48486
|
+
const message = propMessage || contextMessage;
|
|
48487
|
+
const handleAction = useActionHandler(message);
|
|
48488
|
+
const handleDelete2 = useDeleteHandler(message);
|
|
48489
|
+
const role = useUserRole(message);
|
|
48490
|
+
const messageTextToRender = message?.i18n?.[`${userLanguage}_text`] || message?.text;
|
|
48491
|
+
const renderedText = (0, import_react208.useMemo)(
|
|
48492
|
+
() => renderText(messageTextToRender, message.mentioned_users),
|
|
48493
|
+
[message.mentioned_users, messageTextToRender]
|
|
48494
|
+
);
|
|
48495
|
+
const userId = message.user?.id || "";
|
|
48496
|
+
const userColor = (0, import_react208.useMemo)(() => getUserColor(theme, userId), [userId, theme]);
|
|
48497
|
+
const messageActionsHandler = (0, import_react208.useCallback)(
|
|
48498
|
+
() => getMessageActions(["delete"], { canDelete: role.canDelete }),
|
|
48499
|
+
[role]
|
|
48500
|
+
);
|
|
48501
|
+
const images = message?.attachments?.filter(({ type }) => type === "image");
|
|
48502
|
+
return /* @__PURE__ */ import_react208.default.createElement(
|
|
48503
|
+
"div",
|
|
48504
|
+
{
|
|
48505
|
+
className: `str-chat__virtual-message__wrapper ${role.isMyMessage ? "str-chat__virtual-message__wrapper--me" : ""} ${groupedByUser ? "str-chat__virtual-message__wrapper--group" : ""}`,
|
|
48506
|
+
key: message.id
|
|
48507
|
+
},
|
|
48508
|
+
message.user && /* @__PURE__ */ import_react208.default.createElement(
|
|
48509
|
+
Avatar,
|
|
48510
|
+
{
|
|
48511
|
+
image: message.user.image,
|
|
48512
|
+
name: message.user.name || message.user.id,
|
|
48513
|
+
user: message.user
|
|
48514
|
+
}
|
|
48515
|
+
),
|
|
48516
|
+
/* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__content" }, /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__meta" }, /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__author", style: { color: userColor } }, /* @__PURE__ */ import_react208.default.createElement("strong", null, message.user?.name || "unknown"))), message.deleted_at || message.type === "deleted" ? /* @__PURE__ */ import_react208.default.createElement(MessageDeleted2, { message }) : /* @__PURE__ */ import_react208.default.createElement(import_react208.default.Fragment, null, images && /* @__PURE__ */ import_react208.default.createElement(Gallery, { images }), /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__text", "data-testid": "msg-text" }, renderedText, message.mml && /* @__PURE__ */ import_react208.default.createElement(MML3, { actionHandler: handleAction, align: "left", source: message.mml }), /* @__PURE__ */ import_react208.default.createElement("div", { className: "str-chat__virtual-message__data" }, /* @__PURE__ */ import_react208.default.createElement(
|
|
48517
|
+
MessageActions,
|
|
48518
|
+
{
|
|
48519
|
+
customWrapperClass: "str-chat__virtual-message__actions",
|
|
48520
|
+
getMessageActions: messageActionsHandler,
|
|
48521
|
+
handleDelete: handleDelete2,
|
|
48522
|
+
message,
|
|
48523
|
+
mine: () => role.isMyMessage
|
|
48524
|
+
}
|
|
48525
|
+
), /* @__PURE__ */ import_react208.default.createElement("span", { className: "str-chat__virtual-message__date" }, /* @__PURE__ */ import_react208.default.createElement(
|
|
48526
|
+
MessageTimestamp,
|
|
48527
|
+
{
|
|
48528
|
+
customClass: "str-chat__message-simple-timestamp",
|
|
48529
|
+
message
|
|
48530
|
+
}
|
|
48531
|
+
))))))
|
|
48532
|
+
);
|
|
48533
|
+
};
|
|
48534
|
+
var FixedHeightMessage = import_react208.default.memo(
|
|
48535
|
+
UnMemoizedFixedHeightMessage
|
|
48536
|
+
);
|
|
48537
|
+
|
|
48538
|
+
// src/components/Message/StreamedMessageText.tsx
|
|
48539
|
+
var import_react209 = __toESM(require("react"));
|
|
48540
|
+
var StreamedMessageText = (props) => {
|
|
48541
|
+
const {
|
|
48542
|
+
message: messageFromProps,
|
|
48543
|
+
renderingLetterCount,
|
|
48544
|
+
renderText: renderText2,
|
|
48545
|
+
streamingLetterIntervalMs
|
|
48546
|
+
} = props;
|
|
48547
|
+
const { message: messageFromContext } = useMessageContext("StreamedMessageText");
|
|
48548
|
+
const message = messageFromProps || messageFromContext;
|
|
48549
|
+
const { text: text8 = "" } = message;
|
|
48550
|
+
const { streamedMessageText } = useMessageTextStreaming({
|
|
48551
|
+
renderingLetterCount,
|
|
48552
|
+
streamingLetterIntervalMs,
|
|
48553
|
+
text: text8
|
|
48554
|
+
});
|
|
48555
|
+
return /* @__PURE__ */ import_react209.default.createElement(
|
|
48556
|
+
MessageText,
|
|
48557
|
+
{
|
|
48558
|
+
message: { ...message, text: streamedMessageText },
|
|
48559
|
+
renderText: renderText2
|
|
48560
|
+
}
|
|
48561
|
+
);
|
|
48562
|
+
};
|
|
48563
|
+
|
|
48564
|
+
// src/components/MessageInput/QuotedMessagePreview.tsx
|
|
48429
48565
|
var QuotedMessagePreviewHeader = () => {
|
|
48430
48566
|
const { setQuotedMessage } = useChannelActionContext("QuotedMessagePreview");
|
|
48431
48567
|
const { t: t2 } = useTranslationContext("QuotedMessagePreview");
|
|
48432
|
-
return /* @__PURE__ */
|
|
48568
|
+
return /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-preview-header" }, /* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-reply-to-message" }, t2("Reply to Message")), /* @__PURE__ */ import_react210.default.createElement(
|
|
48433
48569
|
"button",
|
|
48434
48570
|
{
|
|
48435
48571
|
"aria-label": t2("aria/Cancel Reply"),
|
|
48436
48572
|
className: "str-chat__quoted-message-remove",
|
|
48437
48573
|
onClick: () => setQuotedMessage(void 0)
|
|
48438
48574
|
},
|
|
48439
|
-
/* @__PURE__ */
|
|
48575
|
+
/* @__PURE__ */ import_react210.default.createElement(CloseIcon, null)
|
|
48440
48576
|
));
|
|
48441
48577
|
};
|
|
48442
48578
|
var QuotedMessagePreview = ({
|
|
48443
|
-
quotedMessage
|
|
48579
|
+
quotedMessage,
|
|
48580
|
+
renderText: renderText2 = renderText
|
|
48444
48581
|
}) => {
|
|
48445
48582
|
const { client } = useChatContext();
|
|
48446
48583
|
const { Attachment: Attachment2 = Attachment, Avatar: Avatar2 = Avatar } = useComponentContext("QuotedMessagePreview");
|
|
48447
48584
|
const { userLanguage } = useTranslationContext("QuotedMessagePreview");
|
|
48448
48585
|
const quotedMessageText = quotedMessage.i18n?.[`${userLanguage}_text`] || quotedMessage.text;
|
|
48449
|
-
const
|
|
48586
|
+
const renderedText = (0, import_react210.useMemo)(
|
|
48587
|
+
() => renderText2(quotedMessageText, quotedMessage.mentioned_users),
|
|
48588
|
+
[quotedMessage.mentioned_users, quotedMessageText, renderText2]
|
|
48589
|
+
);
|
|
48590
|
+
const quotedMessageAttachment = (0, import_react210.useMemo)(() => {
|
|
48450
48591
|
const [attachment] = quotedMessage.attachments ?? [];
|
|
48451
48592
|
return attachment ? [attachment] : [];
|
|
48452
48593
|
}, [quotedMessage.attachments]);
|
|
48453
48594
|
if (!quotedMessageText && !quotedMessageAttachment) return null;
|
|
48454
48595
|
const poll = quotedMessage.poll_id && client.polls.fromState(quotedMessage.poll_id);
|
|
48455
|
-
return /* @__PURE__ */
|
|
48596
|
+
return /* @__PURE__ */ import_react210.default.createElement(
|
|
48456
48597
|
"div",
|
|
48457
48598
|
{
|
|
48458
48599
|
className: "str-chat__quoted-message-preview",
|
|
48459
48600
|
"data-testid": "quoted-message-preview"
|
|
48460
48601
|
},
|
|
48461
|
-
quotedMessage.user && /* @__PURE__ */
|
|
48602
|
+
quotedMessage.user && /* @__PURE__ */ import_react210.default.createElement(
|
|
48462
48603
|
Avatar2,
|
|
48463
48604
|
{
|
|
48464
48605
|
className: "str-chat__avatar--quoted-message-sender",
|
|
@@ -48467,33 +48608,33 @@ var QuotedMessagePreview = ({
|
|
|
48467
48608
|
user: quotedMessage.user
|
|
48468
48609
|
}
|
|
48469
48610
|
),
|
|
48470
|
-
/* @__PURE__ */
|
|
48611
|
+
/* @__PURE__ */ import_react210.default.createElement("div", { className: "str-chat__quoted-message-bubble" }, poll ? /* @__PURE__ */ import_react210.default.createElement(Poll, { isQuoted: true, poll }) : /* @__PURE__ */ import_react210.default.createElement(import_react210.default.Fragment, null, !!quotedMessageAttachment.length && /* @__PURE__ */ import_react210.default.createElement(Attachment2, { attachments: quotedMessageAttachment, isQuoted: true }), /* @__PURE__ */ import_react210.default.createElement(
|
|
48471
48612
|
"div",
|
|
48472
48613
|
{
|
|
48473
48614
|
className: "str-chat__quoted-message-text",
|
|
48474
48615
|
"data-testid": "quoted-message-text"
|
|
48475
48616
|
},
|
|
48476
|
-
|
|
48617
|
+
renderedText
|
|
48477
48618
|
)))
|
|
48478
48619
|
);
|
|
48479
48620
|
};
|
|
48480
48621
|
|
|
48481
48622
|
// src/components/MessageInput/LinkPreviewList.tsx
|
|
48482
48623
|
var import_clsx53 = __toESM(require("clsx"));
|
|
48483
|
-
var
|
|
48624
|
+
var import_react211 = __toESM(require("react"));
|
|
48484
48625
|
var LinkPreviewList = ({ linkPreviews }) => {
|
|
48485
48626
|
const { quotedMessage } = useChannelStateContext();
|
|
48486
48627
|
const showLinkPreviews = linkPreviews.length > 0 && !quotedMessage;
|
|
48487
48628
|
if (!showLinkPreviews) return null;
|
|
48488
|
-
return /* @__PURE__ */
|
|
48489
|
-
(linkPreview) => linkPreview.state === "loaded" /* LOADED */ ? /* @__PURE__ */
|
|
48629
|
+
return /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-list" }, Array.from(linkPreviews.values()).map(
|
|
48630
|
+
(linkPreview) => linkPreview.state === "loaded" /* LOADED */ ? /* @__PURE__ */ import_react211.default.createElement(LinkPreviewCard, { key: linkPreview.og_scrape_url, linkPreview }) : null
|
|
48490
48631
|
));
|
|
48491
48632
|
};
|
|
48492
48633
|
var LinkPreviewCard = ({ linkPreview }) => {
|
|
48493
48634
|
const { dismissLinkPreview } = useMessageInputContext();
|
|
48494
48635
|
const { handleEnter, handleLeave, tooltipVisible } = useEnterLeaveHandlers();
|
|
48495
|
-
const [referenceElement, setReferenceElement] = (0,
|
|
48496
|
-
return /* @__PURE__ */
|
|
48636
|
+
const [referenceElement, setReferenceElement] = (0, import_react211.useState)(null);
|
|
48637
|
+
return /* @__PURE__ */ import_react211.default.createElement(
|
|
48497
48638
|
"div",
|
|
48498
48639
|
{
|
|
48499
48640
|
className: (0, import_clsx53.default)("str-chat__link-preview-card", {
|
|
@@ -48501,7 +48642,7 @@ var LinkPreviewCard = ({ linkPreview }) => {
|
|
|
48501
48642
|
}),
|
|
48502
48643
|
"data-testid": "link-preview-card"
|
|
48503
48644
|
},
|
|
48504
|
-
/* @__PURE__ */
|
|
48645
|
+
/* @__PURE__ */ import_react211.default.createElement(
|
|
48505
48646
|
PopperTooltip,
|
|
48506
48647
|
{
|
|
48507
48648
|
offset: [0, 5],
|
|
@@ -48510,7 +48651,7 @@ var LinkPreviewCard = ({ linkPreview }) => {
|
|
|
48510
48651
|
},
|
|
48511
48652
|
linkPreview.og_scrape_url
|
|
48512
48653
|
),
|
|
48513
|
-
/* @__PURE__ */
|
|
48654
|
+
/* @__PURE__ */ import_react211.default.createElement(
|
|
48514
48655
|
"div",
|
|
48515
48656
|
{
|
|
48516
48657
|
className: "str-chat__link-preview-card__icon-container",
|
|
@@ -48518,23 +48659,23 @@ var LinkPreviewCard = ({ linkPreview }) => {
|
|
|
48518
48659
|
onMouseLeave: handleLeave,
|
|
48519
48660
|
ref: setReferenceElement
|
|
48520
48661
|
},
|
|
48521
|
-
/* @__PURE__ */
|
|
48662
|
+
/* @__PURE__ */ import_react211.default.createElement(LinkIcon, null)
|
|
48522
48663
|
),
|
|
48523
|
-
/* @__PURE__ */
|
|
48524
|
-
/* @__PURE__ */
|
|
48664
|
+
/* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content" }, /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content-title" }, linkPreview.title), /* @__PURE__ */ import_react211.default.createElement("div", { className: "str-chat__link-preview-card__content-description" }, linkPreview.text)),
|
|
48665
|
+
/* @__PURE__ */ import_react211.default.createElement(
|
|
48525
48666
|
"button",
|
|
48526
48667
|
{
|
|
48527
48668
|
className: "str-chat__link-preview-card__dismiss-button",
|
|
48528
48669
|
"data-testid": "link-preview-card-dismiss-btn",
|
|
48529
48670
|
onClick: () => dismissLinkPreview(linkPreview)
|
|
48530
48671
|
},
|
|
48531
|
-
/* @__PURE__ */
|
|
48672
|
+
/* @__PURE__ */ import_react211.default.createElement(CloseIcon, null)
|
|
48532
48673
|
)
|
|
48533
48674
|
);
|
|
48534
48675
|
};
|
|
48535
48676
|
|
|
48536
48677
|
// src/components/ChatAutoComplete/ChatAutoComplete.tsx
|
|
48537
|
-
var
|
|
48678
|
+
var import_react212 = __toESM(require("react"));
|
|
48538
48679
|
var UnMemoizedChatAutoComplete = (props) => {
|
|
48539
48680
|
const {
|
|
48540
48681
|
AutocompleteSuggestionItem: SuggestionItem,
|
|
@@ -48556,7 +48697,7 @@ var UnMemoizedChatAutoComplete = (props) => {
|
|
|
48556
48697
|
const [firstSkin] = emoji.skins ?? [];
|
|
48557
48698
|
return emoji.native ?? firstSkin.native;
|
|
48558
48699
|
};
|
|
48559
|
-
const updateInnerRef = (0,
|
|
48700
|
+
const updateInnerRef = (0, import_react212.useCallback)(
|
|
48560
48701
|
(ref) => {
|
|
48561
48702
|
if (innerRef) {
|
|
48562
48703
|
innerRef.current = ref;
|
|
@@ -48564,7 +48705,7 @@ var UnMemoizedChatAutoComplete = (props) => {
|
|
|
48564
48705
|
},
|
|
48565
48706
|
[innerRef]
|
|
48566
48707
|
);
|
|
48567
|
-
return /* @__PURE__ */
|
|
48708
|
+
return /* @__PURE__ */ import_react212.default.createElement(
|
|
48568
48709
|
ReactTextareaAutocomplete,
|
|
48569
48710
|
{
|
|
48570
48711
|
additionalTextareaProps: messageInput.additionalTextareaProps,
|
|
@@ -48599,15 +48740,15 @@ var UnMemoizedChatAutoComplete = (props) => {
|
|
|
48599
48740
|
}
|
|
48600
48741
|
);
|
|
48601
48742
|
};
|
|
48602
|
-
var ChatAutoComplete =
|
|
48743
|
+
var ChatAutoComplete = import_react212.default.memo(
|
|
48603
48744
|
UnMemoizedChatAutoComplete
|
|
48604
48745
|
);
|
|
48605
48746
|
|
|
48606
48747
|
// src/components/AIStateIndicator/AIStateIndicator.tsx
|
|
48607
|
-
var
|
|
48748
|
+
var import_react214 = __toESM(require("react"));
|
|
48608
48749
|
|
|
48609
48750
|
// src/components/AIStateIndicator/hooks/useAIState.ts
|
|
48610
|
-
var
|
|
48751
|
+
var import_react213 = require("react");
|
|
48611
48752
|
var AIStates = {
|
|
48612
48753
|
Error: "AI_STATE_ERROR",
|
|
48613
48754
|
ExternalSources: "AI_STATE_EXTERNAL_SOURCES",
|
|
@@ -48616,8 +48757,8 @@ var AIStates = {
|
|
|
48616
48757
|
Thinking: "AI_STATE_THINKING"
|
|
48617
48758
|
};
|
|
48618
48759
|
var useAIState = (channel) => {
|
|
48619
|
-
const [aiState, setAiState] = (0,
|
|
48620
|
-
(0,
|
|
48760
|
+
const [aiState, setAiState] = (0, import_react213.useState)(AIStates.Idle);
|
|
48761
|
+
(0, import_react213.useEffect)(() => {
|
|
48621
48762
|
if (!channel) {
|
|
48622
48763
|
return;
|
|
48623
48764
|
}
|
|
@@ -48657,7 +48798,7 @@ var AIStateIndicator = ({
|
|
|
48657
48798
|
[AIStates.Thinking]: t2("Thinking..."),
|
|
48658
48799
|
[AIStates.Generating]: t2("Generating...")
|
|
48659
48800
|
};
|
|
48660
|
-
return aiState in allowedStates ? /* @__PURE__ */
|
|
48801
|
+
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;
|
|
48661
48802
|
};
|
|
48662
48803
|
|
|
48663
48804
|
// src/components/MessageInput/MessageInputFlat.tsx
|
|
@@ -48702,19 +48843,19 @@ var MessageInputFlat = () => {
|
|
|
48702
48843
|
const { setQuotedMessage } = useChannelActionContext("MessageInputFlat");
|
|
48703
48844
|
const { channel } = useChatContext("MessageInputFlat");
|
|
48704
48845
|
const { aiState } = useAIState(channel);
|
|
48705
|
-
const stopGenerating = (0,
|
|
48846
|
+
const stopGenerating = (0, import_react215.useCallback)(() => channel?.stopAIResponse(), [channel]);
|
|
48706
48847
|
const [
|
|
48707
48848
|
showRecordingPermissionDeniedNotification,
|
|
48708
48849
|
setShowRecordingPermissionDeniedNotification
|
|
48709
|
-
] = (0,
|
|
48710
|
-
const closePermissionDeniedNotification = (0,
|
|
48850
|
+
] = (0, import_react215.useState)(false);
|
|
48851
|
+
const closePermissionDeniedNotification = (0, import_react215.useCallback)(() => {
|
|
48711
48852
|
setShowRecordingPermissionDeniedNotification(false);
|
|
48712
48853
|
}, []);
|
|
48713
|
-
const failedUploadsCount = (0,
|
|
48854
|
+
const failedUploadsCount = (0, import_react215.useMemo)(
|
|
48714
48855
|
() => attachments.filter((a2) => a2.localMetadata?.uploadState === "failed").length,
|
|
48715
48856
|
[attachments]
|
|
48716
48857
|
);
|
|
48717
|
-
const accept = (0,
|
|
48858
|
+
const accept = (0, import_react215.useMemo)(
|
|
48718
48859
|
() => acceptedFiles.reduce((mediaTypeMap, mediaType) => {
|
|
48719
48860
|
mediaTypeMap[mediaType] ?? (mediaTypeMap[mediaType] = []);
|
|
48720
48861
|
return mediaTypeMap;
|
|
@@ -48728,7 +48869,7 @@ var MessageInputFlat = () => {
|
|
|
48728
48869
|
noClick: true,
|
|
48729
48870
|
onDrop: uploadNewFiles
|
|
48730
48871
|
});
|
|
48731
|
-
(0,
|
|
48872
|
+
(0, import_react215.useEffect)(() => {
|
|
48732
48873
|
const handleQuotedMessageUpdate = (e2) => {
|
|
48733
48874
|
if (e2.message?.id !== quotedMessage?.id) return;
|
|
48734
48875
|
if (e2.type === "message.deleted") {
|
|
@@ -48744,40 +48885,40 @@ var MessageInputFlat = () => {
|
|
|
48744
48885
|
channel?.off("message.updated", handleQuotedMessageUpdate);
|
|
48745
48886
|
};
|
|
48746
48887
|
}, [channel, quotedMessage]);
|
|
48747
|
-
if (recordingController.recordingState) return /* @__PURE__ */
|
|
48888
|
+
if (recordingController.recordingState) return /* @__PURE__ */ import_react215.default.createElement(AudioRecorder2, null);
|
|
48748
48889
|
const displayQuotedMessage = !message && quotedMessage && quotedMessage.parent_id === parent?.id;
|
|
48749
48890
|
const recordingEnabled = !!(recordingController.recorder && navigator.mediaDevices);
|
|
48750
48891
|
const isRecording = !!recordingController.recordingState;
|
|
48751
48892
|
const StopAIGenerationButton2 = StopAIGenerationButtonOverride === void 0 ? StopAIGenerationButton : StopAIGenerationButtonOverride;
|
|
48752
48893
|
const shouldDisplayStopAIGeneration = [AIStates.Thinking, AIStates.Generating].includes(aiState) && !!StopAIGenerationButton2;
|
|
48753
|
-
return /* @__PURE__ */
|
|
48894
|
+
return /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, /* @__PURE__ */ import_react215.default.createElement("div", { ...getRootProps({ className: "str-chat__message-input" }) }, recordingEnabled && recordingController.permissionState === "denied" && showRecordingPermissionDeniedNotification && /* @__PURE__ */ import_react215.default.createElement(
|
|
48754
48895
|
RecordingPermissionDeniedNotification2,
|
|
48755
48896
|
{
|
|
48756
48897
|
onClose: closePermissionDeniedNotification,
|
|
48757
48898
|
permissionName: "microphone" /* MIC */
|
|
48758
48899
|
}
|
|
48759
|
-
), findAndEnqueueURLsToEnrich && /* @__PURE__ */
|
|
48900
|
+
), findAndEnqueueURLsToEnrich && /* @__PURE__ */ import_react215.default.createElement(LinkPreviewList2, { linkPreviews: Array.from(linkPreviews.values()) }), isDragActive && /* @__PURE__ */ import_react215.default.createElement(
|
|
48760
48901
|
"div",
|
|
48761
48902
|
{
|
|
48762
48903
|
className: (0, import_clsx54.default)("str-chat__dropzone-container", {
|
|
48763
48904
|
"str-chat__dropzone-container--not-accepted": isDragReject
|
|
48764
48905
|
})
|
|
48765
48906
|
},
|
|
48766
|
-
!isDragReject && /* @__PURE__ */
|
|
48767
|
-
isDragReject && /* @__PURE__ */
|
|
48768
|
-
), displayQuotedMessage && /* @__PURE__ */
|
|
48907
|
+
!isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Drag your files here")),
|
|
48908
|
+
isDragReject && /* @__PURE__ */ import_react215.default.createElement("p", null, t2("Some of the files will not be accepted"))
|
|
48909
|
+
), 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(
|
|
48769
48910
|
CooldownTimer2,
|
|
48770
48911
|
{
|
|
48771
48912
|
cooldownInterval: cooldownRemaining,
|
|
48772
48913
|
setCooldownRemaining
|
|
48773
48914
|
}
|
|
48774
|
-
) : /* @__PURE__ */
|
|
48915
|
+
) : /* @__PURE__ */ import_react215.default.createElement(import_react215.default.Fragment, null, /* @__PURE__ */ import_react215.default.createElement(
|
|
48775
48916
|
SendButton2,
|
|
48776
48917
|
{
|
|
48777
48918
|
disabled: !numberOfUploads && !text8.length && attachments.length - failedUploadsCount === 0,
|
|
48778
48919
|
sendMessage: handleSubmit
|
|
48779
48920
|
}
|
|
48780
|
-
), recordingEnabled && /* @__PURE__ */
|
|
48921
|
+
), recordingEnabled && /* @__PURE__ */ import_react215.default.createElement(
|
|
48781
48922
|
StartRecordingAudioButton2,
|
|
48782
48923
|
{
|
|
48783
48924
|
disabled: isRecording || !asyncMessagesMultiSendEnabled && attachments.some(
|
|
@@ -48795,22 +48936,22 @@ var MessageInputFlat = () => {
|
|
|
48795
48936
|
var EditMessageForm = () => {
|
|
48796
48937
|
const { t: t2 } = useTranslationContext("EditMessageForm");
|
|
48797
48938
|
const { clearEditingState, handleSubmit } = useMessageInputContext("EditMessageForm");
|
|
48798
|
-
(0,
|
|
48939
|
+
(0, import_react216.useEffect)(() => {
|
|
48799
48940
|
const onKeyDown = (event) => {
|
|
48800
48941
|
if (event.key === "Escape") clearEditingState?.();
|
|
48801
48942
|
};
|
|
48802
48943
|
document.addEventListener("keydown", onKeyDown);
|
|
48803
48944
|
return () => document.removeEventListener("keydown", onKeyDown);
|
|
48804
48945
|
}, [clearEditingState]);
|
|
48805
|
-
return /* @__PURE__ */
|
|
48946
|
+
return /* @__PURE__ */ import_react216.default.createElement(
|
|
48806
48947
|
"form",
|
|
48807
48948
|
{
|
|
48808
48949
|
autoComplete: "off",
|
|
48809
48950
|
className: "str-chat__edit-message-form",
|
|
48810
48951
|
onSubmit: handleSubmit
|
|
48811
48952
|
},
|
|
48812
|
-
/* @__PURE__ */
|
|
48813
|
-
/* @__PURE__ */
|
|
48953
|
+
/* @__PURE__ */ import_react216.default.createElement(MessageInputFlat, null),
|
|
48954
|
+
/* @__PURE__ */ import_react216.default.createElement("div", { className: "str-chat__edit-message-form-options" }, /* @__PURE__ */ import_react216.default.createElement(
|
|
48814
48955
|
"button",
|
|
48815
48956
|
{
|
|
48816
48957
|
className: "str-chat__edit-message-cancel",
|
|
@@ -48818,7 +48959,7 @@ var EditMessageForm = () => {
|
|
|
48818
48959
|
onClick: clearEditingState
|
|
48819
48960
|
},
|
|
48820
48961
|
t2("Cancel")
|
|
48821
|
-
), /* @__PURE__ */
|
|
48962
|
+
), /* @__PURE__ */ import_react216.default.createElement(
|
|
48822
48963
|
"button",
|
|
48823
48964
|
{
|
|
48824
48965
|
className: "str-chat__edit-message-send",
|
|
@@ -48831,7 +48972,7 @@ var EditMessageForm = () => {
|
|
|
48831
48972
|
};
|
|
48832
48973
|
|
|
48833
48974
|
// src/components/MessageInput/MessageInput.tsx
|
|
48834
|
-
var
|
|
48975
|
+
var import_react217 = __toESM(require("react"));
|
|
48835
48976
|
var MessageInputProvider = (props) => {
|
|
48836
48977
|
const cooldownTimerState = useCooldownTimer();
|
|
48837
48978
|
const messageInputState = useMessageInputState(props);
|
|
@@ -48842,7 +48983,7 @@ var MessageInputProvider = (props) => {
|
|
|
48842
48983
|
...props,
|
|
48843
48984
|
emojiSearchIndex: props.emojiSearchIndex ?? emojiSearchIndex
|
|
48844
48985
|
});
|
|
48845
|
-
return /* @__PURE__ */
|
|
48986
|
+
return /* @__PURE__ */ import_react217.default.createElement(MessageInputContextProvider, { value: messageInputContextValue }, props.children);
|
|
48846
48987
|
};
|
|
48847
48988
|
var UnMemoizedMessageInput = (props) => {
|
|
48848
48989
|
const { Input: PropInput } = props;
|
|
@@ -48851,57 +48992,35 @@ var UnMemoizedMessageInput = (props) => {
|
|
|
48851
48992
|
const Input3 = PropInput || ContextInput || MessageInputFlat;
|
|
48852
48993
|
const dialogManagerId = props.isThreadInput ? "message-input-dialog-manager-thread" : "message-input-dialog-manager";
|
|
48853
48994
|
if (dragAndDropWindow)
|
|
48854
|
-
return /* @__PURE__ */
|
|
48855
|
-
return /* @__PURE__ */
|
|
48995
|
+
return /* @__PURE__ */ import_react217.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react217.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react217.default.createElement(Input3, null)));
|
|
48996
|
+
return /* @__PURE__ */ import_react217.default.createElement(DialogManagerProvider, { id: dialogManagerId }, /* @__PURE__ */ import_react217.default.createElement(MessageInputProvider, { ...props }, /* @__PURE__ */ import_react217.default.createElement(TriggerProvider, null, /* @__PURE__ */ import_react217.default.createElement(Input3, null))));
|
|
48856
48997
|
};
|
|
48857
|
-
var MessageInput =
|
|
48998
|
+
var MessageInput = import_react217.default.memo(
|
|
48858
48999
|
UnMemoizedMessageInput
|
|
48859
49000
|
);
|
|
48860
49001
|
|
|
48861
|
-
// src/components/MML/MML.tsx
|
|
48862
|
-
var import_react215 = __toESM(require("react"));
|
|
48863
|
-
var MMLReact = import_react215.default.lazy(async () => {
|
|
48864
|
-
const mml = await Promise.resolve().then(() => (init_mml_react_esm(), mml_react_esm_exports));
|
|
48865
|
-
return { default: mml.MML };
|
|
48866
|
-
});
|
|
48867
|
-
var MML3 = (props) => {
|
|
48868
|
-
const { actionHandler, align = "right", source } = props;
|
|
48869
|
-
const { theme } = useChatContext("MML");
|
|
48870
|
-
return /* @__PURE__ */ import_react215.default.createElement(import_react215.Suspense, { fallback: null }, /* @__PURE__ */ import_react215.default.createElement(
|
|
48871
|
-
MMLReact,
|
|
48872
|
-
{
|
|
48873
|
-
className: `mml-align-${align}`,
|
|
48874
|
-
Loading: null,
|
|
48875
|
-
onSubmit: actionHandler,
|
|
48876
|
-
source,
|
|
48877
|
-
Success: null,
|
|
48878
|
-
theme: (theme || "").replace(" ", "-")
|
|
48879
|
-
}
|
|
48880
|
-
));
|
|
48881
|
-
};
|
|
48882
|
-
|
|
48883
49002
|
// src/components/Reactions/ReactionsList.tsx
|
|
48884
|
-
var
|
|
49003
|
+
var import_react221 = __toESM(require("react"));
|
|
48885
49004
|
var import_clsx56 = __toESM(require("clsx"));
|
|
48886
49005
|
|
|
48887
49006
|
// src/components/Reactions/ReactionsListModal.tsx
|
|
48888
|
-
var
|
|
49007
|
+
var import_react219 = __toESM(require("react"));
|
|
48889
49008
|
var import_clsx55 = __toESM(require("clsx"));
|
|
48890
49009
|
|
|
48891
49010
|
// src/components/Reactions/hooks/useFetchReactions.ts
|
|
48892
|
-
var
|
|
49011
|
+
var import_react218 = require("react");
|
|
48893
49012
|
function useFetchReactions(options) {
|
|
48894
49013
|
const { handleFetchReactions: contextHandleFetchReactions } = useMessageContext("useFetchReactions");
|
|
48895
|
-
const [reactions, setReactions] = (0,
|
|
49014
|
+
const [reactions, setReactions] = (0, import_react218.useState)([]);
|
|
48896
49015
|
const {
|
|
48897
49016
|
handleFetchReactions: propHandleFetchReactions,
|
|
48898
49017
|
reactionType,
|
|
48899
49018
|
shouldFetch,
|
|
48900
49019
|
sort
|
|
48901
49020
|
} = options;
|
|
48902
|
-
const [isLoading, setIsLoading] = (0,
|
|
49021
|
+
const [isLoading, setIsLoading] = (0, import_react218.useState)(shouldFetch);
|
|
48903
49022
|
const handleFetchReactions = propHandleFetchReactions ?? contextHandleFetchReactions;
|
|
48904
|
-
(0,
|
|
49023
|
+
(0, import_react218.useEffect)(() => {
|
|
48905
49024
|
if (!shouldFetch) {
|
|
48906
49025
|
return;
|
|
48907
49026
|
}
|
|
@@ -48957,24 +49076,24 @@ function ReactionsListModal({
|
|
|
48957
49076
|
shouldFetch: modalProps.open,
|
|
48958
49077
|
sort: reactionDetailsSort
|
|
48959
49078
|
});
|
|
48960
|
-
const reactionDetailsWithLegacyFallback = (0,
|
|
49079
|
+
const reactionDetailsWithLegacyFallback = (0, import_react219.useMemo)(
|
|
48961
49080
|
() => legacySortReactionDetails ? [...reactionDetails].sort(legacySortReactionDetails) : reactionDetails,
|
|
48962
49081
|
[legacySortReactionDetails, reactionDetails]
|
|
48963
49082
|
);
|
|
48964
|
-
return /* @__PURE__ */
|
|
49083
|
+
return /* @__PURE__ */ import_react219.default.createElement(
|
|
48965
49084
|
Modal,
|
|
48966
49085
|
{
|
|
48967
49086
|
...modalProps,
|
|
48968
49087
|
className: (0, import_clsx55.default)("str-chat__message-reactions-details-modal", modalProps.className)
|
|
48969
49088
|
},
|
|
48970
|
-
/* @__PURE__ */
|
|
49089
|
+
/* @__PURE__ */ import_react219.default.createElement(
|
|
48971
49090
|
"div",
|
|
48972
49091
|
{
|
|
48973
49092
|
className: "str-chat__message-reactions-details",
|
|
48974
49093
|
"data-testid": "reactions-list-modal"
|
|
48975
49094
|
},
|
|
48976
|
-
/* @__PURE__ */
|
|
48977
|
-
({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */
|
|
49095
|
+
/* @__PURE__ */ import_react219.default.createElement("div", { className: "str-chat__message-reactions-details-reaction-types" }, reactions.map(
|
|
49096
|
+
({ EmojiComponent, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react219.default.createElement(
|
|
48978
49097
|
"div",
|
|
48979
49098
|
{
|
|
48980
49099
|
className: (0, import_clsx55.default)("str-chat__message-reactions-details-reaction-type", {
|
|
@@ -48986,25 +49105,25 @@ function ReactionsListModal({
|
|
|
48986
49105
|
reactionType
|
|
48987
49106
|
)
|
|
48988
49107
|
},
|
|
48989
|
-
/* @__PURE__ */
|
|
49108
|
+
/* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback" }, /* @__PURE__ */ import_react219.default.createElement(EmojiComponent, null)),
|
|
48990
49109
|
"\xA0",
|
|
48991
|
-
/* @__PURE__ */
|
|
49110
|
+
/* @__PURE__ */ import_react219.default.createElement("span", { className: "str-chat__message-reaction-count" }, reactionCount)
|
|
48992
49111
|
)
|
|
48993
49112
|
)),
|
|
48994
|
-
SelectedEmojiComponent && /* @__PURE__ */
|
|
48995
|
-
/* @__PURE__ */
|
|
49113
|
+
SelectedEmojiComponent && /* @__PURE__ */ import_react219.default.createElement("div", { className: "str-chat__message-reaction-emoji str-chat__message-reaction-emoji--with-fallback str-chat__message-reaction-emoji-big" }, /* @__PURE__ */ import_react219.default.createElement(SelectedEmojiComponent, null)),
|
|
49114
|
+
/* @__PURE__ */ import_react219.default.createElement(
|
|
48996
49115
|
"div",
|
|
48997
49116
|
{
|
|
48998
49117
|
className: "str-chat__message-reactions-details-reacting-users",
|
|
48999
49118
|
"data-testid": "all-reacting-users"
|
|
49000
49119
|
},
|
|
49001
|
-
areReactionsLoading ? /* @__PURE__ */
|
|
49120
|
+
areReactionsLoading ? /* @__PURE__ */ import_react219.default.createElement(LoadingIndicator, null) : reactionDetailsWithLegacyFallback.map(({ user }) => /* @__PURE__ */ import_react219.default.createElement(
|
|
49002
49121
|
"div",
|
|
49003
49122
|
{
|
|
49004
49123
|
className: "str-chat__message-reactions-details-reacting-user",
|
|
49005
49124
|
key: user?.id
|
|
49006
49125
|
},
|
|
49007
|
-
/* @__PURE__ */
|
|
49126
|
+
/* @__PURE__ */ import_react219.default.createElement(
|
|
49008
49127
|
Avatar,
|
|
49009
49128
|
{
|
|
49010
49129
|
className: "stream-chat__avatar--reaction",
|
|
@@ -49013,7 +49132,7 @@ function ReactionsListModal({
|
|
|
49013
49132
|
name: user?.name || user?.id
|
|
49014
49133
|
}
|
|
49015
49134
|
),
|
|
49016
|
-
/* @__PURE__ */
|
|
49135
|
+
/* @__PURE__ */ import_react219.default.createElement(
|
|
49017
49136
|
"span",
|
|
49018
49137
|
{
|
|
49019
49138
|
className: "str-chat__user-item--name",
|
|
@@ -49028,7 +49147,7 @@ function ReactionsListModal({
|
|
|
49028
49147
|
}
|
|
49029
49148
|
|
|
49030
49149
|
// src/components/Reactions/hooks/useProcessReactions.tsx
|
|
49031
|
-
var
|
|
49150
|
+
var import_react220 = require("react");
|
|
49032
49151
|
var defaultReactionsSort = (a2, b) => {
|
|
49033
49152
|
if (a2.firstReactionAt && b.firstReactionAt) {
|
|
49034
49153
|
return +a2.firstReactionAt - +b.firstReactionAt;
|
|
@@ -49050,19 +49169,19 @@ var useProcessReactions = (params) => {
|
|
|
49050
49169
|
const latestReactions = propReactions || message.latest_reactions;
|
|
49051
49170
|
const ownReactions = propOwnReactions || message?.own_reactions;
|
|
49052
49171
|
const reactionGroups = propReactionGroups || message?.reaction_groups;
|
|
49053
|
-
const isOwnReaction = (0,
|
|
49172
|
+
const isOwnReaction = (0, import_react220.useCallback)(
|
|
49054
49173
|
(reactionType) => ownReactions?.some((reaction) => reaction.type === reactionType) ?? false,
|
|
49055
49174
|
[ownReactions]
|
|
49056
49175
|
);
|
|
49057
|
-
const getEmojiByReactionType = (0,
|
|
49176
|
+
const getEmojiByReactionType = (0, import_react220.useCallback)(
|
|
49058
49177
|
(reactionType) => reactionOptions.find(({ type }) => type === reactionType)?.Component ?? null,
|
|
49059
49178
|
[reactionOptions]
|
|
49060
49179
|
);
|
|
49061
|
-
const isSupportedReaction = (0,
|
|
49180
|
+
const isSupportedReaction = (0, import_react220.useCallback)(
|
|
49062
49181
|
(reactionType) => reactionOptions.some((reactionOption) => reactionOption.type === reactionType),
|
|
49063
49182
|
[reactionOptions]
|
|
49064
49183
|
);
|
|
49065
|
-
const getLatestReactedUserNames = (0,
|
|
49184
|
+
const getLatestReactedUserNames = (0, import_react220.useCallback)(
|
|
49066
49185
|
(reactionType) => latestReactions?.flatMap((reaction) => {
|
|
49067
49186
|
if (reactionType && reactionType === reaction.type) {
|
|
49068
49187
|
const username = reaction.user?.name || reaction.user?.id;
|
|
@@ -49072,7 +49191,7 @@ var useProcessReactions = (params) => {
|
|
|
49072
49191
|
}) ?? [],
|
|
49073
49192
|
[latestReactions]
|
|
49074
49193
|
);
|
|
49075
|
-
const existingReactions = (0,
|
|
49194
|
+
const existingReactions = (0, import_react220.useMemo)(() => {
|
|
49076
49195
|
if (!reactionGroups) {
|
|
49077
49196
|
return [];
|
|
49078
49197
|
}
|
|
@@ -49106,7 +49225,7 @@ var useProcessReactions = (params) => {
|
|
|
49106
49225
|
sortReactions
|
|
49107
49226
|
]);
|
|
49108
49227
|
const hasReactions = existingReactions.length > 0;
|
|
49109
|
-
const totalReactionCount = (0,
|
|
49228
|
+
const totalReactionCount = (0, import_react220.useMemo)(
|
|
49110
49229
|
() => existingReactions.reduce((total, { reactionCount }) => total + reactionCount, 0),
|
|
49111
49230
|
[existingReactions]
|
|
49112
49231
|
);
|
|
@@ -49128,7 +49247,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49128
49247
|
...rest
|
|
49129
49248
|
} = props;
|
|
49130
49249
|
const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
|
|
49131
|
-
const [selectedReactionType, setSelectedReactionType] = (0,
|
|
49250
|
+
const [selectedReactionType, setSelectedReactionType] = (0, import_react221.useState)(null);
|
|
49132
49251
|
const { t: t2 } = useTranslationContext("ReactionsList");
|
|
49133
49252
|
const { ReactionsListModal: ReactionsListModal2 = ReactionsListModal } = useComponentContext();
|
|
49134
49253
|
const handleReactionButtonClick = (reactionType) => {
|
|
@@ -49138,7 +49257,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49138
49257
|
setSelectedReactionType(reactionType);
|
|
49139
49258
|
};
|
|
49140
49259
|
if (!hasReactions) return null;
|
|
49141
|
-
return /* @__PURE__ */
|
|
49260
|
+
return /* @__PURE__ */ import_react221.default.createElement(import_react221.default.Fragment, null, /* @__PURE__ */ import_react221.default.createElement(
|
|
49142
49261
|
"div",
|
|
49143
49262
|
{
|
|
49144
49263
|
"aria-label": t2("aria/Reaction list"),
|
|
@@ -49149,8 +49268,8 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49149
49268
|
"data-testid": "reaction-list",
|
|
49150
49269
|
role: "figure"
|
|
49151
49270
|
},
|
|
49152
|
-
/* @__PURE__ */
|
|
49153
|
-
({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */
|
|
49271
|
+
/* @__PURE__ */ import_react221.default.createElement("ul", { className: "str-chat__message-reactions" }, existingReactions.map(
|
|
49272
|
+
({ EmojiComponent, isOwnReaction, reactionCount, reactionType }) => EmojiComponent && /* @__PURE__ */ import_react221.default.createElement(
|
|
49154
49273
|
"li",
|
|
49155
49274
|
{
|
|
49156
49275
|
className: (0, import_clsx56.default)("str-chat__message-reaction", {
|
|
@@ -49158,7 +49277,7 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49158
49277
|
}),
|
|
49159
49278
|
key: reactionType
|
|
49160
49279
|
},
|
|
49161
|
-
/* @__PURE__ */
|
|
49280
|
+
/* @__PURE__ */ import_react221.default.createElement(
|
|
49162
49281
|
"button",
|
|
49163
49282
|
{
|
|
49164
49283
|
"aria-label": `Reactions: ${reactionType}`,
|
|
@@ -49166,9 +49285,9 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49166
49285
|
onClick: () => handleReactionButtonClick(reactionType),
|
|
49167
49286
|
type: "button"
|
|
49168
49287
|
},
|
|
49169
|
-
/* @__PURE__ */
|
|
49288
|
+
/* @__PURE__ */ import_react221.default.createElement("span", { className: "str-chat__message-reaction-emoji" }, /* @__PURE__ */ import_react221.default.createElement(EmojiComponent, null)),
|
|
49170
49289
|
"\xA0",
|
|
49171
|
-
/* @__PURE__ */
|
|
49290
|
+
/* @__PURE__ */ import_react221.default.createElement(
|
|
49172
49291
|
"span",
|
|
49173
49292
|
{
|
|
49174
49293
|
className: "str-chat__message-reaction-count",
|
|
@@ -49178,8 +49297,8 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49178
49297
|
)
|
|
49179
49298
|
)
|
|
49180
49299
|
)
|
|
49181
|
-
), /* @__PURE__ */
|
|
49182
|
-
), selectedReactionType !== null && /* @__PURE__ */
|
|
49300
|
+
), /* @__PURE__ */ import_react221.default.createElement("li", null, /* @__PURE__ */ import_react221.default.createElement("span", { className: "str-chat__reaction-list--counter" }, totalReactionCount)))
|
|
49301
|
+
), selectedReactionType !== null && /* @__PURE__ */ import_react221.default.createElement(
|
|
49183
49302
|
ReactionsListModal2,
|
|
49184
49303
|
{
|
|
49185
49304
|
handleFetchReactions,
|
|
@@ -49192,12 +49311,12 @@ var UnMemoizedReactionsList = (props) => {
|
|
|
49192
49311
|
}
|
|
49193
49312
|
));
|
|
49194
49313
|
};
|
|
49195
|
-
var ReactionsList =
|
|
49314
|
+
var ReactionsList = import_react221.default.memo(
|
|
49196
49315
|
UnMemoizedReactionsList
|
|
49197
49316
|
);
|
|
49198
49317
|
|
|
49199
49318
|
// src/components/Reactions/SimpleReactionsList.tsx
|
|
49200
|
-
var
|
|
49319
|
+
var import_react222 = __toESM(require("react"));
|
|
49201
49320
|
var import_clsx57 = __toESM(require("clsx"));
|
|
49202
49321
|
var WithTooltip = ({
|
|
49203
49322
|
children,
|
|
@@ -49205,12 +49324,12 @@ var WithTooltip = ({
|
|
|
49205
49324
|
onMouseLeave,
|
|
49206
49325
|
title
|
|
49207
49326
|
}) => {
|
|
49208
|
-
const [referenceElement, setReferenceElement] = (0,
|
|
49327
|
+
const [referenceElement, setReferenceElement] = (0, import_react222.useState)(null);
|
|
49209
49328
|
const { handleEnter, handleLeave, tooltipVisible } = useEnterLeaveHandlers({
|
|
49210
49329
|
onMouseEnter,
|
|
49211
49330
|
onMouseLeave
|
|
49212
49331
|
});
|
|
49213
|
-
return /* @__PURE__ */
|
|
49332
|
+
return /* @__PURE__ */ import_react222.default.createElement(import_react222.default.Fragment, null, /* @__PURE__ */ import_react222.default.createElement(PopperTooltip, { referenceElement, visible: tooltipVisible }, title), /* @__PURE__ */ import_react222.default.createElement(
|
|
49214
49333
|
"span",
|
|
49215
49334
|
{
|
|
49216
49335
|
onMouseEnter: handleEnter,
|
|
@@ -49226,7 +49345,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
49226
49345
|
const { existingReactions, hasReactions, totalReactionCount } = useProcessReactions(rest);
|
|
49227
49346
|
const handleReaction = propHandleReaction || contextHandleReaction;
|
|
49228
49347
|
if (!hasReactions) return null;
|
|
49229
|
-
return /* @__PURE__ */
|
|
49348
|
+
return /* @__PURE__ */ import_react222.default.createElement("div", { className: "str-chat__message-reactions-container" }, /* @__PURE__ */ import_react222.default.createElement(
|
|
49230
49349
|
"ul",
|
|
49231
49350
|
{
|
|
49232
49351
|
className: "str-chat__simple-reactions-list str-chat__message-reactions",
|
|
@@ -49235,7 +49354,7 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
49235
49354
|
existingReactions.map(
|
|
49236
49355
|
({ EmojiComponent, isOwnReaction, latestReactedUserNames, reactionType }) => {
|
|
49237
49356
|
const tooltipContent = latestReactedUserNames.join(", ");
|
|
49238
|
-
return EmojiComponent && /* @__PURE__ */
|
|
49357
|
+
return EmojiComponent && /* @__PURE__ */ import_react222.default.createElement(
|
|
49239
49358
|
"li",
|
|
49240
49359
|
{
|
|
49241
49360
|
className: (0, import_clsx57.default)("str-chat__simple-reactions-list-item", {
|
|
@@ -49245,19 +49364,19 @@ var UnMemoizedSimpleReactionsList = (props) => {
|
|
|
49245
49364
|
onClick: (event) => handleReaction(reactionType, event),
|
|
49246
49365
|
onKeyUp: (event) => handleReaction(reactionType, event)
|
|
49247
49366
|
},
|
|
49248
|
-
/* @__PURE__ */
|
|
49367
|
+
/* @__PURE__ */ import_react222.default.createElement(WithTooltip, { title: tooltipContent }, /* @__PURE__ */ import_react222.default.createElement(EmojiComponent, null))
|
|
49249
49368
|
);
|
|
49250
49369
|
}
|
|
49251
49370
|
),
|
|
49252
|
-
/* @__PURE__ */
|
|
49371
|
+
/* @__PURE__ */ import_react222.default.createElement("li", { className: "str-chat__simple-reactions-list-item--last-number" }, totalReactionCount)
|
|
49253
49372
|
));
|
|
49254
49373
|
};
|
|
49255
|
-
var SimpleReactionsList =
|
|
49374
|
+
var SimpleReactionsList = import_react222.default.memo(
|
|
49256
49375
|
UnMemoizedSimpleReactionsList
|
|
49257
49376
|
);
|
|
49258
49377
|
|
|
49259
49378
|
// src/components/Message/MessageEditedTimestamp.tsx
|
|
49260
|
-
var
|
|
49379
|
+
var import_react223 = __toESM(require("react"));
|
|
49261
49380
|
var import_clsx58 = __toESM(require("clsx"));
|
|
49262
49381
|
function MessageEditedTimestamp({
|
|
49263
49382
|
message: propMessage,
|
|
@@ -49273,7 +49392,7 @@ function MessageEditedTimestamp({
|
|
|
49273
49392
|
if (!isMessageEdited(message)) {
|
|
49274
49393
|
return null;
|
|
49275
49394
|
}
|
|
49276
|
-
return /* @__PURE__ */
|
|
49395
|
+
return /* @__PURE__ */ import_react223.default.createElement(
|
|
49277
49396
|
"div",
|
|
49278
49397
|
{
|
|
49279
49398
|
className: (0, import_clsx58.default)(
|
|
@@ -49284,36 +49403,10 @@ function MessageEditedTimestamp({
|
|
|
49284
49403
|
},
|
|
49285
49404
|
t2("Edited"),
|
|
49286
49405
|
" ",
|
|
49287
|
-
/* @__PURE__ */
|
|
49406
|
+
/* @__PURE__ */ import_react223.default.createElement(Timestamp2, { timestamp: message.message_text_updated_at, ...timestampProps })
|
|
49288
49407
|
);
|
|
49289
49408
|
}
|
|
49290
49409
|
|
|
49291
|
-
// src/components/Message/StreamedMessageText.tsx
|
|
49292
|
-
var import_react222 = __toESM(require("react"));
|
|
49293
|
-
var StreamedMessageText = (props) => {
|
|
49294
|
-
const {
|
|
49295
|
-
message: messageFromProps,
|
|
49296
|
-
renderingLetterCount,
|
|
49297
|
-
renderText: renderText2,
|
|
49298
|
-
streamingLetterIntervalMs
|
|
49299
|
-
} = props;
|
|
49300
|
-
const { message: messageFromContext } = useMessageContext("StreamedMessageText");
|
|
49301
|
-
const message = messageFromProps || messageFromContext;
|
|
49302
|
-
const { text: text8 = "" } = message;
|
|
49303
|
-
const { streamedMessageText } = useMessageTextStreaming({
|
|
49304
|
-
renderingLetterCount,
|
|
49305
|
-
streamingLetterIntervalMs,
|
|
49306
|
-
text: text8
|
|
49307
|
-
});
|
|
49308
|
-
return /* @__PURE__ */ import_react222.default.createElement(
|
|
49309
|
-
MessageText,
|
|
49310
|
-
{
|
|
49311
|
-
message: { ...message, text: streamedMessageText },
|
|
49312
|
-
renderText: renderText2
|
|
49313
|
-
}
|
|
49314
|
-
);
|
|
49315
|
-
};
|
|
49316
|
-
|
|
49317
49410
|
// src/components/Message/MessageSimple.tsx
|
|
49318
49411
|
var MessageSimpleWithContext = (props) => {
|
|
49319
49412
|
const {
|
|
@@ -49337,8 +49430,8 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49337
49430
|
} = props;
|
|
49338
49431
|
const { client } = useChatContext("MessageSimple");
|
|
49339
49432
|
const { t: t2 } = useTranslationContext("MessageSimple");
|
|
49340
|
-
const [isBounceDialogOpen, setIsBounceDialogOpen] = (0,
|
|
49341
|
-
const [isEditedTimestampOpen, setEditedTimestampOpen] = (0,
|
|
49433
|
+
const [isBounceDialogOpen, setIsBounceDialogOpen] = (0, import_react224.useState)(false);
|
|
49434
|
+
const [isEditedTimestampOpen, setEditedTimestampOpen] = (0, import_react224.useState)(false);
|
|
49342
49435
|
const {
|
|
49343
49436
|
Attachment: Attachment2 = Attachment,
|
|
49344
49437
|
Avatar: Avatar2 = Avatar,
|
|
@@ -49358,7 +49451,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49358
49451
|
} = useComponentContext("MessageSimple");
|
|
49359
49452
|
const hasAttachment = messageHasAttachments(message);
|
|
49360
49453
|
const hasReactions = messageHasReactions(message);
|
|
49361
|
-
const isAIGenerated = (0,
|
|
49454
|
+
const isAIGenerated = (0, import_react224.useMemo)(
|
|
49362
49455
|
() => isMessageAIGenerated?.(message),
|
|
49363
49456
|
[isMessageAIGenerated, message]
|
|
49364
49457
|
);
|
|
@@ -49366,7 +49459,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49366
49459
|
return null;
|
|
49367
49460
|
}
|
|
49368
49461
|
if (message.deleted_at || message.type === "deleted") {
|
|
49369
|
-
return /* @__PURE__ */
|
|
49462
|
+
return /* @__PURE__ */ import_react224.default.createElement(MessageDeleted2, { message });
|
|
49370
49463
|
}
|
|
49371
49464
|
const showMetadata = !groupedByUser || endOfGroup;
|
|
49372
49465
|
const showReplyCountButton = !threadList && !!message.reply_count;
|
|
@@ -49400,14 +49493,14 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49400
49493
|
}
|
|
49401
49494
|
);
|
|
49402
49495
|
const poll = message.poll_id && client.polls.fromState(message.poll_id);
|
|
49403
|
-
return /* @__PURE__ */
|
|
49496
|
+
return /* @__PURE__ */ import_react224.default.createElement(import_react224.default.Fragment, null, editing && /* @__PURE__ */ import_react224.default.createElement(
|
|
49404
49497
|
Modal,
|
|
49405
49498
|
{
|
|
49406
49499
|
className: "str-chat__edit-message-modal",
|
|
49407
49500
|
onClose: clearEditingState,
|
|
49408
49501
|
open: editing
|
|
49409
49502
|
},
|
|
49410
|
-
/* @__PURE__ */
|
|
49503
|
+
/* @__PURE__ */ import_react224.default.createElement(
|
|
49411
49504
|
MessageInput,
|
|
49412
49505
|
{
|
|
49413
49506
|
clearEditingState,
|
|
@@ -49418,14 +49511,14 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49418
49511
|
...additionalMessageInputProps
|
|
49419
49512
|
}
|
|
49420
49513
|
)
|
|
49421
|
-
), isBounceDialogOpen && /* @__PURE__ */
|
|
49514
|
+
), isBounceDialogOpen && /* @__PURE__ */ import_react224.default.createElement(
|
|
49422
49515
|
MessageBounceModal,
|
|
49423
49516
|
{
|
|
49424
49517
|
MessageBouncePrompt: MessageBouncePrompt2,
|
|
49425
49518
|
onClose: () => setIsBounceDialogOpen(false),
|
|
49426
49519
|
open: isBounceDialogOpen
|
|
49427
49520
|
}
|
|
49428
|
-
), /* @__PURE__ */
|
|
49521
|
+
), /* @__PURE__ */ import_react224.default.createElement("div", { className: rootClassName2, key: message.id }, PinIndicator2 && /* @__PURE__ */ import_react224.default.createElement(PinIndicator2, null), message.user && /* @__PURE__ */ import_react224.default.createElement(
|
|
49429
49522
|
Avatar2,
|
|
49430
49523
|
{
|
|
49431
49524
|
image: message.user.image,
|
|
@@ -49434,7 +49527,7 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49434
49527
|
onMouseOver: onUserHover,
|
|
49435
49528
|
user: message.user
|
|
49436
49529
|
}
|
|
49437
|
-
), /* @__PURE__ */
|
|
49530
|
+
), /* @__PURE__ */ import_react224.default.createElement(
|
|
49438
49531
|
"div",
|
|
49439
49532
|
{
|
|
49440
49533
|
className: (0, import_clsx59.default)("str-chat__message-inner", {
|
|
@@ -49444,37 +49537,37 @@ var MessageSimpleWithContext = (props) => {
|
|
|
49444
49537
|
onClick: handleClick,
|
|
49445
49538
|
onKeyUp: handleClick
|
|
49446
49539
|
},
|
|
49447
|
-
/* @__PURE__ */
|
|
49448
|
-
/* @__PURE__ */
|
|
49449
|
-
/* @__PURE__ */
|
|
49540
|
+
/* @__PURE__ */ import_react224.default.createElement(MessageActions2, null),
|
|
49541
|
+
/* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-reactions-host" }, hasReactions && /* @__PURE__ */ import_react224.default.createElement(ReactionsList2, { reverse: true })),
|
|
49542
|
+
/* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-bubble" }, poll && /* @__PURE__ */ import_react224.default.createElement(Poll, { poll }), message.attachments?.length && !message.quoted_message ? /* @__PURE__ */ import_react224.default.createElement(
|
|
49450
49543
|
Attachment2,
|
|
49451
49544
|
{
|
|
49452
49545
|
actionHandler: handleAction,
|
|
49453
49546
|
attachments: message.attachments
|
|
49454
49547
|
}
|
|
49455
|
-
) : null, isAIGenerated ? /* @__PURE__ */
|
|
49548
|
+
) : null, isAIGenerated ? /* @__PURE__ */ import_react224.default.createElement(StreamedMessageText2, { message, renderText: renderText2 }) : /* @__PURE__ */ import_react224.default.createElement(MessageText, { message, renderText: renderText2 }), message.mml && /* @__PURE__ */ import_react224.default.createElement(
|
|
49456
49549
|
MML3,
|
|
49457
49550
|
{
|
|
49458
49551
|
actionHandler: handleAction,
|
|
49459
49552
|
align: isMyMessage() ? "right" : "left",
|
|
49460
49553
|
source: message.mml
|
|
49461
49554
|
}
|
|
49462
|
-
), /* @__PURE__ */
|
|
49463
|
-
), showReplyCountButton && /* @__PURE__ */
|
|
49555
|
+
), /* @__PURE__ */ import_react224.default.createElement(MessageErrorIcon, null))
|
|
49556
|
+
), showReplyCountButton && /* @__PURE__ */ import_react224.default.createElement(
|
|
49464
49557
|
MessageRepliesCountButton2,
|
|
49465
49558
|
{
|
|
49466
49559
|
onClick: handleOpenThread,
|
|
49467
49560
|
reply_count: message.reply_count
|
|
49468
49561
|
}
|
|
49469
|
-
), showMetadata && /* @__PURE__ */
|
|
49562
|
+
), showMetadata && /* @__PURE__ */ import_react224.default.createElement("div", { className: "str-chat__message-metadata" }, /* @__PURE__ */ import_react224.default.createElement(MessageStatus2, null), !isMyMessage() && !!message.user && /* @__PURE__ */ import_react224.default.createElement("span", { className: "str-chat__message-simple-name" }, message.user.name || message.user.id), /* @__PURE__ */ import_react224.default.createElement(MessageTimestamp2, { customClass: "str-chat__message-simple-timestamp" }), isEdited && /* @__PURE__ */ import_react224.default.createElement("span", { className: "str-chat__mesage-simple-edited" }, t2("Edited")), isEdited && /* @__PURE__ */ import_react224.default.createElement(MessageEditedTimestamp, { calendar: true, open: isEditedTimestampOpen }))));
|
|
49470
49563
|
};
|
|
49471
|
-
var MemoizedMessageSimple =
|
|
49564
|
+
var MemoizedMessageSimple = import_react224.default.memo(
|
|
49472
49565
|
MessageSimpleWithContext,
|
|
49473
49566
|
areMessageUIPropsEqual
|
|
49474
49567
|
);
|
|
49475
49568
|
var MessageSimple = (props) => {
|
|
49476
49569
|
const messageContext = useMessageContext("MessageSimple");
|
|
49477
|
-
return /* @__PURE__ */
|
|
49570
|
+
return /* @__PURE__ */ import_react224.default.createElement(MemoizedMessageSimple, { ...messageContext, ...props });
|
|
49478
49571
|
};
|
|
49479
49572
|
|
|
49480
49573
|
// src/components/Message/Message.tsx
|
|
@@ -49510,11 +49603,11 @@ var MessageWithContext = (props) => {
|
|
|
49510
49603
|
canReply,
|
|
49511
49604
|
isMyMessage
|
|
49512
49605
|
} = userRoles;
|
|
49513
|
-
const messageIsUnread = (0,
|
|
49606
|
+
const messageIsUnread = (0, import_react225.useMemo)(
|
|
49514
49607
|
() => !!(!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())),
|
|
49515
49608
|
[client, isMyMessage, message.created_at, read]
|
|
49516
49609
|
);
|
|
49517
|
-
const messageActionsHandler = (0,
|
|
49610
|
+
const messageActionsHandler = (0, import_react225.useCallback)(
|
|
49518
49611
|
() => getMessageActions(messageActions, {
|
|
49519
49612
|
canDelete,
|
|
49520
49613
|
canEdit,
|
|
@@ -49568,9 +49661,9 @@ var MessageWithContext = (props) => {
|
|
|
49568
49661
|
onUserHover,
|
|
49569
49662
|
setEditingState: setEdit
|
|
49570
49663
|
};
|
|
49571
|
-
return /* @__PURE__ */
|
|
49664
|
+
return /* @__PURE__ */ import_react225.default.createElement(MessageProvider, { value: messageContextValue }, /* @__PURE__ */ import_react225.default.createElement(MessageUIComponent, { groupedByUser }));
|
|
49572
49665
|
};
|
|
49573
|
-
var MemoizedMessage =
|
|
49666
|
+
var MemoizedMessage = import_react225.default.memo(
|
|
49574
49667
|
MessageWithContext,
|
|
49575
49668
|
areMessagePropsEqual
|
|
49576
49669
|
);
|
|
@@ -49637,7 +49730,7 @@ var Message = (props) => {
|
|
|
49637
49730
|
notify: addNotification
|
|
49638
49731
|
});
|
|
49639
49732
|
const highlighted = highlightedMessageId === message.id;
|
|
49640
|
-
return /* @__PURE__ */
|
|
49733
|
+
return /* @__PURE__ */ import_react225.default.createElement(
|
|
49641
49734
|
MemoizedMessage,
|
|
49642
49735
|
{
|
|
49643
49736
|
additionalMessageInputProps: props.additionalMessageInputProps,
|
|
@@ -49689,7 +49782,7 @@ var Message = (props) => {
|
|
|
49689
49782
|
// src/components/MessageList/GiphyPreviewMessage.tsx
|
|
49690
49783
|
var GiphyPreviewMessage = (props) => {
|
|
49691
49784
|
const { message } = props;
|
|
49692
|
-
return /* @__PURE__ */
|
|
49785
|
+
return /* @__PURE__ */ import_react226.default.createElement("div", { className: "giphy-preview-message" }, /* @__PURE__ */ import_react226.default.createElement(Message, { message }));
|
|
49693
49786
|
};
|
|
49694
49787
|
|
|
49695
49788
|
// src/components/MessageList/MessageList.tsx
|
|
@@ -49697,7 +49790,7 @@ var import_clsx61 = __toESM(require("clsx"));
|
|
|
49697
49790
|
var import_react245 = __toESM(require("react"));
|
|
49698
49791
|
|
|
49699
49792
|
// src/components/MessageList/hooks/MessageList/useEnrichedMessages.ts
|
|
49700
|
-
var
|
|
49793
|
+
var import_react227 = require("react");
|
|
49701
49794
|
|
|
49702
49795
|
// src/components/MessageList/utils.ts
|
|
49703
49796
|
var import_nanoid9 = require("nanoid");
|
|
@@ -49880,6 +49973,7 @@ var getIsFirstUnreadMessage = ({
|
|
|
49880
49973
|
previousMessage,
|
|
49881
49974
|
unreadMessageCount = 0
|
|
49882
49975
|
}) => {
|
|
49976
|
+
if (message.parent_id) return false;
|
|
49883
49977
|
const createdAtTimestamp = message.created_at && new Date(message.created_at).getTime();
|
|
49884
49978
|
const lastReadTimestamp = lastReadDate?.getTime();
|
|
49885
49979
|
const messageIsUnread = !!createdAtTimestamp && !!lastReadTimestamp && createdAtTimestamp > lastReadTimestamp;
|
|
@@ -49903,7 +49997,7 @@ var useEnrichedMessages = (args) => {
|
|
|
49903
49997
|
} = args;
|
|
49904
49998
|
const { client } = useChatContext("useEnrichedMessages");
|
|
49905
49999
|
const { HeaderComponent } = useComponentContext("useEnrichedMessages");
|
|
49906
|
-
const lastRead = (0,
|
|
50000
|
+
const lastRead = (0, import_react227.useMemo)(() => channel.lastRead?.(), [channel]);
|
|
49907
50001
|
const enableDateSeparator = !disableDateSeparator;
|
|
49908
50002
|
let messagesWithDates = !enableDateSeparator && !hideDeletedMessages && hideNewMessageSeparator ? messages : processMessages({
|
|
49909
50003
|
enableDateSeparator,
|
|
@@ -49918,7 +50012,7 @@ var useEnrichedMessages = (args) => {
|
|
|
49918
50012
|
messagesWithDates = insertIntro(messagesWithDates, headerPosition);
|
|
49919
50013
|
}
|
|
49920
50014
|
const groupStylesFn = groupStyles || getGroupStyles;
|
|
49921
|
-
const messageGroupStyles = (0,
|
|
50015
|
+
const messageGroupStyles = (0, import_react227.useMemo)(
|
|
49922
50016
|
() => messagesWithDates.reduce((acc, message, i) => {
|
|
49923
50017
|
const style = groupStylesFn(
|
|
49924
50018
|
message,
|
|
@@ -49937,13 +50031,13 @@ var useEnrichedMessages = (args) => {
|
|
|
49937
50031
|
};
|
|
49938
50032
|
|
|
49939
50033
|
// src/components/MessageList/hooks/MessageList/useMessageListElements.tsx
|
|
49940
|
-
var
|
|
50034
|
+
var import_react229 = require("react");
|
|
49941
50035
|
|
|
49942
50036
|
// src/components/MessageList/hooks/useLastReadData.ts
|
|
49943
|
-
var
|
|
50037
|
+
var import_react228 = require("react");
|
|
49944
50038
|
var useLastReadData = (props) => {
|
|
49945
50039
|
const { messages, read, returnAllReadData, userID } = props;
|
|
49946
|
-
return (0,
|
|
50040
|
+
return (0, import_react228.useMemo)(
|
|
49947
50041
|
() => getReadStates(
|
|
49948
50042
|
messages.filter(({ user }) => user?.id === userID),
|
|
49949
50043
|
read,
|
|
@@ -49975,11 +50069,11 @@ var useMessageListElements = (props) => {
|
|
|
49975
50069
|
returnAllReadData,
|
|
49976
50070
|
userID: client.userID
|
|
49977
50071
|
});
|
|
49978
|
-
const lastReceivedMessageId = (0,
|
|
50072
|
+
const lastReceivedMessageId = (0, import_react229.useMemo)(
|
|
49979
50073
|
() => getLastReceived(enrichedMessages),
|
|
49980
50074
|
[enrichedMessages]
|
|
49981
50075
|
);
|
|
49982
|
-
const elements = (0,
|
|
50076
|
+
const elements = (0, import_react229.useMemo)(
|
|
49983
50077
|
() => renderMessages({
|
|
49984
50078
|
channelUnreadUiState,
|
|
49985
50079
|
components,
|
|
@@ -50006,7 +50100,7 @@ var useMessageListElements = (props) => {
|
|
|
50006
50100
|
};
|
|
50007
50101
|
|
|
50008
50102
|
// src/components/MessageList/hooks/MessageList/useMessageListScrollManager.ts
|
|
50009
|
-
var
|
|
50103
|
+
var import_react230 = require("react");
|
|
50010
50104
|
function useMessageListScrollManager(params) {
|
|
50011
50105
|
const {
|
|
50012
50106
|
loadMoreScrollThreshold,
|
|
@@ -50017,13 +50111,13 @@ function useMessageListScrollManager(params) {
|
|
|
50017
50111
|
showNewMessages
|
|
50018
50112
|
} = params;
|
|
50019
50113
|
const { client } = useChatContext("useMessageListScrollManager");
|
|
50020
|
-
const measures = (0,
|
|
50114
|
+
const measures = (0, import_react230.useRef)({
|
|
50021
50115
|
offsetHeight: 0,
|
|
50022
50116
|
scrollHeight: 0
|
|
50023
50117
|
});
|
|
50024
|
-
const messages = (0,
|
|
50025
|
-
const scrollTop = (0,
|
|
50026
|
-
(0,
|
|
50118
|
+
const messages = (0, import_react230.useRef)(void 0);
|
|
50119
|
+
const scrollTop = (0, import_react230.useRef)(0);
|
|
50120
|
+
(0, import_react230.useLayoutEffect)(() => {
|
|
50027
50121
|
const prevMeasures = measures.current;
|
|
50028
50122
|
const prevMessages = messages.current;
|
|
50029
50123
|
const newMessages = params.messages;
|
|
@@ -50063,7 +50157,7 @@ function useMessageListScrollManager(params) {
|
|
|
50063
50157
|
}
|
|
50064
50158
|
|
|
50065
50159
|
// src/components/MessageList/hooks/MessageList/useScrollLocationLogic.tsx
|
|
50066
|
-
var
|
|
50160
|
+
var import_react231 = require("react");
|
|
50067
50161
|
var useScrollLocationLogic = (params) => {
|
|
50068
50162
|
const {
|
|
50069
50163
|
hasMoreNewer,
|
|
@@ -50073,12 +50167,12 @@ var useScrollLocationLogic = (params) => {
|
|
|
50073
50167
|
scrolledUpThreshold = 200,
|
|
50074
50168
|
suppressAutoscroll
|
|
50075
50169
|
} = params;
|
|
50076
|
-
const [hasNewMessages, setHasNewMessages] = (0,
|
|
50077
|
-
const [wrapperRect, setWrapperRect] = (0,
|
|
50078
|
-
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0,
|
|
50079
|
-
const closeToBottom = (0,
|
|
50080
|
-
const closeToTop = (0,
|
|
50081
|
-
const scrollToBottom = (0,
|
|
50170
|
+
const [hasNewMessages, setHasNewMessages] = (0, import_react231.useState)(false);
|
|
50171
|
+
const [wrapperRect, setWrapperRect] = (0, import_react231.useState)();
|
|
50172
|
+
const [isMessageListScrolledToBottom, setIsMessageListScrolledToBottom] = (0, import_react231.useState)(true);
|
|
50173
|
+
const closeToBottom = (0, import_react231.useRef)(false);
|
|
50174
|
+
const closeToTop = (0, import_react231.useRef)(false);
|
|
50175
|
+
const scrollToBottom = (0, import_react231.useCallback)(() => {
|
|
50082
50176
|
if (!listElement?.scrollTo || hasMoreNewer || suppressAutoscroll) {
|
|
50083
50177
|
return;
|
|
50084
50178
|
}
|
|
@@ -50087,7 +50181,7 @@ var useScrollLocationLogic = (params) => {
|
|
|
50087
50181
|
});
|
|
50088
50182
|
setHasNewMessages(false);
|
|
50089
50183
|
}, [listElement, hasMoreNewer, suppressAutoscroll]);
|
|
50090
|
-
(0,
|
|
50184
|
+
(0, import_react231.useLayoutEffect)(() => {
|
|
50091
50185
|
if (listElement) {
|
|
50092
50186
|
setWrapperRect(listElement.getBoundingClientRect());
|
|
50093
50187
|
scrollToBottom();
|
|
@@ -50107,7 +50201,7 @@ var useScrollLocationLogic = (params) => {
|
|
|
50107
50201
|
scrollToBottom,
|
|
50108
50202
|
showNewMessages: () => setHasNewMessages(true)
|
|
50109
50203
|
});
|
|
50110
|
-
const onScroll = (0,
|
|
50204
|
+
const onScroll = (0, import_react231.useCallback)(
|
|
50111
50205
|
(event) => {
|
|
50112
50206
|
const element4 = event.target;
|
|
50113
50207
|
const scrollTop = element4.scrollTop;
|
|
@@ -50138,22 +50232,22 @@ var useScrollLocationLogic = (params) => {
|
|
|
50138
50232
|
};
|
|
50139
50233
|
|
|
50140
50234
|
// src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts
|
|
50141
|
-
var
|
|
50235
|
+
var import_react234 = require("react");
|
|
50142
50236
|
|
|
50143
50237
|
// src/components/MessageList/MessageListMainPanel.tsx
|
|
50144
|
-
var
|
|
50238
|
+
var import_react232 = __toESM(require("react"));
|
|
50145
50239
|
var MESSAGE_LIST_MAIN_PANEL_CLASS = "str-chat__main-panel-inner str-chat__message-list-main-panel";
|
|
50146
|
-
var MessageListMainPanel = ({ children }) => /* @__PURE__ */
|
|
50240
|
+
var MessageListMainPanel = ({ children }) => /* @__PURE__ */ import_react232.default.createElement("div", { className: MESSAGE_LIST_MAIN_PANEL_CLASS }, children);
|
|
50147
50241
|
|
|
50148
50242
|
// src/components/MessageList/UnreadMessagesSeparator.tsx
|
|
50149
|
-
var
|
|
50243
|
+
var import_react233 = __toESM(require("react"));
|
|
50150
50244
|
var UNREAD_MESSAGE_SEPARATOR_CLASS = "str-chat__unread-messages-separator";
|
|
50151
50245
|
var UnreadMessagesSeparator = ({
|
|
50152
50246
|
showCount,
|
|
50153
50247
|
unreadCount
|
|
50154
50248
|
}) => {
|
|
50155
50249
|
const { t: t2 } = useTranslationContext("UnreadMessagesSeparator");
|
|
50156
|
-
return /* @__PURE__ */
|
|
50250
|
+
return /* @__PURE__ */ import_react233.default.createElement(
|
|
50157
50251
|
"div",
|
|
50158
50252
|
{
|
|
50159
50253
|
className: UNREAD_MESSAGE_SEPARATOR_CLASS,
|
|
@@ -50179,10 +50273,10 @@ var useUnreadMessagesNotification = ({
|
|
|
50179
50273
|
unreadCount
|
|
50180
50274
|
}) => {
|
|
50181
50275
|
const { messages } = useChannelStateContext("UnreadMessagesNotification");
|
|
50182
|
-
const [show, setShow] = (0,
|
|
50183
|
-
const isScrolledAboveTargetTop = (0,
|
|
50276
|
+
const [show, setShow] = (0, import_react234.useState)(false);
|
|
50277
|
+
const isScrolledAboveTargetTop = (0, import_react234.useRef)(false);
|
|
50184
50278
|
const intersectionObserverIsSupported = typeof IntersectionObserver !== "undefined";
|
|
50185
|
-
(0,
|
|
50279
|
+
(0, import_react234.useEffect)(() => {
|
|
50186
50280
|
if (!(unreadCount && intersectionObserverIsSupported)) {
|
|
50187
50281
|
setShow(false);
|
|
50188
50282
|
return;
|
|
@@ -50229,7 +50323,7 @@ var useUnreadMessagesNotification = ({
|
|
|
50229
50323
|
showAlways,
|
|
50230
50324
|
unreadCount
|
|
50231
50325
|
]);
|
|
50232
|
-
(0,
|
|
50326
|
+
(0, import_react234.useEffect)(() => {
|
|
50233
50327
|
if (unreadCount && isMessageListScrolledToBottom && isScrolledAboveTargetTop.current) {
|
|
50234
50328
|
setShow(true);
|
|
50235
50329
|
isScrolledAboveTargetTop.current = false;
|
|
@@ -50239,7 +50333,7 @@ var useUnreadMessagesNotification = ({
|
|
|
50239
50333
|
};
|
|
50240
50334
|
|
|
50241
50335
|
// src/components/MessageList/hooks/useMarkRead.ts
|
|
50242
|
-
var
|
|
50336
|
+
var import_react235 = require("react");
|
|
50243
50337
|
var hasReadLastMessage = (channel, userId) => {
|
|
50244
50338
|
const latestMessageIdInChannel = channel.state.latestMessages.slice(-1)[0]?.id;
|
|
50245
50339
|
const lastReadMessageIdServer = channel.state.read[userId]?.last_read_message_id;
|
|
@@ -50253,7 +50347,7 @@ var useMarkRead = ({
|
|
|
50253
50347
|
const { client } = useChatContext("useMarkRead");
|
|
50254
50348
|
const { markRead, setChannelUnreadUiState } = useChannelActionContext("useMarkRead");
|
|
50255
50349
|
const { channel } = useChannelStateContext("useMarkRead");
|
|
50256
|
-
(0,
|
|
50350
|
+
(0, import_react235.useEffect)(() => {
|
|
50257
50351
|
const shouldMarkRead = () => !document.hidden && !wasMarkedUnread && !messageListIsThread && isMessageListScrolledToBottom && client.user?.id && !hasReadLastMessage(channel, client.user.id);
|
|
50258
50352
|
const onVisibilityChange = () => {
|
|
50259
50353
|
if (shouldMarkRead()) markRead();
|
|
@@ -50312,11 +50406,11 @@ function getPreviousLastMessage(messages, newMessage) {
|
|
|
50312
50406
|
}
|
|
50313
50407
|
|
|
50314
50408
|
// src/components/MessageList/MessageNotification.tsx
|
|
50315
|
-
var
|
|
50409
|
+
var import_react236 = __toESM(require("react"));
|
|
50316
50410
|
var UnMemoizedMessageNotification = (props) => {
|
|
50317
50411
|
const { children, onClick, showNotification = true } = props;
|
|
50318
50412
|
if (!showNotification) return null;
|
|
50319
|
-
return /* @__PURE__ */
|
|
50413
|
+
return /* @__PURE__ */ import_react236.default.createElement(
|
|
50320
50414
|
"button",
|
|
50321
50415
|
{
|
|
50322
50416
|
"aria-live": "polite",
|
|
@@ -50327,12 +50421,12 @@ var UnMemoizedMessageNotification = (props) => {
|
|
|
50327
50421
|
children
|
|
50328
50422
|
);
|
|
50329
50423
|
};
|
|
50330
|
-
var MessageNotification =
|
|
50424
|
+
var MessageNotification = import_react236.default.memo(
|
|
50331
50425
|
UnMemoizedMessageNotification
|
|
50332
50426
|
);
|
|
50333
50427
|
|
|
50334
50428
|
// src/components/MessageList/MessageListNotifications.tsx
|
|
50335
|
-
var
|
|
50429
|
+
var import_react237 = __toESM(require("react"));
|
|
50336
50430
|
var MessageListNotifications = (props) => {
|
|
50337
50431
|
const {
|
|
50338
50432
|
hasNewMessages,
|
|
@@ -50345,7 +50439,7 @@ var MessageListNotifications = (props) => {
|
|
|
50345
50439
|
unreadCount
|
|
50346
50440
|
} = props;
|
|
50347
50441
|
const { t: t2 } = useTranslationContext("MessageListNotifications");
|
|
50348
|
-
return /* @__PURE__ */
|
|
50442
|
+
return /* @__PURE__ */ import_react237.default.createElement("div", { className: "str-chat__list-notifications" }, notifications.map((notification) => /* @__PURE__ */ import_react237.default.createElement(CustomNotification, { active: true, key: notification.id, type: notification.type }, notification.text)), /* @__PURE__ */ import_react237.default.createElement(ConnectionStatus, null), /* @__PURE__ */ import_react237.default.createElement(
|
|
50349
50443
|
MessageNotification2,
|
|
50350
50444
|
{
|
|
50351
50445
|
isMessageListScrolledToBottom,
|
|
@@ -50359,11 +50453,11 @@ var MessageListNotifications = (props) => {
|
|
|
50359
50453
|
};
|
|
50360
50454
|
|
|
50361
50455
|
// src/components/MessageList/UnreadMessagesNotification.tsx
|
|
50362
|
-
var
|
|
50456
|
+
var import_react239 = __toESM(require("react"));
|
|
50363
50457
|
|
|
50364
50458
|
// src/components/MessageList/icons.tsx
|
|
50365
|
-
var
|
|
50366
|
-
var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */
|
|
50459
|
+
var import_react238 = __toESM(require("react"));
|
|
50460
|
+
var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react238.default.createElement(
|
|
50367
50461
|
"svg",
|
|
50368
50462
|
{
|
|
50369
50463
|
className,
|
|
@@ -50374,7 +50468,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
|
|
|
50374
50468
|
width: "24",
|
|
50375
50469
|
xmlns: "http://www.w3.org/2000/svg"
|
|
50376
50470
|
},
|
|
50377
|
-
/* @__PURE__ */
|
|
50471
|
+
/* @__PURE__ */ import_react238.default.createElement(
|
|
50378
50472
|
"path",
|
|
50379
50473
|
{
|
|
50380
50474
|
d: "M7.41 8.29504L12 12.875L16.59 8.29504L18 9.70504L12 15.705L6 9.70504L7.41 8.29504Z",
|
|
@@ -50382,7 +50476,7 @@ var ArrowDown = ({ className, color: color2 }) => /* @__PURE__ */ import_react23
|
|
|
50382
50476
|
}
|
|
50383
50477
|
)
|
|
50384
50478
|
);
|
|
50385
|
-
var CloseIcon2 = () => /* @__PURE__ */
|
|
50479
|
+
var CloseIcon2 = () => /* @__PURE__ */ import_react238.default.createElement("svg", { fill: "currentColor", viewBox: "0 0 14 13", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react238.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" }));
|
|
50386
50480
|
|
|
50387
50481
|
// src/components/MessageList/UnreadMessagesNotification.tsx
|
|
50388
50482
|
var UnreadMessagesNotification = ({
|
|
@@ -50394,19 +50488,19 @@ var UnreadMessagesNotification = ({
|
|
|
50394
50488
|
"UnreadMessagesNotification"
|
|
50395
50489
|
);
|
|
50396
50490
|
const { t: t2 } = useTranslationContext("UnreadMessagesNotification");
|
|
50397
|
-
return /* @__PURE__ */
|
|
50491
|
+
return /* @__PURE__ */ import_react239.default.createElement(
|
|
50398
50492
|
"div",
|
|
50399
50493
|
{
|
|
50400
50494
|
className: "str-chat__unread-messages-notification",
|
|
50401
50495
|
"data-testid": "unread-messages-notification"
|
|
50402
50496
|
},
|
|
50403
|
-
/* @__PURE__ */
|
|
50404
|
-
/* @__PURE__ */
|
|
50497
|
+
/* @__PURE__ */ import_react239.default.createElement("button", { onClick: () => jumpToFirstUnreadMessage(queryMessageLimit) }, unreadCount && showCount ? t2("{{count}} unread", { count: unreadCount ?? 0 }) : t2("Unread messages")),
|
|
50498
|
+
/* @__PURE__ */ import_react239.default.createElement("button", { onClick: () => markRead() }, /* @__PURE__ */ import_react239.default.createElement(CloseIcon2, null))
|
|
50405
50499
|
);
|
|
50406
50500
|
};
|
|
50407
50501
|
|
|
50408
50502
|
// src/components/InfiniteScrollPaginator/InfiniteScroll.tsx
|
|
50409
|
-
var
|
|
50503
|
+
var import_react240 = __toESM(require("react"));
|
|
50410
50504
|
var mousewheelListener2 = (event) => {
|
|
50411
50505
|
if (event instanceof WheelEvent && event.deltaY === 1) {
|
|
50412
50506
|
event.preventDefault();
|
|
@@ -50437,10 +50531,10 @@ var InfiniteScroll = (props) => {
|
|
|
50437
50531
|
const loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
50438
50532
|
const hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
50439
50533
|
const hasPreviousPageFlag = hasPreviousPage || hasMore;
|
|
50440
|
-
const scrollComponent = (0,
|
|
50441
|
-
const previousOffset = (0,
|
|
50442
|
-
const previousReverseOffset = (0,
|
|
50443
|
-
const scrollListenerRef = (0,
|
|
50534
|
+
const scrollComponent = (0, import_react240.useRef)(void 0);
|
|
50535
|
+
const previousOffset = (0, import_react240.useRef)(void 0);
|
|
50536
|
+
const previousReverseOffset = (0, import_react240.useRef)(void 0);
|
|
50537
|
+
const scrollListenerRef = (0, import_react240.useRef)(void 0);
|
|
50444
50538
|
scrollListenerRef.current = () => {
|
|
50445
50539
|
const element5 = scrollComponent.current;
|
|
50446
50540
|
if (!element5 || element5.offsetParent === null) {
|
|
@@ -50464,7 +50558,7 @@ var InfiniteScroll = (props) => {
|
|
|
50464
50558
|
loadNextPageFn();
|
|
50465
50559
|
}
|
|
50466
50560
|
};
|
|
50467
|
-
(0,
|
|
50561
|
+
(0, import_react240.useEffect)(() => {
|
|
50468
50562
|
deprecationAndReplacementWarning(
|
|
50469
50563
|
[
|
|
50470
50564
|
[{ hasMoreNewer }, { hasNextPage }],
|
|
@@ -50475,7 +50569,7 @@ var InfiniteScroll = (props) => {
|
|
|
50475
50569
|
"InfiniteScroll"
|
|
50476
50570
|
);
|
|
50477
50571
|
}, []);
|
|
50478
|
-
(0,
|
|
50572
|
+
(0, import_react240.useEffect)(() => {
|
|
50479
50573
|
const scrollElement = scrollComponent.current?.parentNode;
|
|
50480
50574
|
if (!scrollElement) return;
|
|
50481
50575
|
const scrollListener = () => scrollListenerRef.current?.();
|
|
@@ -50487,7 +50581,7 @@ var InfiniteScroll = (props) => {
|
|
|
50487
50581
|
scrollElement.removeEventListener("resize", scrollListener, useCapture);
|
|
50488
50582
|
};
|
|
50489
50583
|
}, [initialLoad, useCapture]);
|
|
50490
|
-
(0,
|
|
50584
|
+
(0, import_react240.useEffect)(() => {
|
|
50491
50585
|
const scrollElement = scrollComponent.current?.parentNode;
|
|
50492
50586
|
if (scrollElement) {
|
|
50493
50587
|
scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
|
|
@@ -50508,11 +50602,11 @@ var InfiniteScroll = (props) => {
|
|
|
50508
50602
|
if (head) {
|
|
50509
50603
|
childrenArray.unshift(head);
|
|
50510
50604
|
}
|
|
50511
|
-
return
|
|
50605
|
+
return import_react240.default.createElement(element4, attributes, childrenArray);
|
|
50512
50606
|
};
|
|
50513
50607
|
|
|
50514
50608
|
// src/components/TypingIndicator/TypingIndicator.tsx
|
|
50515
|
-
var
|
|
50609
|
+
var import_react241 = __toESM(require("react"));
|
|
50516
50610
|
var import_clsx60 = __toESM(require("clsx"));
|
|
50517
50611
|
var useJoinTypingUsers = (names) => {
|
|
50518
50612
|
const { t: t2 } = useTranslationContext();
|
|
@@ -50550,7 +50644,7 @@ var UnMemoizedTypingIndicator = (props) => {
|
|
|
50550
50644
|
return null;
|
|
50551
50645
|
}
|
|
50552
50646
|
if (!isTypingActive) return null;
|
|
50553
|
-
return /* @__PURE__ */
|
|
50647
|
+
return /* @__PURE__ */ import_react241.default.createElement(
|
|
50554
50648
|
"div",
|
|
50555
50649
|
{
|
|
50556
50650
|
className: (0, import_clsx60.default)("str-chat__typing-indicator", {
|
|
@@ -50558,90 +50652,17 @@ var UnMemoizedTypingIndicator = (props) => {
|
|
|
50558
50652
|
}),
|
|
50559
50653
|
"data-testid": "typing-indicator"
|
|
50560
50654
|
},
|
|
50561
|
-
/* @__PURE__ */
|
|
50562
|
-
/* @__PURE__ */
|
|
50655
|
+
/* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__typing-indicator__dots" }, /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" }), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__typing-indicator__dot" })),
|
|
50656
|
+
/* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__typing-indicator__users", "data-testid": "typing-users" }, joinedTypingUsers)
|
|
50563
50657
|
);
|
|
50564
50658
|
};
|
|
50565
|
-
var TypingIndicator =
|
|
50659
|
+
var TypingIndicator = import_react241.default.memo(
|
|
50566
50660
|
UnMemoizedTypingIndicator
|
|
50567
50661
|
);
|
|
50568
50662
|
|
|
50569
50663
|
// src/components/MessageList/renderMessages.tsx
|
|
50570
50664
|
var import_react244 = __toESM(require("react"));
|
|
50571
50665
|
|
|
50572
|
-
// src/components/Message/FixedHeightMessage.tsx
|
|
50573
|
-
var import_react241 = __toESM(require("react"));
|
|
50574
|
-
var selectColor = (number3, dark) => {
|
|
50575
|
-
const hue = number3 * 137.508;
|
|
50576
|
-
return `hsl(${hue},${dark ? "50%" : "85%"}, ${dark ? "75%" : "55%"})`;
|
|
50577
|
-
};
|
|
50578
|
-
var hashUserId = (userId) => {
|
|
50579
|
-
const hash = userId.split("").reduce((acc, c) => {
|
|
50580
|
-
acc = (acc << 5) - acc + c.charCodeAt(0);
|
|
50581
|
-
return acc & acc;
|
|
50582
|
-
}, 0);
|
|
50583
|
-
return Math.abs(hash) / 10 ** Math.ceil(Math.log10(Math.abs(hash) + 1));
|
|
50584
|
-
};
|
|
50585
|
-
var getUserColor = (theme, userId) => selectColor(hashUserId(userId), theme.includes("dark"));
|
|
50586
|
-
var UnMemoizedFixedHeightMessage = (props) => {
|
|
50587
|
-
const { groupedByUser: propGroupedByUser, message: propMessage } = props;
|
|
50588
|
-
const { theme } = useChatContext("FixedHeightMessage");
|
|
50589
|
-
const { groupedByUser: contextGroupedByUser, message: contextMessage } = useMessageContext("FixedHeightMessage");
|
|
50590
|
-
const { MessageDeleted: MessageDeleted2 = MessageDeleted } = useComponentContext("FixedHeightMessage");
|
|
50591
|
-
const { userLanguage } = useTranslationContext("FixedHeightMessage");
|
|
50592
|
-
const groupedByUser = propGroupedByUser !== void 0 ? propGroupedByUser : contextGroupedByUser;
|
|
50593
|
-
const message = propMessage || contextMessage;
|
|
50594
|
-
const handleAction = useActionHandler(message);
|
|
50595
|
-
const handleDelete2 = useDeleteHandler(message);
|
|
50596
|
-
const role = useUserRole(message);
|
|
50597
|
-
const messageTextToRender = message?.i18n?.[`${userLanguage}_text`] || message?.text;
|
|
50598
|
-
const renderedText = (0, import_react241.useMemo)(
|
|
50599
|
-
() => renderText(messageTextToRender, message.mentioned_users),
|
|
50600
|
-
[message.mentioned_users, messageTextToRender]
|
|
50601
|
-
);
|
|
50602
|
-
const userId = message.user?.id || "";
|
|
50603
|
-
const userColor = (0, import_react241.useMemo)(() => getUserColor(theme, userId), [userId, theme]);
|
|
50604
|
-
const messageActionsHandler = (0, import_react241.useCallback)(
|
|
50605
|
-
() => getMessageActions(["delete"], { canDelete: role.canDelete }),
|
|
50606
|
-
[role]
|
|
50607
|
-
);
|
|
50608
|
-
const images = message?.attachments?.filter(({ type }) => type === "image");
|
|
50609
|
-
return /* @__PURE__ */ import_react241.default.createElement(
|
|
50610
|
-
"div",
|
|
50611
|
-
{
|
|
50612
|
-
className: `str-chat__virtual-message__wrapper ${role.isMyMessage ? "str-chat__virtual-message__wrapper--me" : ""} ${groupedByUser ? "str-chat__virtual-message__wrapper--group" : ""}`,
|
|
50613
|
-
key: message.id
|
|
50614
|
-
},
|
|
50615
|
-
message.user && /* @__PURE__ */ import_react241.default.createElement(
|
|
50616
|
-
Avatar,
|
|
50617
|
-
{
|
|
50618
|
-
image: message.user.image,
|
|
50619
|
-
name: message.user.name || message.user.id,
|
|
50620
|
-
user: message.user
|
|
50621
|
-
}
|
|
50622
|
-
),
|
|
50623
|
-
/* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__content" }, /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__meta" }, /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__author", style: { color: userColor } }, /* @__PURE__ */ import_react241.default.createElement("strong", null, message.user?.name || "unknown"))), message.deleted_at || message.type === "deleted" ? /* @__PURE__ */ import_react241.default.createElement(MessageDeleted2, { message }) : /* @__PURE__ */ import_react241.default.createElement(import_react241.default.Fragment, null, images && /* @__PURE__ */ import_react241.default.createElement(Gallery, { images }), /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__text", "data-testid": "msg-text" }, renderedText, message.mml && /* @__PURE__ */ import_react241.default.createElement(MML3, { actionHandler: handleAction, align: "left", source: message.mml }), /* @__PURE__ */ import_react241.default.createElement("div", { className: "str-chat__virtual-message__data" }, /* @__PURE__ */ import_react241.default.createElement(
|
|
50624
|
-
MessageActions,
|
|
50625
|
-
{
|
|
50626
|
-
customWrapperClass: "str-chat__virtual-message__actions",
|
|
50627
|
-
getMessageActions: messageActionsHandler,
|
|
50628
|
-
handleDelete: handleDelete2,
|
|
50629
|
-
message,
|
|
50630
|
-
mine: () => role.isMyMessage
|
|
50631
|
-
}
|
|
50632
|
-
), /* @__PURE__ */ import_react241.default.createElement("span", { className: "str-chat__virtual-message__date" }, /* @__PURE__ */ import_react241.default.createElement(
|
|
50633
|
-
MessageTimestamp,
|
|
50634
|
-
{
|
|
50635
|
-
customClass: "str-chat__message-simple-timestamp",
|
|
50636
|
-
message
|
|
50637
|
-
}
|
|
50638
|
-
))))))
|
|
50639
|
-
);
|
|
50640
|
-
};
|
|
50641
|
-
var FixedHeightMessage = import_react241.default.memo(
|
|
50642
|
-
UnMemoizedFixedHeightMessage
|
|
50643
|
-
);
|
|
50644
|
-
|
|
50645
50666
|
// src/components/DateSeparator/DateSeparator.tsx
|
|
50646
50667
|
var import_react242 = __toESM(require("react"));
|
|
50647
50668
|
var UnMemoizedDateSeparator = (props) => {
|
|
@@ -52996,7 +53017,7 @@ var useChat = ({
|
|
|
52996
53017
|
if (!client) return;
|
|
52997
53018
|
const userAgent = client.getUserAgent();
|
|
52998
53019
|
if (!userAgent.includes("stream-chat-react")) {
|
|
52999
|
-
client.setUserAgent(`stream-chat-react-12.
|
|
53020
|
+
client.setUserAgent(`stream-chat-react-12.13.1-${userAgent}`);
|
|
53000
53021
|
}
|
|
53001
53022
|
client.threads.registerSubscriptions();
|
|
53002
53023
|
client.polls.registerSubscriptions();
|