11import 'package:flutter/material.dart' ;
22
33import '../generated/l10n/zulip_localizations.dart' ;
4+ import 'actions.dart' ;
45
56Widget _dialogActionText (String text) {
67 return Text (
@@ -27,7 +28,8 @@ class DialogStatus {
2728 final Future <void > closed;
2829}
2930
30- /// Displays an [AlertDialog] with a dismiss button.
31+ /// Displays an [AlertDialog] with a dismiss button
32+ /// and optional "Learn more" button.
3133///
3234/// The [DialogStatus.closed] field of the return value can be used
3335/// for waiting for the dialog to be closed.
@@ -39,6 +41,7 @@ DialogStatus showErrorDialog({
3941 required BuildContext context,
4042 required String title,
4143 String ? message,
44+ Uri ? learnMoreButtonUrl,
4245}) {
4346 final zulipLocalizations = ZulipLocalizations .of (context);
4447 final future = showDialog <void >(
@@ -47,6 +50,10 @@ DialogStatus showErrorDialog({
4750 title: Text (title),
4851 content: message != null ? SingleChildScrollView (child: Text (message)) : null ,
4952 actions: [
53+ if (learnMoreButtonUrl != null )
54+ TextButton (
55+ onPressed: () => PlatformActions .launchUrl (context, learnMoreButtonUrl),
56+ child: _dialogActionText (zulipLocalizations.errorDialogLearnMore)),
5057 TextButton (
5158 onPressed: () => Navigator .pop (context),
5259 child: _dialogActionText (zulipLocalizations.errorDialogContinue)),
0 commit comments