NTP-11357 | Shiv Natani | NB Double Loader Fix (#13542)

This commit is contained in:
Shiv Natani
2024-11-09 00:09:49 +05:30
committed by GitHub
parent ec3a15ab0a
commit c08ee5f9a9
4 changed files with 23 additions and 8 deletions

View File

@@ -74,6 +74,7 @@ fun NetBankingScreenListSection(
allBanks: List<BankDetails>,
onBankSelected: (bankDetails: BankDetails, isPopularBank: Boolean) -> Unit,
selectedBank: BankDetails?,
isSelectedFromPopularBanks: Boolean
) {
val lazyListState = rememberLazyListState()
val needToShowShadow by remember {
@@ -96,7 +97,8 @@ fun NetBankingScreenListSection(
PopularBanksListSection(
popularBanks = popularBanks,
onBankSelected = onBankSelected,
selectedBank = selectedBank
selectedBank = selectedBank,
isSelectedFromPopularBanks = isSelectedFromPopularBanks
)
Spacer(modifier = Modifier.height(24.dp))
}
@@ -120,7 +122,8 @@ fun NetBankingScreenListSection(
RegularBanksListItem(
bankEntity = bankEntity,
onBankSelected = onBankSelected,
selectedBank = selectedBank
selectedBank = selectedBank,
isSelectedFromPopularBanks = isSelectedFromPopularBanks
)
}
item { Spacer(modifier = Modifier.height(8.dp)) }
@@ -154,6 +157,7 @@ fun PopularBanksListSection(
popularBanks: List<BankDetails>,
onBankSelected: (bankDetails: BankDetails, isPopularBank: Boolean) -> Unit,
selectedBank: BankDetails?,
isSelectedFromPopularBanks: Boolean
) {
Column {
NaviText(
@@ -183,7 +187,8 @@ fun PopularBanksListSection(
bankEntity = bankEntity,
height = 100.dp,
onBankSelected = onBankSelected,
selectedBank = selectedBank
selectedBank = selectedBank,
isSelectedFromPopularBanks = isSelectedFromPopularBanks
)
}
}
@@ -196,6 +201,7 @@ fun PopularBanksGridItem(
height: Dp = 100.dp,
onBankSelected: (bankDetails: BankDetails, isPopularBank: Boolean) -> Unit,
selectedBank: BankDetails?,
isSelectedFromPopularBanks: Boolean
) {
Card(
modifier =
@@ -220,7 +226,7 @@ fun PopularBanksGridItem(
imageSize = 28.dp
)
Spacer(modifier = Modifier.weight(1f))
if (selectedBank?.bankCode == bankEntity.bankCode) {
if (selectedBank?.bankCode == bankEntity.bankCode && isSelectedFromPopularBanks) {
ShowNetBankingSelectLottie()
} else {
NaviText(
@@ -245,6 +251,7 @@ fun RegularBanksListItem(
bankEntity: BankDetails,
onBankSelected: (bankDetails: BankDetails, isPopularBank: Boolean) -> Unit,
selectedBank: BankDetails?,
isSelectedFromPopularBanks: Boolean
) {
Row(
verticalAlignment = Alignment.CenterVertically,
@@ -276,7 +283,7 @@ fun RegularBanksListItem(
overflow = TextOverflow.Ellipsis,
modifier = Modifier.weight(1f)
)
if (selectedBank?.bankCode == bankEntity.bankCode) {
if (selectedBank?.bankCode == bankEntity.bankCode && !isSelectedFromPopularBanks) {
Spacer(modifier = Modifier.weight(1f))
ShowNetBankingSelectLottie()
}

View File

@@ -27,6 +27,7 @@ data class NetBankingScreenState(
val showPopularBanks: Boolean,
val paymentAmount: Double,
val selectedBank: BankDetails?,
val isSelectedFromPopularBanks: Boolean,
) : UiState
sealed interface NetBankingScreenEvent : UiEvent {

View File

@@ -188,7 +188,8 @@ fun NetBankingScreen(
)
},
showPopularBanks = screenState.showPopularBanks,
selectedBank = screenState.selectedBank
selectedBank = screenState.selectedBank,
isSelectedFromPopularBanks = screenState.isSelectedFromPopularBanks
)
} else {
NoBanksFoundView()

View File

@@ -102,7 +102,8 @@ constructor(
showPopularBanks = true,
paymentAmount = 0.0,
selectedBank = null,
isLoading = false
isLoading = false,
isSelectedFromPopularBanks = false
)
}
@@ -165,7 +166,12 @@ constructor(
)
viewModelScope.safeLaunch(Dispatchers.IO) {
if (state.value.selectedBank == null) {
_state.update { it.copy(selectedBank = event.bankDetails) }
_state.update {
it.copy(
selectedBank = event.bankDetails,
isSelectedFromPopularBanks = event.isPopularBank
)
}
handleStartPayment()
}
}