diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 5ccf2e44b5..e61e889cb3 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -215,12 +215,14 @@ export const TextInput = forwardRef(function TextInputImpl( const splitter = useMemo(() => new Graphemer(), []) const textDecorated = useMemo(() => { let excess + let rt = richtext if (richtext.graphemeLength > MAX_GRAPHEME_LENGTH) { + rt = richtext.clone() const split = splitter.splitGraphemes(richtext.text) const validText = split.slice(0, MAX_GRAPHEME_LENGTH).join('') const validUnicode = new UnicodeString(validText) const excessText = split.slice(MAX_GRAPHEME_LENGTH).join('') - richtext.delete(validUnicode.utf8.byteLength, richtext.length) + rt.delete(validUnicode.utf8.byteLength, richtext.length) excess = ( { + const segments = Array.from(rt.segments()).map(segment => { return (