Skip to content

Commit 18bc8b0

Browse files
ALFMOB-162: Code review
1 parent 35d4a6e commit 18bc8b0

3 files changed

Lines changed: 14 additions & 41 deletions

File tree

Alfie/Alfie/Views/ProductDetails/ProductDetailsViewModel.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Models
55
import SharedUI
66
import StyleGuide
77

8+
// swiftlint:disable file_length
89
final class ProductDetailsViewModel: ProductDetailsViewModelProtocol {
910
private let dependencies: ProductDetailsDependencyContainer
1011
// In case we already have a full or partial product to show while fetching
@@ -94,11 +95,11 @@ final class ProductDetailsViewModel: ProductDetailsViewModelProtocol {
9495
}
9596

9697
private var hasColorSelected: Bool {
97-
colorSelectionConfiguration.items.count > 1 ? selectedVariant?.colour != nil : true
98+
!colorSelectionConfiguration.items.isEmpty ? selectedVariant?.colour != nil : true
9899
}
99100

100101
private var hasSizeSelected: Bool {
101-
sizingSelectionConfiguration.items.count > 1 ? selectedVariant?.size != nil : true
102+
!sizingSelectionConfiguration.items.isEmpty ? selectedVariant?.size != nil : true
102103
}
103104

104105
init(
@@ -436,4 +437,4 @@ final class ProductDetailsViewModel: ProductDetailsViewModelProtocol {
436437

437438
return SelectedProduct(product: product, selectedVariant: selectedVariant)
438439
}
439-
} // swiftlint:disable:this file_length
440+
}

Alfie/AlfieKit/Sources/Models/Models/Product/SelectedProduct/SelectedProduct.swift

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,22 @@ import Foundation
33
public class SelectedProduct: Identifiable, Hashable {
44
public let product: Product
55
public let selectedVariant: Product.Variant
6-
7-
public var id: String {
8-
"\(product.id)-\(selectedVariant.sku)"
9-
}
10-
11-
public var name: String {
12-
product.name
13-
}
14-
15-
public var brand: Brand {
16-
product.brand
17-
}
18-
19-
public var size: Product.ProductSize? {
20-
selectedVariant.size
21-
}
22-
23-
public var colour: Product.Colour? {
24-
selectedVariant.colour
25-
}
26-
27-
public var stock: Int {
28-
selectedVariant.stock
29-
}
30-
31-
public var price: Price {
32-
selectedVariant.price
33-
}
34-
35-
public var media: [Media] {
36-
colour?.media ?? []
37-
}
6+
public var id: String { "\(product.id)-\(selectedVariant.sku)" }
7+
public var name: String { product.name }
8+
public var brand: Brand { product.brand }
9+
public var size: Product.ProductSize? { selectedVariant.size }
10+
public var colour: Product.Colour? { selectedVariant.colour }
11+
public var stock: Int { selectedVariant.stock }
12+
public var price: Price { selectedVariant.price }
13+
public var media: [Media] { colour?.media ?? [] }
3814

3915
public init(product: Product, selectedVariant: Product.Variant? = nil) {
4016
self.product = product
4117
self.selectedVariant = selectedVariant ?? product.defaultVariant
4218
}
4319

4420
public static func == (lhs: SelectedProduct, rhs: SelectedProduct) -> Bool {
45-
lhs.product == rhs.product
46-
&& lhs.selectedVariant == rhs.selectedVariant
21+
lhs.product == rhs.product && lhs.selectedVariant == rhs.selectedVariant
4722
}
4823

4924
public func hash(into hasher: inout Hasher) {

Alfie/AlfieKit/Sources/Models/Models/Product/SelectedProduct/WishlistProduct.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import Foundation
22

33
public class WishlistProduct: SelectedProduct {
4-
override
5-
public var id: String {
6-
"\(product.id)-\(colour?.id ?? "no colour")"
7-
}
4+
override public var id: String { "\(product.id)-\(colour?.id ?? "no colour")" }
85

96
public init(selectedProduct: SelectedProduct) {
107
let updatedVariant = Product.Variant(

0 commit comments

Comments
 (0)