Migrate animations to go_router (#1521)

pull/1524/head
Miguel Beltran 3 years ago committed by GitHub
parent 69fa2c51a2
commit 4ef8daffb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -6,6 +6,8 @@ import 'dart:io';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
// ignore: depend_on_referenced_packages // ignore: depend_on_referenced_packages
import 'package:window_size/window_size.dart'; import 'package:window_size/window_size.dart';
@ -147,29 +149,38 @@ final miscDemos = [
builder: (context) => const CurvedAnimationDemo()), builder: (context) => const CurvedAnimationDemo()),
]; ];
final basicDemoRoutes = final router = GoRouter(
Map.fromEntries(basicDemos.map((d) => MapEntry(d.route, d.builder))); routes: [
GoRoute(
final miscDemoRoutes = path: '/',
Map.fromEntries(miscDemos.map((d) => MapEntry(d.route, d.builder))); builder: (context, state) => const HomePage(),
routes: [
final allRoutes = <String, WidgetBuilder>{ for (final demo in basicDemos)
...basicDemoRoutes, GoRoute(
...miscDemoRoutes, 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 { class AnimationSamples extends StatelessWidget {
const AnimationSamples({super.key}); const AnimationSamples({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp.router(
title: 'Animation Samples', title: 'Animation Samples',
theme: ThemeData( theme: ThemeData(
primarySwatch: Colors.deepPurple, primarySwatch: Colors.deepPurple,
), ),
routes: allRoutes, routerConfig: router,
home: const HomePage(),
); );
} }
} }
@ -206,7 +217,7 @@ class DemoTile extends StatelessWidget {
return ListTile( return ListTile(
title: Text(demo.name), title: Text(demo.name),
onTap: () { onTap: () {
Navigator.pushNamed(context, demo.route); context.go('/${demo.route}');
}, },
); );
} }

@ -12,7 +12,7 @@ Color generateColor() => Color(0xFFFFFFFF & Random().nextInt(0xFFFFFFFF));
class AnimatedContainerDemo extends StatefulWidget { class AnimatedContainerDemo extends StatefulWidget {
const AnimatedContainerDemo({super.key}); const AnimatedContainerDemo({super.key});
static String routeName = '/basics/01_animated_container'; static String routeName = 'basics/01_animated_container';
@override @override
State<AnimatedContainerDemo> createState() => _AnimatedContainerDemoState(); State<AnimatedContainerDemo> createState() => _AnimatedContainerDemoState();

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class PageRouteBuilderDemo extends StatelessWidget { class PageRouteBuilderDemo extends StatelessWidget {
const PageRouteBuilderDemo({super.key}); const PageRouteBuilderDemo({super.key});
static const String routeName = '/basics/page_route_builder'; static const String routeName = 'basics/page_route_builder';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class AnimationControllerDemo extends StatefulWidget { class AnimationControllerDemo extends StatefulWidget {
const AnimationControllerDemo({super.key}); const AnimationControllerDemo({super.key});
static const String routeName = '/basics/animation_controller'; static const String routeName = 'basics/animation_controller';
@override @override
State<AnimationControllerDemo> createState() => State<AnimationControllerDemo> createState() =>

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class TweenDemo extends StatefulWidget { class TweenDemo extends StatefulWidget {
const TweenDemo({super.key}); const TweenDemo({super.key});
static const String routeName = '/basics/tweens'; static const String routeName = 'basics/tweens';
@override @override
State<TweenDemo> createState() => _TweenDemoState(); State<TweenDemo> createState() => _TweenDemoState();

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class AnimatedBuilderDemo extends StatefulWidget { class AnimatedBuilderDemo extends StatefulWidget {
const AnimatedBuilderDemo({super.key}); const AnimatedBuilderDemo({super.key});
static const String routeName = '/basics/animated_builder'; static const String routeName = 'basics/animated_builder';
@override @override
State<AnimatedBuilderDemo> createState() => _AnimatedBuilderDemoState(); State<AnimatedBuilderDemo> createState() => _AnimatedBuilderDemoState();

@ -17,7 +17,7 @@ class TypewriterTween extends Tween<String> {
class CustomTweenDemo extends StatefulWidget { class CustomTweenDemo extends StatefulWidget {
const CustomTweenDemo({super.key}); const CustomTweenDemo({super.key});
static const String routeName = '/basics/custom_tweens'; static const String routeName = 'basics/custom_tweens';
@override @override
State<CustomTweenDemo> createState() => _CustomTweenDemoState(); State<CustomTweenDemo> createState() => _CustomTweenDemoState();

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class TweenSequenceDemo extends StatefulWidget { class TweenSequenceDemo extends StatefulWidget {
const TweenSequenceDemo({super.key}); const TweenSequenceDemo({super.key});
static const String routeName = '/basics/chaining_tweens'; static const String routeName = 'basics/chaining_tweens';
@override @override
State<TweenSequenceDemo> createState() => _TweenSequenceDemoState(); State<TweenSequenceDemo> createState() => _TweenSequenceDemoState();

@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
// for examples of other common animated widgets. // for examples of other common animated widgets.
class FadeTransitionDemo extends StatefulWidget { class FadeTransitionDemo extends StatefulWidget {
const FadeTransitionDemo({super.key}); const FadeTransitionDemo({super.key});
static const String routeName = '/basics/fade_transition'; static const String routeName = 'basics/fade_transition';
@override @override
State<FadeTransitionDemo> createState() => _FadeTransitionDemoState(); State<FadeTransitionDemo> createState() => _FadeTransitionDemoState();

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class AnimatedListDemo extends StatefulWidget { class AnimatedListDemo extends StatefulWidget {
const AnimatedListDemo({super.key}); const AnimatedListDemo({super.key});
static String routeName = '/misc/animated_list'; static String routeName = 'misc/animated_list';
@override @override
State<AnimatedListDemo> createState() => _AnimatedListDemoState(); State<AnimatedListDemo> createState() => _AnimatedListDemoState();

@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
class AnimatedPositionedDemo extends StatefulWidget { class AnimatedPositionedDemo extends StatefulWidget {
const AnimatedPositionedDemo({super.key}); const AnimatedPositionedDemo({super.key});
static String routeName = '/basics/09_animated_positioned'; static String routeName = 'misc/animated_positioned';
@override @override
State<AnimatedPositionedDemo> createState() => _AnimatedPositionedDemoState(); State<AnimatedPositionedDemo> createState() => _AnimatedPositionedDemoState();

@ -24,7 +24,7 @@ Widget generateContainer(int keyCount) => Container(
class AnimatedSwitcherDemo extends StatefulWidget { class AnimatedSwitcherDemo extends StatefulWidget {
const AnimatedSwitcherDemo({super.key}); const AnimatedSwitcherDemo({super.key});
static String routeName = '/basics/10_animated_switcher'; static String routeName = 'misc/animated_switcher';
@override @override
State<AnimatedSwitcherDemo> createState() => _AnimatedSwitcherDemoState(); State<AnimatedSwitcherDemo> createState() => _AnimatedSwitcherDemoState();

@ -7,7 +7,7 @@ import 'package:flutter/physics.dart';
class CardSwipeDemo extends StatefulWidget { class CardSwipeDemo extends StatefulWidget {
const CardSwipeDemo({super.key}); const CardSwipeDemo({super.key});
static String routeName = '/misc/card_swipe'; static String routeName = 'misc/card_swipe';
@override @override
State<CardSwipeDemo> createState() => _CardSwipeDemoState(); State<CardSwipeDemo> createState() => _CardSwipeDemoState();

@ -7,7 +7,7 @@ import 'package:flutter/material.dart';
class CarouselDemo extends StatelessWidget { class CarouselDemo extends StatelessWidget {
CarouselDemo({super.key}); CarouselDemo({super.key});
static String routeName = '/misc/carousel'; static String routeName = 'misc/carousel';
static const List<String> fileNames = [ static const List<String> fileNames = [
'assets/eat_cape_town_sm.jpg', 'assets/eat_cape_town_sm.jpg',

@ -7,7 +7,7 @@ import 'package:flutter/material.dart';
class CurvedAnimationDemo extends StatefulWidget { class CurvedAnimationDemo extends StatefulWidget {
const CurvedAnimationDemo({super.key}); const CurvedAnimationDemo({super.key});
static const String routeName = '/misc/curved_animation'; static const String routeName = 'misc/curved_animation';
@override @override
State<CurvedAnimationDemo> createState() => _CurvedAnimationDemoState(); State<CurvedAnimationDemo> createState() => _CurvedAnimationDemoState();

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class ExpandCardDemo extends StatelessWidget { class ExpandCardDemo extends StatelessWidget {
const ExpandCardDemo({super.key}); const ExpandCardDemo({super.key});
static const String routeName = '/misc/expand_card'; static const String routeName = 'misc/expand_card';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class FocusImageDemo extends StatelessWidget { class FocusImageDemo extends StatelessWidget {
const FocusImageDemo({super.key}); const FocusImageDemo({super.key});
static String routeName = '/misc/focus_image'; static String routeName = 'misc/focus_image';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class HeroAnimationDemo extends StatelessWidget { class HeroAnimationDemo extends StatelessWidget {
const HeroAnimationDemo({super.key}); const HeroAnimationDemo({super.key});
static const String routeName = '/misc/hero_animation'; static const String routeName = 'misc/hero_animation';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -7,7 +7,7 @@ import 'package:flutter/physics.dart';
class PhysicsCardDragDemo extends StatelessWidget { class PhysicsCardDragDemo extends StatelessWidget {
const PhysicsCardDragDemo({super.key}); const PhysicsCardDragDemo({super.key});
static const String routeName = '/misc/physics_card'; static const String routeName = 'misc/physics_card';
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
class RepeatingAnimationDemo extends StatefulWidget { class RepeatingAnimationDemo extends StatefulWidget {
const RepeatingAnimationDemo({super.key}); const RepeatingAnimationDemo({super.key});
static String routeName = '/misc/repeating_animation'; static String routeName = 'misc/repeating_animation';
@override @override
State<RepeatingAnimationDemo> createState() => _RepeatingAnimationDemoState(); State<RepeatingAnimationDemo> createState() => _RepeatingAnimationDemoState();

@ -10,6 +10,7 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
go_router: ^5.2.3
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save