Skip to content

[go_router] Allow deep links to always push #2480

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

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion packages/go_router/lib/src/delegate.dart
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,14 @@ class GoRouterDelegate extends RouterDelegate<RouteMatchList>
/// For use by the Router architecture as part of the RouterDelegate.
@override
Future<void> setNewRoutePath(RouteMatchList configuration) {
_matches = configuration;
// Check if there is no matches yet
if (_matches.isEmpty) {
_matches = configuration;
} else if (_matches.last.fullpath != configuration.last.fullpath) {
// Add new matches only if the last match of both lists is different
_matches = RouteMatchList(
<RouteMatch>[..._matches.matches, ...configuration.matches]);
}
// Use [SynchronousFuture] so that the initial url is processed
// synchronously and remove unwanted initial animations on deep-linking
return SynchronousFuture<void>(null);
Expand Down