import 'package:enaklo_pos/core/components/buttons.dart'; import 'package:enaklo_pos/core/constants/colors.dart'; import 'package:enaklo_pos/core/extensions/build_context_ext.dart'; import 'package:enaklo_pos/core/extensions/string_ext.dart'; import 'package:enaklo_pos/data/models/response/table_model.dart'; import 'package:enaklo_pos/presentation/customer/pages/customer_page.dart'; import 'package:enaklo_pos/presentation/home/bloc/checkout/checkout_bloc.dart'; import 'package:enaklo_pos/presentation/home/dialog/type_dialog.dart'; import 'package:enaklo_pos/presentation/home/models/order_type.dart'; import 'package:enaklo_pos/presentation/home/pages/dashboard_page.dart'; import 'package:enaklo_pos/presentation/sales/pages/sales_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class HomeRightTitle extends StatelessWidget { final TableModel? table; const HomeRightTitle({super.key, this.table}); @override Widget build(BuildContext context) { return Container( height: context.deviceHeight * 0.15, decoration: BoxDecoration( color: AppColors.primary, border: Border( left: BorderSide( color: Colors.white, width: 1.0, ), ), ), child: Column( mainAxisSize: MainAxisSize.min, children: [ Row( children: [ Expanded( child: Button.filled( width: 180.0, height: 40, elevation: 0, onPressed: () => context.push(SalesPage( status: 'pending', )), mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, icon: Icon( Icons.list, color: Colors.white, size: 24, ), label: 'Daftar Pesanan', ), ), Expanded( child: Button.filled( width: 180.0, height: 40, elevation: 0, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, icon: Icon( Icons.person_outline, color: Colors.white, size: 24, ), onPressed: () { if (table == null) { context.push(CustomerPage()); } }, label: 'Pelanggan', ), ), ], ), Row( children: [ Expanded( child: BlocBuilder( builder: (context, state) { return state.maybeWhen( orElse: () => const SizedBox.shrink(), loaded: (items, discountModel, discount, discountAmount, tax, serviceCharge, totalQuantity, totalPrice, draftName, orderType) { return Button.filled( width: 180.0, height: 40, elevation: 0, onPressed: () { showDialog( context: context, builder: (context) { return TypeDialog(); }); }, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, icon: Icon( Icons.dinner_dining_outlined, color: Colors.white, size: 24, ), label: orderType.value.toTitleCase(), ); }, ); }, ), ), BlocBuilder( builder: (context, state) { return state.maybeWhen( orElse: () => const SizedBox.shrink(), loaded: (items, discountModel, discount, discountAmount, tax, serviceCharge, totalQuantity, totalPrice, draftName, orderType) { switch (orderType) { case OrderType.dineIn: return Expanded( child: Button.filled( width: 180.0, height: 40, elevation: 0, icon: Icon( Icons.table_restaurant_outlined, color: Colors.white, size: 24, ), onPressed: () { if (table == null) { context.push(DashboardPage( index: 1, )); } }, mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, label: table == null ? 'Pilih Meja' : '${table!.tableName}', ), ); case OrderType.takeAway: return const SizedBox.shrink(); case OrderType.delivery: return const SizedBox.shrink(); default: return const SizedBox.shrink(); } }, ); }, ), ], ), ], ), ); } }