import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/assets.dart'; import 'package:tm_app/core/theme/colors.dart'; 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 TabletNavigationWidget extends StatelessWidget { const TabletNavigationWidget({required this.currentIndex, super.key}); final int currentIndex; @override Widget build(BuildContext context) { return Container( width: 200.0.w(), height: double.infinity, color: AppColors.backgroundColor, child: Column( children: [ SizedBox(height: 48.0.h()), _navigationItem( context: context, text: HomeStrings.home, isActive: currentIndex == 0, onTap: () { if (currentIndex == 0) { return; } else { Router.neglect( context, () => const HomeRouteData().go(context), ); context.read().init(); } }, iconPath: AssetsManager.home, activeIconPath: AssetsManager.homeActive, ), _navigationItem( context: context, text: TendersStrings.tendersTitle, isActive: currentIndex == 1, onTap: () { if (currentIndex == 1) { return; } else { Router.neglect( context, () => const TendersRouteData().go(context), ); context.read().getTenders(); } }, iconPath: AssetsManager.tenders, activeIconPath: AssetsManager.tendersActive, ), _navigationItem( context: context, text: ProfileStrings.contracts, isActive: currentIndex == 2, onTap: () { if (currentIndex == 2) { return; } else { // context.pop(); // Router.neglect(context, () => ProfileRouteData().go(context)); } }, iconPath: AssetsManager.contracts, activeIconPath: AssetsManager.contracts, ), _navigationItem( context: context, text: ProfileStrings.notifications, isActive: currentIndex == 3, onTap: () { if (currentIndex == 3) { return; } else { context.pop(); Router.neglect( context, () => const NotificationRouteData().go(context), ); } }, iconPath: AssetsManager.notify, activeIconPath: AssetsManager.notifyActive, ), _navigationItem( context: context, text: ProfileStrings.profileTitle, isActive: currentIndex == 4, onTap: () { if (currentIndex == 4) { return; } else { context.pop(); Router.neglect( context, () => const ProfileRouteData().go(context), ); } }, iconPath: AssetsManager.profile, activeIconPath: AssetsManager.profileActive, ), ], ), ); } Widget _navigationItem({ required BuildContext context, required String text, required bool isActive, required VoidCallback onTap, required String iconPath, required String activeIconPath, }) { return InkWell( onTap: onTap, child: Container( width: 200.0.w(), height: 64.0.h(), decoration: BoxDecoration(color: AppColors.backgroundColor), child: Padding( padding: EdgeInsetsDirectional.only(start: 24.0.w()), child: Row( children: [ SvgPicture.asset(isActive ? activeIconPath : iconPath), SizedBox(width: 12.0.w()), Text( text, style: TextStyle( fontSize: 14.0.sp(), fontWeight: isActive ? FontWeight.w600 : FontWeight.w400, color: isActive ? AppColors.primaryColor : AppColors.grey60, ), ), const Spacer(), Container( width: 4.0.w(), height: 64.0.h(), decoration: BoxDecoration( color: isActive ? AppColors.primaryColor : Colors.transparent, ), ), ], ), ), ), ); } }