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: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: [ MenuItem( icon: ImageConstant.imgSettings, text: 'Настройки профиля', onTap: () => Navigator.pushNamed(context, AppRoutes.mySettings), ), MenuItem( icon: ImageConstant.imgRecipes, text: 'Мои рецепты', onTap: () { // Действие при нажатии на "Мои рецепты" }, ), MenuItem( icon: ImageConstant.imgDiets, text: 'Мои диеты', onTap: () { // Действие при нажатии на "Мои диеты" }, ), MenuItem( icon: ImageConstant.imgPlans, text: 'Мои планы', onTap: () { // Действие при нажатии на "Мои планы" }, ), MenuItem( icon: ImageConstant.imgFinance, text: 'Финансы', onTap: () { // Действие при нажатии на "Финансы" }, ), 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 Navigator.pushNamed( context, AppRoutes.authScreen, ); } }; }