diff --git a/flutter_quill_extensions/lib/embeds/builders.dart b/flutter_quill_extensions/lib/embeds/builders.dart index bc1364be..e1c0a695 100644 --- a/flutter_quill_extensions/lib/embeds/builders.dart +++ b/flutter_quill_extensions/lib/embeds/builders.dart @@ -105,7 +105,7 @@ class ImageEmbedBuilder implements EmbedBuilder { .item2; final imageUrl = imageNode.value.data; controller.copiedImageUrl = - Tuple2(imageUrl, getImageStyleString(controller)); + ImageUrl(imageUrl, getImageStyleString(controller)); Navigator.pop(context); }, ); diff --git a/lib/src/models/structs/image_url.dart b/lib/src/models/structs/image_url.dart new file mode 100644 index 00000000..097e199b --- /dev/null +++ b/lib/src/models/structs/image_url.dart @@ -0,0 +1,9 @@ +class ImageUrl { + const ImageUrl( + this.url, + this.styleString, + ); + + final String url; + final String styleString; +} diff --git a/lib/src/widgets/controller.dart b/lib/src/widgets/controller.dart index b087bc99..f5e2bdb0 100644 --- a/lib/src/widgets/controller.dart +++ b/lib/src/widgets/controller.dart @@ -370,12 +370,11 @@ class QuillController extends ChangeNotifier { } /// Clipboard for image url and its corresponding style - /// item1 is url and item2 is style string - Tuple2? _copiedImageUrl; + ImageUrl? _copiedImageUrl; - Tuple2? get copiedImageUrl => _copiedImageUrl; + ImageUrl? get copiedImageUrl => _copiedImageUrl; - set copiedImageUrl(Tuple2? value) { + set copiedImageUrl(ImageUrl? value) { _copiedImageUrl = value; Clipboard.setData(const ClipboardData(text: '')); } diff --git a/lib/src/widgets/raw_editor.dart b/lib/src/widgets/raw_editor.dart index 055509fa..afc75093 100644 --- a/lib/src/widgets/raw_editor.dart +++ b/lib/src/widgets/raw_editor.dart @@ -1282,10 +1282,10 @@ class RawEditorState extends EditorState final length = textEditingValue.selection.extentOffset - index; final copied = controller.copiedImageUrl!; controller.replaceText( - index, length, BlockEmbed.image(copied.item1), null); - if (copied.item2.isNotEmpty) { + index, length, BlockEmbed.image(copied.url), null); + if (copied.styleString.isNotEmpty) { controller.formatText(getEmbedNode(controller, index + 1).item1, 1, - StyleAttribute(copied.item2)); + StyleAttribute(copied.styleString)); } controller.copiedImageUrl = null; await Clipboard.setData(const ClipboardData(text: ''));