Skip to content

Commit

Permalink
Merge pull request #282 from afterpay/convergence-asset-update
Browse files Browse the repository at this point in the history
Convergence asset update
  • Loading branch information
squarepaul authored Feb 27, 2025
2 parents e3b9c19 + dfe6f3b commit 7c26aca
Show file tree
Hide file tree
Showing 42 changed files with 740 additions and 60 deletions.
54 changes: 42 additions & 12 deletions Example/Example/Components/ComponentsViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -152,38 +152,68 @@ private final class ContentStackViewController: UIViewController, PriceBreakdown
stack.addArrangedSubview(titleLabel)

if Afterpay.enabled {
let badge = BadgeView(colorScheme: .dynamic(lightPalette: .mintOnBlack, darkPalette: .blackOnMint))
badge.widthAnchor.constraint(equalToConstant: 64).isActive = true

let badgeStack = UIStackView(arrangedSubviews: [badge, UIView()])
stack.addArrangedSubview(badgeStack)

let lockup = LockupView(colorScheme: .dynamic(lightPalette: .blackOnWhite, darkPalette: .whiteOnBlack))
lockup.widthAnchor.constraint(equalToConstant: 64).isActive = true

let lockupStack = UIStackView(arrangedSubviews: [lockup, UIView()])
stack.addArrangedSubview(lockupStack)
if !Afterpay.isCashAppAfterpayRegion {
let badge = BadgeView(colorScheme: .dynamic(lightPalette: .default, darkPalette: .alt))
badge.widthAnchor.constraint(equalToConstant: 64).isActive = true

let badge2 = BadgeView(colorScheme: .dynamic(lightPalette: .darkMono, darkPalette: .lightMono))
badge.widthAnchor.constraint(equalToConstant: 64).isActive = true

let badgeStack = UIStackView(arrangedSubviews: [badge,badge2, UIView()])

Check warning on line 162 in Example/Example/Components/ComponentsViewController.swift

View workflow job for this annotation

GitHub Actions / Build and Test

There should be no space before and one after any comma (comma)
stack.addArrangedSubview(badgeStack)
let lockup = LockupView(colorScheme: .dynamic(lightPalette: .lightMono, darkPalette: .darkMono))
lockup.widthAnchor.constraint(equalToConstant: 64).isActive = true

let lockup2 = LockupView(colorScheme: .dynamic(lightPalette: .darkMono, darkPalette: .default))
lockup.widthAnchor.constraint(equalToConstant: 64).isActive = true
let lockupStack = UIStackView(arrangedSubviews: [lockup, lockup2, UIView()])
stack.addArrangedSubview(lockupStack)
}

let payButton: UIButton = PaymentButton(
colorScheme: .dynamic(lightPalette: .default, darkPalette: .alt),
buttonKind: .buyNow
)
stack.addArrangedSubview(payButton)
let payButton2: UIButton = PaymentButton(
colorScheme: .dynamic(lightPalette: .lightMono, darkPalette: .darkMono),
buttonKind: .checkout
)
stack.addArrangedSubview(payButton2)
let payButton3: UIButton = PaymentButton(
colorScheme: .dynamic(lightPalette: .alt, darkPalette: .default),
buttonKind: .payNow
)
stack.addArrangedSubview(payButton3)
let payButton4: UIButton = PaymentButton(
colorScheme: .dynamic(lightPalette: .darkMono, darkPalette: .lightMono),
buttonKind: .placeOrder
)
stack.addArrangedSubview(payButton4)

let priceBreakdown1 = PriceBreakdownView()
priceBreakdown1.introText = .payInTitle
priceBreakdown1.totalAmount = 103.50
priceBreakdown1.delegate = self
priceBreakdown1.moreInfoOptions = MoreInfoOptions(modalTheme: .white)
priceBreakdown1.logoColorScheme = .dynamic(lightPalette: .darkMono, darkPalette: .alt)

stack.addArrangedSubview(priceBreakdown1)

let priceBreakdown2 = PriceBreakdownView()
priceBreakdown2.totalAmount = 100
priceBreakdown2.delegate = self
priceBreakdown2.showWithText = false
priceBreakdown2.showInterestFreeText = false
priceBreakdown2.logoColorScheme = .dynamic(lightPalette: .blackOnMint, darkPalette: .whiteOnBlack)
priceBreakdown2.logoColorScheme = .dynamic(lightPalette: .default, darkPalette: .lightMono)
priceBreakdown2.moreInfoOptions = MoreInfoOptions(modalLinkStyle: .moreInfoText)
priceBreakdown2.logoType = .compactBadge
stack.addArrangedSubview(priceBreakdown2)

let priceBreakdown3 = PriceBreakdownView()
priceBreakdown3.totalAmount = 3000
priceBreakdown3.delegate = self
priceBreakdown3.logoColorScheme = .dynamic(lightPalette: .darkMono, darkPalette: .lightMono)
stack.addArrangedSubview(priceBreakdown3)
}

Expand Down
2 changes: 1 addition & 1 deletion Example/Example/Purchase/CartViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ final class CartViewController: UIViewController, UITableViewDataSource {

if Afterpay.enabled {
let payButton: UIButton = PaymentButton(
colorScheme: .dynamic(lightPalette: .blackOnMint, darkPalette: .mintOnBlack),
colorScheme: .dynamic(lightPalette: .default, darkPalette: .lightMono),
buttonKind: .checkout
)
payButton.isEnabled = cart.payEnabled
Expand Down
4 changes: 4 additions & 0 deletions Sources/Afterpay/Afterpay.swift
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,10 @@ internal var brand: Brand {
Brand.forLocale(locale: getLocale())
}

public var isCashAppAfterpayRegion: Bool {
brand.isCashAppAfterpayRegion
}

public var enabled: Bool {
return language != nil && getConfiguration()?.locale != nil
}
Expand Down
15 changes: 15 additions & 0 deletions Sources/Afterpay/Model/Brand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,17 @@ private let afterpayLocales: Set<Locale> = [
Locales.enCA,
Locales.frCA,
Locales.enNZ,
]

private let cashAppAfterpayLocales: Set<Locale> = [
Locales.enUS,
Locales.enUSposix,
]

private let brandLocales: [Set<Locale>: Brand] = [
clearpayLocales: Brand.clearpay,
afterpayLocales: Brand.afterpay,
cashAppAfterpayLocales: Brand.cashAppAfterpay,
]

internal struct BrandDetails {
Expand All @@ -34,6 +38,7 @@ internal struct BrandDetails {
internal enum Brand {
case afterpay
case clearpay
case cashAppAfterpay

public var details: BrandDetails {
switch self {
Expand All @@ -49,9 +54,19 @@ internal enum Brand {
accessibleName: Strings.accessibleClearpay,
lowerCaseName: "clearpay"
)
case .cashAppAfterpay:
return BrandDetails(
name: "CashAppAfterpay",
accessibleName: Strings.accessibleCashAppAfterpay,
lowerCaseName: "cashappafterpay"
)
}
}

public var isCashAppAfterpayRegion: Bool {
return self == .cashAppAfterpay
}

static func forLocale(locale: Locale) -> Brand {
return brandLocales.first(where: { (key, _) in
key.contains(locale)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"colors" : [
{
"color" : {
"color-space" : "srgb",
"components" : {
"alpha" : "1.000",
"blue" : "0.3098039",
"green" : "0.8392156",
"red" : "0"
}
},
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"images" : [
{
"filename" : "alt_buy_with.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"localizable" : true,
"preserves-vector-representation" : true,
"template-rendering-intent" : "template"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7c26aca

Please sign in to comment.