Skip to content

Commit 68b32d6

Browse files
committed
Move ProductImageThumbnail to WooFoundation
1 parent 7dff630 commit 68b32d6

File tree

10 files changed

+44
-31
lines changed

10 files changed

+44
-31
lines changed

Modules/Package.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ let package = Package(
179179
),
180180
.target(
181181
name: "WooFoundation",
182-
dependencies: ["WooFoundationCore"]
182+
dependencies: [
183+
"WooFoundationCore",
184+
.product(name: "Kingfisher", package: "Kingfisher")
185+
]
183186
),
184187
.target(
185188
name: "WooFoundationCore",
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import SwiftUI
22
import Kingfisher
33

4-
struct ProductImageThumbnail<Placeholder: View>: View {
4+
public struct ProductImageThumbnail<Placeholder: View>: View {
55
private let productImageURL: URL?
66
private let productImageSize: CGFloat
77
private let scale: CGFloat
@@ -25,13 +25,13 @@ struct ProductImageThumbnail<Placeholder: View>: View {
2525
)
2626
}
2727

28-
init(productImageURL: URL?,
29-
productImageSize: CGFloat,
30-
scale: CGFloat,
31-
productImageCornerRadius: CGFloat = 0,
32-
foregroundColor: Color,
33-
cachesOriginalImage: Bool = false,
34-
@ViewBuilder placeholder: () -> Placeholder) {
28+
public init(productImageURL: URL?,
29+
productImageSize: CGFloat,
30+
scale: CGFloat,
31+
productImageCornerRadius: CGFloat = 0,
32+
foregroundColor: Color,
33+
cachesOriginalImage: Bool = false,
34+
@ViewBuilder placeholder: () -> Placeholder) {
3535
self.productImageURL = productImageURL
3636
self.productImageSize = productImageSize
3737
self.scale = scale
@@ -41,7 +41,7 @@ struct ProductImageThumbnail<Placeholder: View>: View {
4141
self.placeholder = placeholder()
4242
}
4343

44-
var body: some View {
44+
public var body: some View {
4545
KFImage
4646
.url(productImageURL)
4747
.cacheOriginalImage(cachesOriginalImage)
@@ -57,22 +57,3 @@ struct ProductImageThumbnail<Placeholder: View>: View {
5757
.accessibilityHidden(true)
5858
}
5959
}
60-
61-
// Convenience initializer that maintains the default behavior.
62-
extension ProductImageThumbnail where Placeholder == Image {
63-
init(productImageURL: URL?,
64-
productImageSize: CGFloat,
65-
scale: CGFloat,
66-
productImageCornerRadius: CGFloat = 0,
67-
foregroundColor: Color,
68-
cachesOriginalImage: Bool = false) {
69-
self.init(productImageURL: productImageURL,
70-
productImageSize: productImageSize,
71-
scale: scale,
72-
productImageCornerRadius: productImageCornerRadius,
73-
foregroundColor: foregroundColor,
74-
cachesOriginalImage: cachesOriginalImage) {
75-
Image(uiImage: .productPlaceholderImage)
76-
}
77-
}
78-
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import SwiftUI
2+
import struct WooFoundation.ProductImageThumbnail
3+
4+
// Convenience initializer that maintains the default behavior.
5+
extension ProductImageThumbnail where Placeholder == Image {
6+
init(productImageURL: URL?,
7+
productImageSize: CGFloat,
8+
scale: CGFloat,
9+
productImageCornerRadius: CGFloat = 0,
10+
foregroundColor: Color,
11+
cachesOriginalImage: Bool = false) {
12+
self.init(productImageURL: productImageURL,
13+
productImageSize: productImageSize,
14+
scale: scale,
15+
productImageCornerRadius: productImageCornerRadius,
16+
foregroundColor: foregroundColor,
17+
cachesOriginalImage: cachesOriginalImage) {
18+
Image(uiImage: .productPlaceholderImage)
19+
}
20+
}
21+
}

WooCommerce/Classes/POS/Presentation/Reusable Views/POSItemImageView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import SwiftUI
2+
import struct WooFoundation.ProductImageThumbnail
23

34
enum POSItemImageState {
45
case normal

WooCommerce/Classes/ViewRelated/Orders/Order Creation/CollapsibleProductCard.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Yosemite
22
import SwiftUI
3+
import struct WooFoundation.ProductImageThumbnail
34

45
/// Displays a single collapsible product row or grouped parent and child product rows
56
struct CollapsibleProductCard: View {

WooCommerce/Classes/ViewRelated/Orders/Order Creation/ProductsSection/ProductDiscountView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import SwiftUI
22
import Yosemite
3+
import struct WooFoundation.ProductImageThumbnail
34

45
struct ProductDiscountView: View {
56
private let viewModel: ProductDiscountViewModel

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Items Section/WooShippingItemRow.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import SwiftUI
2+
import struct WooFoundation.ProductImageThumbnail
23

34
/// Row for an item to ship with the Woo Shipping extension.
45
struct WooShippingItemRow: View {

WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRow.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import Yosemite
22
import SwiftUI
3+
import struct WooFoundation.ProductImageThumbnail
34

45
/// Row for a selectable shipment item to ship with the Woo Shipping extension.
56
struct SelectableShipmentItemRow: View {

WooCommerce/Classes/ViewRelated/Products/ProductSelector/ProductRow.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import SwiftUI
2+
import struct WooFoundation.ProductImageThumbnail
23

34
/// Represent a single product or variation row in the Product section of a New Order or in the ProductSelectorView
45
///

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
01058DD22E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01058DD12E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift */; };
2828
010F7D872E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D862E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift */; };
2929
010F7D8B2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D8A2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift */; };
30+
010F7D8D2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 010F7D8C2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift */; };
3031
011D396F2D09FCD200DB1445 /* CardPresentModalLocationRequired.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D396E2D09FCCB00DB1445 /* CardPresentModalLocationRequired.swift */; };
3132
011D39712D0A324200DB1445 /* LocationServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D39702D0A324100DB1445 /* LocationServiceTests.swift */; };
3233
011D7A332CEC877A0007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011D7A322CEC87770007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift */; };
@@ -3238,6 +3239,7 @@
32383239
01058DD12E4273F2002FADD1 /* UIKitBarcodeObserverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitBarcodeObserverTests.swift; sourceTree = "<group>"; };
32393240
010F7D862E79B39E002B02EA /* POSFormattableAmountTextFieldAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSFormattableAmountTextFieldAdaptor.swift; sourceTree = "<group>"; };
32403241
010F7D8A2E79B763002B02EA /* POSCouponCreationSheetAdaptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCouponCreationSheetAdaptor.swift; sourceTree = "<group>"; };
3242+
010F7D8C2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ProductImageThumbnail+Extensions.swift"; sourceTree = "<group>"; };
32413243
011D396E2D09FCCB00DB1445 /* CardPresentModalLocationRequired.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalLocationRequired.swift; sourceTree = "<group>"; };
32423244
011D39702D0A324100DB1445 /* LocationServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationServiceTests.swift; sourceTree = "<group>"; };
32433245
011D7A322CEC87770007C187 /* CardPresentModalNonRetryableErrorEmailSent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardPresentModalNonRetryableErrorEmailSent.swift; sourceTree = "<group>"; };
@@ -12144,6 +12146,7 @@
1214412146
CE1CCB4C20572444000EE3AC /* Extensions */ = {
1214512147
isa = PBXGroup;
1214612148
children = (
12149+
010F7D8C2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift */,
1214712150
016582EC2E7897B3001DBB6F /* String+Helpers.swift */,
1214812151
2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */,
1214912152
2004E2DB2C08E95B00D62521 /* ViewControllerPresenting.swift */,
@@ -13400,7 +13403,6 @@
1340013403
CC53FB3427551A6E00C4CA4F /* ProductRow.swift */,
1340113404
CC53FB39275697B000C4CA4F /* ProductRowViewModel.swift */,
1340213405
B9B7E2E529FBF96100F9CED1 /* ProductSelectorViewModelTracker.swift */,
13403-
68AC9D282ACE598B0042F784 /* ProductImageThumbnail.swift */,
1340413406
02DFD5032B20486C0048CD70 /* ProductStepper.swift */,
1340513407
02DFD5052B2048C50048CD70 /* ProductStepperViewModel.swift */,
1340613408
02FE734A2B21613D00CD486B /* ProductWithQuantityStepperView.swift */,
@@ -16009,7 +16011,6 @@
1600916011
262A098B2628C51D0033AD20 /* OrderAddOnListViewModel.swift in Sources */,
1601016012
0262DA5323A238460029AF30 /* UnitInputTableViewCell.swift in Sources */,
1601116013
D8EE9692264D328A0033B2F9 /* LegacyReceiptViewController.swift in Sources */,
16012-
68AC9D292ACE598B0042F784 /* ProductImageThumbnail.swift in Sources */,
1601316014
CE4FE7D82B7D306200F66DD5 /* MultiSelectionReorderableList.swift in Sources */,
1601416015
CE6E110D2C91E5FF00563DD4 /* WooShippingItems.swift in Sources */,
1601516016
029106BE2BE2868F00C2248B /* CollapsibleOrderFormCardBorder.swift in Sources */,
@@ -16367,6 +16368,7 @@
1636716368
95B6C6102D9DADAA00E1A661 /* WPComLoginGravatarView.swift in Sources */,
1636816369
028FF8E32AA1E1C60038964F /* ProductDetailsCellViewModel+AddOns.swift in Sources */,
1636916370
DEC2962726C17AD8005A056B /* ShippingLabelCustomsForm+Localization.swift in Sources */,
16371+
010F7D8D2E7A8447002B02EA /* ProductImageThumbnail+Extensions.swift in Sources */,
1637016372
26A630FE253F63C300CBC3B1 /* RefundableOrderItem.swift in Sources */,
1637116373
CEE006052077D1280079161F /* SummaryTableViewCell.swift in Sources */,
1637216374
DEE215342D1297CD004A11F3 /* UserDefaults+EditStoreList.swift in Sources */,

0 commit comments

Comments
 (0)