From 8f3a19670b47a34b96e32eb24ddabf69205aad07 Mon Sep 17 00:00:00 2001 From: efrilm Date: Sun, 3 Aug 2025 21:37:56 +0700 Subject: [PATCH] feat: button continue payment validation --- lib/presentation/home/pages/home_page.dart | 75 +++++++++++++++++----- 1 file changed, 59 insertions(+), 16 deletions(-) diff --git a/lib/presentation/home/pages/home_page.dart b/lib/presentation/home/pages/home_page.dart index 705e16f..8da5814 100644 --- a/lib/presentation/home/pages/home_page.dart +++ b/lib/presentation/home/pages/home_page.dart @@ -1,4 +1,5 @@ // ignore_for_file: public_member_api_docs, sort_constructors_first +import 'package:enaklo_pos/core/components/flushbar.dart'; import 'package:enaklo_pos/presentation/home/bloc/outlet_loader/outlet_loader_bloc.dart'; import 'package:enaklo_pos/presentation/home/bloc/product_loader/product_loader_bloc.dart'; import 'package:enaklo_pos/presentation/home/widgets/home_right_title.dart'; @@ -491,22 +492,64 @@ class _HomePageState extends State { ], ), SpaceHeight(16.0), - Align( - alignment: Alignment.bottomCenter, - child: Expanded( - child: Button.filled( - borderRadius: 12, - elevation: 1, - onPressed: () { - context.push(ConfirmPaymentPage( - isTable: - widget.table == null ? false : true, - table: widget.table, - )); - }, - label: 'Lanjutkan Pembayaran', - ), - ), + BlocBuilder( + builder: (context, state) { + return state.maybeWhen( + orElse: () => Align( + alignment: Alignment.bottomCenter, + child: Expanded( + child: Button.filled( + borderRadius: 12, + elevation: 1, + disabled: true, + onPressed: () { + context.push(ConfirmPaymentPage( + isTable: widget.table == null + ? false + : true, + table: widget.table, + )); + }, + label: 'Lanjutkan Pembayaran', + ), + ), + ), + loaded: (items, + discountModel, + discount, + discountAmount, + tax, + serviceCharge, + totalQuantity, + totalPrice, + draftName, + orderType) => + Align( + alignment: Alignment.bottomCenter, + child: Expanded( + child: Button.filled( + borderRadius: 12, + elevation: 1, + disabled: items.isEmpty, + onPressed: () { + if (orderType.name == 'dineIn') { + AppFlushbar.showError(context, + 'Mohon pilih meja terlebih dahulu'); + return; + } + context.push(ConfirmPaymentPage( + isTable: widget.table == null + ? false + : true, + table: widget.table, + )); + }, + label: 'Lanjutkan Pembayaran ', + ), + ), + ), + ); + }, ), ], ),