Fixed cancelling new component

This commit is contained in:
Kenneth Bruen 2022-06-01 18:22:36 +03:00
parent c8b5168413
commit 65e7d5f122
Signed by: kbruen
GPG key ID: C1980A470C3EE5B1

View file

@ -33,35 +33,40 @@ class EditComponentPage extends HookWidget {
return WillPopScope(
onWillPop: () async {
if (!dirty && !newComponent) {
return true;
Navigator.of(context).pop(true);
} else if (!dirty && anySave.value) {
return true;
}
final dialogResult = await showDialog(
context: context,
builder: (context) {
return AlertDialog(
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: const Text('Cancel'),
),
ElevatedButton(
onPressed: () {
Navigator.of(context).pop(true);
},
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.red),
Navigator.of(context).pop(true);
} else {
final dialogResult = await showDialog(
context: context,
builder: (context) {
return AlertDialog(
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: const Text('Cancel'),
),
child: const Text('Discard'),
),
],
title: Text('Cancel ${newComponent ? 'Creation' : 'Editing'}'),
content: Text(newComponent ? 'A new component will not be created.' : 'Are you sure you want to discard the changes?'),
);
ElevatedButton(
onPressed: () {
Navigator.of(context).pop(true);
},
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.red),
),
child: const Text('Discard'),
),
],
title: Text('Cancel ${newComponent ? 'Creation' : 'Editing'}'),
content: Text(newComponent ? 'A new component will not be created.' : 'Are you sure you want to discard the changes?'),
);
}
);
if (dialogResult == true) {
// ignore: use_build_context_synchronously
Navigator.of(context).pop(!newComponent);
}
);
return dialogResult == true;
}
return false;
},
child: Scaffold(
appBar: AppBar(