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/cycles.dart'; class CycleAddSaveButton extends StatelessWidget { const CycleAddSaveButton({ Key? key, required GlobalKey form, required this.labelValues, required this.cycleNumberCTRL, required this.dateValue, required this.descriptionCTRL, required this.striizerIdCTRL, required double deviceBlockSize, }) : _form = form, _deviceBlockSize = deviceBlockSize, super(key: key); final GlobalKey _form; final List labelValues; final TextEditingController cycleNumberCTRL; final String dateValue; final TextEditingController descriptionCTRL; final TextEditingController striizerIdCTRL; final double _deviceBlockSize; @override Widget build(BuildContext context) { return Consumer(builder: (context, cyclesProvider, _) { return InkWell( onTap: () async { cyclesProvider.setLoadingButton(); if (!_form.currentState!.validate()) { return; } List labels = []; for (TextEditingController label in labelValues) { labels.add(label.text); } await Provider.of(context, listen: false) .createCycleResult( cycleNumberCTRL.text, dateValue, labels, descriptionCTRL.text, striizerIdCTRL.text, ); Navigator.of(context).pushReplacementNamed(Routes.cycleResultScreen); Fluttertoast.showToast( msg: "Cycle added.", toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.BOTTOM, ); cyclesProvider.resetLoadingButton(); }, child: Container( padding: EdgeInsets.symmetric( horizontal: 5 * _deviceBlockSize, vertical: 10, ), // margin: // EdgeInsets.symmetric(horizontal: 35, vertical: 15), decoration: BoxDecoration( gradient: LinearGradient( colors: [kPink, kPinkSub], ), borderRadius: BorderRadius.circular(7), ), child: cyclesProvider.isloadingButton ? Center( child: CircularProgressIndicator( color: Colors.white, ), ) : Align( alignment: Alignment.center, child: Text( 'Save', style: TextStyle( color: Colors.white, fontSize: 5 * _deviceBlockSize, ), ), ), ), ); }); } }