Refactor code

pull/635/head
X Code 3 years ago
parent 45a9597f7f
commit a1f39564f6
  1. 80
      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 // We provide option menu only for mobile platform excluding base64 image
return GestureDetector( return _menuOptionsForReadonlyImage(context, imageUrl, image);
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);
case 'video': case 'video':
final videoUrl = node.value.data; final videoUrl = node.value.data;
if (videoUrl.contains('youtube.com') || videoUrl.contains('youtu.be')) { 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 { class _SimpleDialogItem extends StatelessWidget {
const _SimpleDialogItem( const _SimpleDialogItem(
{required this.icon, {required this.icon,

Loading…
Cancel
Save