family file loading fix.

dev_sultan
Sultan khan 3 days ago
parent 08876b1ae4
commit 09df05f11e

@ -29,7 +29,11 @@ class MedicalFileViewModel extends ChangeNotifier {
bool isPatientSickLeavePDFLoading = false; bool isPatientSickLeavePDFLoading = false;
bool isPatientMedicalReportsListLoading = false; bool isPatientMedicalReportsListLoading = false;
bool isPatientAllergiesListLoading = false; bool isPatientAllergiesListLoading = false;
bool _isFamilyFilesLoading = false;
bool get isFamilyFilesLoading => _isFamilyFilesLoading;
set setIsFamilyFilesLoading(bool value) => _isFamilyFilesLoading = value;
MedicalFileRepo medicalFileRepo; MedicalFileRepo medicalFileRepo;
ErrorHandlerService errorHandlerService; ErrorHandlerService errorHandlerService;
@ -431,6 +435,9 @@ class MedicalFileViewModel extends ChangeNotifier {
} }
Future<void> getFamilyFiles({int? status, Function(dynamic)? onSuccess, Function(String)? onError}) async { Future<void> getFamilyFiles({int? status, Function(dynamic)? onSuccess, Function(String)? onError}) async {
setIsFamilyFilesLoading = true;
final shouldShowLoader = patientFamilyFiles.isEmpty; final shouldShowLoader = patientFamilyFiles.isEmpty;
if (shouldShowLoader) { if (shouldShowLoader) {
LoaderBottomSheet.showLoader(); LoaderBottomSheet.showLoader();
@ -439,24 +446,31 @@ class MedicalFileViewModel extends ChangeNotifier {
final result = await medicalFileRepo.getPatientFamilyFiles(status, _appState.getSuperUserID != null ? _appState.getSuperUserID! : _appState.getAuthenticatedUser()!.patientId!); final result = await medicalFileRepo.getPatientFamilyFiles(status, _appState.getSuperUserID != null ? _appState.getSuperUserID! : _appState.getAuthenticatedUser()!.patientId!);
result.fold( result.fold(
(failure) async => await errorHandlerService.handleError( (failure) async {
failure: failure,
onOkPressed: () { setIsFamilyFilesLoading = false;
if (shouldShowLoader) {
LoaderBottomSheet.hideLoader(); await errorHandlerService.handleError(
} failure: failure,
onError!(failure.message); onOkPressed: () {
}, if (shouldShowLoader) {
), LoaderBottomSheet.hideLoader();
}
onError!(failure.message);
},
);
},
(apiResponse) { (apiResponse) {
if (apiResponse.messageStatus == 2) { if (apiResponse.messageStatus == 2) {
setIsFamilyFilesLoading = false;
// _dialogService.showErrorBottomSheet(message: apiResponse.errorMessage!, onOkPressed: () {}); // _dialogService.showErrorBottomSheet(message: apiResponse.errorMessage!, onOkPressed: () {});
if (shouldShowLoader) { if (shouldShowLoader) {
LoaderBottomSheet.hideLoader(); LoaderBottomSheet.hideLoader();
} }
} else if (apiResponse.messageStatus == 1) { } else if (apiResponse.messageStatus == 1) {
if (apiResponse.data != null) { if (apiResponse.data != null) {
// Add current user as the first active family file
final currentUser = _appState.getAuthenticatedUser()!; final currentUser = _appState.getAuthenticatedUser()!;
final currentUserFamilyFile = FamilyFileResponseModelLists( final currentUserFamilyFile = FamilyFileResponseModelLists(
patientId: currentUser.patientId, patientId: currentUser.patientId,
@ -536,6 +550,9 @@ class MedicalFileViewModel extends ChangeNotifier {
pendingFamilyFiles = newPendingFamilyFiles; pendingFamilyFiles = newPendingFamilyFiles;
} }
// Clear loading state on success
setIsFamilyFilesLoading = false;
if (shouldShowLoader) { if (shouldShowLoader) {
LoaderBottomSheet.hideLoader(); LoaderBottomSheet.hideLoader();
} }

@ -34,26 +34,14 @@ class _FamilyMedicalScreenState extends State<FamilyMedicalScreen> {
super.initState(); super.initState();
medicalVM = context.read<MedicalFileViewModel>(); medicalVM = context.read<MedicalFileViewModel>();
WidgetsBinding.instance.addPostFrameCallback((_) async { WidgetsBinding.instance.addPostFrameCallback((_) async {
final vm = medicalVM; if(medicalVM!.isFamilyFilesLoading) {
if (vm == null) return;
final shouldShowInitialLoader = vm.patientFamilyFiles.isEmpty;
if (shouldShowInitialLoader) {
LoaderBottomSheet.showLoader(); LoaderBottomSheet.showLoader();
} else {
LoaderBottomSheet.hideLoader();
} }
medicalVM?.onFamilyFileTabChange(0);
medicalVM?.getAllPendingRecordsByResponseId();
vm.onFamilyFileTabChange(0);
try {
AppState appState = getIt.get<AppState>();
if (!appState.getIsChildLoggedIn) {
await vm.getFamilyFiles(status: 0);
}
await vm.getAllPendingRecordsByResponseId();
} finally {
if (shouldShowInitialLoader) {
LoaderBottomSheet.hideLoader();
}
}
}); });
} }

Loading…
Cancel
Save