Files

114 lines
3.8 KiB
Dart
Executable File

import 'package:cssd/config/colors.dart';
import 'package:cssd/providers/packages.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import '../../../config/routes.dart';
class PackageAddSaveButton extends StatelessWidget {
const PackageAddSaveButton({
Key? key,
required GlobalKey<FormState> form,
required this.itemValues,
required this.nameCTRL,
required this.descriptionCTRL,
// required this.udiCTRL,
required this.dateValue,
required double deviceBlockSize,
}) : _form = form,
_deviceBlockSize = deviceBlockSize,
super(key: key);
final GlobalKey<FormState> _form;
final List<TextEditingController> itemValues;
final TextEditingController nameCTRL;
final TextEditingController descriptionCTRL;
// final TextEditingController udiCTRL;
final String dateValue;
final double _deviceBlockSize;
@override
Widget build(BuildContext context) {
return Consumer<PackageProvider>(
builder: (context, packageProvider, _) {
return InkWell(
onTap: () async {
packageProvider.setLoadingButton();
if (!_form.currentState!.validate()) {
return;
}
List<String> items = [];
for (TextEditingController item in itemValues) {
print(item.text);
if (item.text.toString().contains(" ")) {
packageProvider.filteredItems?.forEach((element) {
if (element.udi_name.toString() == item.text.toString()) {
items.add(element.id.toString());
}
});
} else
items.add(item.text);
}
items = items.toSet().toList();
await Provider.of<PackageProvider>(context, listen: false)
.createPackageResult(
nameCTRL.text,
// udiCTRL.text,
items,
descriptionCTRL.text,
);
// Navigator.of(context)
// .pushReplacementNamed(Routes.packageResultScreen);
Navigator.of(context).pop();
var packages =
await Provider.of<PackageProvider>(context, listen: false);
packages.setLoading();
packages.resetPageNumber();
packages
.getPackageResults()
.then((value) => {packages.resetLoading()});
Fluttertoast.showToast(
msg: "Package added.",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
);
packageProvider.resetLoadingButton();
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
// margin:
// EdgeInsets.symmetric(horizontal: 35, vertical: 15),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [kPurple, kPurpleSub],
),
borderRadius: BorderRadius.circular(7),
),
child: packageProvider.isloadingButton
? Center(
child: CircularProgressIndicator(
color: Colors.white,
),
)
: Align(
alignment: Alignment.center,
child: Text(
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 5 * _deviceBlockSize,
),
),
),
),
);
},
);
}
}