From 71a405c63ff20573d75356d3dd3dddcc798c5b6b Mon Sep 17 00:00:00 2001 From: misha Date: Wed, 8 Apr 2026 12:43:15 +0300 Subject: [PATCH] feat(notifications): changed navigation flow from Cancelled diet and started diet notifications --- lib/core/routing/main_navigation_routes.dart | 8 ++++++-- .../presentation/widgets/notification_widget.dart | 12 +++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/core/routing/main_navigation_routes.dart b/lib/core/routing/main_navigation_routes.dart index 7d06147f..d6dd7420 100644 --- a/lib/core/routing/main_navigation_routes.dart +++ b/lib/core/routing/main_navigation_routes.dart @@ -47,8 +47,12 @@ class MainNavigationRoutes { path: RouteConstants.feedScreen, name: 'feedScreen', pageBuilder: (context, state) { - final initialTabIndex = int.tryParse(state.uri.queryParameters['initialTabIndex'] ?? ''); - return NoTransitionPage(child: FeedScreen(initialTabIndex: initialTabIndex)); + final initialTabIndexFromQuery = int.tryParse(state.uri.queryParameters['initialTabIndex'] ?? ''); + final extra = state.extra; + if (extra is int) { + return NoTransitionPage(child: FeedScreen(initialTabIndex: extra)); + } + return NoTransitionPage(child: FeedScreen(initialTabIndex: initialTabIndexFromQuery)); }, redirect: (context, state) async { try { diff --git a/lib/features/notifications/presentation/widgets/notification_widget.dart b/lib/features/notifications/presentation/widgets/notification_widget.dart index 7f22f5e7..a8b2ab4e 100644 --- a/lib/features/notifications/presentation/widgets/notification_widget.dart +++ b/lib/features/notifications/presentation/widgets/notification_widget.dart @@ -1,3 +1,4 @@ +import 'package:eatvio_app/core/const.dart'; import 'package:eatvio_app/core/routing/route_constants.dart'; import 'package:eatvio_app/core/theme/custom_text_style.dart'; import 'package:eatvio_app/features/bottom_navigation_bar/presentation/widgets/bottom_nav_scope.dart'; @@ -594,7 +595,6 @@ class _EntityCommentedWidget extends StatelessWidget { } } - // Новые виджеты для дополнительных типов уведомлений class _PlanSubscriptionExpiredWidget extends StatelessWidget { const _PlanSubscriptionExpiredWidget({required this.notification}); @@ -737,7 +737,11 @@ class _DietCancelledWidget extends StatelessWidget { createdAt: notification.createdAt, onTap: () { if (notification.dietId > 0) { - context.push(RouteConstants.aboutDietScreen, extra: {'id': notification.dietId}); + const dietTabIndexWithHiddenPlansTab = 3; + const dietTabIndexWithoutHiddenPlansTab = 4; + + final initialTabIndex = hidePlans ? dietTabIndexWithHiddenPlansTab : dietTabIndexWithoutHiddenPlansTab; + _navigateToBottomNavRoute(context, RouteConstants.feedScreen, initialTabIndex); } }, ); @@ -754,9 +758,7 @@ class _DietStartedWidget extends StatelessWidget { notificationsText: 'Старт диеты "${notification.dietName}"! Успехов! 🥗', createdAt: notification.createdAt, onTap: () { - if (notification.dietId > 0) { - context.push(RouteConstants.aboutDietScreen, extra: {'id': notification.dietId}); - } + _navigateToBottomNavRoute(context, RouteConstants.diaryScreen); }, ); }