Update fundraising sheets with new style

This commit is contained in:
Pete Walters 2023-11-08 18:59:57 -06:00 committed by GitHub
parent 676c186817
commit a17c88da9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 44 deletions

View File

@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "alert.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

View File

@ -240,6 +240,23 @@ public class BadgeIssueSheetState {
)
}
}()
var showIconAlert: Bool {
switch mode {
case
.boostExpired,
.giftBadgeExpired,
.bankPaymentFailed,
.subscriptionExpiredBecauseOfChargeFailure,
.subscriptionExpiredBecauseNotRenewed:
return true
case
.giftNotRedeemed,
.boostBankPaymentProcessing,
.subscriptionBankPaymentProcessing:
return false
}
}
}
class BadgeIssueSheet: OWSTableSheetViewController {
@ -283,17 +300,30 @@ class BadgeIssueSheet: OWSTableSheetViewController {
let stackView = UIStackView()
stackView.axis = .vertical
stackView.alignment = .center
stackView.layoutMargins = UIEdgeInsets(hMargin: 24, vMargin: 0)
stackView.layoutMargins = .init(top: 24, left: 24, bottom: 0, right: 24)
stackView.isLayoutMarginsRelativeArrangement = true
cell.contentView.addSubview(stackView)
stackView.autoPinEdgesToSuperviewEdges()
let containerView = UIView()
stackView.addArrangedSubview(containerView)
stackView.setCustomSpacing(24, after: containerView)
let badgeImageView = UIImageView()
badgeImageView.image = self.state.badge.assets?.universal112
badgeImageView.autoSetDimensions(to: CGSize(square: 112))
stackView.addArrangedSubview(badgeImageView)
stackView.setCustomSpacing(16, after: badgeImageView)
badgeImageView.image = self.state.badge.assets?.universal160
badgeImageView.autoSetDimensions(to: CGSize(square: 80))
containerView.addSubview(badgeImageView)
badgeImageView.autoPinEdgesToSuperviewEdges()
if self.state.showIconAlert {
let alertImageView = UIImageView()
alertImageView.image = UIImage(named: "alert")
alertImageView.autoSetDimensions(to: CGSize(square: 24))
containerView.addSubview(alertImageView)
alertImageView.autoPinEdge(.right, to: .right, of: badgeImageView)
alertImageView.autoPinEdge(.top, to: .top, of: badgeImageView)
}
let titleLabel = UILabel()
titleLabel.font = .dynamicTypeTitle2.semibold()
@ -311,7 +341,7 @@ class BadgeIssueSheet: OWSTableSheetViewController {
comment: "Text for the 'learn more' link in a sheet explaining there's been an issue with your badge."
).styled(with: .link(learnMoreLink))
let label = LinkingTextView()
label.attributedText = .composed(of: [self.state.body.text, " ", learnMore]).styled(with: .color(Theme.primaryTextColor), .font(.dynamicTypeBody))
label.attributedText = .composed(of: [self.state.body.text, " ", learnMore]).styled(with: .color(Theme.secondaryTextAndIconColor), .font(.dynamicTypeSubheadlineClamped))
label.textAlignment = .center
label.linkTextAttributes = [
.foregroundColor: Theme.accentBlueColor,
@ -321,15 +351,15 @@ class BadgeIssueSheet: OWSTableSheetViewController {
bodyLabel = label
} else {
let label = UILabel()
label.font = .dynamicTypeBody
label.textColor = Theme.primaryTextColor
label.font = .dynamicTypeSubheadlineClamped
label.textColor = Theme.secondaryTextAndIconColor
label.numberOfLines = 0
label.text = self.state.body.text
label.textAlignment = .center
bodyLabel = label
}
stackView.addArrangedSubview(bodyLabel)
stackView.setCustomSpacing(30, after: bodyLabel)
stackView.setCustomSpacing(24, after: bodyLabel)
return cell
}, actionBlock: nil))
@ -345,7 +375,7 @@ class BadgeIssueSheet: OWSTableSheetViewController {
let stackView = UIStackView()
stackView.axis = .vertical
stackView.alignment = .center
stackView.layoutMargins = UIEdgeInsets(top: 30, left: 24, bottom: 30, right: 24)
stackView.layoutMargins = UIEdgeInsets(top: 12, left: 24, bottom: 12, right: 24)
stackView.spacing = 16
stackView.isLayoutMarginsRelativeArrangement = true
cell.contentView.addSubview(stackView)

View File

@ -316,6 +316,12 @@ class BadgeThanksSheet: OWSTableSheetViewController {
cell.contentView.addSubview(stackView)
stackView.autoPinEdgesToSuperviewMargins()
let badgeImageView = UIImageView()
badgeImageView.image = self.badge.assets?.universal160
badgeImageView.autoSetDimensions(to: CGSize(square: 80))
stackView.addArrangedSubview(badgeImageView)
stackView.setCustomSpacing(24, after: badgeImageView)
let titleLabel = UILabel()
titleLabel.font = .dynamicTypeTitle2.semibold()
titleLabel.textColor = Theme.primaryTextColor
@ -326,42 +332,13 @@ class BadgeThanksSheet: OWSTableSheetViewController {
stackView.setCustomSpacing(12, after: titleLabel)
let bodyLabel = UILabel()
bodyLabel.font = .dynamicTypeBody
bodyLabel.textColor = Theme.primaryTextColor
bodyLabel.font = .dynamicTypeSubheadlineClamped
bodyLabel.textColor = Theme.secondaryTextAndIconColor
bodyLabel.textAlignment = .center
bodyLabel.numberOfLines = 0
bodyLabel.text = self.bodyText
stackView.addArrangedSubview(bodyLabel)
stackView.setCustomSpacing(30, after: bodyLabel)
let badgeImageView = UIImageView()
let shouldShowBadgeLabel: Bool
switch self.thanksType {
case .badgeRedeemedViaBankPayment, .badgeRedeemedViaNonBankPayment:
badgeImageView.image = self.badge.assets?.universal160
badgeImageView.autoSetDimensions(to: CGSize(square: 160))
shouldShowBadgeLabel = true
case .giftReceived:
// Use a smaller image for gifts since they have an extra button.
badgeImageView.image = self.badge.assets?.universal112
badgeImageView.autoSetDimensions(to: CGSize(square: 112))
shouldShowBadgeLabel = false
}
stackView.addArrangedSubview(badgeImageView)
if shouldShowBadgeLabel {
let badgeLabel = UILabel()
badgeLabel.font = .dynamicTypeTitle3.semibold()
badgeLabel.textColor = Theme.primaryTextColor
badgeLabel.textAlignment = .center
badgeLabel.numberOfLines = 0
badgeLabel.text = self.badge.localizedName
stackView.addArrangedSubview(badgeLabel)
stackView.setCustomSpacing(14, after: badgeImageView)
stackView.setCustomSpacing(36, after: badgeLabel)
} else {
stackView.setCustomSpacing(36, after: badgeImageView)
}
stackView.setCustomSpacing(36, after: bodyLabel)
return cell
}, actionBlock: nil))

View File

@ -111,8 +111,8 @@ class DonateChoosePaymentMethodSheet: OWSTableSheetViewController {
stackView.spacing = 6
if let assets = badge.assets {
let badgeImageView = UIImageView(image: assets.universal112)
badgeImageView.autoSetDimensions(to: CGSize(square: 112))
let badgeImageView = UIImageView(image: assets.universal160)
badgeImageView.autoSetDimensions(to: CGSize(square: 80))
stackView.addArrangedSubview(badgeImageView)
stackView.setCustomSpacing(12, after: badgeImageView)
}