BUG: Business Profile Tool Transitions
This commit is contained in:
@@ -17,7 +17,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_route_error.dart
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mine_sweeper/mih_mine_sweeper.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_ai/mzansi_ai.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/mzansi_directory.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/mzansi_business_profile.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/busines_profile.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/mzansi_business_profile_view.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/mzansi_set_up_business_profile.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/personal_profile/mzansi_profile.dart';
|
||||
@@ -190,9 +190,10 @@ class MihGoRouter {
|
||||
});
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
return MzansiBusinessProfile(
|
||||
key: UniqueKey(),
|
||||
);
|
||||
return BusinesProfile();
|
||||
// return MzansiBusinessProfile(
|
||||
// key: UniqueKey(),
|
||||
// );
|
||||
},
|
||||
),
|
||||
GoRoute(
|
||||
|
||||
@@ -1,34 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_details.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_qr_code.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_reviews.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_business_user_search.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_team.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/package_tools/mih_my_business_user.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_business_employee_services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MzansiBusinessProfile extends StatefulWidget {
|
||||
const MzansiBusinessProfile({
|
||||
super.key,
|
||||
});
|
||||
class BusinesProfile extends StatefulWidget {
|
||||
const BusinesProfile({super.key});
|
||||
|
||||
@override
|
||||
State<MzansiBusinessProfile> createState() => _MzansiBusinessProfileState();
|
||||
State<BusinesProfile> createState() => _BusinesProfileState();
|
||||
}
|
||||
|
||||
class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
||||
class _BusinesProfileState extends State<BusinesProfile> {
|
||||
Future<void> initialiseBusinessData() async {
|
||||
MzansiProfileProvider profileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
await MihBusinessEmployeeServices()
|
||||
.fetchEmployees(profileProvider, context);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
initialiseBusinessData();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MihPackage(
|
||||
appActionButton: getAction(),
|
||||
appTools: getTools(),
|
||||
appBody: getToolBody(),
|
||||
appToolTitles: getToolTitle(),
|
||||
selectedbodyIndex: context.watch<MzansiProfileProvider>().businessIndex,
|
||||
onIndexChange: (newIndex) {
|
||||
context.read<MzansiProfileProvider>().setBusinessIndex(newIndex);
|
||||
@@ -45,7 +56,6 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
||||
'mihHome',
|
||||
);
|
||||
FocusScope.of(context).unfocus();
|
||||
context.read<MzansiProfileProvider>().setBusinessIndex(0);
|
||||
},
|
||||
);
|
||||
}
|
||||
@@ -79,22 +89,6 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getToolBody() {
|
||||
List<Widget> toolBodies = [
|
||||
MihBusinessDetails(),
|
||||
MihMyBusinessUser(),
|
||||
MihMyBusinessTeam(),
|
||||
MihBusinessUserSearch(),
|
||||
MihBusinessReviews(
|
||||
business: context.watch<MzansiProfileProvider>().business!),
|
||||
MihBusinessQrCode(
|
||||
business: context.watch<MzansiProfileProvider>().business!,
|
||||
// startUpSearch: "",
|
||||
),
|
||||
];
|
||||
return toolBodies;
|
||||
}
|
||||
|
||||
List<String> getToolTitle() {
|
||||
List<String> toolTitles = [
|
||||
"Profile",
|
||||
@@ -106,4 +100,16 @@ class _MzansiBusinessProfileState extends State<MzansiBusinessProfile> {
|
||||
];
|
||||
return toolTitles;
|
||||
}
|
||||
|
||||
List<Widget> getToolBody() {
|
||||
List<Widget> toolBodies = [
|
||||
MihBusinessDetails(),
|
||||
MihMyBusinessUser(),
|
||||
MihMyBusinessTeam(),
|
||||
MihBusinessUserSearch(),
|
||||
MihBusinessReviews(business: null),
|
||||
MihBusinessQrCode(business: null),
|
||||
];
|
||||
return toolBodies;
|
||||
}
|
||||
}
|
||||
@@ -14,22 +14,22 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
||||
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_single_child_scroll.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.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_circle_avatar.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:screenshot/screenshot.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:supertokens_flutter/supertokens.dart';
|
||||
|
||||
class MihBusinessQrCode extends StatefulWidget {
|
||||
final Business business;
|
||||
// final String? startUpSearch;
|
||||
final Business? business;
|
||||
const MihBusinessQrCode({
|
||||
super.key,
|
||||
required this.business,
|
||||
// required this.startUpSearch,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -38,6 +38,7 @@ class MihBusinessQrCode extends StatefulWidget {
|
||||
|
||||
class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
late Future<String> futureImageUrl;
|
||||
late Business business;
|
||||
PlatformFile? file;
|
||||
late String qrCodedata;
|
||||
int qrSize = 500;
|
||||
@@ -66,14 +67,14 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
.substring(2, 8);
|
||||
// KenLogger.warning(bgColor);
|
||||
String encodedData =
|
||||
Uri.encodeComponent("$qrCodedata${widget.business.business_id}");
|
||||
Uri.encodeComponent("$qrCodedata${business.business_id}");
|
||||
|
||||
return "https://api.qrserver.com/v1/create-qr-code/?data=$encodedData&size=${qrSize}x${qrSize}&bgcolor=$bgColor&color=$color";
|
||||
}
|
||||
|
||||
Future<void> saveImage(Uint8List imageBytes) async {
|
||||
final String filename =
|
||||
"${widget.business.Name}_QR_Code_${DateTime.now().millisecondsSinceEpoch}.png";
|
||||
"${business.Name}_QR_Code_${DateTime.now().millisecondsSinceEpoch}.png";
|
||||
if (kIsWeb) {
|
||||
await FileSaver.instance.saveFile(
|
||||
name: filename,
|
||||
@@ -241,7 +242,7 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
),
|
||||
FittedBox(
|
||||
child: Text(
|
||||
widget.business.Name,
|
||||
business.Name,
|
||||
style: TextStyle(
|
||||
fontSize: 35,
|
||||
fontWeight: FontWeight.bold,
|
||||
@@ -253,7 +254,7 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
),
|
||||
FittedBox(
|
||||
child: Text(
|
||||
widget.business.type,
|
||||
business.type,
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w600,
|
||||
@@ -335,9 +336,15 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
MzansiProfileProvider profileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (widget.business != null) {
|
||||
business = widget.business!;
|
||||
} else {
|
||||
business = profileProvider.business!;
|
||||
}
|
||||
_checkUserSession();
|
||||
futureImageUrl =
|
||||
MihFileApi.getMinioFileUrl(widget.business.logo_path, context);
|
||||
futureImageUrl = MihFileApi.getMinioFileUrl(business.logo_path, context);
|
||||
qrCodedata =
|
||||
"${AppEnviroment.baseAppUrl}/business-profile/view?business_id=";
|
||||
}
|
||||
@@ -418,8 +425,8 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
||||
onTap: () {
|
||||
shareMIHLink(
|
||||
context,
|
||||
"Check out ${widget.business.Name} on the MIH app",
|
||||
"$qrCodedata${widget.business.business_id}",
|
||||
"Check out ${business.Name} on the MIH app",
|
||||
"$qrCodedata${business.business_id}",
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -5,12 +5,14 @@ import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MihBusinessReviews extends StatefulWidget {
|
||||
final Business business;
|
||||
final Business? business;
|
||||
const MihBusinessReviews({
|
||||
super.key,
|
||||
required this.business,
|
||||
@@ -21,15 +23,19 @@ class MihBusinessReviews extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
||||
// late Future<List<BusinessReview>> _reviews;
|
||||
late Business business;
|
||||
|
||||
// @override
|
||||
// void initState() {
|
||||
// super.initState();
|
||||
// _reviews = MihMzansiDirectoryServices().getAllReviewsofBusiness(
|
||||
// widget.businessId,
|
||||
// );
|
||||
// }
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
MzansiProfileProvider profileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
if (widget.business != null) {
|
||||
business = widget.business!;
|
||||
} else {
|
||||
business = profileProvider.business!;
|
||||
}
|
||||
}
|
||||
|
||||
void onReviewTap(BusinessReview? businessReview, double width) {
|
||||
// showDialog(context: context, builder: (context)=> )
|
||||
@@ -37,7 +43,7 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return MihReviewBusinessWindow(
|
||||
business: widget.business,
|
||||
business: business,
|
||||
businessReview: businessReview,
|
||||
screenWidth: width,
|
||||
readOnly: true,
|
||||
@@ -52,7 +58,7 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
||||
double screenWidth = MediaQuery.of(context).size.width;
|
||||
return FutureBuilder(
|
||||
future: MihMzansiDirectoryServices().getAllReviewsofBusiness(
|
||||
widget.business.business_id,
|
||||
business.business_id,
|
||||
),
|
||||
builder: (context, asyncSnapshot) {
|
||||
if (asyncSnapshot.connectionState == ConnectionState.waiting) {
|
||||
@@ -93,7 +99,7 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
Text(
|
||||
"No reviews yet, be the first the review ${widget.business.Name}",
|
||||
"No reviews yet, be the first the review ${business.Name}",
|
||||
textAlign: TextAlign.center,
|
||||
overflow: TextOverflow.visible,
|
||||
style: TextStyle(
|
||||
|
||||
@@ -36,11 +36,9 @@ class _MihBusinessUserSearchState extends State<MihBusinessUserSearch> {
|
||||
|
||||
void submitUserForm(MzansiProfileProvider profileProvider) {
|
||||
if (searchController.text != "") {
|
||||
setState(() {
|
||||
userSearch = searchController.text;
|
||||
hasSearchedBefore = true;
|
||||
userSearchResults = fetchUsers(profileProvider, userSearch);
|
||||
});
|
||||
userSearch = searchController.text;
|
||||
hasSearchedBefore = true;
|
||||
userSearchResults = fetchUsers(profileProvider, userSearch);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,6 +190,7 @@ class _MihBusinessUserSearchState extends State<MihBusinessUserSearch> {
|
||||
searchController.clear();
|
||||
userSearch = "";
|
||||
});
|
||||
profileProvider.setUserearchResults(userSearchResults: []);
|
||||
},
|
||||
searchFocusNode: _searchFocusNode,
|
||||
),
|
||||
|
||||
@@ -7,7 +7,6 @@ import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_employee.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/builders/build_employee_list.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_services/mih_business_employee_services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MihMyBusinessTeam extends StatefulWidget {
|
||||
@@ -23,32 +22,11 @@ class _MihMyBusinessTeamState extends State<MihMyBusinessTeam> {
|
||||
String errorCode = "";
|
||||
String errorBody = "";
|
||||
|
||||
void getEmployeeData(MzansiProfileProvider mzansiProfileProvider) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
await MihBusinessEmployeeServices()
|
||||
.fetchEmployees(mzansiProfileProvider, context);
|
||||
});
|
||||
}
|
||||
// Future<void> fetchEmployees(
|
||||
// MzansiProfileProvider mzansiProfileProvider) async {
|
||||
// //print("Patien manager page: $endpoint");
|
||||
// final response = await http.get(Uri.parse(
|
||||
// "${AppEnviroment.baseApiUrl}/business-user/employees/${mzansiProfileProvider.businessUser!.business_id}"));
|
||||
// errorCode = response.statusCode.toString();
|
||||
// errorBody = response.body;
|
||||
// if (response.statusCode == 200) {
|
||||
// //print("Here1");
|
||||
// Iterable l = jsonDecode(response.body);
|
||||
// //print("Here2");
|
||||
// List<BusinessEmployee> employeeList = List<BusinessEmployee>.from(
|
||||
// l.map((model) => BusinessEmployee.fromJson(model)));
|
||||
// mzansiProfileProvider.setEmployeeList(employeeList: employeeList);
|
||||
// //print("Here3");
|
||||
// //print(patientQueue);
|
||||
// // return patientQueue;
|
||||
// } else {
|
||||
// throw Exception('failed to load employees');
|
||||
// }
|
||||
// void getEmployeeData(MzansiProfileProvider mzansiProfileProvider) {
|
||||
// WidgetsBinding.instance.addPostFrameCallback((_) async {
|
||||
// await MihBusinessEmployeeServices()
|
||||
// .fetchEmployees(mzansiProfileProvider, context);
|
||||
// });
|
||||
// }
|
||||
|
||||
Widget displayEmployeeList(List<BusinessEmployee> employeeList) {
|
||||
@@ -89,7 +67,6 @@ class _MihMyBusinessTeamState extends State<MihMyBusinessTeam> {
|
||||
builder: (BuildContext context,
|
||||
MzansiProfileProvider mzansiProfileProvider, Widget? child) {
|
||||
if (mzansiProfileProvider.employeeList == null) {
|
||||
getEmployeeData(mzansiProfileProvider);
|
||||
return Center(
|
||||
child: Mihloadingcircle(),
|
||||
);
|
||||
|
||||
@@ -218,19 +218,17 @@ class _MihMyBusinessUserState extends State<MihMyBusinessUser> {
|
||||
void setControllers() {
|
||||
MzansiProfileProvider mzansiProfileProvider =
|
||||
context.read<MzansiProfileProvider>();
|
||||
setState(() {
|
||||
fileNameController.text =
|
||||
mzansiProfileProvider.user!.pro_pic_path.split("/").last;
|
||||
signtureController.text =
|
||||
mzansiProfileProvider.businessUser!.sig_path.split("/").last;
|
||||
KenLogger.success("title: ${mzansiProfileProvider.businessUser!.title}");
|
||||
KenLogger.success(
|
||||
"sig url: ${mzansiProfileProvider.businessUser!.sig_path}");
|
||||
titleTextController.text = mzansiProfileProvider.businessUser!.title;
|
||||
fnameController.text = mzansiProfileProvider.user!.fname;
|
||||
lnameController.text = mzansiProfileProvider.user!.lname;
|
||||
accessController.text = mzansiProfileProvider.businessUser!.access;
|
||||
});
|
||||
fileNameController.text =
|
||||
mzansiProfileProvider.user!.pro_pic_path.split("/").last;
|
||||
signtureController.text =
|
||||
mzansiProfileProvider.businessUser!.sig_path.split("/").last;
|
||||
KenLogger.success("title: ${mzansiProfileProvider.businessUser!.title}");
|
||||
KenLogger.success(
|
||||
"sig url: ${mzansiProfileProvider.businessUser!.sig_path}");
|
||||
titleTextController.text = mzansiProfileProvider.businessUser!.title;
|
||||
fnameController.text = mzansiProfileProvider.user!.fname;
|
||||
lnameController.text = mzansiProfileProvider.user!.lname;
|
||||
accessController.text = mzansiProfileProvider.businessUser!.access;
|
||||
if (AppEnviroment.getEnv() == "Prod") {
|
||||
env = "Prod";
|
||||
} else {
|
||||
|
||||
@@ -94,7 +94,6 @@ class _MihWalletState extends State<MihWallet> {
|
||||
temp[const Icon(Icons.favorite)] = () {
|
||||
context.read<MzansiWalletProvider>().setToolIndex(1);
|
||||
};
|
||||
|
||||
return MihPackageTools(
|
||||
tools: temp,
|
||||
selcetedIndex: context.watch<MzansiWalletProvider>().toolIndex,
|
||||
|
||||
Reference in New Issue
Block a user