import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:satu/shared/app_colors.dart'; class BottomBar extends StatelessWidget { const BottomBar({required this.selectedIndex, required this.onTap, Key? key}) : super(key: key); final int selectedIndex; final void Function(int index) onTap; @override Widget build(BuildContext context) { return Material( elevation: 8.0, child: SafeArea( child: SizedBox( height: 75.0, child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ BottomButton( active: selectedIndex == 0, onTap: () => onTap(0), svgFile: 'sell', name: 'Продажа', ), BottomButton( active: selectedIndex == 1, onTap: () => onTap(1), svgFile: 'buy', disable: true, name: 'Покупка', ), BottomButton( active: selectedIndex == 2, onTap: () => onTap(2), svgFile: 'journal', name: 'Журнал', ), ], ), ), ), ); } } class BottomButton extends StatelessWidget { const BottomButton( {required this.svgFile, required this.onTap, required this.active, required this.name, Key? key, this.disable = false}) : super(key: key); final String svgFile; final void Function() onTap; final bool active; final bool disable; final String name; @override Widget build(BuildContext context) { return Stack( children: [ Positioned.fill( child: Container( decoration: BoxDecoration( border: Border( top: BorderSide( width: 3.0, color: active ? primaryColor : Colors.transparent, ), )), ), ), ClipRRect( borderRadius: BorderRadius.circular(50), child: Material( color: Colors.transparent, child: InkWell( onTap: disable == true ? () {} : onTap, child: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ SvgPicture.asset( 'assets/images/svg/$svgFile.svg', height: 25, width: 25, color: disable ? disableColor : active ? primaryColor : placeholderColor, ), SizedBox( height: 5, ), Text( name, style: TextStyle(fontSize: 10, color: disable ? disableColor : active ? primaryColor : placeholderColor), ) ], ), ), ), ), ), ], ); } }