From b1ec0ad4da62a27d787e2d6149e63285c2d5ccbc Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 12 Aug 2022 15:58:37 +0800 Subject: [PATCH 01/17] :sparkles: Add `buildPageWithState` --- packages/go_router/lib/src/route_data.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/go_router/lib/src/route_data.dart b/packages/go_router/lib/src/route_data.dart index 0f9f7b50f93c..bf52002dbed2 100644 --- a/packages/go_router/lib/src/route_data.dart +++ b/packages/go_router/lib/src/route_data.dart @@ -40,6 +40,10 @@ abstract class GoRouteData { /// [Page] implementation to be used with the results of [build]. Page buildPage(BuildContext context) => const NoOpPage(); + /// A page builder for that expose the [state]. + Page buildPageWithState(BuildContext context, GoRouterState state) => + const NoOpPage(); + /// An optional redirect function for this route. /// /// Subclasses must override one of [build], [buildPage], or [redirect]. @@ -82,8 +86,14 @@ abstract class GoRouteData { Widget builder(BuildContext context, GoRouterState state) => factoryImpl(state).build(context); - Page pageBuilder(BuildContext context, GoRouterState state) => - factoryImpl(state).buildPage(context); + Page pageBuilder(BuildContext context, GoRouterState state) { + final T routeData = factoryImpl(state); + final Page page = routeData.buildPageWithState(context, state); + if (page is! NoOpPage) { + return page; + } + return routeData.buildPage(context); + } String? redirect(GoRouterState state) => factoryImpl(state).redirect(); From 1a4a22a91dce33d9928e6e100d26e058dc3371d5 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 12 Aug 2022 16:00:01 +0800 Subject: [PATCH 02/17] :arrow_up: Upgrade version number --- packages/go_router/CHANGELOG.md | 3 ++- packages/go_router/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index 471351f7a2d9..7e49bd5e7322 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 4.3.0 +- Add `buildPageWithState` to `GoRouteData`. - Cleans up examples ## 4.2.7 diff --git a/packages/go_router/pubspec.yaml b/packages/go_router/pubspec.yaml index 6f6a2dbfbdbd..5a72446104dc 100644 --- a/packages/go_router/pubspec.yaml +++ b/packages/go_router/pubspec.yaml @@ -1,7 +1,7 @@ name: go_router description: A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more -version: 4.2.7 +version: 4.3.0 repository: https://github.com/flutter/packages/tree/main/packages/go_router issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router%22 From d61584bbe7da3d922270a9bec74d008d62b57a03 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 19 Aug 2022 09:26:28 +0800 Subject: [PATCH 03/17] :wastebasket: Deprecate buildPage --- packages/go_router/lib/src/route_data.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/go_router/lib/src/route_data.dart b/packages/go_router/lib/src/route_data.dart index bf52002dbed2..877cbf6a211e 100644 --- a/packages/go_router/lib/src/route_data.dart +++ b/packages/go_router/lib/src/route_data.dart @@ -32,12 +32,14 @@ abstract class GoRouteData { /// /// Subclasses can override this function to provide a custom [Page]. /// - /// Subclasses must override one of [build], [buildPage], or [redirect]. + /// Subclasses must override one of [build], [buildPageWithState] or + /// [redirect]. /// /// Corresponds to [GoRoute.pageBuilder]. /// /// By default, returns a [Page] instance that is ignored, causing a default /// [Page] implementation to be used with the results of [build]. + @Deprecated('Use buildPageWithState instead.') Page buildPage(BuildContext context) => const NoOpPage(); /// A page builder for that expose the [state]. From b67e5f8fa369ad12631b072f325416a5881136bc Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 19 Aug 2022 09:26:56 +0800 Subject: [PATCH 04/17] :recycle: buildPageWithState uses buildPage --- packages/go_router/CHANGELOG.md | 1 + packages/go_router/lib/src/route_data.dart | 24 +++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index 1d0aeababca3..de2c45a267ef 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,6 +1,7 @@ ## 4.3.0 - Add `buildPageWithState` to `GoRouteData`. + ## 4.2.8 - Fixes namedLocation to return URIs without trailing question marks if there are no query parameters. diff --git a/packages/go_router/lib/src/route_data.dart b/packages/go_router/lib/src/route_data.dart index 877cbf6a211e..a070c4e7b337 100644 --- a/packages/go_router/lib/src/route_data.dart +++ b/packages/go_router/lib/src/route_data.dart @@ -42,9 +42,19 @@ abstract class GoRouteData { @Deprecated('Use buildPageWithState instead.') Page buildPage(BuildContext context) => const NoOpPage(); - /// A page builder for that expose the [state]. + /// A page builder for this route that expose the [state]. + /// + /// Subclasses can override this function to provide a custom [Page]. + /// + /// Subclasses must override one of [build], [buildPageWithState] or + /// [redirect]. + /// + /// Corresponds to [GoRoute.pageBuilder]. + /// + /// By default, returns a [Page] instance that is ignored, causing a default + /// [Page] implementation to be used with the results of [build]. Page buildPageWithState(BuildContext context, GoRouterState state) => - const NoOpPage(); + buildPage(context); /// An optional redirect function for this route. /// @@ -88,14 +98,8 @@ abstract class GoRouteData { Widget builder(BuildContext context, GoRouterState state) => factoryImpl(state).build(context); - Page pageBuilder(BuildContext context, GoRouterState state) { - final T routeData = factoryImpl(state); - final Page page = routeData.buildPageWithState(context, state); - if (page is! NoOpPage) { - return page; - } - return routeData.buildPage(context); - } + Page pageBuilder(BuildContext context, GoRouterState state) => + factoryImpl(state).buildPageWithState(context, state); String? redirect(GoRouterState state) => factoryImpl(state).redirect(); From 2b80b52c8295686f01ee263cf9dba1182990c387 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 19 Aug 2022 09:52:03 +0800 Subject: [PATCH 05/17] :white_check_mark: Add tests for build buildPage and buildPageWithState --- packages/go_router/test/route_data_test.dart | 103 +++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 packages/go_router/test/route_data_test.dart diff --git a/packages/go_router/test/route_data_test.dart b/packages/go_router/test/route_data_test.dart new file mode 100644 index 000000000000..c1ad567352f3 --- /dev/null +++ b/packages/go_router/test/route_data_test.dart @@ -0,0 +1,103 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:go_router/go_router.dart'; + +class _GoRouteDataBuild extends GoRouteData { + const _GoRouteDataBuild(); + @override + Widget build(BuildContext context) => const SizedBox(key: Key('build')); +} + +final GoRoute _goRouteDataBuild = GoRouteData.$route( + path: '/build', + factory: (GoRouterState state) => const _GoRouteDataBuild(), +); + +class _GoRouteDataBuildPage extends GoRouteData { + const _GoRouteDataBuildPage(); + @override + Page buildPage(BuildContext context) => const MaterialPage( + child: SizedBox(key: Key('buildPage')), + ); +} + +final GoRoute _goRouteDataBuildPage = GoRouteData.$route( + path: '/build-page', + factory: (GoRouterState state) => const _GoRouteDataBuildPage(), +); + +class _GoRouteDataBuildPageWithState extends GoRouteData { + const _GoRouteDataBuildPageWithState(); + @override + Page buildPageWithState(BuildContext context, GoRouterState state) => + const MaterialPage( + child: SizedBox(key: Key('buildPageWithState')), + ); +} + +final GoRoute _goRouteDataBuildPageWithState = GoRouteData.$route( + path: '/build-page-with-state', + factory: (GoRouterState state) => const _GoRouteDataBuildPageWithState(), +); + +final List _routes = [ + _goRouteDataBuild, + _goRouteDataBuildPage, + _goRouteDataBuildPageWithState, +]; + +void main() { + testWidgets( + 'It should build the page from the overridden build method', + (WidgetTester tester) async { + final GoRouter goRouter = GoRouter( + initialLocation: '/build', + routes: _routes, + ); + await tester.pumpWidget(MaterialApp.router( + routeInformationProvider: goRouter.routeInformationProvider, + routeInformationParser: goRouter.routeInformationParser, + routerDelegate: goRouter.routerDelegate, + )); + expect(find.byKey(const Key('build')), findsOneWidget); + expect(find.byKey(const Key('buildPage')), findsNothing); + expect(find.byKey(const Key('buildPageWithState')), findsNothing); + }, + ); + + testWidgets( + 'It should build the page from the overridden buildPage method', + (WidgetTester tester) async { + final GoRouter goRouter = GoRouter( + initialLocation: '/build-page', + routes: _routes, + ); + await tester.pumpWidget(MaterialApp.router( + routeInformationProvider: goRouter.routeInformationProvider, + routeInformationParser: goRouter.routeInformationParser, + routerDelegate: goRouter.routerDelegate, + )); + expect(find.byKey(const Key('build')), findsNothing); + expect(find.byKey(const Key('buildPage')), findsOneWidget); + expect(find.byKey(const Key('buildPageWithState')), findsNothing); + }, + ); + + testWidgets( + 'It should build the page from the overridden buildPageWithState method', + (WidgetTester tester) async { + final GoRouter goRouter = GoRouter( + initialLocation: '/build-page-with-state', + routes: _routes, + ); + await tester.pumpWidget(MaterialApp.router( + routeInformationProvider: goRouter.routeInformationProvider, + routeInformationParser: goRouter.routeInformationParser, + routerDelegate: goRouter.routerDelegate, + )); + expect(find.byKey(const Key('build')), findsNothing); + expect(find.byKey(const Key('buildPage')), findsNothing); + expect(find.byKey(const Key('buildPageWithState')), findsOneWidget); + }, + ); +} From b473d7ad5d2ae65fad56bb1bfb504375bc48844b Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 19 Aug 2022 09:54:37 +0800 Subject: [PATCH 06/17] :memo: Update the CHANGELOG --- packages/go_router/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index de2c45a267ef..7e7725c8017b 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,6 +1,7 @@ ## 4.3.0 - Add `buildPageWithState` to `GoRouteData`. +- `GoRouteData.buildPage` is now deprecated in favor of `GoRouteData.buildPageWithState`. ## 4.2.8 From ef2d9fc4e653b234f80de698f42c1050d2cf15c9 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 19 Aug 2022 11:09:19 +0800 Subject: [PATCH 07/17] :rotating_light: Add licence --- packages/go_router/test/route_data_test.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/go_router/test/route_data_test.dart b/packages/go_router/test/route_data_test.dart index c1ad567352f3..4ae12f6dfb10 100644 --- a/packages/go_router/test/route_data_test.dart +++ b/packages/go_router/test/route_data_test.dart @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:go_router/go_router.dart'; From 32b94eb988ab8bdd1d2efb6a0815cf29ab8c57f7 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 00:09:33 +0800 Subject: [PATCH 08/17] :rotating_light: Fix linter --- packages/go_router/lib/src/route_data.dart | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/go_router/lib/src/route_data.dart b/packages/go_router/lib/src/route_data.dart index a070c4e7b337..90061359b408 100644 --- a/packages/go_router/lib/src/route_data.dart +++ b/packages/go_router/lib/src/route_data.dart @@ -12,7 +12,8 @@ import 'state.dart'; /// Baseclass for supporting /// [typed routing](https://gorouter.dev/typed-routing). /// -/// Subclasses must override one of [build], [buildPage], or [redirect]. +/// Subclasses must override one of [build], [buildPageWithState], or +/// [redirect]. abstract class GoRouteData { /// Allows subclasses to have `const` constructors. /// @@ -21,7 +22,8 @@ abstract class GoRouteData { /// Creates the [Widget] for `this` route. /// - /// Subclasses must override one of [build], [buildPage], or [redirect]. + /// Subclasses must override one of [build], [buildPageWithState], or + /// [redirect]. /// /// Corresponds to [GoRoute.builder]. Widget build(BuildContext context) => throw UnimplementedError( @@ -54,11 +56,13 @@ abstract class GoRouteData { /// By default, returns a [Page] instance that is ignored, causing a default /// [Page] implementation to be used with the results of [build]. Page buildPageWithState(BuildContext context, GoRouterState state) => + // ignore: deprecated_member_use_from_same_package buildPage(context); /// An optional redirect function for this route. /// - /// Subclasses must override one of [build], [buildPage], or [redirect]. + /// Subclasses must override one of [build], [buildPageWithState], or + /// [redirect]. /// /// Corresponds to [GoRoute.redirect]. String? redirect() => null; From 12bad410d3dd36ab6172a2631b4ed3e767582803 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 20:21:03 +0800 Subject: [PATCH 09/17] :bulb: Update comments and doc --- packages/go_router/lib/src/route_data.dart | 9 ++++++--- packages/go_router_builder/README.md | 10 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/go_router/lib/src/route_data.dart b/packages/go_router/lib/src/route_data.dart index 90061359b408..36d78ce1a7ae 100644 --- a/packages/go_router/lib/src/route_data.dart +++ b/packages/go_router/lib/src/route_data.dart @@ -27,7 +27,7 @@ abstract class GoRouteData { /// /// Corresponds to [GoRoute.builder]. Widget build(BuildContext context) => throw UnimplementedError( - 'One of `build` or `buildPage` must be implemented.', + 'One of `build` or `buildPageWithState` must be implemented.', ); /// A page builder for this route. @@ -41,10 +41,13 @@ abstract class GoRouteData { /// /// By default, returns a [Page] instance that is ignored, causing a default /// [Page] implementation to be used with the results of [build]. - @Deprecated('Use buildPageWithState instead.') + @Deprecated( + 'This method has been deprecated in favor of buildPageWithState. ' + 'This feature was deprecated after v4.3.0.', + ) Page buildPage(BuildContext context) => const NoOpPage(); - /// A page builder for this route that expose the [state]. + /// A page builder for this route with [GoRouterState]. /// /// Subclasses can override this function to provide a custom [Page]. /// diff --git a/packages/go_router_builder/README.md b/packages/go_router_builder/README.md index 500ebff28e44..9c21ffaeb976 100644 --- a/packages/go_router_builder/README.md +++ b/packages/go_router_builder/README.md @@ -279,15 +279,15 @@ of the page and the `restorationId` of the page. 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 `buildPage` method of the -base class instead of the `build` method: +access the `GoRouteState` object, you can override the `buildPageWithState` +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 buildPage(BuildContext context) => + MaterialPage buildPageWithState(BuildContext context, GoRouterState state) => MaterialPage( key: _key, child: MyPage(), @@ -297,12 +297,12 @@ class MyMaterialRouteWithKey extends GoRouteData { ### Custom transitions -Overriding the `buildPage` method is also useful for custom transitions: +Overriding the `buildPageWithState` method is also useful for custom transitions: ```dart class FancyRoute extends GoRouteData { @override - MaterialPage buildPage(BuildContext context, GoRouterState state) => + MaterialPage buildPageWithState(BuildContext context, GoRouterState state) => CustomTransitionPage( key: state.pageKey, child: FancyPage(), From f89bb7ed3c9f71f76753d4e9747e6bbd78b3fe3d Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 20:21:12 +0800 Subject: [PATCH 10/17] :memo: Update example --- packages/go_router_builder/example/lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/go_router_builder/example/lib/main.dart b/packages/go_router_builder/example/lib/main.dart index 190ff9ae4fb4..1bc2657ed905 100644 --- a/packages/go_router_builder/example/lib/main.dart +++ b/packages/go_router_builder/example/lib/main.dart @@ -130,7 +130,7 @@ class PersonDetailsRoute extends GoRouteData { final int? $extra; @override - Page buildPage(BuildContext context) { + Page buildPageWithState(BuildContext context, GoRouterState state) { final Family family = familyById(fid); final Person person = family.person(pid); From d40e8b9ea5e7365bc131cb9fed4aed5cc74a5768 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 20:25:18 +0800 Subject: [PATCH 11/17] :arrow_up: Upgrade go_router_builder version --- packages/go_router_builder/CHANGELOG.md | 4 ++++ packages/go_router_builder/pubspec.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md index fe290f83bea4..8c328d5af1c6 100644 --- a/packages/go_router_builder/CHANGELOG.md +++ b/packages/go_router_builder/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.9 + +* Replaces usages and mentions of the deprecated `GoRouteData.buildPage` with `GoRouteData.buildPageWithState`. + ## 1.0.8 * Updates `analyzer` to 4.4.0. diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml index 420e0a971a0a..34026f63a644 100644 --- a/packages/go_router_builder/pubspec.yaml +++ b/packages/go_router_builder/pubspec.yaml @@ -2,7 +2,7 @@ name: go_router_builder description: >- A builder that supports generated strongly-typed route helpers for package:go_router -version: 1.0.8 +version: 1.0.9 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 @@ -11,7 +11,7 @@ environment: flutter: ">=3.0.0" dependencies: - analyzer: '>=4.4.0 <5.0.0' + analyzer: ">=4.4.0 <5.0.0" async: ^2.8.0 build: ^2.0.0 build_config: ^1.0.0 From 0b519469f46a576a00047df7e05c2d02735893b3 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 20:32:31 +0800 Subject: [PATCH 12/17] :rotating_light: Add ignore in go_router_builder example --- packages/go_router_builder/example/lib/main.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/go_router_builder/example/lib/main.dart b/packages/go_router_builder/example/lib/main.dart index 1bc2657ed905..134140814dc7 100644 --- a/packages/go_router_builder/example/lib/main.dart +++ b/packages/go_router_builder/example/lib/main.dart @@ -130,6 +130,7 @@ class PersonDetailsRoute extends GoRouteData { final int? $extra; @override + // ignore: override_on_non_overriding_member Page buildPageWithState(BuildContext context, GoRouterState state) { final Family family = familyById(fid); final Person person = family.person(pid); From d5f9c9261eee7860739ae93d44649e3596aba9e3 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Sat, 20 Aug 2022 21:18:53 +0800 Subject: [PATCH 13/17] :rewind: Continue to use buildPage in go_router_builder and ignore future lint --- packages/go_router_builder/CHANGELOG.md | 2 +- packages/go_router_builder/example/lib/main.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md index 8c328d5af1c6..19f5ab72713b 100644 --- a/packages/go_router_builder/CHANGELOG.md +++ b/packages/go_router_builder/CHANGELOG.md @@ -1,6 +1,6 @@ ## 1.0.9 -* Replaces usages and mentions of the deprecated `GoRouteData.buildPage` with `GoRouteData.buildPageWithState`. +* Replaces mentions of the deprecated `GoRouteData.buildPage` with `GoRouteData.buildPageWithState`. ## 1.0.8 diff --git a/packages/go_router_builder/example/lib/main.dart b/packages/go_router_builder/example/lib/main.dart index 134140814dc7..5a1188676b28 100644 --- a/packages/go_router_builder/example/lib/main.dart +++ b/packages/go_router_builder/example/lib/main.dart @@ -130,8 +130,8 @@ class PersonDetailsRoute extends GoRouteData { final int? $extra; @override - // ignore: override_on_non_overriding_member - Page buildPageWithState(BuildContext context, GoRouterState state) { + // ignore: deprecated_member_use_from_same_package + Page buildPage(BuildContext context) { final Family family = familyById(fid); final Person person = family.person(pid); From 8a72d8dd966fd16c26841ccc2b448e9a1476d154 Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Fri, 26 Aug 2022 09:20:54 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=F0=9F=94=80=20Fix=20merge=20conflict?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/go_router_builder/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml index 34026f63a644..e5091631fcb3 100644 --- a/packages/go_router_builder/pubspec.yaml +++ b/packages/go_router_builder/pubspec.yaml @@ -2,7 +2,7 @@ name: go_router_builder description: >- A builder that supports generated strongly-typed route helpers for package:go_router -version: 1.0.9 +version: 1.0.10 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 From 4aa91506f5f1196e0728a28ef6be91cf47b8bd3c Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Wed, 31 Aug 2022 16:41:47 +0800 Subject: [PATCH 15/17] :rewind: revert changes on go_router_builder --- packages/go_router_builder/CHANGELOG.md | 4 ---- packages/go_router_builder/README.md | 7 +++---- packages/go_router_builder/pubspec.yaml | 4 ++-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md index b04d17ce59a1..880e5f81e11a 100644 --- a/packages/go_router_builder/CHANGELOG.md +++ b/packages/go_router_builder/CHANGELOG.md @@ -1,7 +1,3 @@ -## 1.0.11 - -* Replaces mentions of the deprecated `GoRouteData.buildPage` with `GoRouteData.buildPageWithState`. - ## 1.0.10 * Adds a lint ignore for deprecated member in the example. diff --git a/packages/go_router_builder/README.md b/packages/go_router_builder/README.md index 9c21ffaeb976..94e0460ab465 100644 --- a/packages/go_router_builder/README.md +++ b/packages/go_router_builder/README.md @@ -279,15 +279,14 @@ of the page and the `restorationId` of the page. 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` -method of the base class instead of the `build` method: +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 buildPageWithState(BuildContext context, GoRouterState state) => + MaterialPage buildPage(BuildContext context) => MaterialPage( key: _key, child: MyPage(), diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml index 508dfaa8a54c..902bf07385f6 100644 --- a/packages/go_router_builder/pubspec.yaml +++ b/packages/go_router_builder/pubspec.yaml @@ -2,7 +2,7 @@ name: go_router_builder description: >- A builder that supports generated strongly-typed route helpers for package:go_router -version: 1.0.11 +version: 1.0.10 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 @@ -11,7 +11,7 @@ environment: flutter: ">=3.0.0" dependencies: - analyzer: ">=4.4.0 <5.0.0" + analyzer: '>=4.4.0 <5.0.0' async: ^2.8.0 build: ^2.0.0 build_config: ^1.0.0 From 66b94dfdc11d7eddffaba6a596db6358f70a415c Mon Sep 17 00:00:00 2001 From: ValentinVignal Date: Wed, 31 Aug 2022 16:43:19 +0800 Subject: [PATCH 16/17] :rewind: revert changes on go_router_builder --- packages/go_router_builder/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/go_router_builder/README.md b/packages/go_router_builder/README.md index 94e0460ab465..500ebff28e44 100644 --- a/packages/go_router_builder/README.md +++ b/packages/go_router_builder/README.md @@ -285,6 +285,7 @@ base class instead of the `build` method: ```dart class MyMaterialRouteWithKey extends GoRouteData { static final _key = LocalKey('my-route-with-key'); + @override MaterialPage buildPage(BuildContext context) => MaterialPage( @@ -296,12 +297,12 @@ class MyMaterialRouteWithKey extends GoRouteData { ### 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 buildPageWithState(BuildContext context, GoRouterState state) => + MaterialPage buildPage(BuildContext context, GoRouterState state) => CustomTransitionPage( key: state.pageKey, child: FancyPage(), From 732927ec042b46a6d7704d6066a49359c941d01b Mon Sep 17 00:00:00 2001 From: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com> Date: Fri, 2 Sep 2022 01:56:02 +0700 Subject: [PATCH 17/17] Update packages/go_router/CHANGELOG.md Co-authored-by: chunhtai <47866232+chunhtai@users.noreply.github.com> --- packages/go_router/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/go_router/CHANGELOG.md b/packages/go_router/CHANGELOG.md index aa27003c979c..ef1978e05276 100644 --- a/packages/go_router/CHANGELOG.md +++ b/packages/go_router/CHANGELOG.md @@ -1,6 +1,6 @@ ## 4.4.0 -- Add `buildPageWithState` to `GoRouteData`. +- Adds `buildPageWithState` to `GoRouteData`. - `GoRouteData.buildPage` is now deprecated in favor of `GoRouteData.buildPageWithState`. ## 4.3.0