2025-08-03 12:56:13 +07:00
|
|
|
import 'package:enaklo_pos/core/components/custom_modal_dialog.dart';
|
2025-08-04 13:15:03 +07:00
|
|
|
import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
|
2025-08-03 12:56:13 +07:00
|
|
|
import 'package:enaklo_pos/presentation/home/bloc/outlet_loader/outlet_loader_bloc.dart';
|
|
|
|
|
import 'package:enaklo_pos/presentation/home/widgets/outlet_card.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
|
|
|
2025-08-04 13:15:03 +07:00
|
|
|
class OutletDialog extends StatefulWidget {
|
2025-08-03 12:56:13 +07:00
|
|
|
const OutletDialog({super.key});
|
|
|
|
|
|
2025-08-04 13:15:03 +07:00
|
|
|
@override
|
|
|
|
|
State<OutletDialog> createState() => _OutletDialogState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _OutletDialogState extends State<OutletDialog> {
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
super.initState();
|
|
|
|
|
context.read<OutletLoaderBloc>().add(OutletLoaderEvent.getOutlet());
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-03 12:56:13 +07:00
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return CustomModalDialog(
|
|
|
|
|
title: 'Outlet',
|
|
|
|
|
subtitle: 'Silahkan pilih outlet',
|
2025-08-04 13:15:03 +07:00
|
|
|
minWidth: context.deviceWidth * 0.4,
|
2025-08-03 12:56:13 +07:00
|
|
|
contentPadding:
|
|
|
|
|
const EdgeInsets.symmetric(horizontal: 16.0, vertical: 24.0),
|
|
|
|
|
child: BlocBuilder<OutletLoaderBloc, OutletLoaderState>(
|
|
|
|
|
builder: (context, state) {
|
|
|
|
|
return state.maybeWhen(
|
|
|
|
|
orElse: () => Center(
|
|
|
|
|
child: Text('Error has occured'),
|
|
|
|
|
),
|
|
|
|
|
loading: () => Center(child: CircularProgressIndicator()),
|
|
|
|
|
error: (message) => Center(
|
|
|
|
|
child: Text(message),
|
|
|
|
|
),
|
|
|
|
|
loaded: (outlets) => Column(
|
|
|
|
|
children: List.generate(
|
|
|
|
|
outlets.length,
|
|
|
|
|
(index) => OutletCard(
|
|
|
|
|
outlet: outlets[index],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|