app_router.dart 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import 'package:go_router/go_router.dart';
  2. import '../../features/shell/app_shell.dart';
  3. import '../../features/home/home_page.dart';
  4. import '../../features/messages/message_list_page.dart';
  5. import '../../features/profile/profile_page.dart';
  6. import '../../features/expense/expense_list_page.dart';
  7. import '../../features/expense/expense_apply_page.dart';
  8. import '../../features/expense/expense_detail_page.dart';
  9. import '../../features/overtime/overtime_list_page.dart';
  10. import '../../features/overtime/overtime_apply_page.dart';
  11. import '../../features/overtime/overtime_detail_page.dart';
  12. import '../../features/vehicle/vehicle_list_page.dart';
  13. import '../../features/vehicle/vehicle_apply_page.dart';
  14. import '../../features/vehicle/vehicle_detail_page.dart';
  15. import '../../features/outing_log/outing_log_list_page.dart';
  16. import '../../features/outing_log/outing_log_create_page.dart';
  17. import '../../features/outing_log/outing_log_detail_page.dart';
  18. import '../../features/announcement/announcement_list_page.dart';
  19. import '../../features/announcement/announcement_detail_page.dart';
  20. import '../../features/expense_application/expense_application_list_page.dart';
  21. import '../../features/expense_application/expense_application_detail_page.dart';
  22. import '../../features/expense_application/expense_application_apply_page.dart';
  23. import '../../features/report/expense_detail_report_page.dart';
  24. import '../../features/report/overtime_detail_report_page.dart';
  25. import '../../features/report/vehicle_detail_report_page.dart';
  26. import '../../features/report/expense_apply_detail_report_page.dart';
  27. GoRouter createAppRouter() {
  28. return GoRouter(
  29. initialLocation: '/',
  30. routes: [
  31. StatefulShellRoute.indexedStack(
  32. builder: (_, __, navigationShell) => AppShell(child: navigationShell),
  33. branches: [
  34. StatefulShellBranch(
  35. routes: [
  36. GoRoute(
  37. path: '/messages',
  38. builder: (_, __) => const MessageListPage(),
  39. ),
  40. ],
  41. ),
  42. StatefulShellBranch(
  43. routes: [
  44. GoRoute(
  45. path: '/',
  46. builder: (_, __) => const HomePage(),
  47. ),
  48. GoRoute(
  49. path: '/expense/list',
  50. builder: (_, __) => const ExpenseListPage(),
  51. ),
  52. GoRoute(
  53. path: '/expense/apply',
  54. builder: (_, state) =>
  55. ExpenseApplyPage(editId: state.uri.queryParameters['id']),
  56. ),
  57. GoRoute(
  58. path: '/expense/detail/:id',
  59. builder: (_, state) =>
  60. ExpenseDetailPage(id: state.pathParameters['id']!),
  61. ),
  62. GoRoute(
  63. path: '/overtime/list',
  64. builder: (_, __) => const OvertimeListPage(),
  65. ),
  66. GoRoute(
  67. path: '/overtime/apply',
  68. builder: (_, state) =>
  69. OvertimeApplyPage(editId: state.uri.queryParameters['id']),
  70. ),
  71. GoRoute(
  72. path: '/overtime/detail/:id',
  73. builder: (_, state) =>
  74. OvertimeDetailPage(id: state.pathParameters['id']!),
  75. ),
  76. GoRoute(
  77. path: '/vehicle/list',
  78. builder: (_, __) => const VehicleListPage(),
  79. ),
  80. GoRoute(
  81. path: '/vehicle/apply',
  82. builder: (_, state) =>
  83. VehicleApplyPage(editId: state.uri.queryParameters['id']),
  84. ),
  85. GoRoute(
  86. path: '/vehicle/detail/:id',
  87. builder: (_, state) =>
  88. VehicleDetailPage(id: state.pathParameters['id']!),
  89. ),
  90. GoRoute(
  91. path: '/outing-log/list',
  92. builder: (_, __) => const OutingLogListPage(),
  93. ),
  94. GoRoute(
  95. path: '/outing-log/create',
  96. builder: (_, __) => const OutingLogCreatePage(),
  97. ),
  98. GoRoute(
  99. path: '/outing-log/detail/:id',
  100. builder: (_, state) =>
  101. OutingLogDetailPage(id: state.pathParameters['id']!),
  102. ),
  103. GoRoute(
  104. path: '/announcement/list',
  105. builder: (_, __) => const AnnouncementListPage(),
  106. ),
  107. GoRoute(
  108. path: '/announcement/detail/:id',
  109. builder: (_, state) =>
  110. AnnouncementDetailPage(id: state.pathParameters['id']!),
  111. ),
  112. GoRoute(
  113. path: '/expense-apply/list',
  114. builder: (_, __) => const ExpenseApplicationListPage(),
  115. ),
  116. GoRoute(
  117. path: '/expense-apply/detail/:id',
  118. builder: (_, state) => ExpenseApplicationDetailPage(
  119. id: state.pathParameters['id']!),
  120. ),
  121. GoRoute(
  122. path: '/expense-apply/apply',
  123. builder: (_, state) => ExpenseApplicationApplyPage(
  124. id: state.uri.queryParameters['id']),
  125. ),
  126. GoRoute(
  127. path: '/report/expense-detail',
  128. builder: (_, __) => const ExpenseDetailReportPage(),
  129. ),
  130. GoRoute(
  131. path: '/report/expense-apply-detail',
  132. builder: (_, __) => const ExpenseApplyDetailReportPage(),
  133. ),
  134. GoRoute(
  135. path: '/report/overtime-detail',
  136. builder: (_, __) => const OvertimeDetailReportPage(),
  137. ),
  138. GoRoute(
  139. path: '/report/vehicle-detail',
  140. builder: (_, __) => const VehicleDetailReportPage(),
  141. ),
  142. ],
  143. ),
  144. StatefulShellBranch(
  145. routes: [
  146. GoRoute(
  147. path: '/profile',
  148. builder: (_, __) => const ProfilePage(),
  149. ),
  150. ],
  151. ),
  152. ],
  153. ),
  154. ],
  155. );
  156. }