react-input-emoji 5.9.0-beta.1 → 5.9.0-beta.3
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/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.es.js
CHANGED
@@ -79,6 +79,7 @@ function getAllEmojisFromText(text) {
|
|
79
79
|
* @return {string}
|
80
80
|
*/
|
81
81
|
function getImageEmoji(emoji) {
|
82
|
+
var _emojiPickerEl$shadow;
|
82
83
|
/** @type {HTMLElement | null} */
|
83
84
|
const emojiPickerEl = document.querySelector('em-emoji-picker');
|
84
85
|
if (!emojiPickerEl) {
|
@@ -86,7 +87,7 @@ function getImageEmoji(emoji) {
|
|
86
87
|
}
|
87
88
|
|
88
89
|
/** @type {HTMLSpanElement | null=} */
|
89
|
-
const emojiSpanEl = emojiPickerEl
|
90
|
+
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"));
|
90
91
|
if (!emojiSpanEl) {
|
91
92
|
return getInputEmojiNativeHTML(emoji.native);
|
92
93
|
}
|
@@ -102,7 +103,7 @@ function getImageEmoji(emoji) {
|
|
102
103
|
* @returns
|
103
104
|
*/
|
104
105
|
function getInputEmojiHTML(style, emoji) {
|
105
|
-
return
|
106
|
+
return "<img style=\"".concat(style, "; display: inline-block\" data-emoji=\"").concat(emoji, "\" src=\"").concat(TRANSPARENT_GIF, "\" />");
|
106
107
|
}
|
107
108
|
|
108
109
|
/**
|
@@ -111,7 +112,7 @@ function getInputEmojiHTML(style, emoji) {
|
|
111
112
|
* @returns
|
112
113
|
*/
|
113
114
|
function getInputEmojiNativeHTML(emoji) {
|
114
|
-
return
|
115
|
+
return "<span class=\"width: 18px; height: 18px; display: inline-block; margin: 0 1px;\">".concat(emoji, "</span>");
|
115
116
|
}
|
116
117
|
|
117
118
|
/**
|
@@ -158,7 +159,7 @@ let currentRangeCached;
|
|
158
159
|
*/
|
159
160
|
function cacheCurrentRange() {
|
160
161
|
const selection = window.getSelection();
|
161
|
-
if (!selection.rangeCount || selection
|
162
|
+
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;
|
162
163
|
const range = selection.getRangeAt(0);
|
163
164
|
currentRangeCached = range.cloneRange();
|
164
165
|
}
|
@@ -174,7 +175,8 @@ function handlePasteHtmlAtCaret(html) {
|
|
174
175
|
sel = window.getSelection();
|
175
176
|
if (sel === null) return;
|
176
177
|
if (sel.getRangeAt && sel.rangeCount) {
|
177
|
-
|
178
|
+
var _currentRangeCached;
|
179
|
+
range = (_currentRangeCached = currentRangeCached) !== null && _currentRangeCached !== void 0 ? _currentRangeCached : sel.getRangeAt(0);
|
178
180
|
range.deleteContents();
|
179
181
|
|
180
182
|
// Range.createContextualFragment() would be useful here but is
|
@@ -220,10 +222,11 @@ function replaceEmojiToString(container) {
|
|
220
222
|
* @param {{text: string, html: string}} props
|
221
223
|
* @return {number}
|
222
224
|
*/
|
223
|
-
function totalCharacters({
|
224
|
-
|
225
|
-
|
226
|
-
|
225
|
+
function totalCharacters(_ref2) {
|
226
|
+
let {
|
227
|
+
text,
|
228
|
+
html
|
229
|
+
} = _ref2;
|
227
230
|
const textCount = text.length;
|
228
231
|
const emojisCount = (html.match(/<img/g) || []).length;
|
229
232
|
return textCount + emojisCount;
|
@@ -631,13 +634,14 @@ function handleEmoji(text) {
|
|
631
634
|
*
|
632
635
|
* @param {Props} props
|
633
636
|
*/
|
634
|
-
function useExpose({
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
637
|
+
function useExpose(_ref) {
|
638
|
+
let {
|
639
|
+
ref,
|
640
|
+
textInputRef,
|
641
|
+
setValue,
|
642
|
+
emitChange,
|
643
|
+
shouldConvertEmojiToImage
|
644
|
+
} = _ref;
|
641
645
|
const {
|
642
646
|
sanitize,
|
643
647
|
sanitizedTextRef
|
@@ -701,7 +705,84 @@ function useEmit(textInputRef, onResize, onChange) {
|
|
701
705
|
return emitChange;
|
702
706
|
}
|
703
707
|
|
704
|
-
|
708
|
+
function ownKeys(e, r) {
|
709
|
+
var t = Object.keys(e);
|
710
|
+
if (Object.getOwnPropertySymbols) {
|
711
|
+
var o = Object.getOwnPropertySymbols(e);
|
712
|
+
r && (o = o.filter(function (r) {
|
713
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
714
|
+
})), t.push.apply(t, o);
|
715
|
+
}
|
716
|
+
return t;
|
717
|
+
}
|
718
|
+
function _objectSpread2(e) {
|
719
|
+
for (var r = 1; r < arguments.length; r++) {
|
720
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
721
|
+
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
722
|
+
_defineProperty(e, r, t[r]);
|
723
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
724
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
725
|
+
});
|
726
|
+
}
|
727
|
+
return e;
|
728
|
+
}
|
729
|
+
function _defineProperty(obj, key, value) {
|
730
|
+
key = _toPropertyKey(key);
|
731
|
+
if (key in obj) {
|
732
|
+
Object.defineProperty(obj, key, {
|
733
|
+
value: value,
|
734
|
+
enumerable: true,
|
735
|
+
configurable: true,
|
736
|
+
writable: true
|
737
|
+
});
|
738
|
+
} else {
|
739
|
+
obj[key] = value;
|
740
|
+
}
|
741
|
+
return obj;
|
742
|
+
}
|
743
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
744
|
+
if (source == null) return {};
|
745
|
+
var target = {};
|
746
|
+
var sourceKeys = Object.keys(source);
|
747
|
+
var key, i;
|
748
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
749
|
+
key = sourceKeys[i];
|
750
|
+
if (excluded.indexOf(key) >= 0) continue;
|
751
|
+
target[key] = source[key];
|
752
|
+
}
|
753
|
+
return target;
|
754
|
+
}
|
755
|
+
function _objectWithoutProperties(source, excluded) {
|
756
|
+
if (source == null) return {};
|
757
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
758
|
+
var key, i;
|
759
|
+
if (Object.getOwnPropertySymbols) {
|
760
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
761
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
762
|
+
key = sourceSymbolKeys[i];
|
763
|
+
if (excluded.indexOf(key) >= 0) continue;
|
764
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
765
|
+
target[key] = source[key];
|
766
|
+
}
|
767
|
+
}
|
768
|
+
return target;
|
769
|
+
}
|
770
|
+
function _toPrimitive(input, hint) {
|
771
|
+
if (typeof input !== "object" || input === null) return input;
|
772
|
+
var prim = input[Symbol.toPrimitive];
|
773
|
+
if (prim !== undefined) {
|
774
|
+
var res = prim.call(input, hint || "default");
|
775
|
+
if (typeof res !== "object") return res;
|
776
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
777
|
+
}
|
778
|
+
return (hint === "string" ? String : Number)(input);
|
779
|
+
}
|
780
|
+
function _toPropertyKey(arg) {
|
781
|
+
var key = _toPrimitive(arg, "string");
|
782
|
+
return typeof key === "symbol" ? key : String(key);
|
783
|
+
}
|
784
|
+
|
785
|
+
const _excluded = ["placeholder", "style", "tabIndex", "className", "onChange"];
|
705
786
|
|
706
787
|
/**
|
707
788
|
* @typedef {Object} Props
|
@@ -735,14 +816,15 @@ function useEmit(textInputRef, onResize, onChange) {
|
|
735
816
|
|
736
817
|
// eslint-disable-next-line valid-jsdoc
|
737
818
|
/** @type {React.ForwardRefRenderFunction<Ref, Props>} */
|
738
|
-
const TextInput = ({
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
}
|
819
|
+
const TextInput = (_ref, ref) => {
|
820
|
+
let {
|
821
|
+
placeholder,
|
822
|
+
style,
|
823
|
+
tabIndex,
|
824
|
+
className,
|
825
|
+
onChange
|
826
|
+
} = _ref,
|
827
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
746
828
|
useImperativeHandle(ref, () => ({
|
747
829
|
appendContent: html => {
|
748
830
|
if (textInputRef.current) {
|
@@ -810,7 +892,7 @@ const TextInput = ({
|
|
810
892
|
placeholderStyle.color = style.placeholderColor;
|
811
893
|
}
|
812
894
|
return placeholderStyle;
|
813
|
-
}, [style
|
895
|
+
}, [style === null || style === void 0 ? void 0 : style.placeholderColor]);
|
814
896
|
|
815
897
|
/** @type {React.CSSProperties} */
|
816
898
|
const inputStyle = useMemo(() => {
|
@@ -819,7 +901,7 @@ const TextInput = ({
|
|
819
901
|
inputStyle.color = style.color;
|
820
902
|
}
|
821
903
|
return inputStyle;
|
822
|
-
}, [style
|
904
|
+
}, [style === null || style === void 0 ? void 0 : style.color]);
|
823
905
|
|
824
906
|
/** @type {React.MutableRefObject<HTMLDivElement | null>} */
|
825
907
|
const placeholderRef = useRef(null);
|
@@ -892,7 +974,7 @@ const TextInput = ({
|
|
892
974
|
onKeyUp: handleKeyUp,
|
893
975
|
tabIndex: tabIndex,
|
894
976
|
contentEditable: true,
|
895
|
-
className:
|
977
|
+
className: "react-input-emoji--input".concat(className ? " ".concat(className) : ""),
|
896
978
|
onBlur: props.onBlur,
|
897
979
|
onCopy: props.onCopy,
|
898
980
|
onPaste: props.onPaste,
|
@@ -917,27 +999,29 @@ const TextInputWithRef = /*#__PURE__*/forwardRef(TextInput);
|
|
917
999
|
* @param {Props} props
|
918
1000
|
* @return {JSX.Element}
|
919
1001
|
*/
|
920
|
-
function EmojiPickerButton({
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
1002
|
+
function EmojiPickerButton(_ref) {
|
1003
|
+
let {
|
1004
|
+
showPicker,
|
1005
|
+
toggleShowPicker,
|
1006
|
+
buttonElement,
|
1007
|
+
buttonRef
|
1008
|
+
} = _ref;
|
926
1009
|
const localButtonRef = useRef(null);
|
927
1010
|
const [showCustomButtonContent, setShowCustomButtonContent] = useState(false);
|
928
1011
|
useEffect(() => {
|
929
|
-
|
1012
|
+
var _buttonRef$current$ch, _buttonRef$current, _buttonElement$childN, _buttonElement$childN2;
|
1013
|
+
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) {
|
930
1014
|
localButtonRef.current.appendChild(buttonRef.current.childNodes[0]);
|
931
1015
|
setShowCustomButtonContent(true);
|
932
|
-
} else if ((buttonElement
|
933
|
-
localButtonRef.current.appendChild(buttonElement
|
1016
|
+
} 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) {
|
1017
|
+
localButtonRef.current.appendChild(buttonElement === null || buttonElement === void 0 ? void 0 : buttonElement.childNodes[0]);
|
934
1018
|
setShowCustomButtonContent(true);
|
935
1019
|
}
|
936
|
-
}, [buttonElement
|
1020
|
+
}, [buttonElement === null || buttonElement === void 0 ? void 0 : buttonElement.childNodes]);
|
937
1021
|
return /*#__PURE__*/React.createElement("button", {
|
938
1022
|
ref: localButtonRef,
|
939
1023
|
type: "button",
|
940
|
-
className:
|
1024
|
+
className: "react-input-emoji--button".concat(showPicker ? " react-input-emoji--button__show" : ""),
|
941
1025
|
onClick: toggleShowPicker
|
942
1026
|
}, !showCustomButtonContent && /*#__PURE__*/React.createElement("svg", {
|
943
1027
|
xmlns: "http://www.w3.org/2000/svg",
|
@@ -3434,7 +3518,7 @@ function EmojiPicker(props) {
|
|
3434
3518
|
}
|
3435
3519
|
|
3436
3520
|
// @ts-ignore
|
3437
|
-
fetch(
|
3521
|
+
fetch("".concat(EMOJI_MART_DATA_URL, "/i18n/en.json")).then(async data => {
|
3438
3522
|
const translations = await data.json();
|
3439
3523
|
setI18n(translations);
|
3440
3524
|
cacheI18n.en = translations;
|
@@ -3449,7 +3533,7 @@ function EmojiPicker(props) {
|
|
3449
3533
|
}
|
3450
3534
|
|
3451
3535
|
// @ts-ignore
|
3452
|
-
fetch(
|
3536
|
+
fetch("".concat(EMOJI_MART_DATA_URL, "/i18n/").concat(language, ".json")).then(async data => {
|
3453
3537
|
const translations = await data.json();
|
3454
3538
|
setI18n(translations);
|
3455
3539
|
cacheI18n[language] = translations;
|
@@ -3489,15 +3573,16 @@ var EmojiPicker$1 = /*#__PURE__*/memo(EmojiPicker);
|
|
3489
3573
|
* @param {Props} props
|
3490
3574
|
* @return {JSX.Element}
|
3491
3575
|
*/
|
3492
|
-
function EmojiPickerContainer({
|
3493
|
-
|
3494
|
-
|
3495
|
-
|
3496
|
-
|
3497
|
-
|
3498
|
-
|
3499
|
-
|
3500
|
-
|
3576
|
+
function EmojiPickerContainer(_ref) {
|
3577
|
+
let {
|
3578
|
+
showPicker,
|
3579
|
+
theme,
|
3580
|
+
handleSelectEmoji,
|
3581
|
+
disableRecent,
|
3582
|
+
customEmojis,
|
3583
|
+
position,
|
3584
|
+
language
|
3585
|
+
} = _ref;
|
3501
3586
|
return /*#__PURE__*/React.createElement("div", {
|
3502
3587
|
className: "react-emoji-picker--container"
|
3503
3588
|
}, showPicker && /*#__PURE__*/React.createElement("div", {
|
@@ -3636,10 +3721,11 @@ const EmojiPickerWrapper = props => {
|
|
3636
3721
|
}
|
3637
3722
|
}
|
3638
3723
|
useEffect(() => {
|
3639
|
-
|
3724
|
+
var _buttonRef$current;
|
3725
|
+
if (buttonRef !== null && buttonRef !== void 0 && (_buttonRef$current = buttonRef.current) !== null && _buttonRef$current !== void 0 && _buttonRef$current.style) {
|
3640
3726
|
buttonRef.current.style.position = "relative";
|
3641
3727
|
setCustomButton(buttonRef.current);
|
3642
|
-
} else if (buttonElement
|
3728
|
+
} else if (buttonElement !== null && buttonElement !== void 0 && buttonElement.style) {
|
3643
3729
|
buttonElement.style.position = "relative";
|
3644
3730
|
setCustomButton(buttonElement);
|
3645
3731
|
}
|
@@ -3761,7 +3847,7 @@ function getElementWithFocus() {
|
|
3761
3847
|
*/
|
3762
3848
|
function getSelectionStart() {
|
3763
3849
|
const node = document.getSelection().anchorNode;
|
3764
|
-
return node
|
3850
|
+
return (node === null || node === void 0 ? void 0 : node.nodeType) == 3 ? node : null;
|
3765
3851
|
}
|
3766
3852
|
|
3767
3853
|
// @ts-check
|
@@ -3805,8 +3891,9 @@ function useMention(searchMention) {
|
|
3805
3891
|
|
3806
3892
|
/** @type {(event: React.KeyboardEvent) => void} */
|
3807
3893
|
const onKeyUp = useCallback(async event => {
|
3894
|
+
var _getElementWithFocus;
|
3808
3895
|
if (typeof searchMention !== "function") return;
|
3809
|
-
if (event.key === "Backspace" && getElementWithFocus()
|
3896
|
+
if (event.key === "Backspace" && (_getElementWithFocus = getElementWithFocus()) !== null && _getElementWithFocus !== void 0 && _getElementWithFocus.element.parentElement.hasAttribute("data-mention-id")) {
|
3810
3897
|
const elementWithFocus = getElementWithFocus();
|
3811
3898
|
elementWithFocus.element.parentElement.remove();
|
3812
3899
|
} else if (!["ArrowUp", "ArrowDown", "Esc", "Escape"].includes(event.key)) {
|
@@ -3826,8 +3913,6 @@ function useMention(searchMention) {
|
|
3826
3913
|
};
|
3827
3914
|
}
|
3828
3915
|
|
3829
|
-
// @ts-check
|
3830
|
-
|
3831
3916
|
/**
|
3832
3917
|
* @typedef {import('../types/types').MentionUser} MentionUser
|
3833
3918
|
*/
|
@@ -3850,12 +3935,13 @@ function useMention(searchMention) {
|
|
3850
3935
|
|
3851
3936
|
// eslint-disable-next-line valid-jsdoc
|
3852
3937
|
/** @type {React.ForwardRefRenderFunction<Ref, Props>} */
|
3853
|
-
const MentionUserList = ({
|
3854
|
-
|
3855
|
-
|
3856
|
-
|
3857
|
-
|
3858
|
-
|
3938
|
+
const MentionUserList = (_ref, ref) => {
|
3939
|
+
let {
|
3940
|
+
users,
|
3941
|
+
mentionSearchText,
|
3942
|
+
onSelect,
|
3943
|
+
addEventListener
|
3944
|
+
} = _ref;
|
3859
3945
|
const [selectedUser, setSelectedUser] = useState(0);
|
3860
3946
|
useImperativeHandle(ref, () => ({
|
3861
3947
|
prevUser: () => {
|
@@ -3886,7 +3972,7 @@ const MentionUserList = ({
|
|
3886
3972
|
* @return {string}
|
3887
3973
|
*/
|
3888
3974
|
function getMentionSelectedNameEl(selectedText, rest) {
|
3889
|
-
return
|
3975
|
+
return "<span class=\"react-input-emoji--mention--item--name__selected\" data-testid=\"metion-selected-word\">".concat(selectedText, "</span>").concat(rest);
|
3890
3976
|
}
|
3891
3977
|
|
3892
3978
|
/** @type {(MentionUser & {nameHtml: string})[]} */
|
@@ -3907,10 +3993,9 @@ const MentionUserList = ({
|
|
3907
3993
|
}).join(" ");
|
3908
3994
|
}
|
3909
3995
|
}
|
3910
|
-
return {
|
3911
|
-
...user,
|
3996
|
+
return _objectSpread2(_objectSpread2({}, user), {}, {
|
3912
3997
|
nameHtml
|
3913
|
-
};
|
3998
|
+
});
|
3914
3999
|
});
|
3915
4000
|
}, [mentionSearchText, users]);
|
3916
4001
|
|
@@ -3945,7 +4030,7 @@ const MentionUserList = ({
|
|
3945
4030
|
}, /*#__PURE__*/React.createElement("button", {
|
3946
4031
|
type: "button",
|
3947
4032
|
onClick: handleClick(user),
|
3948
|
-
className:
|
4033
|
+
className: "react-input-emoji--mention--item".concat(selectedUser === index ? " react-input-emoji--mention--item__selected" : ""),
|
3949
4034
|
onMouseOver: () => setSelectedUser(index)
|
3950
4035
|
}, /*#__PURE__*/React.createElement("img", {
|
3951
4036
|
className: "react-input-emoji--mention--item--img",
|
@@ -3983,12 +4068,13 @@ const MentionUserListWithRef = /*#__PURE__*/forwardRef(MentionUserList);
|
|
3983
4068
|
|
3984
4069
|
// eslint-disable-next-line valid-jsdoc
|
3985
4070
|
/** @type {React.FC<Props>} */
|
3986
|
-
const MentionWrapper =
|
3987
|
-
|
3988
|
-
|
3989
|
-
|
3990
|
-
|
3991
|
-
|
4071
|
+
const MentionWrapper = _ref => {
|
4072
|
+
let {
|
4073
|
+
searchMention,
|
4074
|
+
addEventListener,
|
4075
|
+
appendContent,
|
4076
|
+
addSanitizeFn
|
4077
|
+
} = _ref;
|
3992
4078
|
/** @type {React.MutableRefObject<import('./mention-user-list').Ref | null>} */
|
3993
4079
|
const metionUserListRef = useRef(null);
|
3994
4080
|
const [showUserList, setShowUserList] = useState(false);
|
@@ -4006,7 +4092,7 @@ const MentionWrapper = ({
|
|
4006
4092
|
container.innerHTML = html;
|
4007
4093
|
const mentionsEl = Array.prototype.slice.call(container.querySelectorAll(".react-input-emoji--mention--text"));
|
4008
4094
|
mentionsEl.forEach(mentionEl => {
|
4009
|
-
container.innerHTML = container.innerHTML.replace(mentionEl.outerHTML,
|
4095
|
+
container.innerHTML = container.innerHTML.replace(mentionEl.outerHTML, "@[".concat(mentionEl.dataset.mentionName, "](userId:").concat(mentionEl.dataset.mentionId, ")"));
|
4010
4096
|
});
|
4011
4097
|
return container.innerHTML;
|
4012
4098
|
});
|
@@ -4079,7 +4165,7 @@ const MentionWrapper = ({
|
|
4079
4165
|
*/
|
4080
4166
|
function handleSelect(user) {
|
4081
4167
|
onSelectUser();
|
4082
|
-
appendContent(
|
4168
|
+
appendContent("<span class=\"react-input-emoji--mention--text\" data-mention-id=\"".concat(user.id, "\" data-mention-name=\"").concat(user.name, "\">@").concat(user.name, "</span> "));
|
4083
4169
|
}
|
4084
4170
|
return /*#__PURE__*/React.createElement(React.Fragment, null, loading ? /*#__PURE__*/React.createElement("div", {
|
4085
4171
|
className: "react-input-emoji--mention--container"
|
@@ -4289,7 +4375,8 @@ function InputEmoji(props, ref) {
|
|
4289
4375
|
addPolluteFn,
|
4290
4376
|
pollute
|
4291
4377
|
} = usePollute();
|
4292
|
-
const updateHTML = useCallback((
|
4378
|
+
const updateHTML = useCallback(function () {
|
4379
|
+
let nextValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
4293
4380
|
if (textInputRef.current === null) return;
|
4294
4381
|
textInputRef.current.html = replaceAllTextEmojis(nextValue);
|
4295
4382
|
sanitizedTextRef.current = nextValue;
|