import 'package:fcs/domain/entities/carton.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../main/util.dart'; import '../widgets/local_button.dart'; import '../widgets/local_text.dart'; import '../widgets/multi_img_file.dart'; import 'model/carton_model.dart'; class CartonImageUploadEditor extends StatefulWidget { final Carton carton; const CartonImageUploadEditor({super.key, required this.carton}); @override _CartonImageUploaState createState() => _CartonImageUploaState(); } class _CartonImageUploaState extends State { bool _isLoading = false; MultiImgController multiImgController = MultiImgController(); @override void initState() { super.initState(); multiImgController.setImageUrls = widget.carton.photoUrls; } @override Widget build(BuildContext context) { final saveBtn = Padding( padding: const EdgeInsets.symmetric(horizontal: 30), child: LocalButton( textKey: "btn.save", callBack: () { _uploadImage(); }), ); return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: LocalAppBar( titleWidget: Column( children: [ LocalText(context, "box.imageupload.title", fontSize: 20, color: primaryColor), Text(widget.carton.cartonNumber ?? '', style: TextStyle(fontSize: 15, color: Colors.black)) ], ), backgroundColor: Colors.white, labelColor: primaryColor, arrowColor: primaryColor, ), body: Padding( padding: EdgeInsets.only(left: 12.0, right: 12), child: ListView( children: [ MultiImageFile( enabled: true, controller: multiImgController, title: "Receipt File", ), const SizedBox(height: 20), saveBtn, ], ), ))); } _uploadImage() async { setState(() { _isLoading = true; }); try { await context.read().uploadCartonImages(widget.carton, multiImgController.getAddedFile, multiImgController.getDeletedUrl); Navigator.pop(context, true); } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { setState(() { _isLoading = false; }); } } }