diff --git a/lib/src/editor_controller.dart b/lib/src/editor_controller.dart index 2dd8ba8..153cac4 100644 --- a/lib/src/editor_controller.dart +++ b/lib/src/editor_controller.dart @@ -45,6 +45,10 @@ final class BBCodeEditorController { void setDocumentFromJson(List json) => _quillController.document = Document.fromJson(json); + /// Set the document from delta + void setDocumentFromDelta(Delta delta) => + _quillController.document = Document.fromDelta(delta); + /// Set the document from raw text without format. void setDocumentFromRawText(String text) { final String fixedText; diff --git a/lib/src/tags/spoiler/spoiler_builder.dart b/lib/src/tags/spoiler/spoiler_builder.dart index 55da055..6259c3b 100644 --- a/lib/src/tags/spoiler/spoiler_builder.dart +++ b/lib/src/tags/spoiler/spoiler_builder.dart @@ -9,6 +9,7 @@ import 'package:flutter_bbcode_editor/src/tags/spoiler/spoiler_embed.dart'; import 'package:flutter_bbcode_editor/src/tags/spoiler/spoiler_keys.dart'; import 'package:flutter_bbcode_editor/src/types.dart'; import 'package:flutter_quill/flutter_quill.dart'; +import 'package:flutter_quill/quill_delta.dart'; /// Editor widget builder for embed spoiler types. /// @@ -324,6 +325,13 @@ class _SpoilerEditPageState extends State<_SpoilerEditPage> { super.initState(); titleController = TextEditingController(text: widget.initialData?.title); bodyController = BBCodeEditorController(); + if (widget.initialData != null) { + bodyController.setDocumentFromDelta( + Delta.fromJson( + jsonDecode(widget.initialData!.body) as List, + ), + ); + } } @override @@ -384,6 +392,10 @@ class _SpoilerEditPageState extends State<_SpoilerEditPage> { urlPicker: widget.urlPicker, imagePicker: widget.imagePicker, usernamePicker: widget.usernamePicker, + // Disable font family + showFontFamily: false, + // Disable nested spoiler + showSpoilerButton: false, ), ], ),