diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubView.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubView.swift index b633d2cb90f..642fe0cb50b 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubView.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubView.swift @@ -113,7 +113,7 @@ struct AnalyticsHubView: View { Divider() } - .renderedIf(ServiceLocator.featureFlagService.isFeatureFlagEnabled(.analyticsHub)) + .renderedIf(ServiceLocator.featureFlagService.isFeatureFlagEnabled(.analyticsHub) && viewModel.showSessionsCard) Spacer() } diff --git a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift index 915019cbeea..8c7b01c14e0 100644 --- a/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift +++ b/WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModel.swift @@ -53,6 +53,17 @@ final class AnalyticsHubViewModel: ObservableObject { /// @Published var sessionsCard = AnalyticsHubViewModel.sessionsCard(currentPeriodStats: nil, siteStats: nil) + /// Sessions Card display state + /// + var showSessionsCard: Bool { + switch timeRangeSelectionType { + case .custom: + return false + default: + return true + } + } + /// Time Range Selection Type /// @Published var timeRangeSelectionType: AnalyticsHubTimeRangeSelection.SelectionType diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModelTests.swift index 6e51f4ebb96..3f5b4852ca3 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Analytics Hub/AnalyticsHubViewModelTests.swift @@ -118,4 +118,22 @@ final class AnalyticsHubViewModelTests: XCTestCase { XCTAssertEqual(loadingItemsSoldCard?.isRedacted, true) XCTAssertEqual(loadingSessionsCard?.isRedacted, true) } + + func test_session_card_is_hidden_for_custom_range() async { + // Given + let vm = AnalyticsHubViewModel(siteID: 123, statsTimeRange: .today, usageTracksEventEmitter: eventEmitter, stores: stores) + XCTAssertTrue(vm.showSessionsCard) + + // When + vm.timeRangeSelectionType = .custom(start: Date(), end: Date()) + + // Then + XCTAssertFalse(vm.showSessionsCard) + + // When + vm.timeRangeSelectionType = .lastMonth + + // Then + XCTAssertTrue(vm.showSessionsCard) + } }