requestZoneSelection function
Unsaved-changes switch guard, mirrors command_sets/registry_pane.dart's
requestSetSelection.
Implementation
Future<void> requestZoneSelection(BuildContext context, NmZoneController controller, String id) async {
if (controller.requestSelectZone(id)) return;
final l10n = NmTelecom.l10n(context);
final discard = await showDialog<bool>(
context: context,
builder: (_) => AlertDialog(
title: Text(l10n.zoneUnsavedTitle),
content: Text(l10n.zoneUnsavedBody),
actions: [
TextButton(onPressed: () => Navigator.pop(context, false), child: Text(l10n.zoneKeepEditing)),
TextButton(onPressed: () => Navigator.pop(context, true), child: Text(l10n.zoneDiscardChanges)),
],
),
);
if (discard == true) {
controller.discardAndContinue();
} else {
controller.keepEditing();
}
}