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/multi_img_file.dart'; import 'model/carton_model.dart'; class CartonImageUploadEditor extends StatefulWidget { final Carton carton; const CartonImageUploadEditor({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( labelKey: "box.imageupload.title", backgroundColor: Colors.white, labelColor: primaryColor, arrowColor: primaryColor, actions: []), body: Padding( padding: EdgeInsets.only(left: 12.0, right: 12), child: ListView( children: [ Center( child: Text("${widget.carton.cartonNumber}", style: TextStyle( color: primaryColor, fontSize: 25, ))), 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; }); } } }