packages icon indicating copy to clipboard operation
packages copied to clipboard

[go_router] Added `onPushRoute`; intercepts route pushes from the application host

Open sarbagyastha opened this issue 2 years ago • 0 comments

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.yaml with an appropriate new version according to the [pub versioning philosophy], or this PR is [exempt from version changes].
  • [x] I updated CHANGELOG.md to 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.

sarbagyastha avatar Mar 23 '23 06:03 sarbagyastha