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({super.key, required this.title, this.content = '', this.icon, this.confirmButton = 'Ok', this.cancelButton = 'Abbrechen', required this.onConfirm}); void asDialog(BuildContext context) { showDialog(context: context, builder: build); } @override Widget build(BuildContext context) => 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), ), ); } }