TF-3334 Use queue to handle multiple refresh changes mailbox from incoming websocket

This commit is contained in:
dab246
2024-12-23 12:24:50 +07:00
committed by Dat H. Pham
parent 6063f4b832
commit dfd622d7ec
19 changed files with 707 additions and 154 deletions
+14 -14
View File
@@ -143,20 +143,7 @@ abstract class BaseController extends GetxController
void onData(Either<Failure, Success> newState) {
viewState.value = newState;
viewState.value.fold(
(failure) {
if (failure is FeatureFailure) {
final isUrgentException = validateUrgentException(failure.exception);
if (isUrgentException) {
handleUrgentException(failure: failure, exception: failure.exception);
} else {
handleFailureViewState(failure);
}
} else {
handleFailureViewState(failure);
}
},
handleSuccessViewState);
viewState.value.fold(onDataFailureViewState, handleSuccessViewState);
}
void onError(dynamic error, StackTrace stackTrace) {
@@ -272,6 +259,19 @@ abstract class BaseController extends GetxController
}
}
void onDataFailureViewState(Failure failure) {
if (failure is FeatureFailure) {
final isUrgentException = validateUrgentException(failure.exception);
if (isUrgentException) {
handleUrgentException(failure: failure, exception: failure.exception);
} else {
handleFailureViewState(failure);
}
} else {
handleFailureViewState(failure);
}
}
void handleFailureViewState(Failure failure) async {
logError('$runtimeType::handleFailureViewState():Failure = $failure');
if (failure is LogoutOidcFailure) {