This commit is contained in:
2025-07-17 09:46:37 +02:00
parent 46193a64a7
commit ad1ab3e2b2
4 changed files with 81 additions and 25 deletions

View File

@@ -291,15 +291,16 @@ class _PackageToolOneState extends State<PackageToolOne> {
} }
}), }),
const SizedBox(height: 10), const SizedBox(height: 10),
MihBusinessCard( // MihBusinessCard(
businessName: "Mzansi Innovation Hub", // businessid: "123456",
cellNumber: "0788300006", // businessName: "Mzansi Innovation Hub",
email: "yasien.meth@mzansi-innovation-hub.co.za", // cellNumber: "0788300006",
gpsLocation: "-26.1853611, 28.134664", // email: "yasien.meth@mzansi-innovation-hub.co.za",
website: // gpsLocation: "-26.1853611, 28.134664",
"https://app.mzansi-innovation-hub.co.za/privacy.html", // website:
rating: 3.25, // "https://app.mzansi-innovation-hub.co.za/privacy.html",
), // rating: 3.25,
// ),
const SizedBox(height: 10), const SizedBox(height: 10),
Divider( Divider(
color: color:

View File

@@ -1,24 +1,32 @@
import 'package:custom_rating_bar/custom_rating_bar.dart'; import 'package:custom_rating_bar/custom_rating_bar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.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_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'; import 'package:url_launcher/url_launcher.dart';
class MihBusinessCard extends StatefulWidget { class MihBusinessCard extends StatefulWidget {
final String businessid;
final String businessName; final String businessName;
final String cellNumber; final String cellNumber;
final String email; final String email;
final String gpsLocation; final String gpsLocation;
final String? website; final String? website;
final double rating; final double rating;
final double width;
const MihBusinessCard({ const MihBusinessCard({
super.key, super.key,
required this.businessid,
required this.businessName, required this.businessName,
required this.cellNumber, required this.cellNumber,
required this.email, required this.email,
required this.gpsLocation, required this.gpsLocation,
required this.rating, required this.rating,
this.website, this.website,
required this.width,
}); });
@override @override
@@ -26,6 +34,9 @@ class MihBusinessCard extends StatefulWidget {
} }
class _MihBusinessCardState extends State<MihBusinessCard> { class _MihBusinessCardState extends State<MihBusinessCard> {
final _formKey = GlobalKey<FormState>();
final TextEditingController _reviewTitleController = TextEditingController();
Future<void> _makePhoneCall(String phoneNumber) async { Future<void> _makePhoneCall(String phoneNumber) async {
final Uri url = Uri(scheme: 'tel', path: phoneNumber); final Uri url = Uri(scheme: 'tel', path: phoneNumber);
if (await canLaunchUrl(url)) { if (await canLaunchUrl(url)) {
@@ -324,6 +335,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// double screenWidth = MediaQuery.of(context).size.width;
return Material( return Material(
color: MzansiInnovationHub.of(context)! color: MzansiInnovationHub.of(context)!
.theme .theme
@@ -431,22 +443,21 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
}, },
), ),
), ),
// Padding( Padding(
// padding: const EdgeInsets.symmetric(horizontal: 10.0), padding: const EdgeInsets.symmetric(horizontal: 10.0),
// child: Divider( child: Divider(
// color: MzansiInnovationHub.of(context)!.theme.primaryColor(), color: MzansiInnovationHub.of(context)!.theme.primaryColor(),
// ), ),
// ), ),
// _buildContactInfo( _buildContactInfo(
// "Rate Us", "Rate Us",
// "Let us know how we are doing.", "Let us know how we are doing.",
// Icons.star_rate_rounded, Icons.star_rate_rounded,
// const Color(0xffe9e8a1), const Color(0xffe9e8a1),
// () { () {
// print("Opeining rating dialog"); addBusinessReviewRatingWindow(widget.width);
// // _launchWebsite(widget.website); },
// }, ),
// ),
// Padding( // Padding(
// padding: const EdgeInsets.symmetric(horizontal: 10.0), // padding: const EdgeInsets.symmetric(horizontal: 10.0),
// child: Divider( // child: Divider(
@@ -475,4 +486,44 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
), ),
); );
} }
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;
},
),
],
),
),
),
),
);
}
} }

View File

@@ -680,6 +680,7 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
SizedBox( SizedBox(
width: 700, width: 700,
child: MihBusinessCard( child: MihBusinessCard(
businessid: widget.arguments.business!.business_id,
businessName: widget.arguments.business!.Name, businessName: widget.arguments.business!.Name,
cellNumber: widget.arguments.business!.contact_no, cellNumber: widget.arguments.business!.contact_no,
email: widget.arguments.business!.bus_email, email: widget.arguments.business!.bus_email,
@@ -688,6 +689,7 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
? double.parse(widget.arguments.business!.rating) ? double.parse(widget.arguments.business!.rating)
: 0, : 0,
website: widget.arguments.business!.website, website: widget.arguments.business!.website,
width: width,
), ),
), ),
const SizedBox(height: 30.0), const SizedBox(height: 30.0),

View File

@@ -162,6 +162,7 @@ class _MihBusinessDetailsViewState extends State<MihBusinessDetailsView> {
SizedBox( SizedBox(
width: 700, width: 700,
child: MihBusinessCard( child: MihBusinessCard(
businessid: widget.business.business_id,
businessName: widget.business.Name, businessName: widget.business.Name,
cellNumber: widget.business.contact_no, cellNumber: widget.business.contact_no,
email: widget.business.bus_email, email: widget.business.bus_email,
@@ -170,6 +171,7 @@ class _MihBusinessDetailsViewState extends State<MihBusinessDetailsView> {
? double.parse(widget.business.rating) ? double.parse(widget.business.rating)
: 0, : 0,
website: widget.business.website, website: widget.business.website,
width: width,
), ),
), ),
], ],