diff --git a/animations/lib/main.dart b/animations/lib/main.dart index 31d4afea6..af5f44e36 100644 --- a/animations/lib/main.dart +++ b/animations/lib/main.dart @@ -6,6 +6,8 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; + // ignore: depend_on_referenced_packages import 'package:window_size/window_size.dart'; @@ -147,29 +149,38 @@ final miscDemos = [ builder: (context) => const CurvedAnimationDemo()), ]; -final basicDemoRoutes = - Map.fromEntries(basicDemos.map((d) => MapEntry(d.route, d.builder))); - -final miscDemoRoutes = - Map.fromEntries(miscDemos.map((d) => MapEntry(d.route, d.builder))); - -final allRoutes = { - ...basicDemoRoutes, - ...miscDemoRoutes, -}; +final router = GoRouter( + routes: [ + GoRoute( + path: '/', + builder: (context, state) => const HomePage(), + routes: [ + for (final demo in basicDemos) + GoRoute( + path: demo.route, + builder: (context, state) => demo.builder(context), + ), + for (final demo in miscDemos) + GoRoute( + path: demo.route, + builder: (context, state) => demo.builder(context), + ), + ], + ), + ], +); class AnimationSamples extends StatelessWidget { const AnimationSamples({super.key}); @override Widget build(BuildContext context) { - return MaterialApp( + return MaterialApp.router( title: 'Animation Samples', theme: ThemeData( primarySwatch: Colors.deepPurple, ), - routes: allRoutes, - home: const HomePage(), + routerConfig: router, ); } } @@ -206,7 +217,7 @@ class DemoTile extends StatelessWidget { return ListTile( title: Text(demo.name), onTap: () { - Navigator.pushNamed(context, demo.route); + context.go('/${demo.route}'); }, ); } diff --git a/animations/lib/src/basics/01_animated_container.dart b/animations/lib/src/basics/01_animated_container.dart index f521de7c6..ff226f2de 100644 --- a/animations/lib/src/basics/01_animated_container.dart +++ b/animations/lib/src/basics/01_animated_container.dart @@ -12,7 +12,7 @@ Color generateColor() => Color(0xFFFFFFFF & Random().nextInt(0xFFFFFFFF)); class AnimatedContainerDemo extends StatefulWidget { const AnimatedContainerDemo({super.key}); - static String routeName = '/basics/01_animated_container'; + static String routeName = 'basics/01_animated_container'; @override State createState() => _AnimatedContainerDemoState(); diff --git a/animations/lib/src/basics/02_page_route_builder.dart b/animations/lib/src/basics/02_page_route_builder.dart index f37f665d3..8033bc751 100644 --- a/animations/lib/src/basics/02_page_route_builder.dart +++ b/animations/lib/src/basics/02_page_route_builder.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class PageRouteBuilderDemo extends StatelessWidget { const PageRouteBuilderDemo({super.key}); - static const String routeName = '/basics/page_route_builder'; + static const String routeName = 'basics/page_route_builder'; @override Widget build(BuildContext context) { diff --git a/animations/lib/src/basics/03_animation_controller.dart b/animations/lib/src/basics/03_animation_controller.dart index 186fa5c8f..465bb0634 100644 --- a/animations/lib/src/basics/03_animation_controller.dart +++ b/animations/lib/src/basics/03_animation_controller.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class AnimationControllerDemo extends StatefulWidget { const AnimationControllerDemo({super.key}); - static const String routeName = '/basics/animation_controller'; + static const String routeName = 'basics/animation_controller'; @override State createState() => diff --git a/animations/lib/src/basics/04_tweens.dart b/animations/lib/src/basics/04_tweens.dart index 455fcb517..a9648bc12 100644 --- a/animations/lib/src/basics/04_tweens.dart +++ b/animations/lib/src/basics/04_tweens.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class TweenDemo extends StatefulWidget { const TweenDemo({super.key}); - static const String routeName = '/basics/tweens'; + static const String routeName = 'basics/tweens'; @override State createState() => _TweenDemoState(); diff --git a/animations/lib/src/basics/05_animated_builder.dart b/animations/lib/src/basics/05_animated_builder.dart index 9164098b0..494c6470e 100644 --- a/animations/lib/src/basics/05_animated_builder.dart +++ b/animations/lib/src/basics/05_animated_builder.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class AnimatedBuilderDemo extends StatefulWidget { const AnimatedBuilderDemo({super.key}); - static const String routeName = '/basics/animated_builder'; + static const String routeName = 'basics/animated_builder'; @override State createState() => _AnimatedBuilderDemoState(); diff --git a/animations/lib/src/basics/06_custom_tween.dart b/animations/lib/src/basics/06_custom_tween.dart index 406a670e2..7de726c6e 100644 --- a/animations/lib/src/basics/06_custom_tween.dart +++ b/animations/lib/src/basics/06_custom_tween.dart @@ -17,7 +17,7 @@ class TypewriterTween extends Tween { class CustomTweenDemo extends StatefulWidget { const CustomTweenDemo({super.key}); - static const String routeName = '/basics/custom_tweens'; + static const String routeName = 'basics/custom_tweens'; @override State createState() => _CustomTweenDemoState(); diff --git a/animations/lib/src/basics/07_tween_sequence.dart b/animations/lib/src/basics/07_tween_sequence.dart index de50fd3f8..a494fb3dc 100644 --- a/animations/lib/src/basics/07_tween_sequence.dart +++ b/animations/lib/src/basics/07_tween_sequence.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class TweenSequenceDemo extends StatefulWidget { const TweenSequenceDemo({super.key}); - static const String routeName = '/basics/chaining_tweens'; + static const String routeName = 'basics/chaining_tweens'; @override State createState() => _TweenSequenceDemoState(); diff --git a/animations/lib/src/basics/08_fade_transition.dart b/animations/lib/src/basics/08_fade_transition.dart index d95dfad3e..a10f70a78 100644 --- a/animations/lib/src/basics/08_fade_transition.dart +++ b/animations/lib/src/basics/08_fade_transition.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; // for examples of other common animated widgets. class FadeTransitionDemo extends StatefulWidget { const FadeTransitionDemo({super.key}); - static const String routeName = '/basics/fade_transition'; + static const String routeName = 'basics/fade_transition'; @override State createState() => _FadeTransitionDemoState(); diff --git a/animations/lib/src/misc/animated_list.dart b/animations/lib/src/misc/animated_list.dart index 4a233ca91..9e9167dd8 100644 --- a/animations/lib/src/misc/animated_list.dart +++ b/animations/lib/src/misc/animated_list.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class AnimatedListDemo extends StatefulWidget { const AnimatedListDemo({super.key}); - static String routeName = '/misc/animated_list'; + static String routeName = 'misc/animated_list'; @override State createState() => _AnimatedListDemoState(); diff --git a/animations/lib/src/misc/animated_positioned.dart b/animations/lib/src/misc/animated_positioned.dart index 4f307c579..a948b460d 100644 --- a/animations/lib/src/misc/animated_positioned.dart +++ b/animations/lib/src/misc/animated_positioned.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; class AnimatedPositionedDemo extends StatefulWidget { const AnimatedPositionedDemo({super.key}); - static String routeName = '/basics/09_animated_positioned'; + static String routeName = 'misc/animated_positioned'; @override State createState() => _AnimatedPositionedDemoState(); diff --git a/animations/lib/src/misc/animated_switcher.dart b/animations/lib/src/misc/animated_switcher.dart index 5dc1cafb2..35880fb21 100644 --- a/animations/lib/src/misc/animated_switcher.dart +++ b/animations/lib/src/misc/animated_switcher.dart @@ -24,7 +24,7 @@ Widget generateContainer(int keyCount) => Container( class AnimatedSwitcherDemo extends StatefulWidget { const AnimatedSwitcherDemo({super.key}); - static String routeName = '/basics/10_animated_switcher'; + static String routeName = 'misc/animated_switcher'; @override State createState() => _AnimatedSwitcherDemoState(); diff --git a/animations/lib/src/misc/card_swipe.dart b/animations/lib/src/misc/card_swipe.dart index 2bd38d433..3fc74ec45 100644 --- a/animations/lib/src/misc/card_swipe.dart +++ b/animations/lib/src/misc/card_swipe.dart @@ -7,7 +7,7 @@ import 'package:flutter/physics.dart'; class CardSwipeDemo extends StatefulWidget { const CardSwipeDemo({super.key}); - static String routeName = '/misc/card_swipe'; + static String routeName = 'misc/card_swipe'; @override State createState() => _CardSwipeDemoState(); diff --git a/animations/lib/src/misc/carousel.dart b/animations/lib/src/misc/carousel.dart index 6817d21b1..37c0bc865 100644 --- a/animations/lib/src/misc/carousel.dart +++ b/animations/lib/src/misc/carousel.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; class CarouselDemo extends StatelessWidget { CarouselDemo({super.key}); - static String routeName = '/misc/carousel'; + static String routeName = 'misc/carousel'; static const List fileNames = [ 'assets/eat_cape_town_sm.jpg', diff --git a/animations/lib/src/misc/curved_animation.dart b/animations/lib/src/misc/curved_animation.dart index 67ed01318..a3debe90c 100644 --- a/animations/lib/src/misc/curved_animation.dart +++ b/animations/lib/src/misc/curved_animation.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; class CurvedAnimationDemo extends StatefulWidget { const CurvedAnimationDemo({super.key}); - static const String routeName = '/misc/curved_animation'; + static const String routeName = 'misc/curved_animation'; @override State createState() => _CurvedAnimationDemoState(); diff --git a/animations/lib/src/misc/expand_card.dart b/animations/lib/src/misc/expand_card.dart index 5e6ca099b..0029ee597 100644 --- a/animations/lib/src/misc/expand_card.dart +++ b/animations/lib/src/misc/expand_card.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class ExpandCardDemo extends StatelessWidget { const ExpandCardDemo({super.key}); - static const String routeName = '/misc/expand_card'; + static const String routeName = 'misc/expand_card'; @override Widget build(BuildContext context) { diff --git a/animations/lib/src/misc/focus_image.dart b/animations/lib/src/misc/focus_image.dart index 01e12fc10..665713a82 100644 --- a/animations/lib/src/misc/focus_image.dart +++ b/animations/lib/src/misc/focus_image.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class FocusImageDemo extends StatelessWidget { const FocusImageDemo({super.key}); - static String routeName = '/misc/focus_image'; + static String routeName = 'misc/focus_image'; @override Widget build(BuildContext context) { diff --git a/animations/lib/src/misc/hero_animation.dart b/animations/lib/src/misc/hero_animation.dart index 965f7cd31..dbceeed2f 100644 --- a/animations/lib/src/misc/hero_animation.dart +++ b/animations/lib/src/misc/hero_animation.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class HeroAnimationDemo extends StatelessWidget { const HeroAnimationDemo({super.key}); - static const String routeName = '/misc/hero_animation'; + static const String routeName = 'misc/hero_animation'; @override Widget build(BuildContext context) { diff --git a/animations/lib/src/misc/physics_card_drag.dart b/animations/lib/src/misc/physics_card_drag.dart index 538376ac3..5fe3a09cc 100644 --- a/animations/lib/src/misc/physics_card_drag.dart +++ b/animations/lib/src/misc/physics_card_drag.dart @@ -7,7 +7,7 @@ import 'package:flutter/physics.dart'; class PhysicsCardDragDemo extends StatelessWidget { const PhysicsCardDragDemo({super.key}); - static const String routeName = '/misc/physics_card'; + static const String routeName = 'misc/physics_card'; @override Widget build(BuildContext context) { diff --git a/animations/lib/src/misc/repeating_animation.dart b/animations/lib/src/misc/repeating_animation.dart index a9abcb2a9..404317a9a 100644 --- a/animations/lib/src/misc/repeating_animation.dart +++ b/animations/lib/src/misc/repeating_animation.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; class RepeatingAnimationDemo extends StatefulWidget { const RepeatingAnimationDemo({super.key}); - static String routeName = '/misc/repeating_animation'; + static String routeName = 'misc/repeating_animation'; @override State createState() => _RepeatingAnimationDemoState(); diff --git a/animations/pubspec.yaml b/animations/pubspec.yaml index 4f1330bd0..2da5ca920 100644 --- a/animations/pubspec.yaml +++ b/animations/pubspec.yaml @@ -10,6 +10,7 @@ dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 + go_router: ^5.2.3 dev_dependencies: flutter_test: