From 62b092baf858acca9f9a62db5ef0cda23d68051e Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Fri, 25 Apr 2025 14:19:20 +0200 Subject: [PATCH] circle avatar to handle null --- .../package_tools/package_tool_one.dart | 2 + .../assets/images/i-dont-know-dark.png | Bin 0 -> 6002 bytes ...-dont-know-2.png => i-dont-know-light.png} | Bin .../mih_circle_avatar.dart | 24 +++- .../mih_home/components/mih_app_drawer.dart | 105 ++++++++---------- .../lib/mih_packages/mih_home/mih_home.dart | 2 + .../mih_home/mih_profile_getter.dart | 15 +-- 7 files changed, 78 insertions(+), 70 deletions(-) create mode 100644 Frontend/lib/mih_components/mih_package_components/assets/images/i-dont-know-dark.png rename Frontend/lib/mih_components/mih_package_components/assets/images/{i-dont-know-2.png => i-dont-know-light.png} (100%) 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 ea56d9f5..04adcb92 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 @@ -125,6 +125,8 @@ class _PackageToolOneState extends State { userSelectedfile: file, frameColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + backgroundColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), onChange: (selectedImage) { setState(() { file = selectedImage; diff --git a/Frontend/lib/mih_components/mih_package_components/assets/images/i-dont-know-dark.png b/Frontend/lib/mih_components/mih_package_components/assets/images/i-dont-know-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a9e5cff94257df633d4beb44f1514c99bcae750b GIT binary patch literal 6002 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 { late ImageProvider? imagePreview; + ImageProvider? getAvatar() { + Color dark = const Color(0XFF3A4454); + if (widget.imageFile == null) { + if (widget.backgroundColor == dark) { + print("here in light icon"); + return const AssetImage( + 'lib/mih_components/mih_package_components/assets/images/i-dont-know-light.png'); + } else { + print("here in dark icon"); + return const AssetImage( + 'lib/mih_components/mih_package_components/assets/images/i-dont-know-dark.png'); + } + } else { + return widget.imageFile; + } + } + @override void initState() { super.initState(); + print("Avatar started"); setState(() { - imagePreview = widget.imageFile; + imagePreview = getAvatar(); }); } @@ -51,7 +71,7 @@ class _MihCircleAvatarState extends State { children: [ CircleAvatar( radius: widget.width / 2.2, - backgroundColor: widget.frameColor, + backgroundColor: widget.backgroundColor, backgroundImage: imagePreview, ), FittedBox( diff --git a/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart index a7c92dd5..39df30a0 100644 --- a/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart +++ b/Frontend/lib/mih_packages/mih_home/components/mih_app_drawer.dart @@ -41,63 +41,56 @@ class _MIHAppDrawerState extends State { // onChange: (newProPic) {}, // ), //print(widget.propicFile); - ImageProvider logoFrame = - MzanziInnovationHub.of(context)!.theme.logoFrame(); - if (widget.propicFile != null) { - return GestureDetector( - onTap: () { - Navigator.of(context).pop(); - Navigator.of(context).pushNamed( - '/mzansi-profile', - arguments: AppProfileUpdateArguments( - widget.signedInUser, widget.propicFile), - ); - }, - child: MihCircleAvatar( - imageFile: widget.propicFile, - width: 60, - editable: false, - fileNameController: proPicController, - onChange: (_) {}, - userSelectedfile: null, - frameColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - ), - // MIHProfilePicture( - // profilePictureFile: widget.propicFile, - // proPicController: proPicController, - // proPic: null, - // width: 60, - // radius: 27, - // drawerMode: true, - // editable: false, - // frameColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), - // onChange: (newProPic) {}, - // ), - - // Stack( - // alignment: Alignment.center, - // fit: StackFit.loose, - // children: [ - // CircleAvatar( - // backgroundColor: - // MzanziInnovationHub.of(context)!.theme.primaryColor(), - // backgroundImage: widget.propicFile, - // //'https://media.licdn.com/dms/image/D4D03AQGd1-QhjtWWpA/profile-displayphoto-shrink_400_400/0/1671698053061?e=2147483647&v=beta&t=a3dJI5yxs5-KeXjj10LcNCFuC9IOfa8nNn3k_Qyr0CA'), - // radius: 27, - // ), - // SizedBox( - // width: 60, - // child: Image(image: logoFrame), - // ) - // ], - // ), - ); - } else { - return SizedBox( + return GestureDetector( + onTap: () { + Navigator.of(context).pop(); + Navigator.of(context).pushNamed( + '/mzansi-profile', + arguments: + AppProfileUpdateArguments(widget.signedInUser, widget.propicFile), + ); + }, + child: MihCircleAvatar( + imageFile: widget.propicFile, width: 60, - child: Image(image: logoFrame), - ); - } + editable: false, + fileNameController: proPicController, + onChange: (_) {}, + userSelectedfile: null, + frameColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + backgroundColor: + MzanziInnovationHub.of(context)!.theme.secondaryColor(), + ), + // MIHProfilePicture( + // profilePictureFile: widget.propicFile, + // proPicController: proPicController, + // proPic: null, + // width: 60, + // radius: 27, + // drawerMode: true, + // editable: false, + // frameColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), + // onChange: (newProPic) {}, + // ), + + // Stack( + // alignment: Alignment.center, + // fit: StackFit.loose, + // children: [ + // CircleAvatar( + // backgroundColor: + // MzanziInnovationHub.of(context)!.theme.primaryColor(), + // backgroundImage: widget.propicFile, + // //'https://media.licdn.com/dms/image/D4D03AQGd1-QhjtWWpA/profile-displayphoto-shrink_400_400/0/1671698053061?e=2147483647&v=beta&t=a3dJI5yxs5-KeXjj10LcNCFuC9IOfa8nNn3k_Qyr0CA'), + // radius: 27, + // ), + // SizedBox( + // width: 60, + // child: Image(image: logoFrame), + // ) + // ], + // ), + ); } @override diff --git a/Frontend/lib/mih_packages/mih_home/mih_home.dart b/Frontend/lib/mih_packages/mih_home/mih_home.dart index b4628fdd..003b6b02 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_home.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_home.dart @@ -109,6 +109,8 @@ class _MihHomeState extends State { userSelectedfile: null, // frameColor: frameColor, frameColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), + backgroundColor: + MzanziInnovationHub.of(context)!.theme.primaryColor(), onChange: (_) {}, ), // MIHProfilePicture( diff --git a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart index 95fb57c2..0d203d96 100644 --- a/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart +++ b/Frontend/lib/mih_packages/mih_home/mih_profile_getter.dart @@ -35,17 +35,6 @@ class _MIHProfileGetterState extends State { ImageProvider? propicFile; int _selcetedIndex = 0; - ImageProvider? isPictureAvailable(String url) { - if (url == "") { - return const AssetImage( - 'lib/mih_components/mih_package_components/assets/images/i-dont-know-2.png'); - } else if (url != "") { - return NetworkImage(url); - } else { - return null; - } - } - bool isUserNew(AppUser signedInUser) { if (signedInUser.fname == "") { return true; @@ -249,7 +238,9 @@ class _MIHProfileGetterState extends State { business: snapshot.data!.business, patient: snapshot.data!.patient, notifications: snapshot.data!.notifi, - propicFile: isPictureAvailable(snapshot.data!.profilePicUrl), + propicFile: snapshot.data!.profilePicUrl != "" + ? NetworkImage(snapshot.data!.profilePicUrl) + : null, isUserNew: isUserNew(snapshot.requireData.signedInUser), isBusinessUser: isBusinessUser(snapshot.requireData.signedInUser), isBusinessUserNew: isBusinessUserNew(snapshot.data!.businessUser),