Files
eatvio_app_old/lib/widgets/custom_navigation_menu.dart
2024-06-05 12:52:03 +03:00

82 lines
2.7 KiB
Dart

import 'package:eatvio_app/core/app_export.dart';
import 'package:flutter/material.dart';
import 'package:eatvio_app/widgets/custom_navigation_menu_item.dart';
import 'package:go_router/go_router.dart';
import 'package:hive/hive.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:http/http.dart' as http;
class CustomNavigationMenu extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MenuItem(
icon: ImageConstant.imgSettings,
text: 'Настройки профиля',
onTap: () => GoRouter.of(context).push('/my-settings-screen'),
),
MenuItem(
icon: ImageConstant.imgRecipes,
text: 'Мои рецепты',
onTap: () => GoRouter.of(context).push('/recipe-select-screen'),
// Действие при нажатии на "Мои рецепты"
),
MenuItem(
icon: ImageConstant.imgDiets,
text: 'Мои диеты',
onTap: () => GoRouter.of(context).push('/diet-select-screen'),
// Действие при нажатии на "Мои рецепты"
),
MenuItem(
icon: ImageConstant.imgPlans,
text: 'Мои планы',
onTap: () => GoRouter.of(context).push('/plan-select-screen'),
// Действие при нажатии на "Мои рецепты"
),
MenuItem(
icon: ImageConstant.imgFinance,
text: 'Глоссарий',
onTap: () => GoRouter.of(context).push('/glossary-screen'),
),
MenuItem(
icon: ImageConstant.imgSupport,
text: 'Поддержка',
onTap: () {
// Действие при нажатии на "Поддержка"
},
),
MenuItem(
icon: ImageConstant.imgExit,
text: 'Выход',
onTap: _onTapLogout(context),
// Действие при нажатии на "Выход"
),
],
),
);
}
}
_onTapLogout(BuildContext context) {
return () async {
final box = await Hive.openBox('token');
final token = box.get('token');
final response = await http.post(
Uri.parse(dotenv.env['SERVER_ROOT']! + '/profile/logout'),
headers: {
'Authorization': 'Bearer $token',
},
);
if (response.statusCode == 204) {
print(response.statusCode);
box.delete('token'); // Удаляем токен из Hive
GoRouter.of(context).go('/auth-screen');
}
};
}