diff --git a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart index fb018a73..6ce6950a 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_favourite_businesses.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/bookmarked_business.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart'; @@ -139,63 +140,97 @@ class _MihFavouriteBusinessesState extends State { // Display message if no results after search if (businesses.isEmpty && businessSearchController.text.isNotEmpty) { - return Column( - children: [ - const SizedBox(height: 50), - Icon( - Icons - .search_off_rounded, // A different icon for "no results" - size: 150, - color: MzansiInnovationHub.of(context)! - .theme - .secondaryColor(), - ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 10.0), - child: SizedBox( - width: 500, - child: Text( - "No businesses found for '${businessSearchController.text}'", // Specific message for no search results + return Padding( + padding: + const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 50), + Icon( + MihIcons.businessProfile, + size: 165, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + const SizedBox(height: 10), + Text( + "No Businesses added to your Favourites", + textAlign: TextAlign.center, + overflow: TextOverflow.visible, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + const SizedBox(height: 10), + Center( + child: RichText( textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, + text: TextSpan( + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + children: [ + TextSpan(text: "Use the Mzansi Search"), + // WidgetSpan( + // alignment: + // PlaceholderAlignment.middle, + // child: Icon( + // Icons.search, + // size: 20, + // color: + // MzansiInnovationHub.of(context)! + // .theme + // .secondaryColor(), + // ), + // ), + TextSpan( + text: + " to find Businesses of Mzansi"), + ], ), ), ), - ), - ], - ); - } else if (businesses.isEmpty) { - // Initial empty state - return Column( - children: [ - const SizedBox(height: 50), - Icon( - Icons.business_center_rounded, - size: 150, - color: MzansiInnovationHub.of(context)! - .theme - .secondaryColor(), - ), - Padding( - padding: const EdgeInsets.symmetric( - horizontal: 10.0), - child: SizedBox( - width: 500, - child: Text( - "No favourites yet, use Mzansi Search to find and bookmark businesses you like", - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ], + ], + ), ); + // return Column( + // children: [ + // const SizedBox(height: 50), + // Icon( + // Icons.business_center_rounded, + // size: 150, + // color: MzansiInnovationHub.of(context)! + // .theme + // .secondaryColor(), + // ), + // Padding( + // padding: const EdgeInsets.symmetric( + // horizontal: 10.0), + // child: SizedBox( + // width: 500, + // child: Text( + // "No favourites yet, use Mzansi Search to find and bookmark businesses you like", + // textAlign: TextAlign.center, + // style: TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.bold, + // ), + // ), + // ), + // ), + // ], + // ); } return BuildFavouriteBusinessesList( favouriteBusinesses: @@ -206,32 +241,94 @@ class _MihFavouriteBusinessesState extends State { ); } else { // This block handles the case where there are no bookmarked businesses initially - return Column( - children: [ - const SizedBox(height: 50), - Icon( - Icons.business_center_rounded, - size: 150, - color: MzansiInnovationHub.of(context)! - .theme - .secondaryColor(), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 10.0), - child: SizedBox( - width: 500, - child: Text( - "No favourites yet, use Mzansi Search to find and bookmark businesses you like", + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 50), + Icon( + MihIcons.businessProfile, + size: 165, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + const SizedBox(height: 10), + Text( + "No Businesses added to your Favourites", + textAlign: TextAlign.center, + overflow: TextOverflow.visible, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + const SizedBox(height: 10), + Center( + child: RichText( textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, + text: TextSpan( + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + children: [ + TextSpan(text: "Use the Mzansi Search"), + // WidgetSpan( + // alignment: + // PlaceholderAlignment.middle, + // child: Icon( + // Icons.search, + // size: 20, + // color: + // MzansiInnovationHub.of(context)! + // .theme + // .secondaryColor(), + // ), + // ), + TextSpan( + text: " to find Businesses of Mzansi"), + ], ), ), ), - ), - ], + ], + ), ); + // return Column( + // children: [ + // const SizedBox(height: 50), + // Icon( + // Icons.business_center_rounded, + // size: 150, + // color: MzansiInnovationHub.of(context)! + // .theme + // .secondaryColor(), + // ), + // Padding( + // padding: const EdgeInsets.symmetric(horizontal: 10.0), + // child: SizedBox( + // width: 500, + // child: Text( + // "No favourites yet, use Mzansi Search to find and bookmark businesses you like", + // textAlign: TextAlign.center, + // style: TextStyle( + // fontSize: 18, + // fontWeight: FontWeight.bold, + // ), + // ), + // ), + // ), + // ], + // ); } } else if (snapshot.hasError) { return Center( diff --git a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart index 714f20a8..cb8a2806 100644 --- a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart +++ b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart @@ -282,31 +282,89 @@ class _MihSearchMzansiState extends State { ], ); } else if (!snapshot.hasData) { - return Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const SizedBox(height: 50), - Icon( - MihIcons.personalProfile, - size: 165, - color: - MzansiInnovationHub.of(context)!.theme.secondaryColor(), - ), - const SizedBox(height: 10), - Text( - "People Of Mzansi!", - textAlign: TextAlign.center, - overflow: TextOverflow.visible, - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 50), + Icon( + MihIcons.personalProfile, + size: 165, color: MzansiInnovationHub.of(context)!.theme.secondaryColor(), ), - ), - ], + const SizedBox(height: 10), + Text( + "Search for People Of Mzansi!", + textAlign: TextAlign.center, + overflow: TextOverflow.visible, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + const SizedBox(height: 10), + Center( + child: RichText( + textAlign: TextAlign.center, + text: TextSpan( + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + children: [ + TextSpan(text: "Press "), + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: Icon( + Icons.swap_horiz_rounded, + size: 20, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + TextSpan(text: " to search for Businesses of Mzansi"), + ], + ), + ), + ), + ], + ), ); + // return Column( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // const SizedBox(height: 50), + // Icon( + // MihIcons.personalProfile, + // size: 165, + // color: + // MzansiInnovationHub.of(context)!.theme.secondaryColor(), + // ), + // const SizedBox(height: 10), + // Text( + // "People Of Mzansi!", + // textAlign: TextAlign.center, + // overflow: TextOverflow.visible, + // style: TextStyle( + // fontSize: 25, + // fontWeight: FontWeight.bold, + // color: + // MzansiInnovationHub.of(context)!.theme.secondaryColor(), + // ), + // ), + // ], + // ); } else if (snapshot.connectionState == ConnectionState.done && snapshot.hasData && snapshot.requireData!.isEmpty) { @@ -400,30 +458,92 @@ class _MihSearchMzansiState extends State { ], ); } else if (!snapshot.hasData) { - return Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const SizedBox(height: 50), - Icon( - MihIcons.businessProfile, - size: 165, - color: - MzansiInnovationHub.of(context)!.theme.secondaryColor(), - ), - const SizedBox(height: 10), - Text( - "Businesses Of Mzansi!", - textAlign: TextAlign.center, - overflow: TextOverflow.visible, - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 50), + Icon( + MihIcons.personalProfile, + size: 165, color: MzansiInnovationHub.of(context)!.theme.secondaryColor(), ), - ), - ], + const SizedBox(height: 10), + Text( + "Search for Business Of Mzansi!", + textAlign: TextAlign.center, + overflow: TextOverflow.visible, + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + const SizedBox(height: 10), + Center( + child: RichText( + textAlign: TextAlign.center, + text: TextSpan( + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + children: [ + TextSpan(text: "Press "), + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: Icon( + Icons.swap_horiz_rounded, + size: 20, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + TextSpan(text: " to search for People of Mzansi"), + ], + ), + ), + ), + const SizedBox(height: 10), + Center( + child: RichText( + textAlign: TextAlign.center, + text: TextSpan( + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.normal, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + children: [ + TextSpan(text: "Press "), + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: Icon( + Icons.filter_list_rounded, + size: 20, + color: MzansiInnovationHub.of(context)! + .theme + .secondaryColor(), + ), + ), + TextSpan(text: " to filter business types"), + ], + ), + ), + ), + ], + ), ); } else { return Center(