You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

93 regels
2.8 KiB

  1. import 'package:flutter/material.dart';
  2. import 'package:go_router/go_router.dart';
  3. import 'package:provider/provider.dart';
  4. import 'package:qadirneyriz/drawer_navigation_bar.dart';
  5. import 'package:qadirneyriz/models/meetings/meetings_model.dart';
  6. import 'package:qadirneyriz/screens/auth/login_screen.dart';
  7. import 'package:qadirneyriz/screens/auth/login_with_otp_screen.dart';
  8. import 'package:qadirneyriz/screens/auth/otp_screen.dart';
  9. import 'package:qadirneyriz/screens/home/screen.dart';
  10. import 'package:qadirneyriz/screens/meeting/screen.dart';
  11. import 'package:qadirneyriz/screens/meeting_edit/screen.dart';
  12. import 'package:qadirneyriz/screens/meeting_edit/state.dart';
  13. import 'package:qadirneyriz/screens/meeting_summary/screen.dart';
  14. import 'package:qadirneyriz/screens/meeting_summary/state.dart';
  15. import 'package:qadirneyriz/splash_screen.dart';
  16. final GoRouter router = GoRouter(
  17. initialLocation: '/route',
  18. routes: <GoRoute>[
  19. GoRoute(
  20. path: '/navigate/:tab',
  21. name: 'navigate',
  22. builder: (context, state) {
  23. return CustomDrawerNavigation(
  24. activeTab: int.parse(state.pathParameters["tab"]!),
  25. );
  26. },
  27. ),
  28. GoRoute(
  29. path: '/home',
  30. name: 'home',
  31. builder: (context, state) {
  32. return const HomeScreen();
  33. },
  34. ),
  35. GoRoute(
  36. path: '/route',
  37. builder: (BuildContext context, GoRouterState state) {
  38. return const SplashScreen();
  39. },
  40. routes: [
  41. GoRoute(
  42. path: 'login',
  43. name: 'login',
  44. builder: (context, state) {
  45. return const LoginScreen();
  46. },
  47. ),
  48. GoRoute(
  49. path: 'loginotp',
  50. name: 'loginotp',
  51. builder: (context, state) {
  52. return const LoginWithOtpScreen();
  53. },
  54. ),
  55. GoRoute(
  56. path: 'otp/:phonenumber',
  57. name: 'otp',
  58. builder: (context, state) {
  59. return OtpScreen(
  60. phoneNumber: state.pathParameters['phonenumber']!,
  61. );
  62. },
  63. ),
  64. ]),
  65. GoRoute(
  66. path: '/meetingedit/:id',
  67. name: 'meetingedit',
  68. builder: (context, state) {
  69. return ChangeNotifierProvider(
  70. child: MeetingEditScreen(
  71. id: int.parse(state.pathParameters['id']!),
  72. ),
  73. create: (context) => MeetingEditState(),
  74. );
  75. },
  76. ),
  77. GoRoute(
  78. path: '/meetinsammary',
  79. name: 'meetinsammary',
  80. builder: (context, state) {
  81. Datum meetingData = state.extra as Datum;
  82. return ChangeNotifierProvider(
  83. create: (context) => MeetingSummaryState(),
  84. child: MeetingSummaryScreen(
  85. meetingItem: meetingData,
  86. ),
  87. );
  88. },
  89. ),
  90. ],
  91. );