dont display navigate button if no GPS is entered

This commit is contained in:
2025-07-30 15:03:29 +02:00
parent 60e10ac3d4
commit 90439c5f05

View File

@@ -359,6 +359,12 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
); );
} }
bool isValidGps(String coordinateString) {
final RegExp gpsRegex = RegExp(
r"^-?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*-?(1[0-7]\d(\.\d+)?|180(\.0+)?|\d{1,2}(\.\d+)?)$");
return gpsRegex.hasMatch(coordinateString);
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -412,8 +418,13 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
); );
}, },
), ),
Visibility(
visible: isValidGps(widget.business.gps_location),
child: Column(
children: [
Divider( Divider(
color: MzansiInnovationHub.of(context)!.theme.primaryColor(), color:
MzansiInnovationHub.of(context)!.theme.primaryColor(),
), ),
_buildContactInfo( _buildContactInfo(
"Location", "Location",
@@ -421,16 +432,19 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
Icons.location_on, Icons.location_on,
MihColors.getOrangeColor(context), MihColors.getOrangeColor(context),
() { () {
final latitude = final latitude = double.parse(
double.parse(widget.business.gps_location.split(',')[0]); widget.business.gps_location.split(',')[0]);
final longitude = final longitude = double.parse(
double.parse(widget.business.gps_location.split(',')[1]); widget.business.gps_location.split(',')[1]);
_launchGoogleMapsWithUrl( _launchGoogleMapsWithUrl(
latitude: latitude, latitude: latitude,
longitude: longitude, longitude: longitude,
); );
}, },
), ),
],
),
),
Visibility( Visibility(
visible: widget.business.website.isNotEmpty && visible: widget.business.website.isNotEmpty &&
widget.business.website != "", widget.business.website != "",