diff --git a/lib/pages/pharmacy/profile/profile.dart b/lib/pages/pharmacy/profile/profile.dart index 3cf28592..0854f4bc 100644 --- a/lib/pages/pharmacy/profile/profile.dart +++ b/lib/pages/pharmacy/profile/profile.dart @@ -19,7 +19,10 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/pharmacy/my_account_items.dart'; +import 'package:diplomaticquarterapp/widgets/pharmacy/my_account_services.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -98,7 +101,7 @@ class _ProfilePageState extends State { isPharmacy: true, body: user != null ? Container( - color: Colors.white, + color: Colors.white, child: SingleChildScrollView( child: Column( children: [ @@ -108,47 +111,56 @@ class _ProfilePageState extends State { Container( child: Row( children: [ - Container( - padding: EdgeInsets.only( - top: 20.0, - left: 10.0, - right: 10.0, - bottom: 10.0, - ), - child: LargeAvatar( - name: user.firstName.toString(), - url: '', + Padding( + padding: EdgeInsets.symmetric( + horizontal: 15.0, vertical: 8.0), + child: Container( + padding: EdgeInsets.only( + top: 20.0, + left: 10.0, + right: 10.0, + bottom: 10.0, + ), + child: LargeAvatar( + radius: 55.0, + name: user.firstName.toString(), + url: + 'https://thumbs.dreamstime.com/b/default-avatar-profile-vector-user-profile-default-avatar-profile-vector-user-profile-profile-179376714.jpg', + ), ), ), - Column(children: [ - Row(children: [ - Text( - TranslationBase.of(context) - .welcome, - style: TextStyle( - fontSize: 14.0, + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row(children: [ + Texts( + TranslationBase.of(context) + .welcome, + fontSize: 16.0, + ), + ]), + SizedBox( + height: 5.0, + ), + Row(children: [ + Texts( + languageID == "ar" + ? user.firstNameN + .toString() + + " " + + user.lastNameN + .toString() + : user.firstName + .toString() + + " " + + user.lastName + .toString(), + fontSize: 17.0, fontWeight: FontWeight.bold, - color: Colors.grey), - ), - ]), - SizedBox( - height: 10, - ), - Row(children: [ - Text( - languageID == "ar" - ? user.firstNameN.toString() + - " " + - user.lastNameN.toString() - : user.firstName.toString() + - " " + - user.lastName.toString(), - style: TextStyle( - fontSize: 14.0, - fontWeight: FontWeight.bold), - ), - ]), - ]), + ), + ]), + ]), ], ), ) @@ -168,125 +180,53 @@ class _ProfilePageState extends State { Container( child: Row( children: [ - Expanded( - child: InkWell( - onTap: () { - if (customerId == null) { - AppToast.showErrorToast( - message: "Customer not found"); - return; - } - Navigator.push( - context, - FadePage( - page: OrderPage( - customerID: customerId))); - }, - child: Column( - children: [ -// Image(image: AssetImage('assets/images/pharmacy/orders_icon.svg')), - SvgPicture.asset( - 'assets/images/pharmacy/orders_icon.svg', - width: 50, - height: 50, - ), - SizedBox( - height: 5, - ), - Text( - TranslationBase.of(context).orders, - style: TextStyle( - fontSize: 13.0, - fontWeight: FontWeight.bold, - ), - ), - ], - ), - ), + AccountServices( + title: TranslationBase.of(context).orders, + serviceImage: + 'assets/images/pharmacy/orders_icon.svg', + onTap: () { + if (customerId == null) { + AppToast.showErrorToast( + message: "Customer not found"); + return; + } + Navigator.push( + context, + FadePage( + page: OrderPage( + customerID: customerId))); + }, ), - Expanded( - child: InkWell( - onTap: () { - Navigator.push(context, - FadePage(page: LakumMainPage())); - }, - child: Column( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/lakum_icon.svg', - width: 50, - height: 50, - ), - SizedBox( - height: 5, - ), - Text( - TranslationBase.of(context).lakum, - style: TextStyle( - fontSize: 13.0, - fontWeight: FontWeight.bold), - ), - ], - ), - ), + AccountServices( + title: TranslationBase.of(context).lakum, + serviceImage: + 'assets/images/pharmacy/lakum_icon.svg', + onTap: () { + Navigator.push(context, + FadePage(page: LakumMainPage())); + }, ), - Expanded( - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - WishlistPage(true))); - }, - child: Column( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/wishlist_icon.svg', - width: 50, - height: 50, - ), - SizedBox( - height: 5, - ), - Text( - TranslationBase.of(context).wishlist, - style: TextStyle( - fontSize: 13.0, - fontWeight: FontWeight.bold, - ), - ), - ], - ), - ), - ), - Expanded( - child: InkWell( - onTap: () { - Navigator.push(context, - FadePage(page: MyReviewsPage())); - }, - child: Column( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/review_icon.svg', - width: 50, - height: 50, - ), - SizedBox( - height: 5, - ), - Text( - TranslationBase.of(context).reviews, - style: TextStyle( - fontSize: 13.0, - fontWeight: FontWeight.bold, - ), - ), - ], - ), - ), + AccountServices( + title: TranslationBase.of(context).wishlist, + serviceImage: + 'assets/images/pharmacy/wishlist_icon.svg', + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + WishlistPage(true))); + }, ), + AccountServices( + title: TranslationBase.of(context).reviews, + serviceImage: + 'assets/images/pharmacy/review_icon.svg', + onTap: () { + Navigator.push(context, + FadePage(page: MyReviewsPage())); + }, + ) ], )), SizedBox( @@ -303,16 +243,13 @@ class _ProfilePageState extends State { height: 10, ), Container( - padding: EdgeInsets.only(left: 10.0), + padding: EdgeInsets.symmetric(horizontal: 25.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - TranslationBase.of(context).myAccount, - style: TextStyle( - fontSize: 16.0, - fontWeight: FontWeight.bold), - ), + Texts(TranslationBase.of(context).myAccount, + fontSize: 16.0, + fontWeight: FontWeight.bold), SizedBox( height: 10, ), @@ -327,24 +264,11 @@ class _ProfilePageState extends State { FadePage( page: HomePrescriptionsPage())); }, - child: Row( - children: [ - SvgPicture.asset( + child: AccountItem( + title: TranslationBase.of(context) + .myPrescription, + itemIcon: 'assets/images/pharmacy/my_prescription_icon.svg', - width: 28, - height: 28, - ), - SizedBox( - width: 15, - ), - Text( - TranslationBase.of(context) - .myPrescription, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], ), ), SizedBox( @@ -355,28 +279,16 @@ class _ProfilePageState extends State { height: 20, ), InkWell( - onTap: () { - Navigator.push(context, - FadePage(page: ComparePage())); - }, - child: Row( - children: [ - Image.asset( - 'assets/images/pharmacy/compare.png', - width: 35, - height: 35), - SizedBox( - width: 15, - ), - Text( - TranslationBase.of(context).compare, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], - ), - ), + onTap: () { + Navigator.push(context, + FadePage(page: ComparePage())); + }, + child: AccountItem( + isTerms: true, + title: TranslationBase.of(context) + .compare, + itemIcon: + "assets/images/pharmacy/compare.png")), SizedBox( height: 5, ), @@ -391,25 +303,11 @@ class _ProfilePageState extends State { FadePage( page: HomePrescriptionsPage())); }, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/medication_refill_icon.svg', - width: 30, - height: 30, - ), - SizedBox( - width: 20, - ), - Text( - TranslationBase.of(context) - .medicationsRefill, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], - ), + child: AccountItem( + title: TranslationBase.of(context) + .medicationsRefill, + itemIcon: + 'assets/images/pharmacy/medication_refill_icon.svg'), ), SizedBox( height: 5, @@ -423,23 +321,10 @@ class _ProfilePageState extends State { Navigator.push( context, FadePage(page: MyFamily())); }, - child: Row( - children: [ - SvgPicture.asset( + child: AccountItem( + title: TranslationBase.of(context).family, + itemIcon: 'assets/images/pharmacy/my_family_icon.svg', - width: 20, - height: 20, - ), - SizedBox( - width: 20, - ), - Text( - TranslationBase.of(context).family, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], ), ), SizedBox( @@ -456,24 +341,11 @@ class _ProfilePageState extends State { FadePage( page: PharmacyAddressesPage())); }, - child: Row( - children: [ - SvgPicture.asset( + child: AccountItem( + itemIcon: 'assets/images/pharmacy/shipping_addresses_icon.svg', - width: 30, - height: 30, - ), - SizedBox( - width: 20, - ), - Text( - TranslationBase.of(context) - .shippingAddresses, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], + title: TranslationBase.of(context) + .shippingAddresses, ), ), SizedBox( @@ -484,32 +356,19 @@ class _ProfilePageState extends State { height: 20, ), InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: PharmacyTermsConditions())); - }, - child: Row( - children: [ - Image.asset( - 'assets/images/pharmacy/terms.png', - width: 25, - height: 25, - ), - SizedBox( - width: 10, - ), - Text( - TranslationBase.of(context) + onTap: () { + Navigator.push( + context, + FadePage( + page: + PharmacyTermsConditions())); + }, + child: AccountItem( + isTerms: true, + title: TranslationBase.of(context) .conditionsHMG, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], - ), - ), + itemIcon: + 'assets/images/pharmacy/terms.png')), SizedBox( height: 5, ), @@ -518,39 +377,24 @@ class _ProfilePageState extends State { height: 20, ), InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: LakumTermsConditions( - this.identificationNo, - this.firstName, - this.lastName, - this.mobileNo, - this.languageId))); - }, - child: Row( - children: [ - Image.asset( - 'assets/images/pharmacy/terms.png', - width: 25, - height: 25, - ), -// IconButton(icon: Icon(Icons.error_outline), iconSize: 30, -// color: Colors.black,), - SizedBox( - width: 10, - ), - Text( - TranslationBase.of(context) - .conditions, - style: TextStyle( - fontSize: 13.0, - ), - ), - ], - ), - ), + onTap: () { + Navigator.push( + context, + FadePage( + page: LakumTermsConditions( + this.identificationNo, + this.firstName, + this.lastName, + this.mobileNo, + this.languageId))); + }, + child: AccountItem( + title: TranslationBase.of(context) + .conditions, + itemIcon: + 'assets/images/pharmacy/terms.png', + isTerms: true, + )), ], ), ), @@ -567,77 +411,54 @@ class _ProfilePageState extends State { SizedBox( height: 10, ), - Container( - padding: EdgeInsets.only(left: 10.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - TranslationBase.of(context).reachUs, - style: TextStyle( + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 15.0, vertical: 8.0), + child: Container( + padding: EdgeInsets.only(left: 10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Texts(TranslationBase.of(context).reachUs, fontSize: 16.0, fontWeight: FontWeight.bold), - ), - SizedBox( - height: 5, - ), - Divider( - color: Colors.grey, - height: 20, - ), - InkWell( - onTap: () { - Navigator.push(context, - FadePage(page: LiveChatPage())); - }, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/contact_us_icon.svg', - width: 20, - height: 20, - ), - SizedBox( - width: 20, - ), - Text( - TranslationBase.of(context).contactUs, - style: TextStyle(fontSize: 13.0), - ), - ], + SizedBox( + height: 5, ), - ), - SizedBox( - height: 5, - ), - Divider( - color: Colors.grey, - height: 20, - ), - InkWell( - onTap: () { - Navigator.push(context, - FadePage(page: FindUsPage())); - }, - child: Row( - children: [ - SvgPicture.asset( - 'assets/images/pharmacy/our_locations_icon.svg', - width: 30, - height: 30, - ), - SizedBox( - width: 20, - ), - Text( - TranslationBase.of(context) - .ourLocations, - style: TextStyle(fontSize: 13.0), - ), - ], + Divider( + color: Colors.grey, + height: 20, ), - ) - ], + InkWell( + onTap: () { + Navigator.push(context, + FadePage(page: LiveChatPage())); + }, + child: AccountItem( + title: TranslationBase.of(context) + .contactUs, + itemIcon: + 'assets/images/pharmacy/contact_us_icon.svg'), + ), + SizedBox( + height: 5, + ), + Divider( + color: Colors.grey, + height: 20, + ), + InkWell( + onTap: () { + Navigator.push(context, + FadePage(page: FindUsPage())); + }, + child: AccountItem( + title: TranslationBase.of(context) + .ourLocations, + itemIcon: + 'assets/images/pharmacy/our_locations_icon.svg')) + ], + ), ), ) ], diff --git a/lib/widgets/pharmacy/my_account_items.dart b/lib/widgets/pharmacy/my_account_items.dart new file mode 100644 index 00000000..bb514e57 --- /dev/null +++ b/lib/widgets/pharmacy/my_account_items.dart @@ -0,0 +1,50 @@ +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +class AccountItem extends StatelessWidget { + final String title; + final String itemIcon; + final bool isTerms; + + const AccountItem({this.title, this.itemIcon, this.isTerms = false}); + + @override + Widget build(BuildContext context) { + return Row( + children: [ + isTerms == false + ? Container( + height: 35.0, + width: 35.0, + child: SvgPicture.asset( + '$itemIcon', + width: 35, + height: 35, + ), + ) + : Container( + height: 35.0, + width: 35.0, + child: Image.asset( + '$itemIcon', + width: 35, + height: 35, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + width: 20, + ), + Texts( + title, + fontSize: 15.0, + ), + ], + ) + ], + ); + } +} diff --git a/lib/widgets/pharmacy/my_account_services.dart b/lib/widgets/pharmacy/my_account_services.dart new file mode 100644 index 00000000..e3b9948d --- /dev/null +++ b/lib/widgets/pharmacy/my_account_services.dart @@ -0,0 +1,52 @@ +import 'package:diplomaticquarterapp/uitl/app_toast.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +class AccountServices extends StatelessWidget { + final String title; + final String serviceImage; + final Function onTap; + + const AccountServices({this.title, this.onTap, this.serviceImage}); + + @override + Widget build(BuildContext context) { + return Expanded( + child: InkWell( + onTap: onTap, + // () { + // if (customerId == null) { + // AppToast.showErrorToast( + // message: "Customer not found"); + // return; + // } + // Navigator.push( + // context, + // FadePage( + // page: OrderPage( + // customerID: customerId))); + // }, + child: Column( + children: [ +// Image(image: AssetImage('assets/images/pharmacy/orders_icon.svg')), + SvgPicture.asset( + '$serviceImage', + width: 55, + height: 55, + ), + SizedBox( + height: 7, + ), + Texts( + title, + fontSize: 15.0, + fontWeight: FontWeight.bold, + ), + ], + ), + ), + ); + } +}