Create struct for image url

pull/1128/head
Adil Hanney 2 years ago
parent 766233f0ff
commit f2c37edae0
  1. 2
      flutter_quill_extensions/lib/embeds/builders.dart
  2. 9
      lib/src/models/structs/image_url.dart
  3. 7
      lib/src/widgets/controller.dart
  4. 6
      lib/src/widgets/raw_editor.dart

@ -105,7 +105,7 @@ class ImageEmbedBuilder implements EmbedBuilder {
.item2; .item2;
final imageUrl = imageNode.value.data; final imageUrl = imageNode.value.data;
controller.copiedImageUrl = controller.copiedImageUrl =
Tuple2(imageUrl, getImageStyleString(controller)); ImageUrl(imageUrl, getImageStyleString(controller));
Navigator.pop(context); Navigator.pop(context);
}, },
); );

@ -0,0 +1,9 @@
class ImageUrl {
const ImageUrl(
this.url,
this.styleString,
);
final String url;
final String styleString;
}

@ -370,12 +370,11 @@ class QuillController extends ChangeNotifier {
} }
/// Clipboard for image url and its corresponding style /// Clipboard for image url and its corresponding style
/// item1 is url and item2 is style string ImageUrl? _copiedImageUrl;
Tuple2<String, String>? _copiedImageUrl;
Tuple2<String, String>? get copiedImageUrl => _copiedImageUrl; ImageUrl? get copiedImageUrl => _copiedImageUrl;
set copiedImageUrl(Tuple2<String, String>? value) { set copiedImageUrl(ImageUrl? value) {
_copiedImageUrl = value; _copiedImageUrl = value;
Clipboard.setData(const ClipboardData(text: '')); Clipboard.setData(const ClipboardData(text: ''));
} }

@ -1282,10 +1282,10 @@ class RawEditorState extends EditorState
final length = textEditingValue.selection.extentOffset - index; final length = textEditingValue.selection.extentOffset - index;
final copied = controller.copiedImageUrl!; final copied = controller.copiedImageUrl!;
controller.replaceText( controller.replaceText(
index, length, BlockEmbed.image(copied.item1), null); index, length, BlockEmbed.image(copied.url), null);
if (copied.item2.isNotEmpty) { if (copied.styleString.isNotEmpty) {
controller.formatText(getEmbedNode(controller, index + 1).item1, 1, controller.formatText(getEmbedNode(controller, index + 1).item1, 1,
StyleAttribute(copied.item2)); StyleAttribute(copied.styleString));
} }
controller.copiedImageUrl = null; controller.copiedImageUrl = null;
await Clipboard.setData(const ClipboardData(text: '')); await Clipboard.setData(const ClipboardData(text: ''));

Loading…
Cancel
Save