app_router.dart 5.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'package:flutter/material.dart';
  2. import 'package:go_router/go_router.dart';
  3. import '../../shared/widgets/app_scaffold.dart';
  4. import '../../features/home/home_page.dart';
  5. import '../../features/messages/message_list_page.dart';
  6. import '../../features/profile/profile_page.dart';
  7. import '../../features/expense/expense_list_page.dart';
  8. import '../../features/expense/expense_apply_page.dart';
  9. import '../../features/expense/expense_detail_page.dart';
  10. import '../../features/overtime/overtime_list_page.dart';
  11. import '../../features/overtime/overtime_apply_page.dart';
  12. import '../../features/overtime/overtime_detail_page.dart';
  13. import '../../features/vehicle/vehicle_list_page.dart';
  14. import '../../features/vehicle/vehicle_apply_page.dart';
  15. import '../../features/vehicle/vehicle_detail_page.dart';
  16. import '../../features/outing_log/outing_log_list_page.dart';
  17. import '../../features/outing_log/outing_log_create_page.dart';
  18. import '../../features/outing_log/outing_log_detail_page.dart';
  19. import '../../features/announcement/announcement_list_page.dart';
  20. import '../../features/announcement/announcement_detail_page.dart';
  21. import '../../features/announcement/announcement_create_page.dart';
  22. import '../../features/expense_application/expense_application_list_page.dart';
  23. import '../../features/expense_application/expense_application_detail_page.dart';
  24. import '../../features/expense_application/expense_application_apply_page.dart';
  25. import '../../features/report/expense_detail_report_page.dart';
  26. import '../../features/report/overtime_detail_report_page.dart';
  27. import '../../features/report/vehicle_detail_report_page.dart';
  28. import '../../features/report/expense_apply_detail_report_page.dart';
  29. import '../../features/report/outing_log_report_page.dart';
  30. import '../../features/admin/admin_permissions_page.dart';
  31. GoRouter createAppRouter() {
  32. return GoRouter(
  33. initialLocation: '/',
  34. routes: [
  35. GoRoute(path: '/', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(showTabBar: true, body: HomePage()))),
  36. GoRoute(path: '/messages', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(showTabBar: true, body: MessageListPage()))),
  37. GoRoute(path: '/profile', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(showTabBar: true, body: ProfilePage()))),
  38. GoRoute(path: '/expense/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: ExpenseListPage()))),
  39. GoRoute(path: '/expense/apply', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: ExpenseApplyPage(editId: state.uri.queryParameters['id'])))),
  40. GoRoute(path: '/expense/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: ExpenseDetailPage(id: state.pathParameters['id']!)))),
  41. GoRoute(path: '/overtime/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: OvertimeListPage()))),
  42. GoRoute(path: '/overtime/apply', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: OvertimeApplyPage(editId: state.uri.queryParameters['id'])))),
  43. GoRoute(path: '/overtime/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: OvertimeDetailPage(id: state.pathParameters['id']!)))),
  44. GoRoute(path: '/vehicle/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: VehicleListPage()))),
  45. GoRoute(path: '/vehicle/apply', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: VehicleApplyPage(editId: state.uri.queryParameters['id'])))),
  46. GoRoute(path: '/vehicle/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: VehicleDetailPage(id: state.pathParameters['id']!)))),
  47. GoRoute(path: '/outing-log/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: OutingLogListPage()))),
  48. GoRoute(path: '/outing-log/create', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: OutingLogCreatePage()))),
  49. GoRoute(path: '/outing-log/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: OutingLogDetailPage(id: state.pathParameters['id']!)))),
  50. GoRoute(path: '/announcement/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: AnnouncementListPage()))),
  51. GoRoute(path: '/announcement/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: AnnouncementDetailPage(id: state.pathParameters['id']!)))),
  52. GoRoute(path: '/announcement/create', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: AnnouncementCreatePage()))),
  53. GoRoute(path: '/expense-apply/list', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: ExpenseApplicationListPage()))),
  54. GoRoute(path: '/expense-apply/detail/:id', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: ExpenseApplicationDetailPage(id: state.pathParameters['id']!)))),
  55. GoRoute(path: '/expense-apply/apply', pageBuilder: (_, state) => MaterialPage(child: AppScaffold(body: ExpenseApplicationApplyPage(id: state.uri.queryParameters['id'])))),
  56. GoRoute(path: '/report/expense-detail', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: ExpenseDetailReportPage()))),
  57. GoRoute(path: '/report/expense-apply-detail', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: ExpenseApplyDetailReportPage()))),
  58. GoRoute(path: '/report/overtime-detail', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: OvertimeDetailReportPage()))),
  59. GoRoute(path: '/report/vehicle-detail', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: VehicleDetailReportPage()))),
  60. GoRoute(path: '/report/outing-log-detail', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: OutingLogReportPage()))),
  61. GoRoute(path: '/admin/permissions', pageBuilder: (_, _) => const MaterialPage(child: AppScaffold(body: AdminPermissionsPage()))),
  62. ],
  63. );
  64. }