Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ struct AnalyticsHubView: View {

Divider()
}
.renderedIf(ServiceLocator.featureFlagService.isFeatureFlagEnabled(.analyticsHub))
.renderedIf(ServiceLocator.featureFlagService.isFeatureFlagEnabled(.analyticsHub) && viewModel.showSessionsCard)

Spacer()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}