From aa6be536ae6c8d8b9be8e05e71177c31740ecd45 Mon Sep 17 00:00:00 2001 From: Mike Zamayias <29067825+mzamayias@users.noreply.github.com> Date: Sun, 23 Jan 2022 21:50:53 +0200 Subject: [PATCH] refactored --- .../{ => view}/add_phone_page_view.dart | 0 .../view_model/add_phone_page_view_model.dart | 90 +++++++++++++++++++ lib/pages/pages.dart | 2 +- lib/widgets/drawer/mobile_drawer.dart | 1 - 4 files changed, 91 insertions(+), 2 deletions(-) rename lib/pages/add_phone/{ => view}/add_phone_page_view.dart (100%) create mode 100644 lib/pages/add_phone/view_model/add_phone_page_view_model.dart diff --git a/lib/pages/add_phone/add_phone_page_view.dart b/lib/pages/add_phone/view/add_phone_page_view.dart similarity index 100% rename from lib/pages/add_phone/add_phone_page_view.dart rename to lib/pages/add_phone/view/add_phone_page_view.dart diff --git a/lib/pages/add_phone/view_model/add_phone_page_view_model.dart b/lib/pages/add_phone/view_model/add_phone_page_view_model.dart new file mode 100644 index 0000000..6be421b --- /dev/null +++ b/lib/pages/add_phone/view_model/add_phone_page_view_model.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_ecommerce_website_demo/models/phone/phone_model.dart'; +import 'package:flutter_ecommerce_website_demo/providers/page_key_provider.dart'; +import 'package:provider/provider.dart'; +import '../../../services/firestore_service.dart'; +import 'package:stacked/stacked.dart'; + +import '../../../locator.dart'; +import '../../../widgets/text_input/validators.dart'; + +class AddPhonePageViewModel extends BaseViewModel with Validators { + Future addPhone({ + required BuildContext context, + required String model, + required String imageUrl, + required String soc, + required String ram, + required String storage, + required String screenSize, + required String battery, + required String camera, + required String price, + required String stock, + required String sar, + }) async { + if (validateModel(model) != null || + validateImageUrl(imageUrl) != null || + validateSoc(soc) != null || + validateRam(ram) != null || + validateStorage(storage) != null || + validateScreenSize(screenSize) != null || + validateBattery(battery) != null || + validateCamera(camera) != null || + validatePrice(price) != null || + validateStock(stock) != null || + validateSar(sar) != null) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Invalid details'), + content: Text( + '${validateModel(model) ?? validateImageUrl(imageUrl) ?? validateSoc(soc) ?? validateRam(ram) ?? validateStorage(storage) ?? validateScreenSize(screenSize) ?? validateBattery(battery) ?? validateCamera(camera) ?? validatePrice(price) ?? validateStock(stock) ?? validateSar(sar)}', + ), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () => Navigator.of(context).pop(), + ), + ], + ), + ); + } else { + setBusy(true); + PhoneModel phoneModel = PhoneModel( + model: model, + soc: soc, + ram: int.parse(ram), + storage: storage, + screenSize: double.parse(screenSize), + battery: int.parse(battery), + camera: camera, + price: double.parse(price), + stock: int.parse(stock), + imageUrl: imageUrl, + sar: double.parse(sar), + ); + await locator().createPhone(phoneModel); + setBusy(false); + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Success'), + content: const Text('Phone added successfully'), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () { + Navigator.of(context).pop(); + Provider.of(context, listen: false).key = + '/phones'; + }, + ), + ], + ); + }, + ); + } + } +} diff --git a/lib/pages/pages.dart b/lib/pages/pages.dart index 903c420..b73ce89 100644 --- a/lib/pages/pages.dart +++ b/lib/pages/pages.dart @@ -1,4 +1,4 @@ -import 'add_phone/add_phone_page_view.dart'; +import 'add_phone/view/add_phone_page_view.dart'; import 'cart/cart_page_view.dart'; import 'contact_us/contact_us_page_view.dart'; import 'home/home_page_view.dart'; diff --git a/lib/widgets/drawer/mobile_drawer.dart b/lib/widgets/drawer/mobile_drawer.dart index 327677b..848d032 100644 --- a/lib/widgets/drawer/mobile_drawer.dart +++ b/lib/widgets/drawer/mobile_drawer.dart @@ -13,7 +13,6 @@ class MobileDrawer extends StatelessWidget { @override Widget build(BuildContext context) { User? _user = locator().currentUser; - print('_user: ${_user.toString()}'); return Drawer( child: ListView( children: [