1
0

nav_drawer.dart 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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: () => {Navigator.of(context).pop()},
  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.exit_to_app),
  73. title: const Text('Logout'),
  74. onTap: () async {
  75. await Supabase.instance.client.auth.signOut();
  76. if (context.mounted) {
  77. context.go('/login-otp');
  78. }
  79. },
  80. ),
  81. ],
  82. ),
  83. );
  84. }
  85. }