update printer bar

This commit is contained in:
efrilm
2025-11-13 13:04:32 +07:00
parent d3974b8eda
commit d8a28c084d
2 changed files with 128 additions and 113 deletions
+109 -85
View File
@@ -62,96 +62,120 @@ class _MainPageState extends State<MainPage> {
return Scaffold(
body: Row(
children: [
NavigationRail(
selectedIndex: tabsRouter.activeIndex,
onDestinationSelected: tabsRouter.setActiveIndex,
labelType: NavigationRailLabelType.none,
backgroundColor: AppColor.primary,
selectedIconTheme: const IconThemeData(color: Colors.white),
indicatorColor: AppColor.disabled.withOpacity(0.25),
indicatorShape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
minExtendedWidth: 56,
leading: Padding(
padding: EdgeInsets.all(8.0),
child: Assets.images.logoWhite.image(
width: 40,
height: 40,
fit: BoxFit.contain,
// Bungkus NavigationRail dengan SingleChildScrollView
SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: MediaQuery.of(context).size.height,
),
),
trailing: Expanded(
child: Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.only(bottom: 16.0),
child: IconButton(
icon: const Icon(
Icons.logout,
color: AppColor.disabled,
),
onPressed: () {
showDialog(
context: context,
builder: (context) => LogoutModalDialog(),
);
},
tooltip: 'Logout',
child: IntrinsicHeight(
child: NavigationRail(
selectedIndex: tabsRouter.activeIndex,
onDestinationSelected: tabsRouter.setActiveIndex,
labelType: NavigationRailLabelType.none,
backgroundColor: AppColor.primary,
selectedIconTheme: const IconThemeData(
color: Colors.white,
),
indicatorColor: AppColor.disabled.withOpacity(0.25),
indicatorShape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
),
minExtendedWidth: 56,
leading: Padding(
padding: EdgeInsets.all(8.0),
child: Assets.images.logoWhite.image(
width: 40,
height: 40,
fit: BoxFit.contain,
),
),
trailing: Expanded(
child: Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.only(bottom: 16.0),
child: IconButton(
icon: const Icon(
Icons.logout,
color: AppColor.disabled,
),
onPressed: () {
showDialog(
context: context,
builder: (context) => LogoutModalDialog(),
);
},
tooltip: 'Logout',
),
),
),
),
destinations: const [
NavigationRailDestination(
icon: Icon(
Icons.home_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.home,
color: AppColor.white,
),
label: Text('POS'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.table_bar_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.table_bar,
color: AppColor.white,
),
label: Text('Meja'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.pie_chart_outline_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.pie_chart,
color: AppColor.white,
),
label: Text('Laporan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.person_2_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.person_2,
color: AppColor.white,
),
label: Text('Pelanggan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.settings_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.settings,
color: AppColor.white,
),
label: Text('Pengaturan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
],
),
),
),
destinations: const [
NavigationRailDestination(
icon: Icon(Icons.home_outlined, color: AppColor.disabled),
selectedIcon: Icon(Icons.home, color: AppColor.white),
label: Text('POS'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.table_bar_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.table_bar,
color: AppColor.white,
),
label: Text('Meja'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.pie_chart_outline_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(
Icons.pie_chart,
color: AppColor.white,
),
label: Text('Laporan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.person_2_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(Icons.person_2, color: AppColor.white),
label: Text('Pelanggan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
NavigationRailDestination(
icon: Icon(
Icons.settings_outlined,
color: AppColor.disabled,
),
selectedIcon: Icon(Icons.settings, color: AppColor.white),
label: Text('Pengaturan'),
padding: EdgeInsets.symmetric(vertical: 8),
),
],
),
const VerticalDivider(thickness: 1, width: 1),
// Main content area