diff --git a/Frontend/lib/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart b/Frontend/lib/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart index 6c9b8d18..a7f5594c 100644 --- a/Frontend/lib/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart +++ b/Frontend/lib/mih_components/mih_package_components/Example/package_tools/package_tool_one.dart @@ -291,15 +291,16 @@ class _PackageToolOneState extends State { } }), const SizedBox(height: 10), - MihBusinessCard( - businessName: "Mzansi Innovation Hub", - cellNumber: "0788300006", - email: "yasien.meth@mzansi-innovation-hub.co.za", - gpsLocation: "-26.1853611, 28.134664", - website: - "https://app.mzansi-innovation-hub.co.za/privacy.html", - rating: 3.25, - ), + // MihBusinessCard( + // businessid: "123456", + // businessName: "Mzansi Innovation Hub", + // cellNumber: "0788300006", + // email: "yasien.meth@mzansi-innovation-hub.co.za", + // gpsLocation: "-26.1853611, 28.134664", + // website: + // "https://app.mzansi-innovation-hub.co.za/privacy.html", + // rating: 3.25, + // ), const SizedBox(height: 10), Divider( color: diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart index 2272dbc2..4b7b30cd 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart @@ -1,24 +1,32 @@ import 'package:custom_rating_bar/custom_rating_bar.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/main.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart'; import 'package:url_launcher/url_launcher.dart'; class MihBusinessCard extends StatefulWidget { + final String businessid; final String businessName; final String cellNumber; final String email; final String gpsLocation; final String? website; final double rating; + final double width; const MihBusinessCard({ super.key, + required this.businessid, required this.businessName, required this.cellNumber, required this.email, required this.gpsLocation, required this.rating, this.website, + required this.width, }); @override @@ -26,6 +34,9 @@ class MihBusinessCard extends StatefulWidget { } class _MihBusinessCardState extends State { + final _formKey = GlobalKey(); + final TextEditingController _reviewTitleController = TextEditingController(); + Future _makePhoneCall(String phoneNumber) async { final Uri url = Uri(scheme: 'tel', path: phoneNumber); if (await canLaunchUrl(url)) { @@ -324,6 +335,7 @@ class _MihBusinessCardState extends State { @override Widget build(BuildContext context) { + // double screenWidth = MediaQuery.of(context).size.width; return Material( color: MzansiInnovationHub.of(context)! .theme @@ -431,22 +443,21 @@ class _MihBusinessCardState extends State { }, ), ), - // Padding( - // padding: const EdgeInsets.symmetric(horizontal: 10.0), - // child: Divider( - // color: MzansiInnovationHub.of(context)!.theme.primaryColor(), - // ), - // ), - // _buildContactInfo( - // "Rate Us", - // "Let us know how we are doing.", - // Icons.star_rate_rounded, - // const Color(0xffe9e8a1), - // () { - // print("Opeining rating dialog"); - // // _launchWebsite(widget.website); - // }, - // ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Divider( + color: MzansiInnovationHub.of(context)!.theme.primaryColor(), + ), + ), + _buildContactInfo( + "Rate Us", + "Let us know how we are doing.", + Icons.star_rate_rounded, + const Color(0xffe9e8a1), + () { + addBusinessReviewRatingWindow(widget.width); + }, + ), // Padding( // padding: const EdgeInsets.symmetric(horizontal: 10.0), // child: Divider( @@ -475,4 +486,44 @@ class _MihBusinessCardState extends State { ), ); } + + void addBusinessReviewRatingWindow(double width) { + showDialog( + context: context, + builder: (context) => MihPackageWindow( + fullscreen: false, + windowTitle: "Add Review", + onWindowTapClose: () { + Navigator.of(context).pop(); + }, + windowBody: MihSingleChildScroll( + child: Padding( + padding: + MzansiInnovationHub.of(context)!.theme.screenType == "desktop" + ? EdgeInsets.symmetric(horizontal: width * 0.05) + : EdgeInsets.symmetric(horizontal: width * 0), + child: MihForm( + formKey: _formKey, + formFields: [ + MihTextFormField( + width: 200, + fillColor: + MzansiInnovationHub.of(context)!.theme.secondaryColor(), + inputColor: + MzansiInnovationHub.of(context)!.theme.primaryColor(), + controller: _reviewTitleController, + multiLineInput: false, + requiredText: false, + hintText: "Review Title", + validator: (value) { + return null; + }, + ), + ], + ), + ), + ), + ), + ); + } } diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart index d9543c5b..fa9fb039 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart @@ -680,6 +680,7 @@ class _MihBusinessDetailsState extends State { SizedBox( width: 700, child: MihBusinessCard( + businessid: widget.arguments.business!.business_id, businessName: widget.arguments.business!.Name, cellNumber: widget.arguments.business!.contact_no, email: widget.arguments.business!.bus_email, @@ -688,6 +689,7 @@ class _MihBusinessDetailsState extends State { ? double.parse(widget.arguments.business!.rating) : 0, website: widget.arguments.business!.website, + width: width, ), ), const SizedBox(height: 30.0), diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart index 4a41c55e..89ce09fd 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details_view.dart @@ -162,6 +162,7 @@ class _MihBusinessDetailsViewState extends State { SizedBox( width: 700, child: MihBusinessCard( + businessid: widget.business.business_id, businessName: widget.business.Name, cellNumber: widget.business.contact_no, email: widget.business.bus_email, @@ -170,6 +171,7 @@ class _MihBusinessDetailsViewState extends State { ? double.parse(widget.business.rating) : 0, website: widget.business.website, + width: width, ), ), ],