nav_drawer.dart 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import 'package:flutter/material.dart';
  2. import 'package:go_router/go_router.dart';
  3. import 'package:supabase_flutter/supabase_flutter.dart';
  4. import 'package:tp5/ftl/view/ftl_page.dart';
  5. import 'package:tp5/lido/view/lidolist_page.dart';
  6. class NavDrawer extends StatelessWidget {
  7. const NavDrawer({super.key});
  8. @override
  9. Widget build(BuildContext context) {
  10. return Drawer(
  11. child: ListView(
  12. padding: EdgeInsets.zero,
  13. children: <Widget>[
  14. const DrawerHeader(
  15. decoration: BoxDecoration(
  16. color: Colors.black54,
  17. image: DecorationImage(
  18. alignment: Alignment.bottomRight,
  19. fit: BoxFit.fitHeight,
  20. scale: 0.5,
  21. image: AssetImage('assets/logo.png'),
  22. ),
  23. ),
  24. child: Text(
  25. 'Menu',
  26. style: TextStyle(color: Colors.white, fontSize: 25),
  27. ),
  28. ),
  29. ListTile(
  30. leading: const Icon(Icons.input),
  31. title: const Text('Crewlink Roster'),
  32. onTap: () => context.go("/crewlink/roster"),
  33. ),
  34. ListTile(
  35. leading: const Icon(Icons.verified_user),
  36. title: const Text('Crewlink Crewlist'),
  37. onTap: () => context.go("/crewlink/crewlist"),
  38. ),
  39. ListTile(
  40. leading: const Icon(Icons.verified_user),
  41. title: const Text('Flight Time Limitations'),
  42. onTap: () => context.go("/ftl",
  43. extra: const FtlPageParams(
  44. /*datestart: "01Nov23", dateend: "30Nov23"*/)),
  45. ),
  46. ListTile(
  47. leading: const Icon(Icons.verified_user),
  48. title: const Text('Lido'),
  49. onTap: () => context.go("/lido/list",
  50. extra: const LidolistPageParams(
  51. /*datestart: "01Nov23", dateend: "30Nov23"*/)),
  52. ),
  53. ListTile(
  54. leading: const Icon(Icons.verified_user),
  55. title: const Text('Rosters'),
  56. onTap: () => context.go("/rosters")),
  57. ListTile(
  58. leading: const Icon(Icons.verified_user),
  59. title: const Text('Fligths List'),
  60. onTap: () => context.go("/flightslist")),
  61. ListTile(
  62. leading: const Icon(Icons.settings),
  63. title: const Text('Settings'),
  64. onTap: () => context.go("/settings"),
  65. ),
  66. ListTile(
  67. leading: const Icon(Icons.border_color),
  68. title: const Text('Feedback'),
  69. onTap: () => {Navigator.of(context).pop()},
  70. ),
  71. ListTile(
  72. leading: const Icon(Icons.border_color),
  73. title: const Text('Test'),
  74. onTap: () => context.go('/test'),
  75. ),
  76. ListTile(
  77. leading: const Icon(Icons.exit_to_app),
  78. title: const Text('Logout'),
  79. onTap: () async {
  80. await Supabase.instance.client.auth.signOut();
  81. if (context.mounted) {
  82. context.go('/login-otp');
  83. }
  84. },
  85. ),
  86. ],
  87. ),
  88. );
  89. }
  90. }