From a1f39564f6efadb303ff96be95d066cb6f44e7a8 Mon Sep 17 00:00:00 2001 From: X Code Date: Mon, 31 Jan 2022 00:49:12 -0800 Subject: [PATCH] Refactor code --- .../widgets/embeds/default_embed_builder.dart | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/lib/src/widgets/embeds/default_embed_builder.dart b/lib/src/widgets/embeds/default_embed_builder.dart index d3188507..95e717ab 100644 --- a/lib/src/widgets/embeds/default_embed_builder.dart +++ b/lib/src/widgets/embeds/default_embed_builder.dart @@ -43,44 +43,7 @@ Widget defaultEmbedBuilder( } // We provide option menu only for mobile platform excluding base64 image - return GestureDetector( - onTap: () { - showDialog( - context: context, - builder: (context) => Padding( - padding: const EdgeInsets.fromLTRB(50, 0, 50, 0), - child: SimpleDialog( - shape: const RoundedRectangleBorder( - borderRadius: - BorderRadius.all(Radius.circular(10))), - children: [ - _SimpleDialogItem( - icon: Icons.save, - color: Colors.greenAccent, - text: 'Save'.i18n, - onPressed: () { - // TODO: improve this - GallerySaver.saveImage(imageUrl).then((_) => - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Saved'.i18n)))); - }, - ), - _SimpleDialogItem( - icon: Icons.zoom_in, - color: Colors.cyanAccent, - text: 'Zoom'.i18n, - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ImageTapWrapper( - imageUrl: imageUrl))); - }, - ) - ]), - )); - }, - child: image); + return _menuOptionsForReadonlyImage(context, imageUrl, image); case 'video': final videoUrl = node.value.data; if (videoUrl.contains('youtube.com') || videoUrl.contains('youtu.be')) { @@ -97,6 +60,47 @@ Widget defaultEmbedBuilder( } } +GestureDetector _menuOptionsForReadonlyImage( + BuildContext context, String imageUrl, image) { + return GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => Padding( + padding: const EdgeInsets.fromLTRB(50, 0, 50, 0), + child: SimpleDialog( + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(10))), + children: [ + _SimpleDialogItem( + icon: Icons.save, + color: Colors.greenAccent, + text: 'Save'.i18n, + onPressed: () { + // TODO: improve this + GallerySaver.saveImage(imageUrl).then((_) => + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Saved'.i18n)))); + }, + ), + _SimpleDialogItem( + icon: Icons.zoom_in, + color: Colors.cyanAccent, + text: 'Zoom'.i18n, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + ImageTapWrapper(imageUrl: imageUrl))); + }, + ) + ]), + )); + }, + child: image); +} + class _SimpleDialogItem extends StatelessWidget { const _SimpleDialogItem( {required this.icon,