diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCard.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCard.swift similarity index 80% rename from WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCard.swift rename to WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCard.swift index da9e9817c75..b5b62026075 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCard.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCard.swift @@ -2,12 +2,12 @@ import Yosemite import SwiftUI /// Displays a single collapsible shipment item row or grouped parent and child shipment item rows -struct CollapsibleShipmentCard: View { +struct CollapsibleShipmentItemCard: View { @State private var isCollapsed: Bool = true - private let viewModel: CollapsibleShipmentCardViewModel + private let viewModel: CollapsibleShipmentItemCardViewModel - init(viewModel: CollapsibleShipmentCardViewModel) { + init(viewModel: CollapsibleShipmentItemCardViewModel) { self.viewModel = viewModel } @@ -22,15 +22,15 @@ struct CollapsibleShipmentCard: View { if !isCollapsed { VStack(spacing: 0) { - ForEach(Array(viewModel.childShipmentRows.enumerated()), id: \.element.id) { index, item in + ForEach(Array(viewModel.childItemRows.enumerated()), id: \.element.id) { index, item in VStack(spacing: 0) { Divider() - SelectableShipmentRow(viewModel: item) + SelectableShipmentItemRow(viewModel: item) .padding(.leading, Layout.horizontalPadding * 2) .padding(.trailing, Layout.horizontalPadding) .padding(.vertical, Layout.verticalPadding) - .background(backgroundForChildShipmentRow(isFinalRow: index == viewModel.childShipmentRows.count - 1)) + .background(backgroundForChildShipmentRow(isFinalRow: index == viewModel.childItemRows.count - 1)) } } } @@ -41,11 +41,11 @@ struct CollapsibleShipmentCard: View { } } -private extension CollapsibleShipmentCard { +private extension CollapsibleShipmentItemCard { @ViewBuilder var mainShipmentRow: some View { - if viewModel.childShipmentRows.isEmpty { - SelectableShipmentRow(viewModel: viewModel.mainShipmentRow) + if viewModel.childItemRows.isEmpty { + SelectableShipmentItemRow(viewModel: viewModel.mainItemRow) } else { Button(action: { withAnimation { @@ -53,7 +53,7 @@ private extension CollapsibleShipmentCard { } }, label: { ZStack(alignment: .topTrailing) { - SelectableShipmentRow(viewModel: viewModel.mainShipmentRow) + SelectableShipmentItemRow(viewModel: viewModel.mainItemRow) .contentShape(Rectangle()) Image(uiImage: isCollapsed ? .chevronDownImage : .chevronUpImage) @@ -86,7 +86,7 @@ private extension CollapsibleShipmentCard { } } -private extension CollapsibleShipmentCard { +private extension CollapsibleShipmentItemCard { enum Layout { static let borderCornerRadius: CGFloat = 8 static let borderWidth: CGFloat = 0.5 diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCardViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCardViewModel.swift similarity index 52% rename from WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCardViewModel.swift rename to WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCardViewModel.swift index 983388b1fcd..a7026d39585 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentCardViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/CollapsibleShipmentItemCardViewModel.swift @@ -2,30 +2,30 @@ import SwiftUI import WooFoundation import Yosemite -/// View model for `CollapsibleShipmentCard`. -final class CollapsibleShipmentCardViewModel: ObservableObject, Identifiable { +/// View model for `CollapsibleShipmentItemCard`. +final class CollapsibleShipmentItemCardViewModel: ObservableObject, Identifiable { let id = UUID() - /// The main shipment row. - let mainShipmentRow: SelectableShipmentRowViewModel + /// The main item row. + let mainItemRow: SelectableShipmentItemRowViewModel /// Child shipment rows, if the shipment has more than one quantity - let childShipmentRows: [SelectableShipmentRowViewModel] + let childItemRows: [SelectableShipmentItemRowViewModel] var onSelectionChange: (() -> Void)? - var selectedShipmentIds: [String] { - if mainShipmentRow.selected { - if childShipmentRows.isNotEmpty { - return childShipmentRows.map { $0.shipmentId } + var selectedItemIds: [String] { + if mainItemRow.selected { + if childItemRows.isNotEmpty { + return childItemRows.map { $0.itemID } } else { - return [mainShipmentRow.shipmentId] + return [mainItemRow.itemID] } } - return childShipmentRows + return childItemRows .filter { $0.selected } - .map(\.shipmentId) + .map(\.itemID) } init(parentShipmentId: String, @@ -37,41 +37,41 @@ final class CollapsibleShipmentCardViewModel: ObservableObject, Identifiable { let childShippingItem = WooShippingItemRowViewModel(item: ShippingLabelPackageItem(copy: item, quantity: 1.0), currency: currency) - self.mainShipmentRow = SelectableShipmentRowViewModel(shipmentId: parentShipmentId, + self.mainItemRow = SelectableShipmentItemRowViewModel(itemID: parentShipmentId, isSelectable: true, item: mainShippingItem, showQuantity: true) - self.childShipmentRows = childShipmentIds.map({ - SelectableShipmentRowViewModel(shipmentId: $0, - isSelectable: true, - item: childShippingItem, - showQuantity: false) + self.childItemRows = childShipmentIds.map({ + SelectableShipmentItemRowViewModel(itemID: $0, + isSelectable: true, + item: childShippingItem, + showQuantity: false) }) observeSelection() } func selectAll() { - mainShipmentRow.setSelected(true) - childShipmentRows.forEach({ $0.setSelected(true) }) + mainItemRow.setSelected(true) + childItemRows.forEach({ $0.setSelected(true) }) onSelectionChange?() } } -private extension CollapsibleShipmentCardViewModel { +private extension CollapsibleShipmentItemCardViewModel { func observeSelection() { - mainShipmentRow.onSelectedChange = { [weak self] row in + mainItemRow.onSelectedChange = { [weak self] row in guard let self else { return } - childShipmentRows.forEach({ $0.setSelected(row.selected) }) + childItemRows.forEach({ $0.setSelected(row.selected) }) onSelectionChange?() } - childShipmentRows.forEach({ + childItemRows.forEach({ $0.onSelectedChange = { [weak self] row in guard let self else { return } - mainShipmentRow.setSelected(false) + mainItemRow.setSelected(false) onSelectionChange?() } }) diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRow.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRow.swift similarity index 80% rename from WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRow.swift rename to WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRow.swift index 964554f35ab..d41ea191a2e 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRow.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRow.swift @@ -2,10 +2,10 @@ import Yosemite import SwiftUI /// Row for a selectable shipment item to ship with the Woo Shipping extension. -struct SelectableShipmentRow: View { - @ObservedObject private var viewModel: SelectableShipmentRowViewModel +struct SelectableShipmentItemRow: View { + @ObservedObject private var viewModel: SelectableShipmentItemRowViewModel - init(viewModel: SelectableShipmentRowViewModel) { + init(viewModel: SelectableShipmentItemRowViewModel) { self.viewModel = viewModel } @@ -53,7 +53,7 @@ struct SelectableShipmentRow: View { } } -private extension SelectableShipmentRow { +private extension SelectableShipmentItemRow { @ViewBuilder func selectionCircle(selected: Bool) -> some View { if selected { @@ -75,7 +75,7 @@ private extension SelectableShipmentRow { } } -private extension SelectableShipmentRow { +private extension SelectableShipmentItemRow { enum Layout { static let horizontalSpacing: CGFloat = 16 static let imageSize: CGFloat = 56.0 @@ -85,12 +85,12 @@ private extension SelectableShipmentRow { } #Preview { - SelectableShipmentRow(viewModel: SelectableShipmentRowViewModel(shipmentId: "123", - isSelectable: false, - item: WooShippingItemRowViewModel(imageUrl: nil, - quantityLabel: "3", - name: "Little Nap Brazil 250g", - detailsLabel: "15×10×8cm • Espresso", - weightLabel: "275g", - priceLabel: "$60.00"))) + SelectableShipmentItemRow(viewModel: SelectableShipmentItemRowViewModel(itemID: "123", + isSelectable: false, + item: WooShippingItemRowViewModel(imageUrl: nil, + quantityLabel: "3", + name: "Little Nap Brazil 250g", + detailsLabel: "15×10×8cm • Espresso", + weightLabel: "275g", + priceLabel: "$60.00"))) } diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRowViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRowViewModel.swift similarity index 75% rename from WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRowViewModel.swift rename to WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRowViewModel.swift index 071070de0a4..8bcd4934133 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentRowViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/SelectableShipmentItemRowViewModel.swift @@ -3,7 +3,7 @@ import WooFoundation import Yosemite /// View model for `SelectableShipmentRow`. -final class SelectableShipmentRowViewModel: ObservableObject, Identifiable { +final class SelectableShipmentItemRowViewModel: ObservableObject, Identifiable { let id = UUID() let item: WooShippingItemRowViewModel @@ -12,17 +12,17 @@ final class SelectableShipmentRowViewModel: ObservableObject, Identifiable { let isSelectable: Bool - let shipmentId: String + let itemID: String let showQuantity: Bool - var onSelectedChange: ((SelectableShipmentRowViewModel) -> Void)? + var onSelectedChange: ((SelectableShipmentItemRowViewModel) -> Void)? - init(shipmentId: String, + init(itemID: String, isSelectable: Bool, item: WooShippingItemRowViewModel, showQuantity: Bool = true) { - self.shipmentId = shipmentId + self.itemID = itemID self.isSelectable = isSelectable self.item = item self.showQuantity = showQuantity diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsDetailView.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsDetailView.swift index 15d630372dc..33844ceb118 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsDetailView.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsDetailView.swift @@ -21,7 +21,7 @@ struct WooShippingSplitShipmentsDetailView: View { VStack(spacing: Layout.verticalSpacing) { ForEach(viewModel.shipmentCardViewModels) { item in - CollapsibleShipmentCard(viewModel: item) + CollapsibleShipmentItemCard(viewModel: item) } } } diff --git a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsViewModel.swift index fd5cd4b0049..44f69df1eec 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Order Details/Shipping Labels/WooShipping Create Shipping Labels/WooShipping Split Shipments/WooShippingSplitShipmentsViewModel.swift @@ -26,7 +26,7 @@ final class WooShippingSplitShipmentsViewModel: ObservableObject { "\(itemsWeightLabel) • \(itemsPriceLabel)" } - let shipmentCardViewModels: [CollapsibleShipmentCardViewModel] + let shipmentCardViewModels: [CollapsibleShipmentItemCardViewModel] @Published private(set) var moveToNoticeViewModel: MoveToShipmentNoticeViewModel? @@ -48,7 +48,7 @@ final class WooShippingSplitShipmentsViewModel: ObservableObject { self.shippingSettingsService = shippingSettingsService self.shipmentCardViewModels = { - var viewModels = [CollapsibleShipmentCardViewModel]() + var viewModels = [CollapsibleShipmentItemCardViewModel]() for item in items { // TODO: #15303 Set IDs based on web logic let childShipmentIds: [String] = { @@ -64,10 +64,10 @@ final class WooShippingSplitShipmentsViewModel: ObservableObject { return children }() - let viewModel = CollapsibleShipmentCardViewModel(parentShipmentId: "\(item.productOrVariationID)", - childShipmentIds: childShipmentIds, - item: item, - currency: order.currency) + let viewModel = CollapsibleShipmentItemCardViewModel(parentShipmentId: "\(item.productOrVariationID)", + childShipmentIds: childShipmentIds, + item: item, + currency: order.currency) viewModels.append(viewModel) } return viewModels @@ -111,7 +111,7 @@ private extension WooShippingSplitShipmentsViewModel { func showMoveToNotice() { let selectedItemsCount = { - shipmentCardViewModels.map { $0.selectedShipmentIds.count }.reduce(0, +) + shipmentCardViewModels.map { $0.selectedItemIds.count }.reduce(0, +) }() guard selectedItemsCount > 0 else { diff --git a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj index 85544c71b84..c8e3de5a098 100644 --- a/WooCommerce/WooCommerce.xcodeproj/project.pbxproj +++ b/WooCommerce/WooCommerce.xcodeproj/project.pbxproj @@ -1607,8 +1607,8 @@ 68A905012ACCFC13004C71D3 /* CollapsibleProductCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A905002ACCFC13004C71D3 /* CollapsibleProductCard.swift */; }; 68AC9D292ACE598B0042F784 /* ProductImageThumbnail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68AC9D282ACE598B0042F784 /* ProductImageThumbnail.swift */; }; 68AF3C3B2D01481C006F1ED2 /* POSReceiptEligibilityBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68AF3C3A2D01481A006F1ED2 /* POSReceiptEligibilityBanner.swift */; }; - 68B681162D9257810098D5CD /* PointOfSaleCouponsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B681152D92577F0098D5CD /* PointOfSaleCouponsController.swift */; }; 68B3BA262D9147480000B2F2 /* AISettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B3BA252D9147440000B2F2 /* AISettingsView.swift */; }; + 68B681162D9257810098D5CD /* PointOfSaleCouponsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B681152D92577F0098D5CD /* PointOfSaleCouponsController.swift */; }; 68B6F22B2ADE7ED500D171FC /* TooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68B6F22A2ADE7ED500D171FC /* TooltipView.swift */; }; 68C31B712A8617C500AE5C5A /* NewNoteViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C31B702A8617C500AE5C5A /* NewNoteViewModel.swift */; }; 68C53CBE2C1FE59B00C6D80B /* ItemListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C53CBD2C1FE59B00C6D80B /* ItemListView.swift */; }; @@ -3035,10 +3035,10 @@ EEB4E2DE29B61AAD00371C3C /* CouponInputTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEB4E2DD29B61AAD00371C3C /* CouponInputTransformer.swift */; }; EEBA02A32ADD6005001FE8E4 /* BlazeCampaignDashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBA02A22ADD6005001FE8E4 /* BlazeCampaignDashboardView.swift */; }; EEBA02A52ADD606D001FE8E4 /* BlazeCampaignDashboardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBA02A42ADD606D001FE8E4 /* BlazeCampaignDashboardViewModel.swift */; }; - EEBB816F2D8C082B008D6CE5 /* CollapsibleShipmentCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentCardViewModel.swift */; }; - EEBB81712D8C0839008D6CE5 /* CollapsibleShipmentCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentCard.swift */; }; - EEBB9B3B2D8E5071008D6CE5 /* SelectableShipmentRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentRow.swift */; }; - EEBB9B3D2D8E5099008D6CE5 /* SelectableShipmentRowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentRowViewModel.swift */; }; + EEBB816F2D8C082B008D6CE5 /* CollapsibleShipmentItemCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentItemCardViewModel.swift */; }; + EEBB81712D8C0839008D6CE5 /* CollapsibleShipmentItemCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentItemCard.swift */; }; + EEBB9B3B2D8E5071008D6CE5 /* SelectableShipmentItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentItemRow.swift */; }; + EEBB9B3D2D8E5099008D6CE5 /* SelectableShipmentItemRowViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentItemRowViewModel.swift */; }; EEBB9B402D8FE5B6008D6CE5 /* WooShippingSplitShipmentsViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBB9B3F2D8FE5B4008D6CE5 /* WooShippingSplitShipmentsViewModelTests.swift */; }; EEBBC3BC2D92A1E0008D6CE5 /* MoveToShipmentNotice.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBBC3BB2D92A1C6008D6CE5 /* MoveToShipmentNotice.swift */; }; EEBDF7DA2A2EF69B00EFEF47 /* ShareProductCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEBDF7D92A2EF69B00EFEF47 /* ShareProductCoordinator.swift */; }; @@ -4787,8 +4787,8 @@ 68A905002ACCFC13004C71D3 /* CollapsibleProductCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleProductCard.swift; sourceTree = ""; }; 68AC9D282ACE598B0042F784 /* ProductImageThumbnail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductImageThumbnail.swift; sourceTree = ""; }; 68AF3C3A2D01481A006F1ED2 /* POSReceiptEligibilityBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSReceiptEligibilityBanner.swift; sourceTree = ""; }; - 68B681152D92577F0098D5CD /* PointOfSaleCouponsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCouponsController.swift; sourceTree = ""; }; 68B3BA252D9147440000B2F2 /* AISettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AISettingsView.swift; sourceTree = ""; }; + 68B681152D92577F0098D5CD /* PointOfSaleCouponsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PointOfSaleCouponsController.swift; sourceTree = ""; }; 68B6F22A2ADE7ED500D171FC /* TooltipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipView.swift; sourceTree = ""; }; 68C31B702A8617C500AE5C5A /* NewNoteViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewNoteViewModel.swift; sourceTree = ""; }; 68C53CBD2C1FE59B00C6D80B /* ItemListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListView.swift; sourceTree = ""; }; @@ -6253,10 +6253,10 @@ EEB4E2DD29B61AAD00371C3C /* CouponInputTransformer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponInputTransformer.swift; sourceTree = ""; }; EEBA02A22ADD6005001FE8E4 /* BlazeCampaignDashboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazeCampaignDashboardView.swift; sourceTree = ""; }; EEBA02A42ADD606D001FE8E4 /* BlazeCampaignDashboardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazeCampaignDashboardViewModel.swift; sourceTree = ""; }; - EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleShipmentCardViewModel.swift; sourceTree = ""; }; - EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleShipmentCard.swift; sourceTree = ""; }; - EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableShipmentRow.swift; sourceTree = ""; }; - EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentRowViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableShipmentRowViewModel.swift; sourceTree = ""; }; + EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentItemCardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleShipmentItemCardViewModel.swift; sourceTree = ""; }; + EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentItemCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollapsibleShipmentItemCard.swift; sourceTree = ""; }; + EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableShipmentItemRow.swift; sourceTree = ""; }; + EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentItemRowViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableShipmentItemRowViewModel.swift; sourceTree = ""; }; EEBB9B3F2D8FE5B4008D6CE5 /* WooShippingSplitShipmentsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WooShippingSplitShipmentsViewModelTests.swift; sourceTree = ""; }; EEBBC3BB2D92A1C6008D6CE5 /* MoveToShipmentNotice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoveToShipmentNotice.swift; sourceTree = ""; }; EEBDF7D92A2EF69B00EFEF47 /* ShareProductCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareProductCoordinator.swift; sourceTree = ""; }; @@ -14027,10 +14027,10 @@ isa = PBXGroup; children = ( EEBBC3BB2D92A1C6008D6CE5 /* MoveToShipmentNotice.swift */, - EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentRowViewModel.swift */, - EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentRow.swift */, - EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentCard.swift */, - EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentCardViewModel.swift */, + EEBB9B3C2D8E508E008D6CE5 /* SelectableShipmentItemRowViewModel.swift */, + EEBB9B3A2D8E5058008D6CE5 /* SelectableShipmentItemRow.swift */, + EEBB81702D8C0834008D6CE5 /* CollapsibleShipmentItemCard.swift */, + EEBB816E2D8C0821008D6CE5 /* CollapsibleShipmentItemCardViewModel.swift */, EE7E75AB2D84080A00E6FF5B /* WooShippingSplitShipmentsViewModel.swift */, EE7E75A92D84066800E6FF5B /* WooShippingSplitShipmentsDetailView.swift */, EE7E75A72D83EB0700E6FF5B /* WooShippingSplitShipmentsRow.swift */, @@ -15905,7 +15905,7 @@ 0211259F2578DE310075AD2A /* ShippingLabelPrintingStepView.swift in Sources */, B58B4AB22108F01700076FDD /* NoticeView.swift in Sources */, 20D2CCA52C7E328300051705 /* POSModalCloseButton.swift in Sources */, - EEBB816F2D8C082B008D6CE5 /* CollapsibleShipmentCardViewModel.swift in Sources */, + EEBB816F2D8C082B008D6CE5 /* CollapsibleShipmentItemCardViewModel.swift in Sources */, DA25ADDD2C86145E00AE81FE /* MarkOrderAsReadUseCase.swift in Sources */, 01BB6C072D09DC560094D55B /* CardPresentModalLocationPreAlert.swift in Sources */, 74B5713621CD7604008F9B8E /* SharingHelper.swift in Sources */, @@ -16570,7 +16570,7 @@ 02DE39D92968647100BB31D4 /* DomainSettingsViewModel.swift in Sources */, 576EA39225264C7400AFC0B3 /* RefundConfirmationViewController.swift in Sources */, DE36E0982A8634FF00B98496 /* StoreNameSetupView.swift in Sources */, - EEBB9B3B2D8E5071008D6CE5 /* SelectableShipmentRow.swift in Sources */, + EEBB9B3B2D8E5071008D6CE5 /* SelectableShipmentItemRow.swift in Sources */, 2688641B25D3202B00821BA5 /* EditAttributesViewController.swift in Sources */, 7E6A01972725B811001668D5 /* FilterProductCategoryListViewController.swift in Sources */, E10DFC7A2673595A0083AFF2 /* ShareSheet.swift in Sources */, @@ -16799,7 +16799,7 @@ 453DBF8E2387F34A006762A5 /* UICollectionViewCell+Helpers.swift in Sources */, 45B9C63E23A8E50D007FC4C5 /* ProductPriceSettingsViewController.swift in Sources */, 318853362639FC9C00F66A9C /* PaymentSettingsFlowPresentingViewController.swift in Sources */, - EEBB9B3D2D8E5099008D6CE5 /* SelectableShipmentRowViewModel.swift in Sources */, + EEBB9B3D2D8E5099008D6CE5 /* SelectableShipmentItemRowViewModel.swift in Sources */, 452FE64B25657EC100EB54A0 /* LinkedProductsViewController.swift in Sources */, B99686E32A13C98200D1AF62 /* ScanToPayViewModel.swift in Sources */, 450C6EEA286F4334002DB168 /* SitePlugin+Woo.swift in Sources */, @@ -16814,7 +16814,7 @@ 021125992578D9C20075AD2A /* ShippingLabelPrintingInstructionsView.swift in Sources */, 03E471D42942096B001A58AD /* BuiltInCardReaderPaymentAlertsProvider.swift in Sources */, 026826C72BF59E410036F959 /* PointOfSaleCardPresentPaymentScanningForReadersView.swift in Sources */, - EEBB81712D8C0839008D6CE5 /* CollapsibleShipmentCard.swift in Sources */, + EEBB81712D8C0839008D6CE5 /* CollapsibleShipmentItemCard.swift in Sources */, 68E952CC287536010095A23D /* SafariView.swift in Sources */, D449C51C26DE6B5000D75B02 /* IconListItem.swift in Sources */, EE9D03182B89E2B10077CED1 /* OrderStatusEnum+Analytics.swift in Sources */,