Skip to content

Commit

Permalink
WillScope() with PopScope()
Browse files Browse the repository at this point in the history
  • Loading branch information
its-me-abhishek committed Dec 15, 2023
1 parent 3f60680 commit 5c22983
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
"editor.detectIndentation": false,
"editor.tabSize": 4,
"editor.codeActionsOnSave": {
"source.fixAll": true
"source.fixAll": "explicit"
}
}
85 changes: 43 additions & 42 deletions lib/services/task_details.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,49 @@ class _DetailRouteState extends State<DetailRoute> {

@override
Widget build(BuildContext context) {
return WillPopScope(
return PopScope(
canPop: false,
onPopInvoked: (bool didPop) async {
if (didPop) {
await Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => const HomePage()),
(Route<dynamic> route) => false);
}
// ignore: use_build_context_synchronously
return await showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: const Text('Do you want to save changes?'),
actions: [
TextButton(
onPressed: () {
saveChanges();
Navigator.of(context).pop();
setState(() {});
},
child: const Text('Yes'),
),
TextButton(
onPressed: () {
Navigator.of(context).pushNamedAndRemoveUntil(
HomePage.routeName,
(route) => false,
);
},
child: const Text('No'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text('Cancel'),
),
],
);
},
);
},
child: Scaffold(
backgroundColor: AppSettings.isDarkMode
? const Color.fromARGB(255, 29, 29, 29)
Expand Down Expand Up @@ -148,47 +190,6 @@ class _DetailRouteState extends State<DetailRoute> {
child: const Icon(Icons.save),
),
),
onWillPop: () async {
if (modify.changes.isNotEmpty) {
return await showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: const Text('Do you want to save changes?'),
actions: [
TextButton(
onPressed: () {
saveChanges();
Navigator.of(context).pop();
setState(() {});
},
child: const Text('Yes'),
),
TextButton(
onPressed: () {
Navigator.of(context).pushNamedAndRemoveUntil(
HomePage.routeName,
(route) => false,
);
},
child: const Text('No'),
),
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text('Cancel'),
),
],
);
},
);
} else {
return await Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => const HomePage()),
(Route<dynamic> route) => false);
}
},
);
}
}
Expand Down
26 changes: 13 additions & 13 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.17.2"
version: "1.18.0"
connectivity_plus:
dependency: "direct main"
description:
Expand Down Expand Up @@ -636,10 +636,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
mime:
dependency: transitive
description:
Expand Down Expand Up @@ -977,18 +977,18 @@ packages:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
stream_transform:
dependency: transitive
description:
Expand Down Expand Up @@ -1041,10 +1041,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.6.1"
timezone:
dependency: "direct main"
description:
Expand Down Expand Up @@ -1209,10 +1209,10 @@ packages:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
version: "0.3.0"
web_socket_channel:
dependency: transitive
description:
Expand Down Expand Up @@ -1254,5 +1254,5 @@ packages:
source: hosted
version: "3.1.1"
sdks:
dart: ">=3.1.0 <4.0.0"
dart: ">=3.2.0-194.0.dev <4.0.0"
flutter: ">=3.13.0"

0 comments on commit 5c22983

Please sign in to comment.