Skip to content

Commit

Permalink
IOS-2594 Resolve design color dynamically
Browse files Browse the repository at this point in the history
  • Loading branch information
ignatovv committed Apr 5, 2024
1 parent 432644d commit 3964897
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,41 +18,41 @@ extension MembershipTier {
}

var mediumIcon: ImageAsset {
switch self.type {
case .explorer:
switch color {
case .green:
return .Membership.tierExplorerMedium
case .builder:
case .blue:
return .Membership.tierBuilderMedium
case .coCreator:
case .red:
return .Membership.tierCocreatorMedium
case .custom:
case .purple:
anytypeAssertionFailure("Unsupported asset mediumIcon for custom tier")
return .ghost
}
}

var smallIcon: ImageAsset {
switch self.type {
case .explorer:
switch color {
case .green:
.Membership.tierExplorerSmall
case .builder:
case .blue:
.Membership.tierBuilderSmall
case .coCreator:
case .red:
.Membership.tierCocreatorSmall
case .custom:
case .purple:
.Membership.tierCustomSmall
}
}

var gradient: MembershipTeirGradient {
switch self.type {
case .explorer:
switch color {
case .green:
.teal
case .builder:
case .blue:
.blue
case .coCreator:
case .red:
.red
case .custom:
case .purple:
.purple
}
}
Expand Down Expand Up @@ -80,7 +80,8 @@ extension MembershipTier {
Loc.Membership.Feature.spaceWriters(3),
Loc.Membership.Feature.viewers(3)
],
paymentType: .email
paymentType: .email,
color: .green
)
}

Expand All @@ -95,7 +96,8 @@ extension MembershipTier {
Loc.Membership.Feature.spaceWriters(10),
Loc.Membership.Feature.viewers("Unlimited")
],
paymentType: .mockExternal
paymentType: .mockExternal,
color: .blue
)
}

Expand All @@ -110,7 +112,8 @@ extension MembershipTier {
Loc.Membership.Feature.spaceWriters(10),
Loc.Membership.Feature.viewers("Unlimited")
],
paymentType: .mockExternal
paymentType: .mockExternal,
color: .red
)
}

Expand All @@ -125,7 +128,8 @@ extension MembershipTier {
Loc.Membership.Feature.spaceWriters(100),
Loc.Membership.Feature.viewers("Unlimited")
],
paymentType: .mockExternal
paymentType: .mockExternal,
color: .purple
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ final class MembershipService: MembershipServiceProtocol {
name: tier.name,
anyName: anyName,
features: tier.features,
paymentType: paymentType
paymentType: paymentType,
color: MembershipColor(string: tier.colorStr)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,33 @@ public enum MembershipAnyName: Hashable, Equatable {
case some(minLenght: UInt32)
}

public enum MembershipColor: Equatable {
case green
case blue
case red
case purple

init(string: String) {
switch string {
case "green":
self = .green
case "red":
self = .red
case "blue":
self = .blue
default:
self = .purple
}
}
}

public struct MembershipTier: Hashable, Identifiable, Equatable {
public let type: MembershipTierType
public let name: String
public let anyName: MembershipAnyName
public let features: [String]
public let paymentType: MembershipTierPaymentType
public let color: MembershipColor

public var id: MembershipTierType { type }

Expand All @@ -60,12 +81,14 @@ public struct MembershipTier: Hashable, Identifiable, Equatable {
name: String,
anyName: MembershipAnyName,
features: [String],
paymentType: MembershipTierPaymentType
paymentType: MembershipTierPaymentType,
color: MembershipColor
) {
self.type = type
self.name = name
self.anyName = anyName
self.features = features
self.paymentType = paymentType
self.color = color
}
}

0 comments on commit 3964897

Please sign in to comment.