From 91808374c1af24f558c7538e955ae06ac0bb3900 Mon Sep 17 00:00:00 2001 From: llsajjad Date: Sat, 13 Sep 2025 12:50:45 +0330 Subject: [PATCH] Fixed desktop navigation --- .../shared/desktop_navigation_widget.dart | 70 +++++++++++++++---- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/lib/views/shared/desktop_navigation_widget.dart b/lib/views/shared/desktop_navigation_widget.dart index f584edb..70cfabe 100644 --- a/lib/views/shared/desktop_navigation_widget.dart +++ b/lib/views/shared/desktop_navigation_widget.dart @@ -7,12 +7,12 @@ import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/view_models/home_view_model.dart'; import 'package:tm_app/view_models/tenders_view_model.dart'; import 'package:tm_app/views/home/strings/home_strings.dart'; +import 'package:tm_app/views/profile/strings/profile_strings.dart'; import 'package:tm_app/views/tenders/strings/tenders_strings.dart'; import '../../core/routes/app_routes.dart'; -class DesktopNavigationWidget extends StatelessWidget - implements PreferredSizeWidget { +class DesktopNavigationWidget extends StatelessWidget { const DesktopNavigationWidget({ required this.currentIndex, super.key, @@ -22,9 +22,6 @@ class DesktopNavigationWidget extends StatelessWidget final int currentIndex; final bool haveFilter; - @override - Size get preferredSize => const Size.fromHeight(64); - @override Widget build(BuildContext context) { return Container( @@ -34,16 +31,20 @@ class DesktopNavigationWidget extends StatelessWidget border: Border(bottom: BorderSide(color: AppColors.grey30)), ), child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - const SizedBox(width: 40), + SizedBox(width: 40), SvgPicture.asset(AssetsManager.logoSmall), - const Spacer(), + Spacer(), _navigationItem( context: context, text: HomeStrings.home, isActive: currentIndex == 0, onTap: () { - if (currentIndex != 0) { + if (currentIndex == 0) { + return; + } else { Router.neglect(context, () => HomeRouteData().go(context)); context.read().init(); } @@ -51,13 +52,15 @@ class DesktopNavigationWidget extends StatelessWidget iconPath: AssetsManager.home, activeIconPath: AssetsManager.homeActive, ), - const SizedBox(width: 24), + SizedBox(width: 24), _navigationItem( context: context, text: TendersStrings.tendersTitle, isActive: currentIndex == 1, onTap: () { - if (currentIndex != 1) { + if (currentIndex == 1) { + return; + } else { Router.neglect(context, () => TendersRouteData().go(context)); context.read().getTenders(); } @@ -65,20 +68,57 @@ class DesktopNavigationWidget extends StatelessWidget iconPath: AssetsManager.tenders, activeIconPath: AssetsManager.tendersActive, ), - const SizedBox(width: 24), + SizedBox(width: 24), _navigationItem( context: context, text: TendersStrings.contracts, isActive: currentIndex == 2, onTap: () { - if (currentIndex != 2) { + if (currentIndex == 2) { + return; + } else { + // Router.neglect(context, () => TendersRouteData().go(context)); + // context.read().getTenders(); + } + }, + iconPath: AssetsManager.contracts, + activeIconPath: AssetsManager.contracts, + ), + SizedBox(width: 24), + _navigationItem( + context: context, + text: TendersStrings.notifications, + isActive: currentIndex == 3, + onTap: () { + if (currentIndex == 3) { + return; + } else { + Router.neglect( + context, + () => NotificationRouteData().go(context), + ); + //context.read().getTenders(); + } + }, + iconPath: AssetsManager.notify, + activeIconPath: AssetsManager.notifyActive, + ), + SizedBox(width: 24), + _navigationItem( + context: context, + text: ProfileStrings.profileTitle, + isActive: currentIndex == 4, + onTap: () { + if (currentIndex == 4) { + return; + } else { Router.neglect(context, () => ProfileRouteData().go(context)); } }, iconPath: AssetsManager.profile, activeIconPath: AssetsManager.profileActive, ), - const Spacer(), + Spacer(), if (haveFilter) Builder( builder: @@ -93,7 +133,7 @@ class DesktopNavigationWidget extends StatelessWidget }, ), ), - const SizedBox(width: 68), + SizedBox(width: 68), ], ), ); @@ -117,7 +157,7 @@ class DesktopNavigationWidget extends StatelessWidget crossAxisAlignment: CrossAxisAlignment.center, children: [ SvgPicture.asset(isActive ? activeIconPath : iconPath), - const SizedBox(width: 8), + SizedBox(width: 8), Text( text, style: TextStyle(