app_router.dart 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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/announcement/announcement_create_page.dart';
  21. import '../../features/expense_application/expense_application_list_page.dart';
  22. import '../../features/expense_application/expense_application_detail_page.dart';
  23. import '../../features/expense_application/expense_application_apply_page.dart';
  24. import '../../features/report/expense_detail_report_page.dart';
  25. import '../../features/report/overtime_detail_report_page.dart';
  26. import '../../features/report/vehicle_detail_report_page.dart';
  27. import '../../features/report/expense_apply_detail_report_page.dart';
  28. import '../../features/report/outing_log_report_page.dart';
  29. import '../../features/admin/admin_permissions_page.dart';
  30. GoRouter createAppRouter() {
  31. return GoRouter(
  32. initialLocation: '/',
  33. routes: [
  34. StatefulShellRoute.indexedStack(
  35. builder: (_, _, navigationShell) => AppShell(child: navigationShell),
  36. branches: [
  37. StatefulShellBranch(
  38. routes: [
  39. GoRoute(
  40. path: '/messages',
  41. builder: (_, _) => const MessageListPage(),
  42. ),
  43. ],
  44. ),
  45. StatefulShellBranch(
  46. routes: [
  47. GoRoute(
  48. path: '/',
  49. builder: (_, _) => const HomePage(),
  50. ),
  51. GoRoute(
  52. path: '/expense/list',
  53. builder: (_, _) => const ExpenseListPage(),
  54. ),
  55. GoRoute(
  56. path: '/expense/apply',
  57. builder: (_, state) =>
  58. ExpenseApplyPage(editId: state.uri.queryParameters['id']),
  59. ),
  60. GoRoute(
  61. path: '/expense/detail/:id',
  62. builder: (_, state) =>
  63. ExpenseDetailPage(id: state.pathParameters['id']!),
  64. ),
  65. GoRoute(
  66. path: '/overtime/list',
  67. builder: (_, _) => const OvertimeListPage(),
  68. ),
  69. GoRoute(
  70. path: '/overtime/apply',
  71. builder: (_, state) =>
  72. OvertimeApplyPage(editId: state.uri.queryParameters['id']),
  73. ),
  74. GoRoute(
  75. path: '/overtime/detail/:id',
  76. builder: (_, state) =>
  77. OvertimeDetailPage(id: state.pathParameters['id']!),
  78. ),
  79. GoRoute(
  80. path: '/vehicle/list',
  81. builder: (_, _) => const VehicleListPage(),
  82. ),
  83. GoRoute(
  84. path: '/vehicle/apply',
  85. builder: (_, state) =>
  86. VehicleApplyPage(editId: state.uri.queryParameters['id']),
  87. ),
  88. GoRoute(
  89. path: '/vehicle/detail/:id',
  90. builder: (_, state) =>
  91. VehicleDetailPage(id: state.pathParameters['id']!),
  92. ),
  93. GoRoute(
  94. path: '/outing-log/list',
  95. builder: (_, _) => const OutingLogListPage(),
  96. ),
  97. GoRoute(
  98. path: '/outing-log/create',
  99. builder: (_, _) => const OutingLogCreatePage(),
  100. ),
  101. GoRoute(
  102. path: '/outing-log/detail/:id',
  103. builder: (_, state) =>
  104. OutingLogDetailPage(id: state.pathParameters['id']!),
  105. ),
  106. GoRoute(
  107. path: '/announcement/list',
  108. builder: (_, _) => const AnnouncementListPage(),
  109. ),
  110. GoRoute(
  111. path: '/announcement/detail/:id',
  112. builder: (_, state) =>
  113. AnnouncementDetailPage(id: state.pathParameters['id']!),
  114. ),
  115. GoRoute(
  116. path: '/announcement/create',
  117. builder: (_, _) => const AnnouncementCreatePage(),
  118. ),
  119. GoRoute(
  120. path: '/expense-apply/list',
  121. builder: (_, _) => const ExpenseApplicationListPage(),
  122. ),
  123. GoRoute(
  124. path: '/expense-apply/detail/:id',
  125. builder: (_, state) => ExpenseApplicationDetailPage(
  126. id: state.pathParameters['id']!),
  127. ),
  128. GoRoute(
  129. path: '/expense-apply/apply',
  130. builder: (_, state) => ExpenseApplicationApplyPage(
  131. id: state.uri.queryParameters['id']),
  132. ),
  133. GoRoute(
  134. path: '/report/expense-detail',
  135. builder: (_, _) => const ExpenseDetailReportPage(),
  136. ),
  137. GoRoute(
  138. path: '/report/expense-apply-detail',
  139. builder: (_, _) => const ExpenseApplyDetailReportPage(),
  140. ),
  141. GoRoute(
  142. path: '/report/overtime-detail',
  143. builder: (_, _) => const OvertimeDetailReportPage(),
  144. ),
  145. GoRoute(
  146. path: '/report/vehicle-detail',
  147. builder: (_, _) => const VehicleDetailReportPage(),
  148. ),
  149. GoRoute(
  150. path: '/report/outing-log',
  151. builder: (_, _) => const OutingLogReportPage(),
  152. ),
  153. GoRoute(
  154. path: '/admin/permissions',
  155. builder: (_, _) => const AdminPermissionsPage(),
  156. ),
  157. ],
  158. ),
  159. StatefulShellBranch(
  160. routes: [
  161. GoRoute(
  162. path: '/profile',
  163. builder: (_, _) => const ProfilePage(),
  164. ),
  165. ],
  166. ),
  167. ],
  168. ),
  169. ],
  170. );
  171. }