From 003c8b7c0d7e9450d17a5d1e6121fef9c1e3c703 Mon Sep 17 00:00:00 2001 From: yaso Date: Thu, 25 Jun 2026 12:25:01 +0200 Subject: [PATCH] fix Mzansi profiles QR code in offline mode --- .../package_tools/mih_business_qr_code.dart | 86 +++++++++++-------- .../package_tools/mih_business_reviews.dart | 2 +- .../package_tools/mih_personal_qr_code.dart | 86 +++++++++++-------- 3 files changed, 101 insertions(+), 73 deletions(-) diff --git a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart index f03873a4..f2939170 100644 --- a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart +++ b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart @@ -175,6 +175,8 @@ class _MihBusinessQrCodeState extends State { } Widget displayBusinessQRCode(double profilePictureWidth) { + MzansiProfileProvider profileprovider = + context.read(); return Screenshot( controller: screenshotController, child: Material( @@ -193,42 +195,54 @@ class _MihBusinessQrCodeState extends State { mainAxisAlignment: MainAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - FutureBuilder( - future: futureImageUrl, - builder: (context, asyncSnapshot) { - if (asyncSnapshot.connectionState == - ConnectionState.done && - asyncSnapshot.hasData) { - if (asyncSnapshot.requireData != "" || - asyncSnapshot.requireData.isNotEmpty) { - return MihCircleAvatar( - imageFile: CachedNetworkImageProvider( - asyncSnapshot.requireData), - width: profilePictureWidth, - expandable: true, - editable: false, - fileNameController: TextEditingController(), - userSelectedfile: file, - frameColor: MihColors.primary(), - backgroundColor: MihColors.secondary(), - onChange: () {}, - ); - } else { - return Icon( - MihIcons.mihIDontKnow, - size: profilePictureWidth, - color: MihColors.primary(), - ); - } - } else { - return Icon( - MihIcons.mihRing, - size: profilePictureWidth, - color: MihColors.primary(), - ); - } - }, - ), + widget.business == null + ? MihCircleAvatar( + imageFile: profileprovider.businessProfilePicture, + width: profilePictureWidth, + expandable: true, + editable: false, + fileNameController: TextEditingController(), + userSelectedfile: file, + frameColor: MihColors.primary(), + backgroundColor: MihColors.secondary(), + onChange: () {}, + ) + : FutureBuilder( + future: futureImageUrl, + builder: (context, asyncSnapshot) { + if (asyncSnapshot.connectionState == + ConnectionState.done && + asyncSnapshot.hasData) { + if (asyncSnapshot.requireData != "" || + asyncSnapshot.requireData.isNotEmpty) { + return MihCircleAvatar( + imageFile: CachedNetworkImageProvider( + asyncSnapshot.requireData), + width: profilePictureWidth, + expandable: true, + editable: false, + fileNameController: TextEditingController(), + userSelectedfile: file, + frameColor: MihColors.primary(), + backgroundColor: MihColors.secondary(), + onChange: () {}, + ); + } else { + return Icon( + MihIcons.mihIDontKnow, + size: profilePictureWidth, + color: MihColors.primary(), + ); + } + } else { + return Icon( + MihIcons.mihRing, + size: profilePictureWidth, + color: MihColors.primary(), + ); + } + }, + ), FittedBox( child: Text( business.Name, diff --git a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart index 222f8296..618b6e0b 100644 --- a/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart +++ b/mih_ui/lib/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart @@ -231,7 +231,7 @@ class _MihBusinessReviewsState extends State { ); } } else { - return Center(child: Text('Error')); + return Center(child: Text('Error: MIH in Offline Mode')); } }); } diff --git a/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart b/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart index b9f86d4f..c01110ef 100644 --- a/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart +++ b/mih_ui/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_qr_code.dart @@ -174,6 +174,8 @@ class _MihPersonalQrCodeState extends State { } Widget displayPersonalQRCode(double profilePictureWidth) { + MzansiProfileProvider profileProvider = + context.read(); return Screenshot( controller: screenshotController, child: Material( @@ -192,42 +194,54 @@ class _MihPersonalQrCodeState extends State { mainAxisAlignment: MainAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - FutureBuilder( - future: futureImageUrl, - builder: (context, asyncSnapshot) { - if (asyncSnapshot.connectionState == - ConnectionState.done && - asyncSnapshot.hasData) { - if (asyncSnapshot.requireData != "" || - asyncSnapshot.requireData.isNotEmpty) { - return MihCircleAvatar( - imageFile: CachedNetworkImageProvider( - asyncSnapshot.requireData), - width: profilePictureWidth, - expandable: true, - editable: false, - fileNameController: TextEditingController(), - userSelectedfile: file, - frameColor: MihColors.primary(), - backgroundColor: MihColors.secondary(), - onChange: () {}, - ); - } else { - return Icon( - MihIcons.mihIDontKnow, - size: profilePictureWidth, - color: MihColors.primary(), - ); - } - } else { - return Icon( - MihIcons.mihRing, - size: profilePictureWidth, - color: MihColors.primary(), - ); - } - }, - ), + widget.user == null + ? MihCircleAvatar( + imageFile: profileProvider.userProfilePicture, + width: profilePictureWidth, + expandable: true, + editable: false, + fileNameController: TextEditingController(), + userSelectedfile: file, + frameColor: MihColors.primary(), + backgroundColor: MihColors.secondary(), + onChange: () {}, + ) + : FutureBuilder( + future: futureImageUrl, + builder: (context, asyncSnapshot) { + if (asyncSnapshot.connectionState == + ConnectionState.done && + asyncSnapshot.hasData) { + if (asyncSnapshot.requireData != "" || + asyncSnapshot.requireData.isNotEmpty) { + return MihCircleAvatar( + imageFile: CachedNetworkImageProvider( + asyncSnapshot.requireData), + width: profilePictureWidth, + expandable: true, + editable: false, + fileNameController: TextEditingController(), + userSelectedfile: file, + frameColor: MihColors.primary(), + backgroundColor: MihColors.secondary(), + onChange: () {}, + ); + } else { + return Icon( + MihIcons.mihIDontKnow, + size: profilePictureWidth, + color: MihColors.primary(), + ); + } + } else { + return Icon( + MihIcons.mihRing, + size: profilePictureWidth, + color: MihColors.primary(), + ); + } + }, + ), FittedBox( child: Text( user.username,