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;
final imageUrl = imageNode.value.data;
controller.copiedImageUrl =
Tuple2(imageUrl, getImageStyleString(controller));
ImageUrl(imageUrl, getImageStyleString(controller));
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
/// item1 is url and item2 is style string
Tuple2<String, String>? _copiedImageUrl;
ImageUrl? _copiedImageUrl;
Tuple2<String, String>? get copiedImageUrl => _copiedImageUrl;
ImageUrl? get copiedImageUrl => _copiedImageUrl;
set copiedImageUrl(Tuple2<String, String>? value) {
set copiedImageUrl(ImageUrl? value) {
_copiedImageUrl = value;
Clipboard.setData(const ClipboardData(text: ''));
}

@ -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: ''));

Loading…
Cancel
Save