forked from yaso_meth/mih-project
Fix error route
This commit is contained in:
@@ -12,6 +12,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/mih_auth_f
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/mih_auth_password_reset.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_authentication/mih_authentication.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_home.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_route_error.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';
|
||||
@@ -473,7 +474,7 @@ class MihGoRouter {
|
||||
// 3. Error handling with `errorBuilder` and `redirect`
|
||||
errorBuilder: (BuildContext context, GoRouterState state) {
|
||||
KenLogger.error('Invalid Route');
|
||||
return const Placeholder();
|
||||
return const MihRouteError();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,281 +0,0 @@
|
||||
import 'package:mzansi_innovation_hub/main.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_user.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.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_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_config/mih_colors.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_home/mih_home.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../mih_services/mih_service_calls.dart';
|
||||
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||
import '../../mih_config/mih_env.dart';
|
||||
|
||||
class MIHProfileGetter extends StatefulWidget {
|
||||
final bool personalSelected;
|
||||
const MIHProfileGetter({
|
||||
super.key,
|
||||
required this.personalSelected,
|
||||
});
|
||||
|
||||
@override
|
||||
State<MIHProfileGetter> createState() => _MIHProfileGetterState();
|
||||
}
|
||||
|
||||
class _MIHProfileGetterState extends State<MIHProfileGetter> {
|
||||
String useremail = "";
|
||||
int amount = 10;
|
||||
final baseAPI = AppEnviroment.baseApiUrl;
|
||||
late Future<HomeArguments> profile;
|
||||
|
||||
String proPicUrl = "empty";
|
||||
ImageProvider<Object>? propicFile;
|
||||
int _selcetedIndex = 0;
|
||||
|
||||
bool isUserNew(AppUser signedInUser) {
|
||||
if (signedInUser.fname == "") {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool isDevActive() {
|
||||
if (AppEnviroment.getEnv() == "Dev") {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool isBusinessUser(AppUser signedInUser) {
|
||||
if (signedInUser.type == "personal") {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool isBusinessUserNew(BusinessUser? businessUser) {
|
||||
if (businessUser == null) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
MihPackageTools getErrorTools() {
|
||||
Map<Widget, void Function()?> temp = {};
|
||||
temp[const Icon(Icons.power_off_outlined)] = () {
|
||||
setState(() {
|
||||
_selcetedIndex = 0;
|
||||
});
|
||||
};
|
||||
return MihPackageTools(
|
||||
tools: temp,
|
||||
selcetedIndex: _selcetedIndex,
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getErrorToolBody(String error) {
|
||||
List<Widget> toolBodies = [
|
||||
MihPackageToolBody(
|
||||
borderOn: true,
|
||||
bodyItem: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Connection Error",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 35,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.power_off_outlined,
|
||||
size: 150,
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
),
|
||||
SizedBox(
|
||||
width: 500,
|
||||
child: Text(
|
||||
"Looks like we ran into an issue getting your data.\nPlease check you internet connection and try again.",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 15),
|
||||
MihButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).popAndPushNamed("/");
|
||||
},
|
||||
buttonColor: MihColors.getGreenColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
width: 300,
|
||||
child: Text(
|
||||
"Refresh",
|
||||
style: TextStyle(
|
||||
color: MihColors.getPrimaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 15),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: SizedBox(
|
||||
width: 500,
|
||||
child: SelectionArea(
|
||||
child: Text(
|
||||
"Error: $error",
|
||||
textAlign: TextAlign.left,
|
||||
style: TextStyle(
|
||||
color: MihColors.getRedColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||
"Dark"),
|
||||
fontSize: 15,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
];
|
||||
return toolBodies;
|
||||
}
|
||||
|
||||
Widget errorPage(String error) {
|
||||
return MihPackage(
|
||||
appActionButton: MihPackageAction(
|
||||
icon: const Icon(Icons.refresh),
|
||||
iconSize: 35,
|
||||
onTap: () {
|
||||
Navigator.of(context).popAndPushNamed("/");
|
||||
},
|
||||
),
|
||||
appTools: getErrorTools(),
|
||||
appBody: getErrorToolBody(error),
|
||||
selectedbodyIndex: _selcetedIndex,
|
||||
onIndexChange: (newValue) {
|
||||
setState(() {
|
||||
_selcetedIndex = newValue;
|
||||
});
|
||||
//print("Index: $_selcetedIndex");
|
||||
},
|
||||
);
|
||||
// return MIHLayoutBuilder(
|
||||
// actionButton: MIHAction(
|
||||
// icon: const Icon(Icons.refresh),
|
||||
// iconSize: 35,
|
||||
// onTap: () {
|
||||
// Navigator.of(context).popAndPushNamed("/");
|
||||
// },
|
||||
// ),
|
||||
// header: const MIHHeader(
|
||||
// headerAlignment: MainAxisAlignment.center,
|
||||
// headerItems: [
|
||||
// Text(
|
||||
// "Mzanzi Innovation Hub",
|
||||
// style: TextStyle(
|
||||
// fontWeight: FontWeight.bold,
|
||||
// fontSize: 20,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// secondaryActionButton: null,
|
||||
// body: MIHBody(
|
||||
// borderOn: false,
|
||||
// bodyItems: [
|
||||
// Align(
|
||||
// alignment: Alignment.center,
|
||||
// child: Text(
|
||||
// '$error occurred',
|
||||
// style: const TextStyle(fontSize: 18),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// actionDrawer: null,
|
||||
// secondaryActionDrawer: null,
|
||||
// bottomNavBar: null,
|
||||
// pullDownToRefresh: false,
|
||||
// onPullDown: () async {},
|
||||
// );
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// TODO: implement dispose
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
//profile = getProfile();
|
||||
profile = MIHApiCalls().getProfile(amount, context);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder(
|
||||
future: profile,
|
||||
builder: (BuildContext context, snapshot) {
|
||||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
if (snapshot.hasData) {
|
||||
return MihHome(
|
||||
// signedInUser: snapshot.requireData.signedInUser,
|
||||
// businessUser: snapshot.data!.businessUser,
|
||||
// business: snapshot.data!.business,
|
||||
// patient: snapshot.data!.patient,
|
||||
// notifications: snapshot.data!.notifi,
|
||||
// propicFile: snapshot.data!.profilePicUrl != ""
|
||||
// ? NetworkImage(snapshot.data!.profilePicUrl)
|
||||
// : null,
|
||||
// isUserNew: isUserNew(snapshot.requireData.signedInUser),
|
||||
// isBusinessUser: isBusinessUser(snapshot.requireData.signedInUser),
|
||||
// isBusinessUserNew: isBusinessUserNew(snapshot.data!.businessUser),
|
||||
// isDevActive: isDevActive(),
|
||||
personalSelected: widget.personalSelected,
|
||||
);
|
||||
// return MIHHomeLegacy(
|
||||
// signedInUser: snapshot.requireData.signedInUser,
|
||||
// businessUser: snapshot.data!.businessUser,
|
||||
// business: snapshot.data!.business,
|
||||
// patient: snapshot.data!.patient,
|
||||
// notifications: snapshot.data!.notifi,
|
||||
// propicFile: isPictureAvailable(snapshot.data!.profilePicUrl),
|
||||
// isUserNew: isUserNew(snapshot.requireData.signedInUser),
|
||||
// isBusinessUser: isBusinessUser(snapshot.requireData.signedInUser),
|
||||
// isBusinessUserNew: isBusinessUserNew(snapshot.data!.businessUser),
|
||||
// isDevActive: isDevActive(),
|
||||
// personalSelected: widget.personalSelected,
|
||||
// );
|
||||
} else {
|
||||
return errorPage(snapshot.error.toString());
|
||||
}
|
||||
}
|
||||
return const Mihloadingcircle();
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
149
Frontend/lib/mih_packages/mih_home/mih_route_error.dart
Normal file
149
Frontend/lib/mih_packages/mih_home/mih_route_error.dart
Normal file
@@ -0,0 +1,149 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:mzansi_innovation_hub/main.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.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.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_tool_body.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||
|
||||
class MihRouteError extends StatefulWidget {
|
||||
const MihRouteError({
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
State<MihRouteError> createState() => _MihRouteErrorState();
|
||||
}
|
||||
|
||||
class _MihRouteErrorState extends State<MihRouteError> {
|
||||
int _selcetedIndex = 0;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MihPackage(
|
||||
appActionButton: getErrorAction(),
|
||||
appTools: getErrorTools(),
|
||||
appBody: getErrorToolBody(),
|
||||
selectedbodyIndex: _selcetedIndex,
|
||||
onIndexChange: (newValue) {
|
||||
setState(() {
|
||||
_selcetedIndex = newValue;
|
||||
});
|
||||
//print("Index: $_selcetedIndex");
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
MihPackageAction getErrorAction() {
|
||||
return MihPackageAction(
|
||||
icon: const Icon(MihIcons.mihLogo),
|
||||
iconSize: 35,
|
||||
onTap: () {
|
||||
context.goNamed(
|
||||
'mihHome',
|
||||
extra: true,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
MihPackageTools getErrorTools() {
|
||||
Map<Widget, void Function()?> temp = {};
|
||||
temp[const Icon(Icons.link_off_rounded)] = () {
|
||||
setState(() {
|
||||
_selcetedIndex = 0;
|
||||
});
|
||||
};
|
||||
return MihPackageTools(
|
||||
tools: temp,
|
||||
selcetedIndex: _selcetedIndex,
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getErrorToolBody() {
|
||||
List<Widget> toolBodies = [
|
||||
MihPackageToolBody(
|
||||
borderOn: true,
|
||||
bodyItem: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"Oops! Wrong Turn.",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 35,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.link_off_rounded,
|
||||
size: 150,
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
),
|
||||
SizedBox(
|
||||
width: 700,
|
||||
child: Text(
|
||||
"It looks like you've taken a wrong turn and ended up on a package that doesn't exist within the MIH App.\n\nDon't worry, getting back is easy. Just click the button below or the MIH Logo to return to the correct path.",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: MihColors.getSecondaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 15),
|
||||
MihButton(
|
||||
onPressed: () {
|
||||
context.goNamed(
|
||||
'mihHome',
|
||||
extra: true,
|
||||
);
|
||||
},
|
||||
buttonColor: MihColors.getGreenColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
width: 300,
|
||||
child: Text(
|
||||
"Back to MIH",
|
||||
style: TextStyle(
|
||||
color: MihColors.getPrimaryColor(
|
||||
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
// const SizedBox(height: 15),
|
||||
// Padding(
|
||||
// padding: const EdgeInsets.all(10.0),
|
||||
// child: SizedBox(
|
||||
// width: 500,
|
||||
// child: SelectionArea(
|
||||
// child: Text(
|
||||
// "Error: $error",
|
||||
// textAlign: TextAlign.left,
|
||||
// style: TextStyle(
|
||||
// color: MihColors.getRedColor(
|
||||
// MzansiInnovationHub.of(context)!.theme.mode ==
|
||||
// "Dark"),
|
||||
// fontSize: 15,
|
||||
// fontWeight: FontWeight.bold,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
)
|
||||
];
|
||||
return toolBodies;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user