showDeleteZoneDialog function

Future<void> showDeleteZoneDialog(
  1. BuildContext context,
  2. NmZoneController controller
)

Show delete zone dialog.

Implementation

Future<void> showDeleteZoneDialog(BuildContext context, NmZoneController controller) async {
  final zone = controller.selected;
  if (zone == null) return;
  final l10n = NmTelecom.l10n(context);
  final confirmed = await showDialog<bool>(
    context: context,
    builder: (_) => AlertDialog(
      title: Row(children: [const NmIcon(NmFugue.applicationBadgeMinus), const SizedBox(width: 8), Text(l10n.zoneDeleteConfirmTitle)]),
      content: Text(l10n.zoneDeleteConfirmBody(zone.name, zone.id, zone.defCodes.length)),
      actions: [
        TextButton(onPressed: () => Navigator.pop(context, false), child: Text(NmL10n.of(context).actionCancel)),
        FilledButton(
          style: FilledButton.styleFrom(backgroundColor: context.nm.colors.dangerText),
          onPressed: () => Navigator.pop(context, true),
          child: Text(NmL10n.of(context).actionDelete),
        ),
      ],
    ),
  );
  if (confirmed == true) controller.deleteZone(zone.id, l10n);
}