From ccbdbfbd082ef564b487650c4ff602d7d46cc422 Mon Sep 17 00:00:00 2001 From: kean Date: Fri, 3 Jan 2025 12:19:22 -0500 Subject: [PATCH 1/3] Fix formatting --- .../SiteStatsInsightsDetailsViewModel.swift | 123 ++++++++++++------ 1 file changed, 80 insertions(+), 43 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Stats/Shared Views/Stats Detail/SiteStatsInsightsDetailsViewModel.swift b/WordPress/Classes/ViewRelated/Stats/Shared Views/Stats Detail/SiteStatsInsightsDetailsViewModel.swift index 17cb531c2a2c..5a50c435f68a 100644 --- a/WordPress/Classes/ViewRelated/Stats/Shared Views/Stats Detail/SiteStatsInsightsDetailsViewModel.swift +++ b/WordPress/Classes/ViewRelated/Stats/Shared Views/Stats Detail/SiteStatsInsightsDetailsViewModel.swift @@ -274,12 +274,16 @@ class SiteStatsInsightsDetailsViewModel: Observable { // Views Visitors let weekEnd = futureEndOfWeekDate(for: periodSummary) - rows.append(contentsOf: SiteStatsImmuTableRows.viewVisitorsImmuTableRows(periodSummary, - selectedSegment: selectedViewsVisitorsSegment, - periodDate: selectedDate!, - periodEndDate: weekEnd, - siteStatsInsightsDelegate: nil, - viewsAndVisitorsDelegate: viewsAndVisitorsDelegate)) + rows.append( + contentsOf: SiteStatsImmuTableRows.viewVisitorsImmuTableRows( + periodSummary, + selectedSegment: selectedViewsVisitorsSegment, + periodDate: selectedDate!, + periodEndDate: weekEnd, + siteStatsInsightsDelegate: nil, + viewsAndVisitorsDelegate: viewsAndVisitorsDelegate + ) + ) // Referrers if let referrers = viewsAndVisitorsData.topReferrers { @@ -287,13 +291,16 @@ class SiteStatsInsightsDetailsViewModel: Observable { let chartViewModel = StatsReferrersChartViewModel(referrers: referrers) let chartView: UIView? = referrers.totalReferrerViewsCount > 0 ? chartViewModel.makeReferrersChartView() : nil - var referrersRow = TopTotalsPeriodStatsRow(itemSubtitle: StatSection.periodReferrers.itemSubtitle, - dataSubtitle: StatSection.periodReferrers.dataSubtitle, - dataRows: referrersData, - statSection: StatSection.periodReferrers, - siteStatsPeriodDelegate: nil, //TODO - look at if I need to be not null - siteStatsReferrerDelegate: nil, - siteStatsInsightsDetailsDelegate: insightsDetailsDelegate) + var referrersRow = TopTotalsPeriodStatsRow( + itemSubtitle: StatSection.periodReferrers.itemSubtitle, + dataSubtitle: StatSection.periodReferrers.dataSubtitle, + dataRows: referrersData, + statSection: StatSection.periodReferrers, + siteStatsPeriodDelegate: nil, + //TODO - look at if I need to be not null + siteStatsReferrerDelegate: nil, + siteStatsInsightsDetailsDelegate: insightsDetailsDelegate + ) referrersRow.topAccessoryView = chartView rows.append(referrersRow) } @@ -304,12 +311,18 @@ class SiteStatsInsightsDetailsViewModel: Observable { if isMapShown { rows.append(CountriesMapRow(countriesMap: map, statSection: .periodCountries)) } - rows.append(CountriesStatsRow(itemSubtitle: StatSection.periodCountries.itemSubtitle, - dataSubtitle: StatSection.periodCountries.dataSubtitle, - statSection: isMapShown ? nil : .periodCountries, - dataRows: countriesRowData(topCountries: viewsAndVisitorsData.topCountries), - siteStatsPeriodDelegate: nil, - siteStatsInsightsDetailsDelegate: insightsDetailsDelegate)) + rows.append( + CountriesStatsRow( + itemSubtitle: StatSection.periodCountries.itemSubtitle, + dataSubtitle: StatSection.periodCountries.dataSubtitle, + statSection: isMapShown ? nil : .periodCountries, + dataRows: countriesRowData( + topCountries: viewsAndVisitorsData.topCountries + ), + siteStatsPeriodDelegate: nil, + siteStatsInsightsDetailsDelegate: insightsDetailsDelegate + ) + ) return rows } @@ -326,29 +339,42 @@ class SiteStatsInsightsDetailsViewModel: Observable { let emailFollowersCount = insightsStore.getEmailFollowers()?.emailFollowersCount ?? 0 if dotComFollowersCount > 0 || emailFollowersCount > 0 { - let chartViewModel = StatsFollowersChartViewModel(dotComFollowersCount: dotComFollowersCount, - emailFollowersCount: emailFollowersCount) + let chartViewModel = StatsFollowersChartViewModel( + dotComFollowersCount: dotComFollowersCount, + emailFollowersCount: emailFollowersCount + ) let chartView: UIView = chartViewModel.makeFollowersChartView() - var chartRow = TopTotalsPeriodStatsRow(itemSubtitle: "", - dataSubtitle: "", - dataRows: followersRowData(dotComFollowersCount: dotComFollowersCount, - emailFollowersCount: emailFollowersCount, - totalCount: dotComFollowersCount + emailFollowersCount), - statSection: StatSection.insightsFollowersWordPress, - siteStatsPeriodDelegate: nil, //TODO - look at if I need to be not null - siteStatsReferrerDelegate: nil) + var chartRow = TopTotalsPeriodStatsRow( + itemSubtitle: "", + dataSubtitle: "", + dataRows: followersRowData( + dotComFollowersCount: dotComFollowersCount, + emailFollowersCount: emailFollowersCount, + totalCount: dotComFollowersCount + emailFollowersCount + ), + statSection: StatSection.insightsFollowersWordPress, + siteStatsPeriodDelegate: nil, + //TODO - look at if I need to be not null + siteStatsReferrerDelegate: nil + ) chartRow.topAccessoryView = chartView rows.append(chartRow) } - rows.append(TabbedTotalsStatsRow(tabsData: [tabDataForFollowerType(.insightsFollowersWordPress), - tabDataForFollowerType(.insightsFollowersEmail)], + rows.append( + TabbedTotalsStatsRow( + tabsData: [ + tabDataForFollowerType(.insightsFollowersWordPress), + tabDataForFollowerType(.insightsFollowersEmail) + ], statSection: .insightsFollowersWordPress, siteStatsInsightsDelegate: insightsDetailsDelegate, siteStatsDetailsDelegate: detailsDelegate, - showTotalCount: false)) + showTotalCount: false + ) + ) return rows } case .insightsLikesTotals: @@ -358,21 +384,32 @@ class SiteStatsInsightsDetailsViewModel: Observable { let likesTotalsData = revampStore.getLikesTotalsData() if let summary = likesTotalsData.summary { - rows.append(TotalInsightStatsRow(dataRow: createLikesTotalInsightsRow(periodSummary: summary), - statSection: statSection, - siteStatsInsightsDelegate: nil) + rows.append( + TotalInsightStatsRow( + dataRow: createLikesTotalInsightsRow( + periodSummary: summary + ), + statSection: statSection, + siteStatsInsightsDelegate: nil + ) ) } if let topPostsAndPages = likesTotalsData.topPostsAndPages { - rows.append(TopTotalsPeriodStatsRow(itemSubtitle: StatSection.periodPostsAndPages.itemSubtitle, - dataSubtitle: StatSection.periodPostsAndPages.dataSubtitle, - dataRows: postsAndPagesRowData(topPostsAndPages: topPostsAndPages), - statSection: StatSection.periodPostsAndPages, - siteStatsPeriodDelegate: nil, - siteStatsReferrerDelegate: nil, - siteStatsInsightsDetailsDelegate: insightsDetailsDelegate, - siteStatsDetailsDelegate: detailsDelegate)) + rows.append( + TopTotalsPeriodStatsRow( + itemSubtitle: StatSection.periodPostsAndPages.itemSubtitle, + dataSubtitle: StatSection.periodPostsAndPages.dataSubtitle, + dataRows: postsAndPagesRowData( + topPostsAndPages: topPostsAndPages + ), + statSection: StatSection.periodPostsAndPages, + siteStatsPeriodDelegate: nil, + siteStatsReferrerDelegate: nil, + siteStatsInsightsDetailsDelegate: insightsDetailsDelegate, + siteStatsDetailsDelegate: detailsDelegate + ) + ) } return rows From 13bcd399e8205e4e7d91a5b2ac269ee07e310a59 Mon Sep 17 00:00:00 2001 From: kean Date: Fri, 3 Jan 2025 12:35:49 -0500 Subject: [PATCH 2/3] Fix an issue with referrers showing invalid icons --- .../SiteStatsPeriodViewModel.swift | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Stats/Period Stats/SiteStatsPeriodViewModel.swift b/WordPress/Classes/ViewRelated/Stats/Period Stats/SiteStatsPeriodViewModel.swift index 11d1e4eb2812..4f84a6d10334 100644 --- a/WordPress/Classes/ViewRelated/Stats/Period Stats/SiteStatsPeriodViewModel.swift +++ b/WordPress/Classes/ViewRelated/Stats/Period Stats/SiteStatsPeriodViewModel.swift @@ -502,27 +502,19 @@ private extension SiteStatsPeriodViewModel { let referrers = store.getTopReferrers()?.referrers.prefix(10) ?? [] func rowDataFromReferrer(referrer: StatsReferrer) -> StatsTotalRowData { - var icon: UIImage? = nil - var iconURL: URL? = nil - - switch referrer.iconURL?.lastPathComponent { - case "search-engine.png": - icon = Style.imageForGridiconType(.search) - case nil: - icon = Style.imageForGridiconType(.globe) - default: - iconURL = referrer.iconURL - } - - return StatsTotalRowData(name: referrer.title, - data: referrer.viewsCount.abbreviatedString(), - icon: icon, - socialIconURL: iconURL, - showDisclosure: true, - disclosureURL: referrer.url, - childRows: referrer.children.map { rowDataFromReferrer(referrer: $0) }, - statSection: .periodReferrers, - isReferrerSpam: referrer.isSpam) + return StatsTotalRowData( + name: referrer.title, + data: referrer.viewsCount.abbreviatedString(), + icon: nil, + socialIconURL: nil, + showDisclosure: true, + disclosureURL: referrer.url, + childRows: referrer.children.map { + rowDataFromReferrer(referrer: $0) + }, + statSection: .periodReferrers, + isReferrerSpam: referrer.isSpam + ) } return referrers.map { rowDataFromReferrer(referrer: $0) } From 2f22b2f6beb54703b3fdce06f7ea1e0f280c6b9d Mon Sep 17 00:00:00 2001 From: kean Date: Fri, 3 Jan 2025 12:37:27 -0500 Subject: [PATCH 3/3] Update release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index d099e643848f..0fb781f035fd 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -12,6 +12,7 @@ * [*] Fix incorrect chevron icons direction in RTL languages [#23940] * [*] Fix an issue with clear navigation bar background in revision browser [#23941] * [*] Fix an issue with comments being lost on request failure [#23942] +* [*] Fix an issue with Referrers in Stats showing invalid icons [#23943] 25.6 -----