Files
cssd/lib/widgets/ItemScreens/Add/item_update_button.dart
2023-11-22 14:53:35 +04:30

91 lines
2.5 KiB
Dart
Executable File

import 'package:cssd/config/colors.dart';
import 'package:cssd/providers/items.dart';
import '../../../config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ItemUpdateButton extends StatelessWidget {
const ItemUpdateButton({
Key? key,
required GlobalKey<FormState> form,
required this.id,
required this.descriptionCTRL,
required this.nameCTRL,
required this.udiCTRL,
required this.sizeCTRL,
required this.specificCTRL,
required double deviceBlockSize,
}) : _form = form,
_deviceBlockSize = deviceBlockSize,
super(key: key);
final GlobalKey<FormState> _form;
final String id;
final TextEditingController descriptionCTRL;
final TextEditingController nameCTRL;
final TextEditingController udiCTRL;
final TextEditingController sizeCTRL;
final TextEditingController specificCTRL;
final double _deviceBlockSize;
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
if (!_form.currentState!.validate()) {
return;
}
Provider.of<ItemProvider>(context, listen: false).updateItemResult(
id,
nameCTRL.text,
sizeCTRL.text,
specificCTRL.text,
udiCTRL.text,
descriptionCTRL.text,
);
showDialog(
context: context,
builder: (ctx) => AlertDialog(
content: Text('Item updated.'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('Ok'),
)
],
),
).then((_) {
Navigator.of(context).pushReplacementNamed(Routes.itemResultScreen);
});
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
// margin:
// EdgeInsets.symmetric(horizontal: 35, vertical: 15),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [kBlue, kBlueSub],
),
borderRadius: BorderRadius.circular(7),
),
child: Align(
alignment: Alignment.center,
child: Text(
'Update',
style: TextStyle(
color: Colors.white,
fontSize: 5 * _deviceBlockSize,
),
),
),
),
);
}
}