From 85a124973f8803c5768d139c48d92c1a966e5219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20=C5=BB=C3=B3=C5=82kiewski?= Date: Fri, 15 May 2026 10:01:40 +0200 Subject: [PATCH 1/2] fix: setting mention withoout indicator typed --- ios/EnrichedTextInputView.mm | 16 ++++++++-------- ios/styles/MentionStyle.mm | 6 +++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ios/EnrichedTextInputView.mm b/ios/EnrichedTextInputView.mm index f7889097c..774936eda 100644 --- a/ios/EnrichedTextInputView.mm +++ b/ios/EnrichedTextInputView.mm @@ -1479,15 +1479,15 @@ - (void)addMention:(NSString *)indicator if (mentionStyleClass == nullptr) { return; } - if ([mentionStyleClass getActiveMentionRange] == nullptr) { - return; - } - if ([StyleUtils - handleStyleBlocksAndConflicts:[MentionStyle getType] - range:[[mentionStyleClass - getActiveMentionRange] rangeValue] - forHost:self]) { + NSValue *activeMentionRange = [mentionStyleClass getActiveMentionRange]; + NSRange rangeToUse = activeMentionRange != nullptr + ? [activeMentionRange rangeValue] + : self.textView.selectedRange; + + if ([StyleUtils handleStyleBlocksAndConflicts:[MentionStyle getType] + range:rangeToUse + forHost:self]) { [mentionStyleClass addMention:indicator text:text attributes:attributes]; [self anyTextMayHaveBeenModified]; } diff --git a/ios/styles/MentionStyle.mm b/ios/styles/MentionStyle.mm index ea37d23ad..71ff7c45b 100644 --- a/ios/styles/MentionStyle.mm +++ b/ios/styles/MentionStyle.mm @@ -142,7 +142,11 @@ - (void)addMention:(NSString *)indicator text:(NSString *)text attributes:(NSString *)attributes { if (_activeMentionRange == nullptr) { - return; + // No draft mention (indicator not typed) - fall back to the current + // selection. + _activeMentionRange = + [NSValue valueWithRange:self.host.textView.selectedRange]; + _activeMentionIndicator = indicator; } _blockMentionEditing = YES; From de518f44726c7e86c88b868bcb4f6effbc4848f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20=C5=BB=C3=B3=C5=82kiewski?= Date: Fri, 15 May 2026 10:15:48 +0200 Subject: [PATCH 2/2] fix(android): setting mention without indicator typed --- .../swmansion/enriched/textinput/styles/ParametrizedStyles.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt b/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt index 8152b4cee..82a7922d7 100644 --- a/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt +++ b/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt @@ -365,7 +365,7 @@ class ParametrizedStyles( spannable.removeSpan(span) } - val start = mentionStart ?: return + val start = mentionStart ?: selectionStart view.runAsATransaction { spannable.replace(start, selectionEnd, text) @@ -383,6 +383,7 @@ class ParametrizedStyles( view.mentionHandler?.reset() view.selection.validateStyles() + mentionStart = null } fun getStyleRange(): Pair = view.selection?.getInlineSelection() ?: Pair(0, 0)