[go_router_builder] Update to `go_router` 6 (#2977)
* :memo: Update the documentation to go_router 6
* :recycle: Update the example to use go_router 6
* :arrow_up: Upgrade go_router_builder version
diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md
index 13cb7d7..7694ed9 100644
--- a/packages/go_router_builder/CHANGELOG.md
+++ b/packages/go_router_builder/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.0.16
+
+* Update the documentation to go_router v6.0.0.
+* Bumps go_router version in example folder to v6.0.0.
+
## 1.0.15
* Avoids using deprecated DartType.element2.
diff --git a/packages/go_router_builder/README.md b/packages/go_router_builder/README.md
index 73830a3..5d1db7a 100644
--- a/packages/go_router_builder/README.md
+++ b/packages/go_router_builder/README.md
@@ -85,7 +85,7 @@
const HomeRoute();
@override
- Widget build(BuildContext context) => const HomeScreen();
+ Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
}
```
@@ -109,7 +109,7 @@
const HomeRoute();
@override
- Widget build(BuildContext context) => HomeScreen(families: familyData);
+ Widget build(BuildContext context, GoRouterState state) => HomeScreen(families: familyData);
}
@TypedGoRoute<LoginRoute>(path: '/login')
@@ -135,7 +135,7 @@
final Exception error;
@override
- Widget build(BuildContext context) => ErrorScreen(error: error);
+ Widget build(BuildContext context, GoRouterState state) => ErrorScreen(error: error);
}
```
@@ -175,7 +175,7 @@
final String? from;
@override
- Widget build(BuildContext context) => LoginScreen(from: from);
+ Widget build(BuildContext context, GoRouterState state) => LoginScreen(from: from);
}
```
@@ -190,7 +190,7 @@
final int? $extra;
@override
- Widget build(BuildContext context) => PersonScreen(personId: $extra);
+ Widget build(BuildContext context, GoRouterState state) => PersonScreen(personId: $extra);
}
```
@@ -216,7 +216,7 @@
final Sauce $extra; // special $extra parameter
@override
- Widget build(BuildContext context) => HotdogScreen(ketchup, mustard, $extra);
+ Widget build(BuildContext context, GoRouterState state) => HotdogScreen(ketchup, mustard, $extra);
}
```
@@ -245,7 +245,7 @@
class HomeRoute extends GoRouteData {
// no need to implement [build] when this [redirect] is unconditional
@override
- String? redirect() => BooksRoute().location;
+ String? redirect(BuildContext context, GoRouterState state) => BooksRoute().location;
}
```
@@ -262,7 +262,7 @@
final BookKind kind;
@override
- Widget build(BuildContext context) => BooksScreen(kind: kind);
+ Widget build(BuildContext context, GoRouterState state) => BooksScreen(kind: kind);
}
```
@@ -279,14 +279,14 @@
If you'd like to change how the page is created, e.g. to use a different page
type, pass non-default parameters when creating the page (like a custom key) or
-access the `GoRouteState` object, you can override the `buildPageWithState`
+access the `GoRouteState` object, you can override the `buildPage`
method of the base class instead of the `build` method:
```dart
class MyMaterialRouteWithKey extends GoRouteData {
static final _key = LocalKey('my-route-with-key');
@override
- MaterialPage<void> buildPageWithState(BuildContext context, GoRouterState state) =>
+ MaterialPage<void> buildPage(BuildContext context, GoRouterState state) =>
MaterialPage<void>(
key: _key,
child: MyPage(),
@@ -296,12 +296,12 @@
### Custom transitions
-Overriding the `buildPageWithState` method is also useful for custom transitions:
+Overriding the `buildPage` method is also useful for custom transitions:
```dart
class FancyRoute extends GoRouteData {
@override
- MaterialPage<void> buildPageWithState(BuildContext context, GoRouterState state) =>
+ MaterialPage<void> buildPage(BuildContext context, GoRouterState state) =>
CustomTransitionPage<void>(
key: state.pageKey,
child: FancyPage(),
diff --git a/packages/go_router_builder/example/lib/all_types.dart b/packages/go_router_builder/example/lib/all_types.dart
index 8197697..606f5d2 100644
--- a/packages/go_router_builder/example/lib/all_types.dart
+++ b/packages/go_router_builder/example/lib/all_types.dart
@@ -30,7 +30,8 @@
const AllTypesBaseRoute();
@override
- Widget build(BuildContext context) => const BasePage<void>(
+ Widget build(BuildContext context, GoRouterState state) =>
+ const BasePage<void>(
dataTitle: 'Root',
param: null,
);
@@ -46,7 +47,7 @@
final BigInt? bigIntField;
@override
- Widget build(BuildContext context) => BasePage<BigInt>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<BigInt>(
dataTitle: 'BigIntRoute',
param: requiredBigIntField,
queryParam: bigIntField,
@@ -69,7 +70,7 @@
final bool? boolField;
@override
- Widget build(BuildContext context) => BasePage<bool>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<bool>(
dataTitle: 'BoolRoute',
param: requiredBoolField,
queryParam: boolField,
@@ -92,7 +93,7 @@
final DateTime? dateTimeField;
@override
- Widget build(BuildContext context) => BasePage<DateTime>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<DateTime>(
dataTitle: 'DateTimeRoute',
param: requiredDateTimeField,
queryParam: dateTimeField,
@@ -115,7 +116,7 @@
final double? doubleField;
@override
- Widget build(BuildContext context) => BasePage<double>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<double>(
dataTitle: 'DoubleRoute',
param: requiredDoubleField,
queryParam: doubleField,
@@ -138,7 +139,7 @@
final int? intField;
@override
- Widget build(BuildContext context) => BasePage<int>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<int>(
dataTitle: 'IntRoute',
param: requiredIntField,
queryParam: intField,
@@ -161,7 +162,7 @@
final num? numField;
@override
- Widget build(BuildContext context) => BasePage<num>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<num>(
dataTitle: 'NumRoute',
param: requiredNumField,
queryParam: numField,
@@ -184,7 +185,8 @@
final PersonDetails? enumField;
@override
- Widget build(BuildContext context) => BasePage<PersonDetails>(
+ Widget build(BuildContext context, GoRouterState state) =>
+ BasePage<PersonDetails>(
dataTitle: 'EnumRoute',
param: requiredEnumField,
queryParam: enumField,
@@ -207,7 +209,8 @@
final SportDetails? enumField;
@override
- Widget build(BuildContext context) => BasePage<SportDetails>(
+ Widget build(BuildContext context, GoRouterState state) =>
+ BasePage<SportDetails>(
dataTitle: 'EnhancedEnumRoute',
param: requiredEnumField,
queryParam: enumField,
@@ -230,7 +233,7 @@
final String? stringField;
@override
- Widget build(BuildContext context) => BasePage<String>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<String>(
dataTitle: 'StringRoute',
param: requiredStringField,
queryParam: stringField,
@@ -253,7 +256,7 @@
final Uri? uriField;
@override
- Widget build(BuildContext context) => BasePage<Uri>(
+ Widget build(BuildContext context, GoRouterState state) => BasePage<Uri>(
dataTitle: 'UriRoute',
param: requiredUriField,
queryParam: uriField,
diff --git a/packages/go_router_builder/example/lib/main.dart b/packages/go_router_builder/example/lib/main.dart
index 8311655..6d24c46 100644
--- a/packages/go_router_builder/example/lib/main.dart
+++ b/packages/go_router_builder/example/lib/main.dart
@@ -83,7 +83,7 @@
const HomeRoute();
@override
- Widget build(BuildContext context) => const HomeScreen();
+ Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
}
@TypedGoRoute<LoginRoute>(
@@ -95,7 +95,8 @@
final String? fromPage;
@override
- Widget build(BuildContext context) => LoginScreen(from: fromPage);
+ Widget build(BuildContext context, GoRouterState state) =>
+ LoginScreen(from: fromPage);
}
class FamilyRoute extends GoRouteData {
@@ -104,7 +105,8 @@
final String fid;
@override
- Widget build(BuildContext context) => FamilyScreen(family: familyById(fid));
+ Widget build(BuildContext context, GoRouterState state) =>
+ FamilyScreen(family: familyById(fid));
}
class PersonRoute extends GoRouteData {
@@ -114,7 +116,7 @@
final int pid;
@override
- Widget build(BuildContext context) {
+ Widget build(BuildContext context, GoRouterState state) {
final Family family = familyById(fid);
final Person person = family.person(pid);
return PersonScreen(family: family, person: person);
@@ -130,7 +132,7 @@
final int? $extra;
@override
- Page<void> buildPageWithState(BuildContext context, GoRouterState state) {
+ Page<void> buildPage(BuildContext context, GoRouterState state) {
final Family family = familyById(fid);
final Person person = family.person(pid);
diff --git a/packages/go_router_builder/example/lib/simple_example.dart b/packages/go_router_builder/example/lib/simple_example.dart
index 9657475..6253fc6 100644
--- a/packages/go_router_builder/example/lib/simple_example.dart
+++ b/packages/go_router_builder/example/lib/simple_example.dart
@@ -36,7 +36,7 @@
const HomeRoute();
@override
- Widget build(BuildContext context) => const HomeScreen();
+ Widget build(BuildContext context, GoRouterState state) => const HomeScreen();
}
class FamilyRoute extends GoRouteData {
@@ -45,7 +45,7 @@
final String familyId;
@override
- Widget build(BuildContext context) =>
+ Widget build(BuildContext context, GoRouterState state) =>
FamilyScreen(family: familyById(familyId));
}
diff --git a/packages/go_router_builder/example/pubspec.yaml b/packages/go_router_builder/example/pubspec.yaml
index 71ec478..0b7ffcb 100644
--- a/packages/go_router_builder/example/pubspec.yaml
+++ b/packages/go_router_builder/example/pubspec.yaml
@@ -8,7 +8,7 @@
dependencies:
flutter:
sdk: flutter
- go_router: ^5.0.0
+ go_router: ^6.0.0
provider: ^6.0.0
dev_dependencies:
diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml
index 60a2c3e..6e10839 100644
--- a/packages/go_router_builder/pubspec.yaml
+++ b/packages/go_router_builder/pubspec.yaml
@@ -2,7 +2,7 @@
description: >-
A builder that supports generated strongly-typed route helpers for
package:go_router
-version: 1.0.15
+version: 1.0.16
repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22