choiceDialog static method
Exibe um diálogo de confirmação com duas opções
Parâmetros:
buildContext
: Contexto do widgettitle
: Título do diálogosubtitle
: Texto de descrição/conteúdoconfirmationText
: Texto do botão de confirmaçãocancelText
: Texto do botão de cancelamentobarrierDismissible
: Se o diálogo pode ser fechado tocando fora dele
Retorna true
se o usuário confirmou, false
caso contrário
Implementation
static Future<bool> choiceDialog({
required BuildContext buildContext,
required String title,
required String subtitle,
required String confirmationText,
required String cancelText,
bool barrierDismissible = true,
}) async {
final theme = SyncThemeProvider.current;
final result = await showDialog<bool>(
context: buildContext,
barrierDismissible: barrierDismissible,
builder: (context) => AlertDialog(
backgroundColor: theme.surface,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(theme.borderRadius),
),
title: Text(
title,
style: theme.titleStyle,
),
content: Text(
subtitle,
style: theme.bodyStyle,
),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(false),
child: Text(
cancelText,
style: theme.buttonStyle.copyWith(
color: theme.textSecondary,
),
),
),
ElevatedButton(
onPressed: () => Navigator.of(context).pop(true),
style: ElevatedButton.styleFrom(
backgroundColor: theme.error,
foregroundColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(theme.borderRadius),
),
),
child: Text(
confirmationText,
style: theme.buttonStyle,
),
),
],
),
);
return result ?? false;
}