From 4408f016bfb2201870e3b833e4a01d581310a828 Mon Sep 17 00:00:00 2001 From: vedant aggarwal Date: Tue, 26 Nov 2024 19:46:00 +0530 Subject: [PATCH] NTP-15803 | Vedant Aggarwal | Increasing debounce time on Pay button click to avoid multiple payments (#13821) --- .../src/main/kotlin/com/navi/pay/common/ui/NaviPayButtons.kt | 3 ++- .../management/common/sendmoney/ui/RequestApprovalSection.kt | 1 + .../common/sendmoney/ui/SendMoneyAccountSelectionView.kt | 3 ++- .../navi/pay/management/common/sendmoney/ui/SendMoneyFooter.kt | 1 + .../com/navi/pay/management/lite/ui/AddBalanceModalContent.kt | 3 ++- .../kotlin/com/navi/pay/management/lite/ui/UpiLiteSection.kt | 2 +- 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayButtons.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayButtons.kt index f0433fee0a..5bbd1ca9f8 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayButtons.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/ui/NaviPayButtons.kt @@ -69,6 +69,7 @@ fun ThemeRoundedButton( disabledBackgroundColor: Color = NaviPayColor.ctaDisabled, overflow: TextOverflow = TextOverflow.Clip, maxLines: Int = Int.MAX_VALUE, + debounceTime: Long? = 300L, onClick: () -> Unit, ) { @@ -76,7 +77,7 @@ fun ThemeRoundedButton( Button( elevation = ButtonDefaults.elevation(defaultElevation = 0.dp), - onClick = { clickDebounce.processClick { onClick() } }, + onClick = { clickDebounce.processClick(debounceTime = debounceTime) { onClick() } }, modifier = modifier, shape = RoundedCornerShape(cornerRadius), contentPadding = paddingValues, diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/RequestApprovalSection.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/RequestApprovalSection.kt index 59844b870b..0e47a6fa40 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/RequestApprovalSection.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/RequestApprovalSection.kt @@ -51,6 +51,7 @@ fun RequestApprovalSection( enabled = (bankAccountsState is BankAccountsState.AccountList) && mainCtaState !is SendMoneyMainCtaState.Disabled, + debounceTime = 800L ) { when (mainCtaState) { is SendMoneyMainCtaState.Pay -> onApproveClicked() diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyAccountSelectionView.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyAccountSelectionView.kt index 57b02d8c93..adcb5399fa 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyAccountSelectionView.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyAccountSelectionView.kt @@ -124,7 +124,8 @@ fun SendMoneyAccountSelectionView( paddingValues = PaddingValues(16.dp), enabled = mainCtaState !is SendMoneyMainCtaState.Disabled, lottieFileName = NAVI_PAY_PRIMARY_CTA_LOADER_LOTTIE, - showLoader = showPayButtonLoader + showLoader = showPayButtonLoader, + debounceTime = 800L ) { when (mainCtaState) { is SendMoneyMainCtaState.Pay -> onPayButtonClick("BottomSheetPayButton") diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyFooter.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyFooter.kt index f0eeaade66..02edec0529 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyFooter.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyFooter.kt @@ -98,6 +98,7 @@ private fun PayButton( enabled = mainCtaState !is SendMoneyMainCtaState.Disabled, lottieFileName = NAVI_PAY_PRIMARY_CTA_LOADER_LOTTIE, showLoader = showPayButtonLoader, + debounceTime = 800L, loaderStatePaddingValues = PaddingValues(10.dp) ) { when (mainCtaState) { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/AddBalanceModalContent.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/AddBalanceModalContent.kt index 6c3cfe332a..7a669a573c 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/AddBalanceModalContent.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/AddBalanceModalContent.kt @@ -133,7 +133,8 @@ fun AddBalanceModalContent( enabled = (mainCtaState is UpiLiteMainCtaState.SetPin) || isCtaBottomSheetButtonActive, showLoader = enableButtonLottie, - modifier = Modifier.fillMaxWidth().padding(bottom = 16.dp) + modifier = Modifier.fillMaxWidth().padding(bottom = 16.dp), + debounceTime = 800L ) { when (mainCtaState) { is UpiLiteMainCtaState.AddBalance -> diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/UpiLiteSection.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/UpiLiteSection.kt index 1b54e075b9..ebe0709de2 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/UpiLiteSection.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/lite/ui/UpiLiteSection.kt @@ -570,7 +570,7 @@ fun UpiLiteSection( enabled = isMainCtaEnabled, showLoader = enableButtonLottie, modifier = Modifier.weight(1f).height(48.dp), - debounceTime = 300L, + debounceTime = 800L, ) { when (mainCtaState) { is UpiLiteMainCtaState.AddBalance,