import 'package:didvan/config/design_config.dart'; import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/widgets/didvan/text.dart'; import 'package:flutter/material.dart'; class DidvanBNB extends StatelessWidget { final int currentTabIndex; final void Function(int index) onTabChanged; const DidvanBNB( {Key? key, required this.currentTabIndex, required this.onTabChanged}) : super(key: key); @override Widget build(BuildContext context) { return Container( height: 64, decoration: BoxDecoration( color: Theme.of(context).colorScheme.surface, borderRadius: const BorderRadius.vertical(top: Radius.circular(16)), boxShadow: DesignConfig.defaultShadow, ), padding: const EdgeInsets.symmetric(horizontal: 12), child: Row( children: [ _NavBarItem( isSelected: currentTabIndex == 0, title: 'اخبار', selectedIcon: DidvanIcons.news_solid, unselectedIcon: DidvanIcons.news_light, onTap: () => onTabChanged(0), ), _NavBarItem( isSelected: currentTabIndex == 1, title: 'آمار', selectedIcon: DidvanIcons.chart_solid, unselectedIcon: DidvanIcons.chart_light, onTap: () => onTabChanged(1), ), _NavBarItem( isSelected: currentTabIndex == 2, title: 'رادار', selectedIcon: DidvanIcons.news_solid, unselectedIcon: DidvanIcons.news_regular, onTap: () => onTabChanged(2), ), _NavBarItem( isSelected: currentTabIndex == 3, title: 'استودیو', selectedIcon: DidvanIcons.play_circle_solid, unselectedIcon: DidvanIcons.play_circle_light, onTap: () => onTabChanged(3), ), _NavBarItem( isSelected: currentTabIndex == 4, title: 'پروفایل', selectedIcon: DidvanIcons.profile_solid, unselectedIcon: DidvanIcons.profile_light, onTap: () => onTabChanged(4), ), ], ), ); } } class _NavBarItem extends StatelessWidget { final VoidCallback onTap; final bool isSelected; final String title; final IconData selectedIcon; final IconData unselectedIcon; const _NavBarItem({ Key? key, required this.isSelected, required this.title, required this.selectedIcon, required this.unselectedIcon, required this.onTap, }) : super(key: key); @override Widget build(BuildContext context) { return Expanded( child: Tooltip( message: title, decoration: BoxDecoration( color: DesignConfig.darkPrimaryColor2, borderRadius: DesignConfig.highBorderRadius, boxShadow: DesignConfig.defaultShadow, ), child: GestureDetector( onTap: onTap, child: Container( color: Colors.transparent, child: Column( children: [ const SizedBox( height: 4, ), AnimatedContainer( padding: const EdgeInsets.all(4), duration: DesignConfig.lowAnimationDuration, decoration: BoxDecoration( shape: BoxShape.circle, color: isSelected ? DesignConfig.lightPrimaryColor2 : Theme.of(context).colorScheme.surface, ), child: Icon( isSelected ? selectedIcon : unselectedIcon, size: 32, color: isSelected ? DesignConfig.darkPrimaryColor2 : null, ), ), DidvanText( title, style: Theme.of(context).textTheme.caption, color: DesignConfig.darkPrimaryColor2, ), const Spacer(), ], ), ), ), ), ); } }