Skip to content

Commit abc45be

Browse files
Add Form Header if there is only one PaymentMethod
1 parent 9ab0a8a commit abc45be

File tree

7 files changed

+10
-12
lines changed

7 files changed

+10
-12
lines changed

paymentsheet/src/main/java/com/stripe/android/paymentelement/embedded/form/FormActivityUI.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ internal fun FormActivityUI(
6060
},
6161
content = {
6262
VerticalModeFormUI(
63-
interactor = interactor,
64-
showsWalletHeader = false
63+
interactor = interactor
6564
)
6665
USBankAccountMandate(state)
6766
FormActivityError(state)

paymentsheet/src/main/java/com/stripe/android/paymentsheet/navigation/PaymentSheetScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ internal sealed interface PaymentSheetScreen {
253253

254254
override fun title(isCompleteFlow: Boolean, isWalletEnabled: Boolean): StateFlow<ResolvableString?> {
255255
return interactor.state.mapAsStateFlow { state ->
256-
if (isWalletEnabled) {
256+
if (isWalletEnabled || state.supportedPaymentMethods.size == 1) {
257257
null
258258
} else if (isCompleteFlow) {
259259
R.string.stripe_paymentsheet_add_payment_method_title.resolvableString
@@ -359,7 +359,7 @@ internal sealed interface PaymentSheetScreen {
359359

360360
@Composable
361361
override fun Content(modifier: Modifier) {
362-
VerticalModeFormUI(interactor, showsWalletHeader, modifier)
362+
VerticalModeFormUI(interactor, modifier)
363363
}
364364

365365
override fun close() {

paymentsheet/src/main/java/com/stripe/android/paymentsheet/ui/PaymentElement.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import com.stripe.android.paymentsheet.model.PaymentMethodIncentive
2929
import com.stripe.android.paymentsheet.paymentdatacollection.FormArguments
3030
import com.stripe.android.paymentsheet.paymentdatacollection.ach.USBankAccountForm
3131
import com.stripe.android.paymentsheet.paymentdatacollection.ach.USBankAccountFormArguments
32+
import com.stripe.android.paymentsheet.verticalmode.VerticalModeFormHeaderUI
3233
import com.stripe.android.uicore.StripeTheme
3334
import com.stripe.android.uicore.elements.FormElement
3435
import com.stripe.android.uicore.getOuterFormInsets
@@ -76,6 +77,8 @@ internal fun PaymentElement(
7677
modifier = Modifier.padding(bottom = 12.dp),
7778
updatePaymentMethodVisibility = updatePaymentMethodVisibility,
7879
)
80+
} else if (supportedPaymentMethods.size == 1) {
81+
VerticalModeFormHeaderUI(enabled, supportedPaymentMethods.first().asFormHeaderInformation(incentive))
7982
}
8083

8184
FormElement(

paymentsheet/src/main/java/com/stripe/android/paymentsheet/verticalmode/VerticalModeFormUI.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ const val TEST_TAG_HEADER_TITLE = "TEST_TAG_HEADER_TITLE"
3434
@Composable
3535
internal fun VerticalModeFormUI(
3636
interactor: VerticalModeFormInteractor,
37-
showsWalletHeader: Boolean,
3837
modifier: Modifier = Modifier
3938
) {
4039
val horizontalPadding = StripeTheme.getOuterFormInsets()
@@ -45,7 +44,7 @@ internal fun VerticalModeFormUI(
4544
Column(modifier) {
4645
val headerInformation = state.headerInformation
4746
val enabled = !state.isProcessing
48-
if (headerInformation != null && !showsWalletHeader) {
47+
if (headerInformation != null) {
4948
VerticalModeFormHeaderUI(isEnabled = enabled, formHeaderInformation = headerInformation)
5049
}
5150

paymentsheet/src/test/java/com/stripe/android/paymentsheet/navigation/PaymentSheetScreenAddFirstPaymentMethodTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import com.stripe.android.testing.CoroutineTestRule
1212
import kotlinx.coroutines.test.runTest
1313
import org.junit.Rule
1414
import org.junit.Test
15-
import com.stripe.android.R as PaymentsCoreR
1615

1716
internal class PaymentSheetScreenAddFirstPaymentMethodTest {
1817
@get:Rule
@@ -49,7 +48,7 @@ internal class PaymentSheetScreenAddFirstPaymentMethodTest {
4948
val interactor = FakeAddPaymentMethodInteractor(state)
5049
PaymentSheetScreen.AddFirstPaymentMethod(interactor)
5150
.title(isCompleteFlow = false, isWalletEnabled = false).test {
52-
assertThat(awaitItem()).isEqualTo(PaymentsCoreR.string.stripe_title_add_a_card.resolvableString)
51+
assertThat(awaitItem()).isEqualTo(null)
5352
}
5453
}
5554

@@ -66,7 +65,7 @@ internal class PaymentSheetScreenAddFirstPaymentMethodTest {
6665
val interactor = FakeAddPaymentMethodInteractor(state)
6766
PaymentSheetScreen.AddFirstPaymentMethod(interactor)
6867
.title(isCompleteFlow = false, isWalletEnabled = false).test {
69-
assertThat(awaitItem()).isEqualTo(R.string.stripe_paymentsheet_choose_payment_method.resolvableString)
68+
assertThat(awaitItem()).isEqualTo(null)
7069
}
7170
}
7271

paymentsheet/src/test/java/com/stripe/android/paymentsheet/verticalmode/VerticalModeFormUIScreenshotTest.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,6 @@ internal class VerticalModeFormUIScreenshotTest {
456456
paymentMethodCode: PaymentMethodCode,
457457
metadata: PaymentMethodMetadata,
458458
isProcessing: Boolean = false,
459-
showsWalletHeader: Boolean = false,
460459
) {
461460
ViewModelStoreOwnerContext {
462461
VerticalModeFormUI(
@@ -465,7 +464,6 @@ internal class VerticalModeFormUIScreenshotTest {
465464
metadata = metadata,
466465
isProcessing = isProcessing,
467466
),
468-
showsWalletHeader = showsWalletHeader,
469467
)
470468
}
471469
}

paymentsheet/src/test/java/com/stripe/android/paymentsheet/verticalmode/VerticalModeFormUITest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ internal class VerticalModeFormUITest {
130130
LocalCardNumberCompletedEventReporter provides { },
131131
LocalCardBrandDisallowedReporter provides { }
132132
) {
133-
VerticalModeFormUI(interactor, showsWalletHeader = false)
133+
VerticalModeFormUI(interactor)
134134
}
135135
}
136136

0 commit comments

Comments
 (0)