route.dart 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:flutter/material.dart';
  2. import 'package:go_router/go_router.dart';
  3. import 'data/card.dart';
  4. import 'page/about_page.dart';
  5. import 'page/game_page.dart';
  6. import 'page/home_page.dart';
  7. import 'page/setting_page.dart';
  8. part 'route.g.dart';
  9. @TypedGoRoute<HomeRoute>(path: '/')
  10. class HomeRoute extends GoRouteData {
  11. @override
  12. Widget build(BuildContext context, GoRouterState state) {
  13. return const HomePage();
  14. }
  15. }
  16. @TypedGoRoute<SettingRoute>(path: '/setting')
  17. class SettingRoute extends GoRouteData {
  18. @override
  19. Widget build(BuildContext context, GoRouterState state) {
  20. return const SettingPage();
  21. }
  22. }
  23. @TypedGoRoute<GameRouter>(path: '/game')
  24. class GameRouter extends GoRouteData {
  25. final String cardName;
  26. final String assetPath;
  27. final List<int> answer;
  28. final int baseTime;
  29. final int lowerTime;
  30. final int upperTime;
  31. GameRouter({
  32. required this.cardName,
  33. required this.assetPath,
  34. required this.answer,
  35. required this.baseTime,
  36. required this.lowerTime,
  37. required this.upperTime,
  38. });
  39. @override
  40. Widget build(BuildContext context, GoRouterState state) {
  41. return GamePage(
  42. card: CardItem(
  43. cardName: cardName,
  44. assetPath: assetPath,
  45. answer: answer,
  46. baseTime: baseTime,
  47. lowerTime: lowerTime,
  48. upperTime: upperTime,
  49. ),
  50. );
  51. }
  52. }
  53. @TypedGoRoute<AboutRouter>(path: '/about')
  54. class AboutRouter extends GoRouteData {
  55. @override
  56. Widget build(BuildContext context, GoRouterState state) {
  57. return const AboutPage();
  58. }
  59. }