From 4d56904079bb5600ca92ffbaccbb4e06e7ce6a1f Mon Sep 17 00:00:00 2001 From: Yuki Date: Wed, 15 Jan 2025 13:47:10 -0800 Subject: [PATCH] Set embedded view default padding to zero as originally intended --- CHANGELOG.md | 3 +++ ...mbeddedElementCheckoutViewController.swift | 1 - .../EmbeddedPaymentElementContainerView.swift | 7 ++++--- .../EmbeddedPaymentElementSnapshotTests.swift | 10 ++++++++++ ...USBankAccountWithCompletionHandler_@3x.png | Bin 20686 -> 19194 bytes 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b93d7e1cb..891051099f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ### ApplePay * [Added] Added a `dismiss` method to `STPApplePayContext`. +### PaymentSheet +* [Fixed] Embedded Payment Element (private beta) layout margins default to zero. + ## 24.4.0 2025-01-13 ### PaymentSheet diff --git a/Example/PaymentSheet Example/PaymentSheet Example/ExampleEmbeddedElementCheckoutViewController.swift b/Example/PaymentSheet Example/PaymentSheet Example/ExampleEmbeddedElementCheckoutViewController.swift index 71a8ad70d01..aa277dac60f 100644 --- a/Example/PaymentSheet Example/PaymentSheet Example/ExampleEmbeddedElementCheckoutViewController.swift +++ b/Example/PaymentSheet Example/PaymentSheet Example/ExampleEmbeddedElementCheckoutViewController.swift @@ -388,7 +388,6 @@ private class PaymentMethodsViewController: UIViewController { scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor), ]) - embeddedPaymentElement.view.layoutMargins = .zero let stackView = UIStackView(arrangedSubviews: [embeddedPaymentElement.view, continueButton]) stackView.axis = .vertical stackView.translatesAutoresizingMaskIntoConstraints = false diff --git a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/Embedded/EmbeddedPaymentElementContainerView.swift b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/Embedded/EmbeddedPaymentElementContainerView.swift index f1fed0b7e6d..b83b12b310c 100644 --- a/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/Embedded/EmbeddedPaymentElementContainerView.swift +++ b/StripePaymentSheet/StripePaymentSheet/Source/PaymentSheet/Embedded/EmbeddedPaymentElementContainerView.swift @@ -15,14 +15,15 @@ class EmbeddedPaymentElementContainerView: UIView { init(embeddedPaymentMethodsView: EmbeddedPaymentMethodsView) { self.contentView = embeddedPaymentMethodsView super.init(frame: .zero) - addInitialView(contentView) + directionalLayoutMargins = .zero + setContentView(contentView) } required init?(coder: NSCoder) { fatalError() } - private func addInitialView(_ view: UIView) { + private func setContentView(_ view: UIView) { view.translatesAutoresizingMaskIntoConstraints = false addSubview(view) bottomAnchorConstraint = view.bottomAnchor.constraint(equalTo: layoutMarginsGuide.bottomAnchor) @@ -39,7 +40,7 @@ class EmbeddedPaymentElementContainerView: UIView { // A zero frame means we haven't been laid out yet. Simply replace the old view to avoid laying out before the view is ready and breaking constraints. contentView.removeFromSuperview() contentView = embeddedPaymentMethodsView - addInitialView(embeddedPaymentMethodsView) + setContentView(embeddedPaymentMethodsView) return } let oldContentView = contentView diff --git a/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/EmbeddedPaymentElementSnapshotTests.swift b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/EmbeddedPaymentElementSnapshotTests.swift index 32aaf6e9127..f405eb17035 100644 --- a/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/EmbeddedPaymentElementSnapshotTests.swift +++ b/StripePaymentSheet/StripePaymentSheetTests/PaymentSheet/EmbeddedPaymentElementSnapshotTests.swift @@ -50,4 +50,14 @@ class EmbeddedPaymentElementSnapshotTests: STPSnapshotTestCase, EmbeddedPaymentE XCTAssertTrue(delegateDidUpdateHeightCalled) XCTAssertFalse(delegateDidUpdatePaymentOptionCalled) } + + func testMarginsAreZero() async throws { + let sut = try await EmbeddedPaymentElement.create(intentConfiguration: paymentIntentConfig, configuration: configuration) + sut.delegate = self + sut.presentingViewController = UIViewController() + sut.view.autosizeHeight(width: 300) + + XCTAssertEqual(sut.view.directionalLayoutMargins, .zero) + XCTAssertFalse(sut.view.hasAmbiguousLayout) + } } diff --git a/Tests/ReferenceImages_64/StripePaymentSheetTests.EmbeddedPaymentElementSnapshotTests/testUpdateFromCardToCardAndUSBankAccountWithCompletionHandler_@3x.png b/Tests/ReferenceImages_64/StripePaymentSheetTests.EmbeddedPaymentElementSnapshotTests/testUpdateFromCardToCardAndUSBankAccountWithCompletionHandler_@3x.png index fccf9877e4592aed64db5551e9acbbaadbbea2b2..4433f4591c1061a3e99e1aa18ac5cd74c6b45d74 100644 GIT binary patch literal 19194 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