diff --git a/Modules/Sources/Experiments/DefaultFeatureFlagService.swift b/Modules/Sources/Experiments/DefaultFeatureFlagService.swift index 8d0c26634fc..e713a59aaf5 100644 --- a/Modules/Sources/Experiments/DefaultFeatureFlagService.swift +++ b/Modules/Sources/Experiments/DefaultFeatureFlagService.swift @@ -94,7 +94,7 @@ public struct DefaultFeatureFlagService: FeatureFlagService { case .pointOfSaleAsATabi1: return true case .pointOfSaleOrdersi1: - return buildConfig == .localDeveloper || buildConfig == .alpha + return false default: return true } diff --git a/WooCommerce/Classes/Extensions/UILabel+SalesChannel.swift b/WooCommerce/Classes/Extensions/UILabel+SalesChannel.swift new file mode 100644 index 00000000000..d89b2861c0b --- /dev/null +++ b/WooCommerce/Classes/Extensions/UILabel+SalesChannel.swift @@ -0,0 +1,27 @@ +import UIKit + +extension UILabel { + /// Applies the appropriate style to sales channel label + /// + func applySalesChannelStyle() { + applyFootnoteStyle() + applyLayerSettings() + backgroundColor = .lightGray + textColor = .black + } + + /// Setup: Layer + /// + private func applyLayerSettings() { + layer.masksToBounds = true + layer.borderWidth = Layout.borderWidth + layer.cornerRadius = Layout.cornerRadius + } +} + +private extension UILabel { + enum Layout { + static let borderWidth = CGFloat(0.0) + static let cornerRadius = CGFloat(4.0) + } +} diff --git a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderListCellViewModel.swift b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderListCellViewModel.swift index a51496b912e..526724b6047 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderListCellViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderListCellViewModel.swift @@ -76,6 +76,13 @@ struct OrderListCellViewModel { return order.status.localizedName } + /// Textual representation of the sales channel + /// + var salesChannel: String { + // Temporarily hardcoded. Will be handled on WOOMOB-661 + return "POS" + } + /// The localized unabbreviated total for a given order item, which includes the currency. /// /// Example: $48,415,504.20 diff --git a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.swift b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.swift index bb9fd29d145..abcb4774e3c 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.swift +++ b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.swift @@ -23,6 +23,10 @@ final class OrderTableViewCell: UITableViewCell & SearchResultCell { /// @IBOutlet private var paymentStatusLabel: PaddedLabel! + /// Sales channel + /// + @IBOutlet private var salesChannelLabel: PaddedLabel! + /// Top-level stack view that contains the stack view of title and payment status labels, and total price label. /// @IBOutlet weak var contentStackView: UIStackView! @@ -53,6 +57,14 @@ final class OrderTableViewCell: UITableViewCell & SearchResultCell { paymentStatusLabel.applyStyle(for: viewModel.status) paymentStatusLabel.text = viewModel.statusString + if ServiceLocator.featureFlagService.isFeatureFlagEnabled(.pointOfSaleOrdersi1) { + salesChannelLabel.isHidden = false + salesChannelLabel.applySalesChannelStyle() + salesChannelLabel.text = viewModel.salesChannel + } else { + salesChannelLabel.isHidden = true + } + accessoryType = .none accessoryView = viewModel.accessoryView @@ -147,5 +159,8 @@ private extension OrderTableViewCell { paymentStatusLabel.numberOfLines = 0 dateCreatedLabel.applyCaption1Style() + + salesChannelLabel.applyFootnoteStyle() + salesChannelLabel.numberOfLines = 1 } } diff --git a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.xib b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.xib index af358ad43d0..ddf03f84d74 100644 --- a/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.xib +++ b/WooCommerce/Classes/ViewRelated/Orders/Cells/OrderTableViewCell.xib @@ -1,9 +1,9 @@ - + - + @@ -17,10 +17,10 @@ - + - + - - + + + - - - - - - - +