Files
cssd/lib/widgets/LabelScreens/Add/save_button.dart
T
2024-02-13 17:17:42 +03:30

99 lines
3.2 KiB
Dart
Executable File

import 'package:cssd/config/colors.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import '../../../config/routes.dart';
import '../../../providers/labels.dart';
class LabelAddSaveButton extends StatelessWidget {
const LabelAddSaveButton({
Key? key,
required GlobalKey<FormState> form,
required this.lotNumberCTRL,
required this.cycleNumberCTRL,
required this.sDateCTRL,
required this.packageValue,
required this.eDateCTRL,
required this.striizerIdCTRL,
required double deviceBlockSize,
}) : _form = form,
_deviceBlockSize = deviceBlockSize,
super(key: key);
final GlobalKey<FormState> _form;
final TextEditingController lotNumberCTRL;
final TextEditingController cycleNumberCTRL;
final TextEditingController sDateCTRL;
final List<TextEditingController> packageValue;
final TextEditingController eDateCTRL;
final TextEditingController striizerIdCTRL;
final double _deviceBlockSize;
@override
Widget build(BuildContext context) {
return Consumer<LabelsProvider>(builder: (context, labelsProvider, _) {
return InkWell(
onTap: () async {
labelsProvider.setLoadingButton();
if (!_form.currentState!.validate()) {
return;
}
int packageId;
var pacagecValues = packageValue[0].text.split(" ");
packageId = int.parse(pacagecValues[0]);
await Provider.of<LabelsProvider>(context, listen: false)
.createLabelResult(
lotNumberCTRL.text,
cycleNumberCTRL.text,
sDateCTRL.text,
// sDateValue,
// {'id': packageValue[0], 'name': packageValue[1]},
packageId,
eDateCTRL.text,
// eDateValue,
striizerIdCTRL.text,
);
Navigator.of(context).pushReplacementNamed(Routes.labelResultScreen);
Fluttertoast.showToast(
msg: "Label added.",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
labelsProvider.resetLoadingButton();
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
// margin:
// EdgeInsets.symmetric(horizontal: 35, vertical: 15),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [kLightBlue, kLightBlueSub],
),
borderRadius: BorderRadius.circular(7),
),
child: labelsProvider.isloadingButton
? Center(
child: CircularProgressIndicator(
color: Colors.white,
),
)
: Align(
alignment: Alignment.center,
child: Text(
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 5 * _deviceBlockSize,
),
),
),
),
);
});
}
}