-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[go_router] Adds on exit #4699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[go_router] Adds on exit #4699
Conversation
cc @GP4cK |
/// | ||
/// If the return value is true or the future resolve to true, the route will | ||
/// exit as usual. Otherwise, the operation will abort. | ||
typedef ExitCallback = FutureOr<bool> Function(BuildContext context); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we use Future<bool>
instead? Using FutureOr<T>
is discouraged iirc.
I get the intent, but a user can always do onExit: (BuildContext context) async => false
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will like to provide a chance to handle this synchronously. Otherwise it would introduce one frame delay between navigation. Also the ship has sailed for GoRoute.redirect, so I will keep this as is.
@chunhtai Any major blockers to this being rolled out? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
77dd0fd
to
44d6694
Compare
flutter/packages@d4e2454...51e74b9 2023-09-19 [email protected] [ios_platform_images] Convert to Pigeon (flutter/packages#4945) 2023-09-19 [email protected] [go_router_builder] Generate initialLocation with StatefulShellBranchConfig (flutter/packages#4880) 2023-09-19 [email protected] Roll Flutter from b7d0e8c to 8936504 (15 revisions) (flutter/packages#4947) 2023-09-18 [email protected] [go_router] Adds on exit (flutter/packages#4699) 2023-09-18 [email protected] [go_router] Fixes RouteInformationParser that does not restore full RouteMatchList if the optionURLReflectsImperativeAPIs is set (flutter/packages#4713) 2023-09-18 [email protected] [file_selector] Fix unknown extensions on macOS (flutter/packages#4946) 2023-09-18 [email protected] [camera_avfoundation] ignore audio samples until first video sample (flutter/packages#4587) 2023-09-18 [email protected] Roll Flutter from 1b18b13 to b7d0e8c (11 revisions) (flutter/packages#4944) 2023-09-18 [email protected] [video_player] isCompleted event. (flutter/packages#4923) 2023-09-18 [email protected] [go_router] Fix an issue in the documentation that used `state.queryParameters` instead of `state.uri.queryParameters` (flutter/packages#4881) 2023-09-18 [email protected] [google_sign_in] Convert iOS to Pigeon (flutter/packages#4941) 2023-09-18 [email protected] Add dashboard link to README (flutter/packages#4902) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
flutter/packages@d4e2454...51e74b9 2023-09-19 [email protected] [ios_platform_images] Convert to Pigeon (flutter/packages#4945) 2023-09-19 [email protected] [go_router_builder] Generate initialLocation with StatefulShellBranchConfig (flutter/packages#4880) 2023-09-19 [email protected] Roll Flutter from b7d0e8c to 8936504 (15 revisions) (flutter/packages#4947) 2023-09-18 [email protected] [go_router] Adds on exit (flutter/packages#4699) 2023-09-18 [email protected] [go_router] Fixes RouteInformationParser that does not restore full RouteMatchList if the optionURLReflectsImperativeAPIs is set (flutter/packages#4713) 2023-09-18 [email protected] [file_selector] Fix unknown extensions on macOS (flutter/packages#4946) 2023-09-18 [email protected] [camera_avfoundation] ignore audio samples until first video sample (flutter/packages#4587) 2023-09-18 [email protected] Roll Flutter from 1b18b13 to b7d0e8c (11 revisions) (flutter/packages#4944) 2023-09-18 [email protected] [video_player] isCompleted event. (flutter/packages#4923) 2023-09-18 [email protected] [go_router] Fix an issue in the documentation that used `state.queryParameters` instead of `state.uri.queryParameters` (flutter/packages#4881) 2023-09-18 [email protected] [google_sign_in] Convert iOS to Pigeon (flutter/packages#4941) 2023-09-18 [email protected] Add dashboard link to README (flutter/packages#4902) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
related flutter/flutter#102408
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.