Newer
Older
import 'package:flutter/material.dart';
import 'package:stamped/bottom_nav_bar/model/bottom_nav_bar_item.dart';
import 'package:stamped/pages/collections/collections_page.dart';
import 'package:stamped/pages/create_front/notifiers/create_postcard_notifier.dart';
import 'package:stamped/pages/create_front/select_image.dart';
import 'package:stamped/pages/home/home_page.dart';
import 'package:stamped/pages/profile/profile_page.dart';
final List<BottomNavBarItem> _navItems = [
BottomNavBarItem(
label: 'Home',
icon: Icon(Icons.home),
),
BottomNavBarItem(
label: 'Collection',
icon: Icon(Icons.mail),
),
BottomNavBarItem(
label: 'Create',
icon: Icon(Icons.add),
// TODO: replace with the create page
),
BottomNavBarItem(
label: 'Friends',
icon: Icon(Icons.group),
// TODO: replace with the friends page
child: Placeholder(),
),
BottomNavBarItem(
label: 'Profile',
icon: Icon(Icons.person),
),
];
class BottomNavBar extends StatefulWidget {
const BottomNavBar({Key? key}) : super(key: key);
@override
State<BottomNavBar> createState() => _BottomNavBarState();
}
class _BottomNavBarState extends State<BottomNavBar> {
int _currentIndex = 0;
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => CreatePostcardNotifier(),
child: Scaffold(
body: _navItems[_currentIndex].child,
bottomNavigationBar: BottomNavigationBar(
currentIndex: _currentIndex,
items: _navItems
.map(
(item) => BottomNavigationBarItem(
label: item.label,
icon: item.icon,
),
)
.toList(),
onTap: _onItemTap,
type: BottomNavigationBarType.fixed,
selectedItemColor: Colors.black87,
unselectedItemColor: Colors.grey[400],
showSelectedLabels: false,
showUnselectedLabels: false,
),
),
);
}
void _onItemTap(int index) => setState(() => _currentIndex = index);
}