print checker

This commit is contained in:
efrilm
2025-11-06 18:28:14 +07:00
parent bf7a5708f5
commit c0cf63a176
4 changed files with 136 additions and 27 deletions
@@ -29,29 +29,47 @@ class _SettingPrinterCheckerState extends State<SettingPrinterChecker> {
@override
Widget build(BuildContext context) {
return BlocListener<PrinterFormBloc, PrinterFormState>(
listenWhen: (p, c) =>
p.failureOrDeleteSuccess != c.failureOrDeleteSuccess,
listener: (context, state) {
state.failureOrDeleteSuccess.fold(
() => null,
(either) => either.fold(
(f) => AppFlushbar.showPrinterFailureToast(context, f),
(_) {
if (context.mounted) {
context.read<PrinterLoaderBloc>().add(
const PrinterLoaderEvent.getByCode('checker'),
);
}
return MultiBlocListener(
listeners: [
BlocListener<PrinterFormBloc, PrinterFormState>(
listenWhen: (p, c) =>
p.failureOrDeleteSuccess != c.failureOrDeleteSuccess,
listener: (context, state) {
state.failureOrDeleteSuccess.fold(
() => null,
(either) => either.fold(
(f) => AppFlushbar.showPrinterFailureToast(context, f),
(_) {
if (context.mounted) {
context.read<PrinterLoaderBloc>().add(
const PrinterLoaderEvent.getByCode('checker'),
);
}
AppFlushbar.showSuccess(
context,
'Printer checker berhasil dihapus',
);
},
),
);
},
AppFlushbar.showSuccess(
context,
'Printer checker berhasil dihapus',
);
},
),
);
},
),
BlocListener<PrinterFormBloc, PrinterFormState>(
listenWhen: (p, c) => p.failureOrPrintTest != c.failureOrPrintTest,
listener: (context, state) {
state.failureOrPrintTest.fold(
() => null,
(either) => either.fold(
(f) => AppFlushbar.showPrinterFailureToast(context, f),
(either) {
AppFlushbar.showSuccess(context, 'Printer test berhasil');
},
),
);
},
),
],
child: Material(
color: AppColor.background,
child: SingleChildScrollView(
@@ -106,6 +124,14 @@ class _SettingPrinterCheckerState extends State<SettingPrinterChecker> {
PrinterFormEvent.deleted(state.printer.id),
);
},
onTestPrint: () {
context.read<PrinterFormBloc>().add(
PrinterFormEvent.printTest(
code: 'checker',
macAccdress: state.printer.address,
),
);
},
),
(f) => f.maybeMap(
orElse: () => ErrorCard(