printer receipt

This commit is contained in:
efrilm
2025-11-04 22:13:15 +07:00
parent a87b62ca9f
commit 1b24bae23a
32 changed files with 4177 additions and 75 deletions
@@ -4,8 +4,10 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../application/checkout/checkout_form/checkout_form_bloc.dart';
import '../../../application/outlet/outlet_loader/outlet_loader_bloc.dart';
import '../../../application/printer/bluetooth/bluetooth_connect/bluetooth_connect_bloc.dart';
import '../../../application/printer/bluetooth/bluetooth_loader/bluetooth_loader_bloc.dart';
import '../../../common/extension/extension.dart';
import '../../../common/function/app_function.dart';
import '../../../common/theme/theme.dart';
import '../../../common/types/order_type.dart';
import '../../../domain/delivery/delivery.dart';
@@ -12,6 +12,7 @@ class PrinterBluetoothDialog extends StatefulWidget {
class _PrinterBluetoothDialogState extends State<PrinterBluetoothDialog> {
@override
void initState() {
loadPermissionBluetooth();
context.read<BluetoothLoaderBloc>().add(BluetoothLoaderEvent.fetched());
super.initState();
}
@@ -38,33 +39,42 @@ class _PrinterBluetoothDialogState extends State<PrinterBluetoothDialog> {
mainAxisAlignment: MainAxisAlignment.start,
children: state.bluetoothDevices
.map(
(item) => Container(
width: double.infinity,
padding: const EdgeInsets.symmetric(vertical: 12),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(color: AppColor.border, width: 1),
(item) => GestureDetector(
onTap: () {
context.read<BluetoothConnectBloc>().add(
BluetoothConnectEvent.connect(item.macAdress),
);
widget.onSelected(item.macAdress);
context.router.maybePop();
},
child: Container(
width: double.infinity,
padding: const EdgeInsets.symmetric(vertical: 12),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(color: AppColor.border, width: 1),
),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
item.name,
style: AppStyle.lg.copyWith(
fontWeight: FontWeight.w600,
color: AppColor.primary,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
item.name,
style: AppStyle.lg.copyWith(
fontWeight: FontWeight.w600,
color: AppColor.primary,
),
),
),
SpaceHeight(4),
Text(
item.macAdress,
style: AppStyle.sm.copyWith(
color: AppColor.textSecondary,
SpaceHeight(4),
Text(
item.macAdress,
style: AppStyle.sm.copyWith(
color: AppColor.textSecondary,
),
),
),
],
],
),
),
),
)
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import '../../../common/theme/theme.dart';
import '../../../domain/auth/auth.dart';
import '../../../domain/order/order.dart';
import '../../../domain/printer/printer.dart';
import '../../../domain/table/table.dart';
class AppFlushbar {
@@ -80,4 +81,18 @@ class AppFlushbar {
localStorageError: (value) => 'Terjadi kesalahan, silahkan coba lagi',
),
);
static void showPrinterFailureToast(
BuildContext context,
PrinterFailure failure,
) => showError(
context,
failure.map(
serverError: (value) => value.failure.toStringFormatted(context),
dynamicErrorMessage: (value) => value.erroMessage,
unexpectedError: (value) => 'Terjadi kesalahan, silahkan coba lagi',
empty: (value) => 'Tidak ada data',
localStorageError: (value) => 'Terjadi kesalahan, silahkan coba lagi',
),
);
}