packages
packages copied to clipboard
[go_router] Added `onPushRoute`; intercepts route pushes from the application host
Adds onPushRoute to the GoRouter.
GoRouter(
...
onPushRoute: (RouteInformation routeInformation) {
final location = routeInformation.location;
if(location == '/prevent') return PushRouteDecision.prevent; // intercepts the route completely
if(location == '/delegate') return PushRouteDecision.delegate; // delegates the route to other binding observers to handle
return PushRouteDecision.navigate; // default; the router handles the route
}
)
Fixes https://github.com/flutter/flutter/issues/103659 Fixes https://github.com/flutter/flutter/issues/121870
Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [x] I read and followed the [relevant style guides] and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use
dart format.) - [x] I signed the [CLA].
- [x] The title of the PR starts with the name of the package surrounded by square brackets, e.g.
[shared_preferences] - [x] I listed at least one issue that this PR fixes in the description above.
- [x] I updated
pubspec.yamlwith an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes]. - [x] I updated
CHANGELOG.mdto add a description of the change, [following repository CHANGELOG style]. - [x] I updated/added relevant documentation (doc comments with
///). - [x] I added new tests to check the change I am making, or this PR is [test-exempt].
- [x] All existing and new tests are passing.