diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index d48b58a..c1904bf 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 50; objects = { /* Begin PBXBuildFile section */ @@ -127,7 +127,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1300; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140c..3db53b6 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ context.router.push( - SinglePostRoute( - postId: posts[i].id, - ), - ), + onTileTap: () => + context.router.pushNamed('/post/${posts[i].id}'), ), ], ), diff --git a/lib/posts/single_post_page.dart b/lib/posts/single_post_page.dart index 165964d..661d821 100644 --- a/lib/posts/single_post_page.dart +++ b/lib/posts/single_post_page.dart @@ -1,4 +1,5 @@ import 'package:auto_route/annotations.dart'; +import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bottom_navigation_with_nested_routing_tutorial/data/app_data.dart'; @@ -13,6 +14,10 @@ class SinglePostPage extends StatelessWidget { Widget build(BuildContext context) { final post = Post.posts[postId - 1]; return Scaffold( + appBar: AppBar( + title: Text('Post #${post.id}'), + leading: const AutoBackButton(), + ), backgroundColor: post.color, body: Center( child: Padding( diff --git a/lib/routes/router.dart b/lib/routes/router.dart index 95ab160..7164650 100644 --- a/lib/routes/router.dart +++ b/lib/routes/router.dart @@ -19,10 +19,6 @@ import 'package:flutter_bottom_navigation_with_nested_routing_tutorial/users/use path: '', page: PostsPage, ), - AutoRoute( - path: ':postId', - page: SinglePostPage, - ) ], ), AutoRoute( @@ -35,17 +31,27 @@ import 'package:flutter_bottom_navigation_with_nested_routing_tutorial/users/use page: UsersPage, ), AutoRoute( - path: ':userId', - page: UserProfilePage, - ), + path: ':userId', + name: 'UserRouter', + page: EmptyRouterPage, + children: [ + AutoRoute(path: '', page: UserProfilePage), + AutoRoute( + path: 'posts', name: 'UserPostsRoute', page: PostsPage), + ]), ], ), AutoRoute( path: 'settings', name: 'SettingsRouter', page: SettingsPage, - ) + ), ]), + AutoRoute( + path: '/post', + name: 'PostRouter', + page: EmptyRouterPage, + children: [AutoRoute(path: ':postId', page: SinglePostPage)]) ], ) class $AppRouter {} diff --git a/lib/routes/router.gr.dart b/lib/routes/router.gr.dart index d05cc7d..7497aa8 100644 --- a/lib/routes/router.gr.dart +++ b/lib/routes/router.gr.dart @@ -1,123 +1,176 @@ +// ************************************************************************** +// AutoRouteGenerator +// ************************************************************************** + // GENERATED CODE - DO NOT MODIFY BY HAND // ************************************************************************** // AutoRouteGenerator // ************************************************************************** +// +// ignore_for_file: type=lint -import 'package:auto_route/auto_route.dart' as _i1; -import 'package:flutter/material.dart' as _i2; +import 'package:auto_route/auto_route.dart' as _i2; +import 'package:flutter/material.dart' as _i8; -import '../home_page.dart' as _i3; -import '../posts/posts_page.dart' as _i5; -import '../posts/single_post_page.dart' as _i6; -import '../settings/settings_page.dart' as _i4; -import '../users/user_profile_page.dart' as _i8; -import '../users/users_page.dart' as _i7; +import '../home_page.dart' as _i1; +import '../posts/posts_page.dart' as _i4; +import '../posts/single_post_page.dart' as _i7; +import '../settings/settings_page.dart' as _i3; +import '../users/user_profile_page.dart' as _i6; +import '../users/users_page.dart' as _i5; -class AppRouter extends _i1.RootStackRouter { - AppRouter([_i2.GlobalKey<_i2.NavigatorState>? navigatorKey]) +class AppRouter extends _i2.RootStackRouter { + AppRouter([_i8.GlobalKey<_i8.NavigatorState>? navigatorKey]) : super(navigatorKey); @override - final Map pagesMap = { - HomeRoute.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (_) { - return const _i3.HomePage(); - }), - PostsRouter.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (_) { - return const _i1.EmptyRouterPage(); - }), - UsersRouter.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (_) { - return const _i1.EmptyRouterPage(); - }), - SettingsRouter.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (_) { - return const _i4.SettingsPage(); - }), - PostsRoute.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (data) { - final args = - data.argsAs(orElse: () => const PostsRouteArgs()); - return _i5.PostsPage(key: args.key); - }), - SinglePostRoute.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (data) { - final pathParams = data.pathParams; - final args = data.argsAs( - orElse: () => - SinglePostRouteArgs(postId: pathParams.getInt('postId'))); - return _i6.SinglePostPage(key: args.key, postId: args.postId); - }), - UsersRoute.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (_) { - return const _i7.UsersPage(); - }), - UserProfileRoute.name: (routeData) => _i1.MaterialPageX( - routeData: routeData, - builder: (data) { - final pathParams = data.pathParams; - final args = data.argsAs( - orElse: () => - UserProfileRouteArgs(userId: pathParams.getInt('userId'))); - return _i8.UserProfilePage(key: args.key, userId: args.userId); - }) + final Map pagesMap = { + HomeRoute.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i1.HomePage()); + }, + PostRouter.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i2.EmptyRouterPage()); + }, + PostsRouter.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i2.EmptyRouterPage()); + }, + UsersRouter.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i2.EmptyRouterPage()); + }, + SettingsRouter.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i3.SettingsPage()); + }, + PostsRoute.name: (routeData) { + final args = routeData.argsAs( + orElse: () => const PostsRouteArgs()); + return _i2.MaterialPageX( + routeData: routeData, child: _i4.PostsPage(key: args.key)); + }, + UsersRoute.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i5.UsersPage()); + }, + UserRouter.name: (routeData) { + return _i2.MaterialPageX( + routeData: routeData, child: const _i2.EmptyRouterPage()); + }, + UserProfileRoute.name: (routeData) { + final pathParams = routeData.inheritedPathParams; + final args = routeData.argsAs( + orElse: () => + UserProfileRouteArgs(userId: pathParams.getInt('userId'))); + return _i2.MaterialPageX( + routeData: routeData, + child: _i6.UserProfilePage(key: args.key, userId: args.userId)); + }, + UserPostsRoute.name: (routeData) { + final args = routeData.argsAs( + orElse: () => const UserPostsRouteArgs()); + return _i2.MaterialPageX( + routeData: routeData, child: _i4.PostsPage(key: args.key)); + }, + SinglePostRoute.name: (routeData) { + final pathParams = routeData.inheritedPathParams; + final args = routeData.argsAs( + orElse: () => + SinglePostRouteArgs(postId: pathParams.getInt('postId'))); + return _i2.MaterialPageX( + routeData: routeData, + child: _i7.SinglePostPage(key: args.key, postId: args.postId)); + } }; @override - List<_i1.RouteConfig> get routes => [ - _i1.RouteConfig(HomeRoute.name, path: '/', children: [ - _i1.RouteConfig(PostsRouter.name, path: 'posts', children: [ - _i1.RouteConfig(PostsRoute.name, path: ''), - _i1.RouteConfig(SinglePostRoute.name, path: ':postId') - ]), - _i1.RouteConfig(UsersRouter.name, path: 'users', children: [ - _i1.RouteConfig(UsersRoute.name, path: ''), - _i1.RouteConfig(UserProfileRoute.name, path: ':userId') - ]), - _i1.RouteConfig(SettingsRouter.name, path: 'settings') + List<_i2.RouteConfig> get routes => [ + _i2.RouteConfig(HomeRoute.name, path: '/', children: [ + _i2.RouteConfig(PostsRouter.name, + path: 'posts', + parent: HomeRoute.name, + children: [ + _i2.RouteConfig(PostsRoute.name, + path: '', parent: PostsRouter.name) + ]), + _i2.RouteConfig(UsersRouter.name, + path: 'users', + parent: HomeRoute.name, + children: [ + _i2.RouteConfig(UsersRoute.name, + path: '', parent: UsersRouter.name), + _i2.RouteConfig(UserRouter.name, + path: ':userId', + parent: UsersRouter.name, + children: [ + _i2.RouteConfig(UserProfileRoute.name, + path: '', parent: UserRouter.name), + _i2.RouteConfig(UserPostsRoute.name, + path: 'posts', parent: UserRouter.name) + ]) + ]), + _i2.RouteConfig(SettingsRouter.name, + path: 'settings', parent: HomeRoute.name) + ]), + _i2.RouteConfig(PostRouter.name, path: '/post', children: [ + _i2.RouteConfig(SinglePostRoute.name, + path: ':postId', parent: PostRouter.name) ]) ]; } -class HomeRoute extends _i1.PageRouteInfo { - const HomeRoute({List<_i1.PageRouteInfo>? children}) - : super(name, path: '/', initialChildren: children); +/// generated route for +/// [_i1.HomePage] +class HomeRoute extends _i2.PageRouteInfo { + const HomeRoute({List<_i2.PageRouteInfo>? children}) + : super(HomeRoute.name, path: '/', initialChildren: children); static const String name = 'HomeRoute'; } -class PostsRouter extends _i1.PageRouteInfo { - const PostsRouter({List<_i1.PageRouteInfo>? children}) - : super(name, path: 'posts', initialChildren: children); +/// generated route for +/// [_i2.EmptyRouterPage] +class PostRouter extends _i2.PageRouteInfo { + const PostRouter({List<_i2.PageRouteInfo>? children}) + : super(PostRouter.name, path: '/post', initialChildren: children); + + static const String name = 'PostRouter'; +} + +/// generated route for +/// [_i2.EmptyRouterPage] +class PostsRouter extends _i2.PageRouteInfo { + const PostsRouter({List<_i2.PageRouteInfo>? children}) + : super(PostsRouter.name, path: 'posts', initialChildren: children); static const String name = 'PostsRouter'; } -class UsersRouter extends _i1.PageRouteInfo { - const UsersRouter({List<_i1.PageRouteInfo>? children}) - : super(name, path: 'users', initialChildren: children); +/// generated route for +/// [_i2.EmptyRouterPage] +class UsersRouter extends _i2.PageRouteInfo { + const UsersRouter({List<_i2.PageRouteInfo>? children}) + : super(UsersRouter.name, path: 'users', initialChildren: children); static const String name = 'UsersRouter'; } -class SettingsRouter extends _i1.PageRouteInfo { - const SettingsRouter() : super(name, path: 'settings'); +/// generated route for +/// [_i3.SettingsPage] +class SettingsRouter extends _i2.PageRouteInfo { + const SettingsRouter() : super(SettingsRouter.name, path: 'settings'); static const String name = 'SettingsRouter'; } -class PostsRoute extends _i1.PageRouteInfo { - PostsRoute({_i2.Key? key}) - : super(name, path: '', args: PostsRouteArgs(key: key)); +/// generated route for +/// [_i4.PostsPage] +class PostsRoute extends _i2.PageRouteInfo { + PostsRoute({_i8.Key? key}) + : super(PostsRoute.name, path: '', args: PostsRouteArgs(key: key)); static const String name = 'PostsRoute'; } @@ -125,37 +178,37 @@ class PostsRoute extends _i1.PageRouteInfo { class PostsRouteArgs { const PostsRouteArgs({this.key}); - final _i2.Key? key; -} - -class SinglePostRoute extends _i1.PageRouteInfo { - SinglePostRoute({_i2.Key? key, required int postId}) - : super(name, - path: ':postId', - args: SinglePostRouteArgs(key: key, postId: postId), - rawPathParams: {'postId': postId}); + final _i8.Key? key; - static const String name = 'SinglePostRoute'; + @override + String toString() { + return 'PostsRouteArgs{key: $key}'; + } } -class SinglePostRouteArgs { - const SinglePostRouteArgs({this.key, required this.postId}); - - final _i2.Key? key; +/// generated route for +/// [_i5.UsersPage] +class UsersRoute extends _i2.PageRouteInfo { + const UsersRoute() : super(UsersRoute.name, path: ''); - final int postId; + static const String name = 'UsersRoute'; } -class UsersRoute extends _i1.PageRouteInfo { - const UsersRoute() : super(name, path: ''); +/// generated route for +/// [_i2.EmptyRouterPage] +class UserRouter extends _i2.PageRouteInfo { + const UserRouter({List<_i2.PageRouteInfo>? children}) + : super(UserRouter.name, path: ':userId', initialChildren: children); - static const String name = 'UsersRoute'; + static const String name = 'UserRouter'; } -class UserProfileRoute extends _i1.PageRouteInfo { - UserProfileRoute({_i2.Key? key, required int userId}) - : super(name, - path: ':userId', +/// generated route for +/// [_i6.UserProfilePage] +class UserProfileRoute extends _i2.PageRouteInfo { + UserProfileRoute({_i8.Key? key, required int userId}) + : super(UserProfileRoute.name, + path: '', args: UserProfileRouteArgs(key: key, userId: userId), rawPathParams: {'userId': userId}); @@ -165,7 +218,58 @@ class UserProfileRoute extends _i1.PageRouteInfo { class UserProfileRouteArgs { const UserProfileRouteArgs({this.key, required this.userId}); - final _i2.Key? key; + final _i8.Key? key; final int userId; + + @override + String toString() { + return 'UserProfileRouteArgs{key: $key, userId: $userId}'; + } +} + +/// generated route for +/// [_i4.PostsPage] +class UserPostsRoute extends _i2.PageRouteInfo { + UserPostsRoute({_i8.Key? key}) + : super(UserPostsRoute.name, + path: 'posts', args: UserPostsRouteArgs(key: key)); + + static const String name = 'UserPostsRoute'; +} + +class UserPostsRouteArgs { + const UserPostsRouteArgs({this.key}); + + final _i8.Key? key; + + @override + String toString() { + return 'UserPostsRouteArgs{key: $key}'; + } +} + +/// generated route for +/// [_i7.SinglePostPage] +class SinglePostRoute extends _i2.PageRouteInfo { + SinglePostRoute({_i8.Key? key, required int postId}) + : super(SinglePostRoute.name, + path: ':postId', + args: SinglePostRouteArgs(key: key, postId: postId), + rawPathParams: {'postId': postId}); + + static const String name = 'SinglePostRoute'; +} + +class SinglePostRouteArgs { + const SinglePostRouteArgs({this.key, required this.postId}); + + final _i8.Key? key; + + final int postId; + + @override + String toString() { + return 'SinglePostRouteArgs{key: $key, postId: $postId}'; + } } diff --git a/lib/users/user_profile_page.dart b/lib/users/user_profile_page.dart index 3ed2c55..d27f8f0 100644 --- a/lib/users/user_profile_page.dart +++ b/lib/users/user_profile_page.dart @@ -1,4 +1,4 @@ -import 'package:auto_route/annotations.dart'; +import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bottom_navigation_with_nested_routing_tutorial/data/app_data.dart'; import 'package:flutter_bottom_navigation_with_nested_routing_tutorial/widgets.dart'; @@ -22,6 +22,7 @@ class UserProfilePage extends StatelessWidget { UserAvatar( avatarColor: Colors.white, username: 'user${user.id}', + onAvatarTap: () => context.router.pushNamed('posts'), ) ], ), diff --git a/lib/users/users_page.dart b/lib/users/users_page.dart index abd0d64..71d656e 100644 --- a/lib/users/users_page.dart +++ b/lib/users/users_page.dart @@ -18,15 +18,10 @@ class UsersPage extends StatelessWidget { UserAvatar( avatarColor: users[i].color, username: 'user${users[i].id}', - onAvatarTap: () => context.router.push( - UserProfileRoute( - userId: users[i].id, - ), - ), + onAvatarTap: () => context.router.pushNamed('${users[i].id}'), ), ], ), ); } } - diff --git a/pubspec.lock b/pubspec.lock index 7f83ecb..8b7b7fc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "25.0.0" + version: "31.0.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "2.2.0" + version: "2.8.0" args: dependency: transitive description: @@ -28,21 +28,21 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.8.2" auto_route: dependency: "direct main" description: name: auto_route url: "https://pub.dartlang.org" source: hosted - version: "2.3.2" + version: "3.2.4" auto_route_generator: dependency: "direct dev" description: name: auto_route_generator url: "https://pub.dartlang.org" source: hosted - version: "2.3.2" + version: "3.2.3" boolean_selector: dependency: transitive description: @@ -56,7 +56,7 @@ packages: name: build url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.3.0" build_config: dependency: transitive description: @@ -70,28 +70,28 @@ packages: name: build_daemon url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.1.0" build_resolvers: dependency: transitive description: name: build_resolvers url: "https://pub.dartlang.org" source: hosted - version: "2.0.4" + version: "2.0.6" build_runner: dependency: "direct dev" description: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.10" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "7.1.0" + version: "7.2.3" built_collection: dependency: transitive description: @@ -105,14 +105,14 @@ packages: name: built_value url: "https://pub.dartlang.org" source: hosted - version: "8.1.2" + version: "8.2.0" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: @@ -133,7 +133,7 @@ packages: name: cli_util url: "https://pub.dartlang.org" source: hosted - version: "0.3.3" + version: "0.3.5" clock: dependency: transitive description: @@ -169,20 +169,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.1" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.0.4" dart_style: dependency: transitive description: name: dart_style url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.1" fake_async: dependency: transitive description: @@ -234,7 +241,7 @@ packages: name: glob url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.2" graphs: dependency: transitive description: @@ -242,13 +249,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.0" http_multi_server: dependency: transitive description: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.2.0" http_parser: dependency: transitive description: @@ -269,14 +283,14 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3" + version: "0.6.4" json_annotation: dependency: transitive description: name: json_annotation url: "https://pub.dartlang.org" source: hosted - version: "4.1.0" + version: "4.4.0" lints: dependency: transitive description: @@ -290,14 +304,21 @@ packages: name: logging url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" meta: dependency: transitive description: @@ -311,7 +332,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.1" package_config: dependency: transitive description: @@ -326,13 +347,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.11.1" pool: dependency: transitive description: @@ -346,28 +360,28 @@ packages: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.1" pubspec_parse: dependency: transitive description: name: pubspec_parse url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.2.0" salomon_bottom_bar: dependency: "direct main" description: name: salomon_bottom_bar url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.3.0" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" shelf_web_socket: dependency: transitive description: @@ -386,7 +400,7 @@ packages: name: source_gen url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.2" source_span: dependency: transitive description: @@ -435,7 +449,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.8" timing: dependency: transitive description: @@ -450,20 +464,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + universal_html: + dependency: transitive + description: + name: universal_html + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + universal_io: + dependency: transitive + description: + name: universal_io + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" watcher: dependency: transitive description: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.1" web_socket_channel: dependency: transitive description: @@ -479,4 +507,4 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.16.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index cddb448..e2fa459 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,15 +1,15 @@ name: flutter_bottom_navigation_with_nested_routing_tutorial description: Flutter Bottom Navigation with Nested Routing Tutorial. publish_to: 'none' -version: 1.0.0+1 +version: 1.1.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.16.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 - auto_route: ^2.3.2 + auto_route: ^3.2.4 salomon_bottom_bar: ^3.1.0 dev_dependencies: @@ -17,7 +17,7 @@ dev_dependencies: sdk: flutter flutter_lints: ^1.0.4 - auto_route_generator: ^2.3.2 + auto_route_generator: ^3.2.3 build_runner: ^2.1.2 flutter: uses-material-design: true \ No newline at end of file