Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

161 linhas
5.1 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/models/private_meeting/private_meetings_model.dart';
  7. // import 'package:qadirneyriz/models/meetings/meetings_model.dart';
  8. import 'package:qadirneyriz/screens/auth/login_screen.dart';
  9. import 'package:qadirneyriz/screens/auth/login_with_otp_screen.dart';
  10. import 'package:qadirneyriz/screens/auth/otp_screen.dart';
  11. import 'package:qadirneyriz/screens/home/screen.dart';
  12. import 'package:qadirneyriz/screens/meeting/screen.dart';
  13. import 'package:qadirneyriz/screens/meeting_add/screen.dart';
  14. import 'package:qadirneyriz/screens/meeting_add/state.dart';
  15. import 'package:qadirneyriz/screens/meeting_edit/screen.dart';
  16. import 'package:qadirneyriz/screens/meeting_edit/state.dart';
  17. import 'package:qadirneyriz/screens/meeting_summary/screen.dart';
  18. import 'package:qadirneyriz/screens/meeting_summary/state.dart';
  19. import 'package:qadirneyriz/screens/private_meeting_add/screen.dart';
  20. import 'package:qadirneyriz/screens/private_meeting_add/state.dart';
  21. import 'package:qadirneyriz/screens/private_meeting_edit/screen.dart';
  22. import 'package:qadirneyriz/screens/private_meeting_edit/state.dart';
  23. import 'package:qadirneyriz/screens/private_meeting_summary/screen.dart';
  24. import 'package:qadirneyriz/screens/private_meeting_summary/state.dart';
  25. import 'package:qadirneyriz/screens/report/screen.dart';
  26. import 'package:qadirneyriz/screens/report/state.dart';
  27. import 'package:qadirneyriz/splash_screen.dart';
  28. final GoRouter router = GoRouter(
  29. initialLocation: '/route',
  30. routes: <GoRoute>[
  31. GoRoute(
  32. path: '/navigate/:tab',
  33. name: 'navigate',
  34. builder: (context, state) {
  35. return CustomDrawerNavigation(
  36. activeTab: int.parse(state.pathParameters["tab"]!),
  37. );
  38. },
  39. ),
  40. GoRoute(
  41. path: '/home',
  42. name: 'home',
  43. builder: (context, state) {
  44. return const HomeScreen();
  45. },
  46. ),
  47. GoRoute(
  48. path: '/route',
  49. builder: (BuildContext context, GoRouterState state) {
  50. return const SplashScreen();
  51. },
  52. routes: [
  53. GoRoute(
  54. path: 'login',
  55. name: 'login',
  56. builder: (context, state) {
  57. return const LoginScreen();
  58. },
  59. ),
  60. GoRoute(
  61. path: 'loginotp',
  62. name: 'loginotp',
  63. builder: (context, state) {
  64. return const LoginWithOtpScreen();
  65. },
  66. ),
  67. GoRoute(
  68. path: 'otp/:phonenumber',
  69. name: 'otp',
  70. builder: (context, state) {
  71. return OtpScreen(
  72. phoneNumber: state.pathParameters['phonenumber']!,
  73. );
  74. },
  75. ),
  76. ]),
  77. GoRoute(
  78. path: '/meetingedit/:id',
  79. name: 'meetingedit',
  80. builder: (context, state) {
  81. return ChangeNotifierProvider(
  82. child: MeetingEditScreen(
  83. id: int.parse(state.pathParameters['id']!),
  84. ),
  85. create: (context) => MeetingEditState(),
  86. );
  87. },
  88. ),
  89. GoRoute(
  90. path: '/meetingadd',
  91. name: 'meetingadd',
  92. builder: (context, state) {
  93. return ChangeNotifierProvider(
  94. child: MeetingAddScreen(),
  95. create: (context) => MeetinAddState(),
  96. );
  97. },
  98. ),
  99. GoRoute(
  100. path: '/meetinsammary',
  101. name: 'meetinsammary',
  102. builder: (context, state) {
  103. Datum meetingData = state.extra as Datum;
  104. return ChangeNotifierProvider(
  105. create: (context) => MeetingSummaryState(),
  106. child: MeetingSummaryScreen(
  107. meetingItem: meetingData,
  108. ),
  109. );
  110. },
  111. ),
  112. GoRoute(
  113. path: '/privatemeetingadd',
  114. name: 'privatemeetingadd',
  115. builder: (context, state) {
  116. return ChangeNotifierProvider(
  117. child: PrivateMeetingAddScreen(),
  118. create: (context) => PrivateMeetingAddState(),
  119. );
  120. },
  121. ),
  122. GoRoute(
  123. path: '/privatemeetingedit/:id',
  124. name: 'privatemeetingedit',
  125. builder: (context, state) {
  126. return ChangeNotifierProvider(
  127. child: EditPrivateMeetingScreen(
  128. id: int.parse(state.pathParameters['id']!),
  129. ),
  130. create: (context) => EditPrivateMeetingState(),
  131. );
  132. },
  133. ),
  134. GoRoute(
  135. path: '/privatemeetinsammary',
  136. name: 'privatemeetinsammary',
  137. builder: (context, state) {
  138. DatumInPrivateMeeting meetingData =
  139. state.extra as DatumInPrivateMeeting;
  140. return ChangeNotifierProvider(
  141. create: (context) => PrivateMeetingSummaryState(),
  142. child: PrivateMeetingSummaryScreen(
  143. itemInPrivateMeeting: meetingData,
  144. ),
  145. );
  146. },
  147. ),
  148. GoRoute(
  149. path: '/report',
  150. name: 'report',
  151. builder: (context, state) {
  152. return ChangeNotifierProvider(
  153. create: (context) => ReportState(),
  154. child: ReportScreen(),
  155. );
  156. },
  157. ),
  158. ],
  159. );