import 'package:badges/badges.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/doctor_replay_view_model.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; import '../../locator.dart'; class BottomNavigationItem extends StatelessWidget { final IconData icon; final IconData activeIcon; final ValueChanged changeIndex; final int index; final int currentIndex; final String name; final DashboardViewModel dashboardViewModel; final String svgPath; BottomNavigationItem( {this.icon, this.activeIcon, this.changeIndex, this.index, this.currentIndex, this.name, this.dashboardViewModel, this.svgPath}); @override Widget build(BuildContext context) { return Expanded( child: SizedBox( height: 70.0, child: Material( type: MaterialType.transparency, child: InkWell( highlightColor: Colors.transparent, splashColor: Colors.transparent, onTap: () => changeIndex(currentIndex), child: Stack( alignment: AlignmentDirectional.center, children: [ if (currentIndex == index) Positioned( top: 0, child: Container( color: AppGlobal.appRedColor, width: 100, height: 3, )), Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( height: 15, ), Container( child: SvgPicture.asset(svgPath,width: SizeConfig.widthMultiplier* (10), height:SizeConfig.getHeightMultiplier(height:SizeConfig.heightMultiplier * (SizeConfig.isHeightVeryShort ? 10:SizeConfig.isHeightShort ?8.5 : 7) ) * 40, ), ), SizedBox( height: 8, ), Expanded( child: Text(name ?? "", textAlign: TextAlign.center, style: TextStyle( fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 2, letterSpacing: 0.24, color: AppGlobal.appTextColor, fontWeight: FontWeight.w600) //#989898, ), ), ], ), if (currentIndex == 3 && dashboardViewModel.notRepliedCount != 0) Positioned( right: 18.0, bottom: 40.0, child: Badge( toAnimate: false, position: BadgePosition.topEnd(), shape: BadgeShape.circle, badgeColor: Colors.red[800], borderRadius: BorderRadius.circular(8), badgeContent: Container( // padding: EdgeInsets.all(2.0), child: Text( dashboardViewModel.notRepliedCount.toString(), style: TextStyle(color: Colors.white, fontSize: 12.0)), ), ), ), ], ), ), ), ), ); } }