From c78f6b8a7617d87df28a57738b708424a4e1793b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Poizat?= Date: Thu, 18 Dec 2025 16:46:29 +0100 Subject: [PATCH] Improve text replace in Scribe - Delete selection content before inserting - Insert correct HTML --- core/lib/utils/string_convert.dart | 6 ++++++ .../handle_ai_scribe_in_composer_extension.dart | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/lib/utils/string_convert.dart b/core/lib/utils/string_convert.dart index fefedf069..a959aeacb 100644 --- a/core/lib/utils/string_convert.dart +++ b/core/lib/utils/string_convert.dart @@ -214,4 +214,10 @@ class StringConvert { return textContent.trim(); } + + static String convertTextContentToHtmlContent(String textContent) { + final htmlContent = textContent.replaceAll('\n', '
'); + + return '
$htmlContent
'; + } } \ No newline at end of file diff --git a/lib/features/composer/presentation/extensions/ai_scribe/handle_ai_scribe_in_composer_extension.dart b/lib/features/composer/presentation/extensions/ai_scribe/handle_ai_scribe_in_composer_extension.dart index 048cc3421..cb58a33dc 100644 --- a/lib/features/composer/presentation/extensions/ai_scribe/handle_ai_scribe_in_composer_extension.dart +++ b/lib/features/composer/presentation/extensions/ai_scribe/handle_ai_scribe_in_composer_extension.dart @@ -29,10 +29,15 @@ extension HandleAiScribeInComposerExtension on ComposerController { } } - void insertTextInEditor(String text) { - final htmlContent = text.replaceAll('\n', '
'); + void insertTextInEditor(String text) async { + final htmlContent = StringConvert.convertTextContentToHtmlContent(text); if (PlatformInfo.isWeb) { + await richTextWebController?.editorController.evaluateJavascriptWeb( + HtmlUtils.deleteSelectionContent.name, + hasReturnValue: false, + ); + richTextWebController?.editorController.insertHtml(htmlContent); } else { richTextMobileTabletController?.htmlEditorApi?.insertHtml(htmlContent);