import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; class ConfirmDialog extends StatelessWidget { final String title; final String content; final IconData? icon; final String confirmButton; final String cancelButton; final void Function() onConfirm; const ConfirmDialog({Key? key, required this.title, this.content = "", this.icon, this.confirmButton = "Ok", this.cancelButton = "Abbrechen", required this.onConfirm}) : super(key: key); void asDialog(BuildContext context) { showDialog(context: context, builder: (context) => build(context)); } @override Widget build(BuildContext context) { return AlertDialog( icon: icon != null ? Icon(icon) : null, title: Text(title), content: Text(content), actions: [ TextButton(onPressed: () { Navigator.of(context).pop(); }, child: Text(cancelButton)), TextButton(onPressed: () { Navigator.of(context).pop(); onConfirm(); }, child: Text(confirmButton)), ], ); } static void openBrowser(BuildContext context, String url) { showDialog( context: context, builder: (context) => ConfirmDialog( title: "Link öffnen", content: "Möchtest du den folgenden Link öffnen?\n$url", confirmButton: "Öffnen", onConfirm: () => launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication), ), ); } }