From 6ba6bce27689ff7bd63d5b84625ab0dc1ec0feb9 Mon Sep 17 00:00:00 2001 From: Mikkel Troels Kongsted Date: Tue, 11 Feb 2025 13:26:04 +0100 Subject: [PATCH] add typing barcode functionality --- mobile/lib/pages/cart_page.dart | 53 ++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/mobile/lib/pages/cart_page.dart b/mobile/lib/pages/cart_page.dart index a5dcedc..5ea9234 100644 --- a/mobile/lib/pages/cart_page.dart +++ b/mobile/lib/pages/cart_page.dart @@ -178,7 +178,58 @@ class CartPage extends StatelessWidget { child: Container( margin: const EdgeInsets.only(right: 10), child: PrimaryButton( - onPressed: () {}, + onPressed: () { + final inputController = TextEditingController(); + showDialog( + context: context, + builder: (BuildContext context) => + AlertDialog( + title: const Text( + "Indtast stregkode nummer"), + content: TextField( + keyboardType: TextInputType.number, + controller: inputController, + ), + actions: [ + TextButton( + onPressed: () => + Navigator.of(context).pop(), + child: const Text("Cancel")), + TextButton( + onPressed: () { + final ProductRepo productRepo = + context.read(); + final CartRepo cartRepo = + context.read(); + final productResult = + productRepo + .productWithBarcode( + inputController + .text); + switch (productResult) { + case Ok(): + cartRepo.addToCart( + productResult.value); + final snackBar = SnackBar( + content: Text( + "Tilføjet ${productResult.value.name} til indkøbskurven")); + ScaffoldMessenger.of( + context) + .showSnackBar(snackBar); + case Err(): + final snackBar = const SnackBar( + content: Text( + "Den indtastede stregkode eksistere ikke")); + ScaffoldMessenger.of( + context) + .showSnackBar(snackBar); + } + Navigator.of(context).pop(); + }, + child: const Text("Ok")) + ], + )); + }, child: const Text("Indtast vare")), ), ),