MIF_E31211879/lib/bloc/nav/bottom_nav.dart

252 lines
7.6 KiB
Dart

// // ignore_for_file: prefer_const_constructors
// import 'package:flutter/material.dart';
// import 'package:flutter_bloc/flutter_bloc.dart';
// class BottomNavBar extends StatefulWidget {
// const BottomNavBar({super.key, required this.selected});
// final int selected;
// @override
// State<BottomNavBar> createState() => _BottomNavBarState();
// }
// class _BottomNavBarState extends State<BottomNavBar> {
// @override
// Widget build(BuildContext context) {
// return BottomAppBar(
// shape: const CircularNotchedRectangle(),
// child: Container(
// width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.085,
// decoration: BoxDecoration(
// color: Colors.white,
// ),
// padding: EdgeInsets.symmetric(vertical: 10),
// child: Row(
// children: [
// const Spacer(),
// IconBottomBar(
// index: 0,
// label: 'Home',
// selected: widget.selected,
// icon: 'home.png',
// navigateTo: "/dashboard"),
// const Spacer(),
// IconBottomBar(
// index: 1,
// label: 'kalori',
// selected: widget.selected,
// icon: 'kalori.png',
// navigateTo: "/kalori"),
// const Spacer(),
// IconBottomBar(
// index: 2,
// label: 'Riwayat',
// selected: widget.selected,
// icon: 'riwayat.png',
// navigateTo: "/riwayat"),
// const Spacer(),
// IconBottomBar(
// index: 3,
// label: 'Profile',
// selected: widget.selected,
// icon: 'user.png',
// navigateTo: "/profile"),
// ],
// ),
// ),
// );
// }
// }
// class IconBottomBar extends StatelessWidget {
// // final String label;
// final int index;
// final int selected;
// final String icon;
// final String label;
// final String navigateTo;
// // final NavEvent navigateTo;
// const IconBottomBar(
// {super.key,
// // required this.label,
// required this.index,
// required this.selected,
// required this.icon,
// required this.navigateTo,
// required this.label});
// @override
// Widget build(BuildContext context) {
// return GestureDetector(
// onTap: () {
// Navigator.pushReplacementNamed(context, navigateTo.toString());
// // if (isUserLoggedIn || index == 0 || index == 1) {
// // BlocProvider.of<NavBloc>(context).add(navigateTo);
// // } else {
// // showNotLoggedInDialog(context);
// // }
// },
// child: Container(
// width: MediaQuery.of(context).size.width * 0.2,
// height: MediaQuery.of(context).size.height * 0.09,
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// // mainAxisSize: MainAxisSize.min,
// children: [
// Container(
// height: MediaQuery.of(context).size.height * 0.0325,
// child: Image.asset(
// 'assets/images/$icon',
// fit: BoxFit.cover,
// color: (selected == index) ? Colors.orange : Colors.grey,
// ),
// ),
// SizedBox(height: 5),
// Text(
// label,
// style: Theme.of(context).textTheme.headline6!.copyWith(
// fontSize: 12,
// color: (selected == index)
// ? Colors.orange
// : Colors.grey.withOpacity(0.5),
// ),
// )
// ],
// ),
// ),
// );
// }
// }
// ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class BottomNavBar extends StatefulWidget {
const BottomNavBar({super.key, required this.selected});
final int selected;
@override
State<BottomNavBar> createState() => _BottomNavBarState();
}
class _BottomNavBarState extends State<BottomNavBar> {
@override
Widget build(BuildContext context) {
return BottomAppBar(
shape: const CircularNotchedRectangle(),
child: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height * 0.085,
decoration: BoxDecoration(
color: Colors.white,
),
padding: EdgeInsets.symmetric(vertical: 10),
child: Row(
children: [
const Spacer(),
IconBottomBar(
index: 0,
label: 'Home',
selected: widget.selected,
icon: 'home.png',
navigateTo: "/dashboard"),
const Spacer(),
IconBottomBar(
index: 1,
label: 'kalori',
selected: widget.selected,
icon: 'kalori.png',
navigateTo: "/kalori"),
const Spacer(),
IconBottomBar(
index: 2,
label: 'Riwayat',
selected: widget.selected,
icon: 'riwayat.png',
navigateTo: "/riwayat"),
const Spacer(),
IconBottomBar(
index: 3,
label: 'tambah darah',
selected: widget.selected,
icon: 'blood.jpg',
navigateTo: "/blood"),
const Spacer(),
IconBottomBar(
index: 4,
label: 'Profile',
selected: widget.selected,
icon: 'user.png',
navigateTo: "/profile"),
],
),
),
);
}
}
class IconBottomBar extends StatelessWidget {
// final String label;
final int index;
final int selected;
final String icon;
final String label;
final String navigateTo;
// final NavEvent navigateTo;
const IconBottomBar(
{super.key,
// required this.label,
required this.index,
required this.selected,
required this.icon,
required this.navigateTo,
required this.label});
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
Navigator.pushReplacementNamed(context, navigateTo.toString());
// if (isUserLoggedIn || index == 0 || index == 1) {
// BlocProvider.of<NavBloc>(context).add(navigateTo);
// } else {
// showNotLoggedInDialog(context);
// }
},
child: Container(
width: MediaQuery.of(context).size.width * 0.2,
height: MediaQuery.of(context).size.height * 0.09,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisSize: MainAxisSize.min,
children: [
Container(
height: MediaQuery.of(context).size.height * 0.0325,
child: Image.asset(
'assets/images/$icon',
fit: BoxFit.cover,
color: (selected == index) ? Colors.orange : Colors.grey,
),
),
SizedBox(height: 5),
Text(
label,
style: Theme.of(context).textTheme.headline6!.copyWith(
fontSize: 12,
color: (selected == index)
? Colors.orange
: Colors.grey.withOpacity(0.5),
),
)
],
),
),
);
}
}