From b4dbf56c733e9f8b83522c353e9e1bb506a4d7b2 Mon Sep 17 00:00:00 2001 From: Yahia Date: Thu, 25 Mar 2021 04:03:54 +0200 Subject: [PATCH] Remove base64 header from image url --- lib/widgets/editor.dart | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/widgets/editor.dart b/lib/widgets/editor.dart index 2cc6258c..9c4dc6e8 100644 --- a/lib/widgets/editor.dart +++ b/lib/widgets/editor.dart @@ -93,12 +93,21 @@ abstract class RenderAbstractEditor { void selectPosition(SelectionChangedCause cause); } +String removeBase64Header(String url){ + if(url.contains("base64")){ + return url.split(",")[1]; + } + return url; +} + Widget _defaultEmbedBuilder(BuildContext context, leaf.Embed node) { switch (node.value.type) { case 'image': - String imageUrl = node.value.data; + String imageUrl = removeBase64Header(node.value.data); return imageUrl.startsWith('http') ? Image.network(imageUrl) + : isBase64(imageUrl) + ? Image.memory(base64.decode(imageUrl)) : Image.file(io.File(imageUrl)); default: throw UnimplementedError( @@ -411,7 +420,7 @@ class _QuillEditorSelectionGestureDetectorBuilder if (getEditor()!.widget.readOnly && segment.value is BlockEmbed) { BlockEmbed blockEmbed = segment.value as BlockEmbed; if (blockEmbed.type == 'image') { - final String imageUrl = blockEmbed.data; + final String imageUrl = removeBase64Header(blockEmbed.data); Navigator.push( getEditor()!.context, MaterialPageRoute(