Tp 50835 footer loader not stopping in loan details page (#8921)

This commit is contained in:
Soumya Ranjan Patra
2023-12-11 13:49:40 +05:30
committed by GitHub
parent cf889f057f
commit b3b1307a0e
2 changed files with 13 additions and 6 deletions

View File

@@ -22,7 +22,7 @@ fun lambdaApiActionHandler(
}
LambdaType.LOAN_OFFER_DETAILS.name -> {
val map = getResolvedFieldValue(fields = lambdaApiAction.fields, handle = viewModel.handle)
viewModel.fetchOfferDetails(map)
viewModel.fetchOfferDetails(lambdaApiAction = lambdaApiAction, resolvedValues = map)
}
LambdaType.APPLY_LOAN.name -> {
val map = getResolvedFieldValue(fields = lambdaApiAction.fields, handle = viewModel.handle)

View File

@@ -78,6 +78,7 @@ import com.navi.base.sharedpref.PreferenceManager
import com.navi.base.utils.BaseUtils
import com.navi.base.utils.isNotNull
import com.navi.base.utils.isNotNullAndNotEmpty
import com.navi.base.utils.isNull
import com.navi.base.utils.orFalse
import com.navi.common.uitron.model.action.LambdaApiAction
import com.navi.common.utils.deviceId
@@ -143,9 +144,12 @@ open class LambdaVM constructor(
}
}
fun fetchOfferDetails(resolvedValues: MutableMap<String, Any?>) {
fun fetchOfferDetails(
lambdaApiAction: LambdaApiAction,
resolvedValues: MutableMap<String, Any?>
) {
viewModelScope.launch(Dispatchers.IO) {
if (_clonedScreenDefinitionState.value == null) {
if (_clonedScreenDefinitionState.value.isNull()) {
_clonedScreenDefinitionState.value = getScreenStructurePreRenderState()
}
@@ -159,10 +163,13 @@ open class LambdaVM constructor(
if (
savedAmount == amount &&
savedTenure == tenure &&
savedAmount != null &&
savedTenure != null
savedAmount.isNotNull() &&
savedTenure.isNotNull()
)
return@launch
handleActions(lambdaApiAction.preExecutionAction)
_lambdaState.value = LambdaState.Loading
if (
@@ -180,7 +187,7 @@ open class LambdaVM constructor(
)
_lambdaState.value =
when {
lambdaResponse.data != null && _clonedScreenDefinitionState.value != null -> {
lambdaResponse.data.isNotNull() && _clonedScreenDefinitionState.value.isNotNull() -> {
LambdaState.Success(LambdaResponseType())
val updatedResponse =
BasePathInjector<ApScreenDefinitionStructure, Any?>()