Remove base64 header from image url

pull/107/head
Yahia 4 years ago
parent fe7e0a6ba0
commit b4dbf56c73
  1. 13
      lib/widgets/editor.dart

@ -93,12 +93,21 @@ abstract class RenderAbstractEditor {
void selectPosition(SelectionChangedCause cause); 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) { Widget _defaultEmbedBuilder(BuildContext context, leaf.Embed node) {
switch (node.value.type) { switch (node.value.type) {
case 'image': case 'image':
String imageUrl = node.value.data; String imageUrl = removeBase64Header(node.value.data);
return imageUrl.startsWith('http') return imageUrl.startsWith('http')
? Image.network(imageUrl) ? Image.network(imageUrl)
: isBase64(imageUrl)
? Image.memory(base64.decode(imageUrl))
: Image.file(io.File(imageUrl)); : Image.file(io.File(imageUrl));
default: default:
throw UnimplementedError( throw UnimplementedError(
@ -411,7 +420,7 @@ class _QuillEditorSelectionGestureDetectorBuilder
if (getEditor()!.widget.readOnly && segment.value is BlockEmbed) { if (getEditor()!.widget.readOnly && segment.value is BlockEmbed) {
BlockEmbed blockEmbed = segment.value as BlockEmbed; BlockEmbed blockEmbed = segment.value as BlockEmbed;
if (blockEmbed.type == 'image') { if (blockEmbed.type == 'image') {
final String imageUrl = blockEmbed.data; final String imageUrl = removeBase64Header(blockEmbed.data);
Navigator.push( Navigator.push(
getEditor()!.context, getEditor()!.context,
MaterialPageRoute( MaterialPageRoute(

Loading…
Cancel
Save