From 2c68f4d7cba080fc085d1aceeaa32683d4e7a1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Chiotti?= <44336112+maelchiotti@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:40:30 +0200 Subject: [PATCH] fix: save on toggle checkbox in rich text note --- .../widgets/editors/rich_text_editor.dart | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/pages/editor/widgets/editors/rich_text_editor.dart b/lib/pages/editor/widgets/editors/rich_text_editor.dart index 30b2bf63..3b32df1b 100644 --- a/lib/pages/editor/widgets/editors/rich_text_editor.dart +++ b/lib/pages/editor/widgets/editors/rich_text_editor.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:convert'; import 'package:fleather/fleather.dart'; @@ -44,6 +45,15 @@ class RichTextEditor extends ConsumerStatefulWidget { } class _RichTextEditorState extends ConsumerState { + late StreamSubscription changes; + + @override + void initState() { + super.initState(); + + changes = widget.fleatherController.document.changes.listen((_) => this.onChanged()); + } + void onLaunchUrl(String? url) { if (url == null) { return; @@ -68,13 +78,18 @@ class _RichTextEditorState extends ConsumerState { ref.read(notesProvider(status: NoteStatus.available, label: currentLabelFilter).notifier).edit(note); } + @override + void dispose() { + changes.cancel(); + + super.dispose(); + } + @override Widget build(BuildContext context) { final useParagraphsSpacing = PreferenceKey.useParagraphsSpacing.preferenceOrDefault; final editorFont = Font.editorFromPreference(); - widget.fleatherController.addListener(() => onChanged()); - final linkColor = Theme.brightnessOf(context) == Brightness.light ? Colors.blue[800] : Colors.blue[200]; return Padding(