import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import '../../../domain/vo/local_step.dart'; import '../../../helpers/theme.dart'; import '../../widgets/local_text.dart'; import '../../widgets/progress.dart'; import '../../widgets/step_widget.dart'; import 'type_widget.dart'; class MixCartonEditor extends StatefulWidget { const MixCartonEditor({ Key? key, }) : super(key: key); @override State createState() => _MixCartonEditorState(); } class _MixCartonEditorState extends State { var dateFormatter = DateFormat('dd MMM yyyy'); final NumberFormat numberFormatter = NumberFormat("#,###"); List steps = [ LocalStep(lable: 'Type', stepType: StepType.TYPE), LocalStep(lable: 'Cartons', stepType: StepType.CARTONS), LocalStep(lable: 'Submit', stepType: StepType.SUBMIT) ]; bool _isLoading = false; int currentStep = 0; @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () { if (currentStep == 0) { Navigator.of(context).pop(); } if (currentStep > 0) { setState(() { currentStep -= 1; }); } return Future.value(false); }, child: LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( elevation: 0, centerTitle: true, leading: IconButton( icon: const Icon(CupertinoIcons.back, color: primaryColor, size: 25), onPressed: () { if (currentStep == 0) { Navigator.of(context).pop(); } if (currentStep > 0) { setState(() { currentStep -= 1; }); } }, ), backgroundColor: Colors.white, title: LocalText(context, 'boxes.new', color: primaryColor, fontSize: 20), ), body: Column( children: [ StepperWidget( labels: steps.map((e) => e.lable).toList(), currentStep: currentStep, eachStepWidth: 120, onChange: (index) { if (index > currentStep) { return; } setState(() { currentStep = index; }); }, ), getContent(currentStep) ], ))), ); } Widget getContent(int index) { var step = steps[index]; if (step.stepType == StepType.TYPE) { return Expanded(child: TypeWidget( onPrevious: () { Navigator.pop(context); }, // warehouse: _warehouse, // onSelectWarehouse: (w) { // setState(() { // _warehouse = w; // currentStep += 1; // }); // }, )); } else if (step.stepType == StepType.CARTONS) { return Expanded( child: Text("cartons"), // child: StockAdjustmentProducts( // products: products, // onAdd: (ps) { // setState(() { // products = List.from(ps); // }); // }, // onRemove: (p) { // setState(() { // products.removeWhere((e) => e.id == p.id); // }); // }, // onRemoveAll: (ps) { // for (var e in ps) { // setState(() { // products.removeWhere((p) => p.id == e.id); // }); // } // }, // onContinue: (ps) { // if (products.isEmpty) { // showMsgDialog(context, 'Error', "Please select product"); // return false; // } // setState(() { // products = List.from(ps); // currentStep += 1; // }); // }, // onPrevious: (ps) { // setState(() { // products = List.from(ps); // currentStep -= 1; // }); // }, // ), ); } else { return Expanded( child: Text("Submit"), // child: StockAdjustmentSubmit( // warehouse: _warehouse?.name, // products: products, // onCreate: () { // if (user != null && user.hasInventoryCreate()) { // showConfirmDialog(context, 'stock_adjustment_confirm', _create); // } else { // showDialog( // context: context, // builder: (BuildContext context) => const AuthorizedDialog( // uiFunction: funcInventoriesCreate)); // } // }, // onPrevious: () { // setState(() { // currentStep -= 1; // }); // }, // ), ); } } }