import 'package:farm_tpf/custom_model/CropPlot.dart'; import 'package:farm_tpf/data/repository/repository.dart'; import 'package:farm_tpf/presentation/custom_widgets/app_bar_widget.dart'; import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; import 'package:farm_tpf/presentation/screens/plot_detail/bloc/plot_detail_bloc.dart'; import 'package:farm_tpf/presentation/screens/plot_detail/widget_tab.dart'; import 'package:farm_tpf/utils/const_assets.dart'; import 'package:farm_tpf/utils/formatter.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class PlotDetailScreen extends StatefulWidget { int? cropId; String? cropCode; int cropType; int initialIndex; PlotDetailScreen({ this.cropId, this.initialIndex = 0, this.cropCode, required this.cropType, }); @override _PlotDetailScreenState createState() => _PlotDetailScreenState(); } class _PlotDetailScreenState extends State { Widget content({ String? suppliesName, String? code, num? areaM2, }) { return HomeTabbarWidget( cropType: widget.cropType, cropId: widget.cropId, cropCode: widget.cropCode, initialIndex: widget.initialIndex, ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBarWidget(), body: BlocProvider( create: (context) => PlotDetailBloc(repository: Repository()) ..add( CheckInfo(cropId: widget.cropId ?? -1, cropCode: widget.cropCode ?? ''), ), child: BlocConsumer(listener: (context, state) { if (state is PlotDetailLoading) { LoadingDialog.showLoadingDialog(context); } else if (state is PlotDetailFailure) { LoadingDialog.hideLoadingDialog(context); } else { LoadingDialog.hideLoadingDialog(context); } }, builder: (context, state) { if (state is PlotDetailSuccess) { var cropPlot = state.ownerItem as CropPlot; return content( suppliesName: cropPlot.tbCropDTO?.suppliesName ?? '', code: cropPlot.tbCropDTO?.code, areaM2: cropPlot.tbCropDTO?.areaM2, ); } else { return content(suppliesName: '', code: '', areaM2: 0); } }), )); } }