From e1300aaec1248ee751aa37b314108b7a40d58770 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Thu, 24 Nov 2022 09:39:51 +0000 Subject: [PATCH 1/3] Initialize orders card with placeholders and constants --- .../Analytics Hub/AnalyticsHubViewModel.swift | 42 +++++++++++++++---- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift index 98386dfbc63..33f7daf16ea 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift @@ -1,5 +1,6 @@ import Foundation import Yosemite +import class UIKit.UIColor /// Main View Model for the Analytics Hub. /// @@ -19,15 +20,15 @@ final class AnalyticsHubViewModel: ObservableObject { /// Orders Card ViewModel /// - @Published var ordersCard = AnalyticsReportCardViewModel(title: "ORDERS", - leadingTitle: "Total Orders", - leadingValue: "145", - leadingDelta: "+36%", - leadingDeltaColor: .withColorStudio(.green, shade: .shade50), - trailingTitle: "Average Order Value", - trailingValue: "$57,99", - trailingDelta: "-16%", - trailingDeltaColor: .withColorStudio(.red, shade: .shade40)) + @Published var ordersCard = AnalyticsReportCardViewModel(title: Localization.OrderCard.title, + leadingTitle: Localization.OrderCard.leadingTitle, + leadingValue: Constants.placeholderLabel, + leadingDelta: Constants.placeholderLabel, + leadingDeltaColor: Constants.deltaColor(for: .negative), + trailingTitle: Localization.OrderCard.trailingTitle, + trailingValue: Constants.placeholderLabel, + trailingDelta: Constants.placeholderLabel, + trailingDeltaColor: Constants.deltaColor(for: .negative)) // MARK: Private data @@ -39,3 +40,26 @@ final class AnalyticsHubViewModel: ObservableObject { /// @Published private var previousOrderStats: OrderStatsV4? = nil } + +// MARK: - Constants +private extension AnalyticsHubViewModel { + enum Constants { + static let placeholderLabel = "-" + static func deltaColor(for direction: StatsDataTextFormatter.DeltaPercentage.Direction) -> UIColor { + switch direction { + case .positive: + return .withColorStudio(.green, shade: .shade50) + case .negative, .zero: + return .withColorStudio(.red, shade: .shade40) + } + } + } + + enum Localization { + enum OrderCard { + static let title = NSLocalizedString("ORDERS", comment: "Title for order analytics section in the Analytics Hub") + static let leadingTitle = NSLocalizedString("Total Orders", comment: "Label for total number of orders in the Analytics Hub") + static let trailingTitle = NSLocalizedString("Average Order Value", comment: "Label for average value of orders in the Analytics Hub") + } + } +} From 60199880823d51a478d48f085148855d0d23eab8 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Thu, 24 Nov 2022 10:58:25 +0000 Subject: [PATCH 2/3] Initialize revenue card with placeholders and constants --- .../Analytics Hub/AnalyticsHubViewModel.swift | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift index 33f7daf16ea..05b5e7b140e 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift @@ -8,15 +8,15 @@ final class AnalyticsHubViewModel: ObservableObject { /// Revenue Card ViewModel /// - @Published var revenueCard = AnalyticsReportCardViewModel(title: "REVENUE", - leadingTitle: "Total Sales", - leadingValue: "$3.234", - leadingDelta: "+23%", - leadingDeltaColor: .withColorStudio(.green, shade: .shade50), - trailingTitle: "Net Sales", - trailingValue: "$2.324", - trailingDelta: "-4%", - trailingDeltaColor: .withColorStudio(.red, shade: .shade40)) + @Published var revenueCard = AnalyticsReportCardViewModel(title: Localization.RevenueCard.title, + leadingTitle: Localization.RevenueCard.leadingTitle, + leadingValue: Constants.placeholderLabel, + leadingDelta: Constants.placeholderLabel, + leadingDeltaColor: Constants.deltaColor(for: .negative), + trailingTitle: Localization.RevenueCard.trailingTitle, + trailingValue: Constants.placeholderLabel, + trailingDelta: Constants.placeholderLabel, + trailingDeltaColor: Constants.deltaColor(for: .negative)) /// Orders Card ViewModel /// @@ -56,6 +56,12 @@ private extension AnalyticsHubViewModel { } enum Localization { + enum RevenueCard { + static let title = NSLocalizedString("REVENUE", comment: "Title for revenue analytics section in the Analytics Hub") + static let leadingTitle = NSLocalizedString("Total Sales", comment: "Label for total sales (gross revenue) in the Analytics Hub") + static let trailingTitle = NSLocalizedString("Net Sales", comment: "Label for net sales (net revenue) in the Analytics Hub") + } + enum OrderCard { static let title = NSLocalizedString("ORDERS", comment: "Title for order analytics section in the Analytics Hub") static let leadingTitle = NSLocalizedString("Total Orders", comment: "Label for total number of orders in the Analytics Hub") From b63885ccc77563e381c77de7f32503f3970962fb Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Thu, 24 Nov 2022 12:45:05 +0000 Subject: [PATCH 3/3] Add placeholder delta percentage --- .../Analytics Hub/AnalyticsHubViewModel.swift | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift index 05b5e7b140e..0ac3b1b256c 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift @@ -10,25 +10,25 @@ final class AnalyticsHubViewModel: ObservableObject { /// @Published var revenueCard = AnalyticsReportCardViewModel(title: Localization.RevenueCard.title, leadingTitle: Localization.RevenueCard.leadingTitle, - leadingValue: Constants.placeholderLabel, - leadingDelta: Constants.placeholderLabel, - leadingDeltaColor: Constants.deltaColor(for: .negative), + leadingValue: Constants.placeholderValue, + leadingDelta: Constants.placeholderDelta.string, + leadingDeltaColor: Constants.deltaColor(for: Constants.placeholderDelta.direction), trailingTitle: Localization.RevenueCard.trailingTitle, - trailingValue: Constants.placeholderLabel, - trailingDelta: Constants.placeholderLabel, - trailingDeltaColor: Constants.deltaColor(for: .negative)) + trailingValue: Constants.placeholderValue, + trailingDelta: Constants.placeholderDelta.string, + trailingDeltaColor: Constants.deltaColor(for: Constants.placeholderDelta.direction)) /// Orders Card ViewModel /// @Published var ordersCard = AnalyticsReportCardViewModel(title: Localization.OrderCard.title, leadingTitle: Localization.OrderCard.leadingTitle, - leadingValue: Constants.placeholderLabel, - leadingDelta: Constants.placeholderLabel, - leadingDeltaColor: Constants.deltaColor(for: .negative), + leadingValue: Constants.placeholderValue, + leadingDelta: Constants.placeholderDelta.string, + leadingDeltaColor: Constants.deltaColor(for: Constants.placeholderDelta.direction), trailingTitle: Localization.OrderCard.trailingTitle, - trailingValue: Constants.placeholderLabel, - trailingDelta: Constants.placeholderLabel, - trailingDeltaColor: Constants.deltaColor(for: .negative)) + trailingValue: Constants.placeholderValue, + trailingDelta: Constants.placeholderDelta.string, + trailingDeltaColor: Constants.deltaColor(for: Constants.placeholderDelta.direction)) // MARK: Private data @@ -44,7 +44,8 @@ final class AnalyticsHubViewModel: ObservableObject { // MARK: - Constants private extension AnalyticsHubViewModel { enum Constants { - static let placeholderLabel = "-" + static let placeholderValue = "-" + static let placeholderDelta = StatsDataTextFormatter.createDeltaPercentage(from: 0.0, to: 0.0) static func deltaColor(for direction: StatsDataTextFormatter.DeltaPercentage.Direction) -> UIColor { switch direction { case .positive: