react-input-emoji 5.9.0-beta.1 → 5.9.0-beta.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.es.js +163 -76
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +163 -76
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/src/types/types.d.ts +0 -32
package/dist/index.js
CHANGED
@@ -86,6 +86,7 @@ function getAllEmojisFromText(text) {
|
|
86
86
|
* @return {string}
|
87
87
|
*/
|
88
88
|
function getImageEmoji(emoji) {
|
89
|
+
var _emojiPickerEl$shadow;
|
89
90
|
/** @type {HTMLElement | null} */
|
90
91
|
const emojiPickerEl = document.querySelector('em-emoji-picker');
|
91
92
|
if (!emojiPickerEl) {
|
@@ -93,7 +94,7 @@ function getImageEmoji(emoji) {
|
|
93
94
|
}
|
94
95
|
|
95
96
|
/** @type {HTMLSpanElement | null=} */
|
96
|
-
const emojiSpanEl = emojiPickerEl
|
97
|
+
const emojiSpanEl = emojiPickerEl === null || emojiPickerEl === void 0 || (_emojiPickerEl$shadow = emojiPickerEl.shadowRoot) === null || _emojiPickerEl$shadow === void 0 ? void 0 : _emojiPickerEl$shadow.querySelector("[title=\"".concat(emoji.name, "\"] > span > span"));
|
97
98
|
if (!emojiSpanEl) {
|
98
99
|
return getInputEmojiNativeHTML(emoji.native);
|
99
100
|
}
|
@@ -109,7 +110,7 @@ function getImageEmoji(emoji) {
|
|
109
110
|
* @returns
|
110
111
|
*/
|
111
112
|
function getInputEmojiHTML(style, emoji) {
|
112
|
-
return
|
113
|
+
return "<img style=\"".concat(style, "; display: inline-block\" data-emoji=\"").concat(emoji, "\" src=\"").concat(TRANSPARENT_GIF, "\" />");
|
113
114
|
}
|
114
115
|
|
115
116
|
/**
|
@@ -118,7 +119,7 @@ function getInputEmojiHTML(style, emoji) {
|
|
118
119
|
* @returns
|
119
120
|
*/
|
120
121
|
function getInputEmojiNativeHTML(emoji) {
|
121
|
-
return
|
122
|
+
return "<span class=\"width: 18px; height: 18px; display: inline-block; margin: 0 1px;\">".concat(emoji, "</span>");
|
122
123
|
}
|
123
124
|
|
124
125
|
/**
|
@@ -165,7 +166,7 @@ let currentRangeCached;
|
|
165
166
|
*/
|
166
167
|
function cacheCurrentRange() {
|
167
168
|
const selection = window.getSelection();
|
168
|
-
if (!selection.rangeCount || selection
|
169
|
+
if (!selection.rangeCount || (selection === null || selection === void 0 ? void 0 : selection.anchorNode['className']) !== 'react-input-emoji--input' && selection.anchorNode.parentNode['className'] !== 'react-input-emoji--input') return;
|
169
170
|
const range = selection.getRangeAt(0);
|
170
171
|
currentRangeCached = range.cloneRange();
|
171
172
|
}
|
@@ -181,7 +182,8 @@ function handlePasteHtmlAtCaret(html) {
|
|
181
182
|
sel = window.getSelection();
|
182
183
|
if (sel === null) return;
|
183
184
|
if (sel.getRangeAt && sel.rangeCount) {
|
184
|
-
|
185
|
+
var _currentRangeCached;
|
186
|
+
range = (_currentRangeCached = currentRangeCached) !== null && _currentRangeCached !== void 0 ? _currentRangeCached : sel.getRangeAt(0);
|
185
187
|
range.deleteContents();
|
186
188
|
|
187
189
|
// Range.createContextualFragment() would be useful here but is
|
@@ -227,10 +229,11 @@ function replaceEmojiToString(container) {
|
|
227
229
|
* @param {{text: string, html: string}} props
|
228
230
|
* @return {number}
|
229
231
|
*/
|
230
|
-
function totalCharacters({
|
231
|
-
|
232
|
-
|
233
|
-
|
232
|
+
function totalCharacters(_ref2) {
|
233
|
+
let {
|
234
|
+
text,
|
235
|
+
html
|
236
|
+
} = _ref2;
|
234
237
|
const textCount = text.length;
|
235
238
|
const emojisCount = (html.match(/<img/g) || []).length;
|
236
239
|
return textCount + emojisCount;
|
@@ -638,13 +641,14 @@ function handleEmoji(text) {
|
|
638
641
|
*
|
639
642
|
* @param {Props} props
|
640
643
|
*/
|
641
|
-
function useExpose({
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
644
|
+
function useExpose(_ref) {
|
645
|
+
let {
|
646
|
+
ref,
|
647
|
+
textInputRef,
|
648
|
+
setValue,
|
649
|
+
emitChange,
|
650
|
+
shouldConvertEmojiToImage
|
651
|
+
} = _ref;
|
648
652
|
const {
|
649
653
|
sanitize,
|
650
654
|
sanitizedTextRef
|
@@ -708,7 +712,84 @@ function useEmit(textInputRef, onResize, onChange) {
|
|
708
712
|
return emitChange;
|
709
713
|
}
|
710
714
|
|
711
|
-
|
715
|
+
function ownKeys(e, r) {
|
716
|
+
var t = Object.keys(e);
|
717
|
+
if (Object.getOwnPropertySymbols) {
|
718
|
+
var o = Object.getOwnPropertySymbols(e);
|
719
|
+
r && (o = o.filter(function (r) {
|
720
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
721
|
+
})), t.push.apply(t, o);
|
722
|
+
}
|
723
|
+
return t;
|
724
|
+
}
|
725
|
+
function _objectSpread2(e) {
|
726
|
+
for (var r = 1; r < arguments.length; r++) {
|
727
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
728
|
+
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
729
|
+
_defineProperty(e, r, t[r]);
|
730
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
731
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
732
|
+
});
|
733
|
+
}
|
734
|
+
return e;
|
735
|
+
}
|
736
|
+
function _defineProperty(obj, key, value) {
|
737
|
+
key = _toPropertyKey(key);
|
738
|
+
if (key in obj) {
|
739
|
+
Object.defineProperty(obj, key, {
|
740
|
+
value: value,
|
741
|
+
enumerable: true,
|
742
|
+
configurable: true,
|
743
|
+
writable: true
|
744
|
+
});
|
745
|
+
} else {
|
746
|
+
obj[key] = value;
|
747
|
+
}
|
748
|
+
return obj;
|
749
|
+
}
|
750
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
751
|
+
if (source == null) return {};
|
752
|
+
var target = {};
|
753
|
+
var sourceKeys = Object.keys(source);
|
754
|
+
var key, i;
|
755
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
756
|
+
key = sourceKeys[i];
|
757
|
+
if (excluded.indexOf(key) >= 0) continue;
|
758
|
+
target[key] = source[key];
|
759
|
+
}
|
760
|
+
return target;
|
761
|
+
}
|
762
|
+
function _objectWithoutProperties(source, excluded) {
|
763
|
+
if (source == null) return {};
|
764
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
765
|
+
var key, i;
|
766
|
+
if (Object.getOwnPropertySymbols) {
|
767
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
768
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
769
|
+
key = sourceSymbolKeys[i];
|
770
|
+
if (excluded.indexOf(key) >= 0) continue;
|
771
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
772
|
+
target[key] = source[key];
|
773
|
+
}
|
774
|
+
}
|
775
|
+
return target;
|
776
|
+
}
|
777
|
+
function _toPrimitive(input, hint) {
|
778
|
+
if (typeof input !== "object" || input === null) return input;
|
779
|
+
var prim = input[Symbol.toPrimitive];
|
780
|
+
if (prim !== undefined) {
|
781
|
+
var res = prim.call(input, hint || "default");
|
782
|
+
if (typeof res !== "object") return res;
|
783
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
784
|
+
}
|
785
|
+
return (hint === "string" ? String : Number)(input);
|
786
|
+
}
|
787
|
+
function _toPropertyKey(arg) {
|
788
|
+
var key = _toPrimitive(arg, "string");
|
789
|
+
return typeof key === "symbol" ? key : String(key);
|
790
|
+
}
|
791
|
+
|
792
|
+
const _excluded = ["placeholder", "style", "tabIndex", "className", "onChange"];
|
712
793
|
|
713
794
|
/**
|
714
795
|
* @typedef {Object} Props
|
@@ -742,14 +823,15 @@ function useEmit(textInputRef, onResize, onChange) {
|
|
742
823
|
|
743
824
|
// eslint-disable-next-line valid-jsdoc
|
744
825
|
/** @type {React.ForwardRefRenderFunction<Ref, Props>} */
|
745
|
-
const TextInput = ({
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
}
|
826
|
+
const TextInput = (_ref, ref) => {
|
827
|
+
let {
|
828
|
+
placeholder,
|
829
|
+
style,
|
830
|
+
tabIndex,
|
831
|
+
className,
|
832
|
+
onChange
|
833
|
+
} = _ref,
|
834
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
753
835
|
React.useImperativeHandle(ref, () => ({
|
754
836
|
appendContent: html => {
|
755
837
|
if (textInputRef.current) {
|
@@ -817,7 +899,7 @@ const TextInput = ({
|
|
817
899
|
placeholderStyle.color = style.placeholderColor;
|
818
900
|
}
|
819
901
|
return placeholderStyle;
|
820
|
-
}, [style
|
902
|
+
}, [style === null || style === void 0 ? void 0 : style.placeholderColor]);
|
821
903
|
|
822
904
|
/** @type {React.CSSProperties} */
|
823
905
|
const inputStyle = React.useMemo(() => {
|
@@ -826,7 +908,7 @@ const TextInput = ({
|
|
826
908
|
inputStyle.color = style.color;
|
827
909
|
}
|
828
910
|
return inputStyle;
|
829
|
-
}, [style
|
911
|
+
}, [style === null || style === void 0 ? void 0 : style.color]);
|
830
912
|
|
831
913
|
/** @type {React.MutableRefObject<HTMLDivElement | null>} */
|
832
914
|
const placeholderRef = React.useRef(null);
|
@@ -899,7 +981,7 @@ const TextInput = ({
|
|
899
981
|
onKeyUp: handleKeyUp,
|
900
982
|
tabIndex: tabIndex,
|
901
983
|
contentEditable: true,
|
902
|
-
className:
|
984
|
+
className: "react-input-emoji--input".concat(className ? " ".concat(className) : ""),
|
903
985
|
onBlur: props.onBlur,
|
904
986
|
onCopy: props.onCopy,
|
905
987
|
onPaste: props.onPaste,
|
@@ -924,27 +1006,29 @@ const TextInputWithRef = /*#__PURE__*/React.forwardRef(TextInput);
|
|
924
1006
|
* @param {Props} props
|
925
1007
|
* @return {JSX.Element}
|
926
1008
|
*/
|
927
|
-
function EmojiPickerButton({
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
1009
|
+
function EmojiPickerButton(_ref) {
|
1010
|
+
let {
|
1011
|
+
showPicker,
|
1012
|
+
toggleShowPicker,
|
1013
|
+
buttonElement,
|
1014
|
+
buttonRef
|
1015
|
+
} = _ref;
|
933
1016
|
const localButtonRef = React.useRef(null);
|
934
1017
|
const [showCustomButtonContent, setShowCustomButtonContent] = React.useState(false);
|
935
1018
|
React.useEffect(() => {
|
936
|
-
|
1019
|
+
var _buttonRef$current$ch, _buttonRef$current, _buttonElement$childN, _buttonElement$childN2;
|
1020
|
+
if (((_buttonRef$current$ch = buttonRef === null || buttonRef === void 0 || (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 || (_buttonRef$current = _buttonRef$current.childNodes) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.length) !== null && _buttonRef$current$ch !== void 0 ? _buttonRef$current$ch : 0) > 2) {
|
937
1021
|
localButtonRef.current.appendChild(buttonRef.current.childNodes[0]);
|
938
1022
|
setShowCustomButtonContent(true);
|
939
|
-
} else if ((buttonElement
|
940
|
-
localButtonRef.current.appendChild(buttonElement
|
1023
|
+
} else if (((_buttonElement$childN = buttonElement === null || buttonElement === void 0 || (_buttonElement$childN2 = buttonElement.childNodes) === null || _buttonElement$childN2 === void 0 ? void 0 : _buttonElement$childN2.length) !== null && _buttonElement$childN !== void 0 ? _buttonElement$childN : 0) > 2) {
|
1024
|
+
localButtonRef.current.appendChild(buttonElement === null || buttonElement === void 0 ? void 0 : buttonElement.childNodes[0]);
|
941
1025
|
setShowCustomButtonContent(true);
|
942
1026
|
}
|
943
|
-
}, [buttonElement
|
1027
|
+
}, [buttonElement === null || buttonElement === void 0 ? void 0 : buttonElement.childNodes]);
|
944
1028
|
return /*#__PURE__*/React__default["default"].createElement("button", {
|
945
1029
|
ref: localButtonRef,
|
946
1030
|
type: "button",
|
947
|
-
className:
|
1031
|
+
className: "react-input-emoji--button".concat(showPicker ? " react-input-emoji--button__show" : ""),
|
948
1032
|
onClick: toggleShowPicker
|
949
1033
|
}, !showCustomButtonContent && /*#__PURE__*/React__default["default"].createElement("svg", {
|
950
1034
|
xmlns: "http://www.w3.org/2000/svg",
|
@@ -3441,7 +3525,7 @@ function EmojiPicker(props) {
|
|
3441
3525
|
}
|
3442
3526
|
|
3443
3527
|
// @ts-ignore
|
3444
|
-
fetch(
|
3528
|
+
fetch("".concat(EMOJI_MART_DATA_URL, "/i18n/en.json")).then(async data => {
|
3445
3529
|
const translations = await data.json();
|
3446
3530
|
setI18n(translations);
|
3447
3531
|
cacheI18n.en = translations;
|
@@ -3456,7 +3540,7 @@ function EmojiPicker(props) {
|
|
3456
3540
|
}
|
3457
3541
|
|
3458
3542
|
// @ts-ignore
|
3459
|
-
fetch(
|
3543
|
+
fetch("".concat(EMOJI_MART_DATA_URL, "/i18n/").concat(language, ".json")).then(async data => {
|
3460
3544
|
const translations = await data.json();
|
3461
3545
|
setI18n(translations);
|
3462
3546
|
cacheI18n[language] = translations;
|
@@ -3496,15 +3580,16 @@ var EmojiPicker$1 = /*#__PURE__*/React.memo(EmojiPicker);
|
|
3496
3580
|
* @param {Props} props
|
3497
3581
|
* @return {JSX.Element}
|
3498
3582
|
*/
|
3499
|
-
function EmojiPickerContainer({
|
3500
|
-
|
3501
|
-
|
3502
|
-
|
3503
|
-
|
3504
|
-
|
3505
|
-
|
3506
|
-
|
3507
|
-
|
3583
|
+
function EmojiPickerContainer(_ref) {
|
3584
|
+
let {
|
3585
|
+
showPicker,
|
3586
|
+
theme,
|
3587
|
+
handleSelectEmoji,
|
3588
|
+
disableRecent,
|
3589
|
+
customEmojis,
|
3590
|
+
position,
|
3591
|
+
language
|
3592
|
+
} = _ref;
|
3508
3593
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
3509
3594
|
className: "react-emoji-picker--container"
|
3510
3595
|
}, showPicker && /*#__PURE__*/React__default["default"].createElement("div", {
|
@@ -3643,10 +3728,11 @@ const EmojiPickerWrapper = props => {
|
|
3643
3728
|
}
|
3644
3729
|
}
|
3645
3730
|
React.useEffect(() => {
|
3646
|
-
|
3731
|
+
var _buttonRef$current;
|
3732
|
+
if (buttonRef !== null && buttonRef !== void 0 && (_buttonRef$current = buttonRef.current) !== null && _buttonRef$current !== void 0 && _buttonRef$current.style) {
|
3647
3733
|
buttonRef.current.style.position = "relative";
|
3648
3734
|
setCustomButton(buttonRef.current);
|
3649
|
-
} else if (buttonElement
|
3735
|
+
} else if (buttonElement !== null && buttonElement !== void 0 && buttonElement.style) {
|
3650
3736
|
buttonElement.style.position = "relative";
|
3651
3737
|
setCustomButton(buttonElement);
|
3652
3738
|
}
|
@@ -3768,7 +3854,7 @@ function getElementWithFocus() {
|
|
3768
3854
|
*/
|
3769
3855
|
function getSelectionStart() {
|
3770
3856
|
const node = document.getSelection().anchorNode;
|
3771
|
-
return node
|
3857
|
+
return (node === null || node === void 0 ? void 0 : node.nodeType) == 3 ? node : null;
|
3772
3858
|
}
|
3773
3859
|
|
3774
3860
|
// @ts-check
|
@@ -3812,8 +3898,9 @@ function useMention(searchMention) {
|
|
3812
3898
|
|
3813
3899
|
/** @type {(event: React.KeyboardEvent) => void} */
|
3814
3900
|
const onKeyUp = React.useCallback(async event => {
|
3901
|
+
var _getElementWithFocus;
|
3815
3902
|
if (typeof searchMention !== "function") return;
|
3816
|
-
if (event.key === "Backspace" && getElementWithFocus()
|
3903
|
+
if (event.key === "Backspace" && (_getElementWithFocus = getElementWithFocus()) !== null && _getElementWithFocus !== void 0 && _getElementWithFocus.element.parentElement.hasAttribute("data-mention-id")) {
|
3817
3904
|
const elementWithFocus = getElementWithFocus();
|
3818
3905
|
elementWithFocus.element.parentElement.remove();
|
3819
3906
|
} else if (!["ArrowUp", "ArrowDown", "Esc", "Escape"].includes(event.key)) {
|
@@ -3833,8 +3920,6 @@ function useMention(searchMention) {
|
|
3833
3920
|
};
|
3834
3921
|
}
|
3835
3922
|
|
3836
|
-
// @ts-check
|
3837
|
-
|
3838
3923
|
/**
|
3839
3924
|
* @typedef {import('../types/types').MentionUser} MentionUser
|
3840
3925
|
*/
|
@@ -3857,12 +3942,13 @@ function useMention(searchMention) {
|
|
3857
3942
|
|
3858
3943
|
// eslint-disable-next-line valid-jsdoc
|
3859
3944
|
/** @type {React.ForwardRefRenderFunction<Ref, Props>} */
|
3860
|
-
const MentionUserList = ({
|
3861
|
-
|
3862
|
-
|
3863
|
-
|
3864
|
-
|
3865
|
-
|
3945
|
+
const MentionUserList = (_ref, ref) => {
|
3946
|
+
let {
|
3947
|
+
users,
|
3948
|
+
mentionSearchText,
|
3949
|
+
onSelect,
|
3950
|
+
addEventListener
|
3951
|
+
} = _ref;
|
3866
3952
|
const [selectedUser, setSelectedUser] = React.useState(0);
|
3867
3953
|
React.useImperativeHandle(ref, () => ({
|
3868
3954
|
prevUser: () => {
|
@@ -3893,7 +3979,7 @@ const MentionUserList = ({
|
|
3893
3979
|
* @return {string}
|
3894
3980
|
*/
|
3895
3981
|
function getMentionSelectedNameEl(selectedText, rest) {
|
3896
|
-
return
|
3982
|
+
return "<span class=\"react-input-emoji--mention--item--name__selected\" data-testid=\"metion-selected-word\">".concat(selectedText, "</span>").concat(rest);
|
3897
3983
|
}
|
3898
3984
|
|
3899
3985
|
/** @type {(MentionUser & {nameHtml: string})[]} */
|
@@ -3914,10 +4000,9 @@ const MentionUserList = ({
|
|
3914
4000
|
}).join(" ");
|
3915
4001
|
}
|
3916
4002
|
}
|
3917
|
-
return {
|
3918
|
-
...user,
|
4003
|
+
return _objectSpread2(_objectSpread2({}, user), {}, {
|
3919
4004
|
nameHtml
|
3920
|
-
};
|
4005
|
+
});
|
3921
4006
|
});
|
3922
4007
|
}, [mentionSearchText, users]);
|
3923
4008
|
|
@@ -3952,7 +4037,7 @@ const MentionUserList = ({
|
|
3952
4037
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
3953
4038
|
type: "button",
|
3954
4039
|
onClick: handleClick(user),
|
3955
|
-
className:
|
4040
|
+
className: "react-input-emoji--mention--item".concat(selectedUser === index ? " react-input-emoji--mention--item__selected" : ""),
|
3956
4041
|
onMouseOver: () => setSelectedUser(index)
|
3957
4042
|
}, /*#__PURE__*/React__default["default"].createElement("img", {
|
3958
4043
|
className: "react-input-emoji--mention--item--img",
|
@@ -3990,12 +4075,13 @@ const MentionUserListWithRef = /*#__PURE__*/React.forwardRef(MentionUserList);
|
|
3990
4075
|
|
3991
4076
|
// eslint-disable-next-line valid-jsdoc
|
3992
4077
|
/** @type {React.FC<Props>} */
|
3993
|
-
const MentionWrapper =
|
3994
|
-
|
3995
|
-
|
3996
|
-
|
3997
|
-
|
3998
|
-
|
4078
|
+
const MentionWrapper = _ref => {
|
4079
|
+
let {
|
4080
|
+
searchMention,
|
4081
|
+
addEventListener,
|
4082
|
+
appendContent,
|
4083
|
+
addSanitizeFn
|
4084
|
+
} = _ref;
|
3999
4085
|
/** @type {React.MutableRefObject<import('./mention-user-list').Ref | null>} */
|
4000
4086
|
const metionUserListRef = React.useRef(null);
|
4001
4087
|
const [showUserList, setShowUserList] = React.useState(false);
|
@@ -4013,7 +4099,7 @@ const MentionWrapper = ({
|
|
4013
4099
|
container.innerHTML = html;
|
4014
4100
|
const mentionsEl = Array.prototype.slice.call(container.querySelectorAll(".react-input-emoji--mention--text"));
|
4015
4101
|
mentionsEl.forEach(mentionEl => {
|
4016
|
-
container.innerHTML = container.innerHTML.replace(mentionEl.outerHTML,
|
4102
|
+
container.innerHTML = container.innerHTML.replace(mentionEl.outerHTML, "@[".concat(mentionEl.dataset.mentionName, "](userId:").concat(mentionEl.dataset.mentionId, ")"));
|
4017
4103
|
});
|
4018
4104
|
return container.innerHTML;
|
4019
4105
|
});
|
@@ -4086,7 +4172,7 @@ const MentionWrapper = ({
|
|
4086
4172
|
*/
|
4087
4173
|
function handleSelect(user) {
|
4088
4174
|
onSelectUser();
|
4089
|
-
appendContent(
|
4175
|
+
appendContent("<span class=\"react-input-emoji--mention--text\" data-mention-id=\"".concat(user.id, "\" data-mention-name=\"").concat(user.name, "\">@").concat(user.name, "</span> "));
|
4090
4176
|
}
|
4091
4177
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, loading ? /*#__PURE__*/React__default["default"].createElement("div", {
|
4092
4178
|
className: "react-input-emoji--mention--container"
|
@@ -4296,7 +4382,8 @@ function InputEmoji(props, ref) {
|
|
4296
4382
|
addPolluteFn,
|
4297
4383
|
pollute
|
4298
4384
|
} = usePollute();
|
4299
|
-
const updateHTML = React.useCallback((
|
4385
|
+
const updateHTML = React.useCallback(function () {
|
4386
|
+
let nextValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
4300
4387
|
if (textInputRef.current === null) return;
|
4301
4388
|
textInputRef.current.html = replaceAllTextEmojis(nextValue);
|
4302
4389
|
sanitizedTextRef.current = nextValue;
|