family screen & widgets

pull/76/head
aamir-csol 1 month ago
parent 9b33745a57
commit 9e8011c34c

@ -1,4 +1,6 @@
import 'package:hmg_patient_app_new/core/app_assets.dart'; import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/enums.dart'; import 'package:hmg_patient_app_new/core/enums.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
@ -365,7 +367,8 @@ extension DynamicTextStyleExtension on BuildContext {
TextBaseline? textBaseline, TextBaseline? textBaseline,
FontStyle? fontStyle, FontStyle? fontStyle,
bool isLanguageSwitcher = false}) { bool isLanguageSwitcher = false}) {
final family = FontUtils.getFontFamilyForLanguage(true); AppState appState = getIt.get<AppState>();
final family = appState.getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins';
return TextStyle( return TextStyle(
fontFamily: family, fontFamily: family,
fontSize: fontSize, fontSize: fontSize,

@ -6,6 +6,7 @@ import 'package:hmg_patient_app_new/core/api_consts.dart';
import 'package:hmg_patient_app_new/core/app_state.dart'; import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/common_models/generic_api_model.dart'; import 'package:hmg_patient_app_new/core/common_models/generic_api_model.dart';
import 'package:hmg_patient_app_new/core/common_models/privilege/PrivilegeModel.dart'; import 'package:hmg_patient_app_new/core/common_models/privilege/PrivilegeModel.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/exceptions/api_failure.dart'; import 'package:hmg_patient_app_new/core/exceptions/api_failure.dart';
import 'package:hmg_patient_app_new/features/authentication/models/request_models/check_activation_code_register_request_model.dart'; import 'package:hmg_patient_app_new/features/authentication/models/request_models/check_activation_code_register_request_model.dart';
import 'package:hmg_patient_app_new/features/authentication/models/resp_models/select_device_by_imei.dart'; import 'package:hmg_patient_app_new/features/authentication/models/resp_models/select_device_by_imei.dart';
@ -21,7 +22,7 @@ abstract class AuthenticationRepo {
Future<Either<Failure, GenericApiModel<dynamic>>> sendActivationCodeRepo({required dynamic sendActivationCodeReq, String? languageID, bool isRegister = false, bool isFormFamilyFile = false}); Future<Either<Failure, GenericApiModel<dynamic>>> sendActivationCodeRepo({required dynamic sendActivationCodeReq, String? languageID, bool isRegister = false, bool isFormFamilyFile = false});
Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo( Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo(
{required dynamic newRequest, required String? activationCode, required bool isRegister, bool isFormFamilyFile = false, int? patientShareRequestID, int? responseID}); {required dynamic newRequest, required String? activationCode, required bool isRegister, bool isFormFamilyFile = false, int? patientShareRequestID, int? responseID, String? familyFileTokenID});
Future<Either<Failure, GenericApiModel<dynamic>>> checkIfUserAgreed({required dynamic commonAuthanticatedRequest}); Future<Either<Failure, GenericApiModel<dynamic>>> checkIfUserAgreed({required dynamic commonAuthanticatedRequest});
@ -176,14 +177,14 @@ class AuthenticationRepoImp implements AuthenticationRepo {
} }
@override @override
Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo({ Future<Either<Failure, GenericApiModel<dynamic>>> checkActivationCodeRepo(
required dynamic newRequest, // could be CheckActivationCodeReq or CheckActivationCodeRegisterReq {required dynamic newRequest, // could be CheckActivationCodeReq or CheckActivationCodeRegisterReq
required String? activationCode, required String? activationCode,
required bool isRegister, required bool isRegister,
bool isFormFamilyFile = false, bool isFormFamilyFile = false,
int? patientShareRequestID, int? patientShareRequestID,
int? responseID, int? responseID,
}) async { String? familyFileTokenID}) async {
if (isRegister) { if (isRegister) {
newRequest["activationCode"] = activationCode ?? "0000"; newRequest["activationCode"] = activationCode ?? "0000";
newRequest["isSilentLogin"] = activationCode != null ? false : true; newRequest["isSilentLogin"] = activationCode != null ? false : true;
@ -197,11 +198,13 @@ class AuthenticationRepoImp implements AuthenticationRepo {
} }
Map<String, dynamic> familyRequest = {}; Map<String, dynamic> familyRequest = {};
if (isFormFamilyFile) { if (isFormFamilyFile) {
AppState appState = getIt.get<AppState>();
familyRequest = newRequest.toJson(); familyRequest = newRequest.toJson();
familyRequest['PatientShareRequestID'] = patientShareRequestID; familyRequest['PatientShareRequestID'] = patientShareRequestID;
familyRequest['ResponseID'] = responseID; familyRequest['ResponseID'] = responseID;
familyRequest['Status'] = 3; familyRequest['Status'] = 3;
familyRequest["PatientID"] = newRequest["PatientID"]; familyRequest["PatientID"] = appState.getAuthenticatedUser()!.patientId ?? 0;
familyRequest["LogInTokenID"] = familyFileTokenID;
} }
final endpoint = isFormFamilyFile final endpoint = isFormFamilyFile

@ -29,6 +29,7 @@ import 'package:hmg_patient_app_new/features/authentication/models/resp_models/c
import 'package:hmg_patient_app_new/features/authentication/models/resp_models/check_user_staus_nhic_response_model.dart'; import 'package:hmg_patient_app_new/features/authentication/models/resp_models/check_user_staus_nhic_response_model.dart';
import 'package:hmg_patient_app_new/features/authentication/models/resp_models/select_device_by_imei.dart'; import 'package:hmg_patient_app_new/features/authentication/models/resp_models/select_device_by_imei.dart';
import 'package:hmg_patient_app_new/features/medical_file/medical_file_repo.dart'; import 'package:hmg_patient_app_new/features/medical_file/medical_file_repo.dart';
import 'package:hmg_patient_app_new/features/medical_file/medical_file_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/authentication/login.dart'; import 'package:hmg_patient_app_new/presentation/authentication/login.dart';
import 'package:hmg_patient_app_new/presentation/authentication/saved_login_screen.dart'; import 'package:hmg_patient_app_new/presentation/authentication/saved_login_screen.dart';
@ -389,8 +390,10 @@ class AuthenticationViewModel extends ChangeNotifier {
(failure) async => await _errorHandlerService.handleError(failure: failure), (failure) async => await _errorHandlerService.handleError(failure: failure),
(apiResponse) async { (apiResponse) async {
int? patientShareRequestID = 0; int? patientShareRequestID = 0;
String? familyFileTokenID;
if (isFormFamilyFile) { if (isFormFamilyFile) {
patientShareRequestID = apiResponse.data['PatientShareRequestID']; patientShareRequestID = apiResponse.data['PatientShareRequestID'];
familyFileTokenID = apiResponse.data['LogInTokenID'];
} }
if (apiResponse.messageStatus == 2) { if (apiResponse.messageStatus == 2) {
LoaderBottomSheet.hideLoader(); LoaderBottomSheet.hideLoader();
@ -404,15 +407,15 @@ class AuthenticationViewModel extends ChangeNotifier {
LoaderBottomSheet.hideLoader(); LoaderBottomSheet.hideLoader();
if (!isComingFromResendOTP) { if (!isComingFromResendOTP) {
navigateToOTPScreen( navigateToOTPScreen(
otpTypeEnum: otpTypeEnum, otpTypeEnum: otpTypeEnum,
phoneNumber: phoneNumber, phoneNumber: phoneNumber,
isComingFromRegister: checkIsUserComingForRegister(request: payload), isComingFromRegister: checkIsUserComingForRegister(request: payload),
payload: payload, payload: payload,
isFormFamilyFile: isFormFamilyFile, isFormFamilyFile: isFormFamilyFile,
isExcludedUser: isExcludedUser, isExcludedUser: isExcludedUser,
responseID: responseID, responseID: responseID,
patientShareRequestID: patientShareRequestID, patientShareRequestID: patientShareRequestID,
); familyFileTokenID: familyFileTokenID);
} }
} else { } else {
// TODO: Handle isSMSSent false // TODO: Handle isSMSSent false
@ -438,7 +441,8 @@ class AuthenticationViewModel extends ChangeNotifier {
Function()? onResendActivation, Function()? onResendActivation,
bool isFormFamilyFile = false, bool isFormFamilyFile = false,
dynamic patientShareRequestID, dynamic patientShareRequestID,
dynamic responseID}) async { dynamic responseID,
String? familyFileTokenID}) async {
bool isForRegister = (_appState.getUserRegistrationPayload.healthId != null || _appState.getUserRegistrationPayload.patientOutSa == true || _appState.getUserRegistrationPayload.patientOutSa == 1); bool isForRegister = (_appState.getUserRegistrationPayload.healthId != null || _appState.getUserRegistrationPayload.patientOutSa == true || _appState.getUserRegistrationPayload.patientOutSa == 1);
final request = RequestUtils.getCommonRequestWelcome( final request = RequestUtils.getCommonRequestWelcome(
@ -510,7 +514,8 @@ class AuthenticationViewModel extends ChangeNotifier {
isRegister: false, isRegister: false,
isFormFamilyFile: isFormFamilyFile, isFormFamilyFile: isFormFamilyFile,
patientShareRequestID: patientShareRequestID, patientShareRequestID: patientShareRequestID,
responseID: responseID); responseID: responseID,
familyFileTokenID: familyFileTokenID);
resultEither.fold( resultEither.fold(
(failure) async => await _errorHandlerService.handleError( (failure) async => await _errorHandlerService.handleError(
@ -543,6 +548,18 @@ class AuthenticationViewModel extends ChangeNotifier {
// Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: RegisterNew)); // Navigator.popUntil(context, (route) => Utils.route(route, equalsTo: RegisterNew));
return; return;
} else { } else {
if (isFormFamilyFile) {
_dialogService.showCommonBottomSheetWithoutH(
message: "Family File Added Successfully",
onOkPressed: () {
LoaderBottomSheet.showLoader();
MedicalFileViewModel medicalFileVM = GetIt.instance<MedicalFileViewModel>();
medicalFileVM.getFamilyFiles();
LoaderBottomSheet.hideLoader();
_navigationService.popUntilNamed(AppRoutes.medicalFilePage);
});
}
if (activation.list != null && activation.list!.isNotEmpty) { if (activation.list != null && activation.list!.isNotEmpty) {
_appState.setAuthenticatedUser(activation.list!.first); _appState.setAuthenticatedUser(activation.list!.first);
_appState.setPrivilegeModelList(activation.list!.first.listPrivilege!); _appState.setPrivilegeModelList(activation.list!.first.listPrivilege!);
@ -630,7 +647,8 @@ class AuthenticationViewModel extends ChangeNotifier {
bool isFormFamilyFile = false, bool isFormFamilyFile = false,
bool isExcludedUser = false, bool isExcludedUser = false,
int? responseID, int? responseID,
int? patientShareRequestID}) async { int? patientShareRequestID,
String? familyFileTokenID}) async {
_navigationService.pushToOtpScreen( _navigationService.pushToOtpScreen(
phoneNumber: phoneNumber, phoneNumber: phoneNumber,
isFormFamilyFile: isFormFamilyFile, isFormFamilyFile: isFormFamilyFile,
@ -641,6 +659,7 @@ class AuthenticationViewModel extends ChangeNotifier {
otpTypeEnum: otpTypeEnum, otpTypeEnum: otpTypeEnum,
responseID: responseID, responseID: responseID,
patientShareRequestID: patientShareRequestID, patientShareRequestID: patientShareRequestID,
familyFileTokenID: familyFileTokenID,
onWrongActivationCode: (String? value) { onWrongActivationCode: (String? value) {
onWrongActivationCode(message: value); onWrongActivationCode(message: value);
}, },

@ -4,6 +4,7 @@ import 'package:hmg_patient_app_new/presentation/authentication/register.dart';
import 'package:hmg_patient_app_new/presentation/authentication/register_step2.dart'; import 'package:hmg_patient_app_new/presentation/authentication/register_step2.dart';
import 'package:hmg_patient_app_new/presentation/home/landing_page.dart'; import 'package:hmg_patient_app_new/presentation/home/landing_page.dart';
import 'package:hmg_patient_app_new/presentation/home/navigation_screen.dart'; import 'package:hmg_patient_app_new/presentation/home/navigation_screen.dart';
import 'package:hmg_patient_app_new/presentation/medical_file/medical_file_page.dart';
import 'package:hmg_patient_app_new/splashPage.dart'; import 'package:hmg_patient_app_new/splashPage.dart';
class AppRoutes { class AppRoutes {
@ -12,6 +13,7 @@ class AppRoutes {
static const String register = '/register'; static const String register = '/register';
static const String registerStepTwo = '/registerStepTwo'; static const String registerStepTwo = '/registerStepTwo';
static const String landingScreen = '/landingScreen'; static const String landingScreen = '/landingScreen';
static const String medicalFilePage = '/medicalFilePage';
static Map<String, WidgetBuilder> get routes => { static Map<String, WidgetBuilder> get routes => {
initialRoute: (context) => SplashPage(), initialRoute: (context) => SplashPage(),
@ -19,5 +21,6 @@ class AppRoutes {
landingScreen: (context) => LandingNavigation(), landingScreen: (context) => LandingNavigation(),
register: (context) => RegisterNew(), register: (context) => RegisterNew(),
registerStepTwo: (context) => RegisterNewStep2(), registerStepTwo: (context) => RegisterNewStep2(),
medicalFilePage: (context) => MedicalFilePage(),
}; };
} }

Loading…
Cancel
Save