Files
eatvio_app_old/lib/widgets/custom_navigation_menu.dart
mso7nueh cf45e14bb7 Merge remote-tracking branch 'refs/remotes/origin/calendar'
# Conflicts:
#	lib/app_router.dart
#	lib/features/calendar/services/calendar_service.dart
#	lib/features/diary/presentation/bloc/diary_bloc.dart
#	lib/features/diary/services/diary_service.dart
#	lib/locator_service.dart
#	lib/main.dart
2024-07-31 13:49:24 +03:00

80 lines
2.5 KiB
Dart

import 'package:eatvio_app/core/app_export.dart';
import 'package:eatvio_app/widgets/custom_navigation_menu_item.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:hive/hive.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.imgRecipes,
text: 'Календарь',
onTap: () => GoRouter.of(context).push('/calendar-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(baseUrl + '/api/profile/logout'),
headers: {
'Authorization': 'Bearer $token',
},
);
if (response.statusCode == 204) {
print(response.statusCode);
box.delete('token'); // Удаляем токен из Hive
GoRouter.of(context).go('/auth-screen');
}
};
}