Skip to content

Commit 577ac14

Browse files
authored
Merge pull request #8262 from woocommerce/issue/8201-analytics-chart-accessibility
[Analytics Hub] Improve line chart accessibility (dynamic type)
2 parents 34d3500 + 1aa57f4 commit 577ac14

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

WooCommerce/Classes/ViewRelated/Dashboard/Analytics Hub/AnalyticsReportCard.swift

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ struct AnalyticsReportCard: View {
1616
let trailingDeltaColor: UIColor
1717
let trailingChartData: [Double]
1818

19+
// Layout metrics that scale based on accessibility changes
20+
@ScaledMetric private var scaledChartWidth: CGFloat = Layout.chartWidth
21+
@ScaledMetric private var scaledChartHeight: CGFloat = Layout.chartHeight
22+
1923
var body: some View {
2024
VStack(alignment: .leading, spacing: Layout.titleSpacing) {
2125

@@ -35,13 +39,12 @@ struct AnalyticsReportCard: View {
3539
Text(leadingValue)
3640
.titleStyle()
3741

38-
AdaptiveStack {
42+
AdaptiveStack(horizontalAlignment: .leading) {
3943
DeltaTag(value: leadingDelta, backgroundColor: leadingDeltaColor)
4044
.frame(maxWidth: .infinity, alignment: .leading)
4145

4246
AnalyticsLineChart(dataPoints: leadingChartData, lineChartColor: leadingDeltaColor)
43-
.aspectRatio(Layout.chartAspectRatio, contentMode: .fit)
44-
.frame(maxWidth: .infinity, maxHeight: Layout.chartMaxHeight, alignment: .trailing)
47+
.frame(width: scaledChartWidth, height: scaledChartHeight)
4548
}
4649

4750
}
@@ -56,13 +59,12 @@ struct AnalyticsReportCard: View {
5659
Text(trailingValue)
5760
.titleStyle()
5861

59-
AdaptiveStack {
62+
AdaptiveStack(horizontalAlignment: .leading) {
6063
DeltaTag(value: trailingDelta, backgroundColor: trailingDeltaColor)
6164
.frame(maxWidth: .infinity, alignment: .leading)
6265

6366
AnalyticsLineChart(dataPoints: trailingChartData, lineChartColor: trailingDeltaColor)
64-
.aspectRatio(Layout.chartAspectRatio, contentMode: .fit)
65-
.frame(maxWidth: .infinity, maxHeight: Layout.chartMaxHeight, alignment: .trailing)
67+
.frame(width: scaledChartWidth, height: scaledChartHeight)
6668
}
6769
}
6870
.frame(maxWidth: .infinity, alignment: .leading)
@@ -79,8 +81,8 @@ private extension AnalyticsReportCard {
7981
static let cardPadding: CGFloat = 16
8082
static let columnOutterSpacing: CGFloat = 28
8183
static let columnInnerSpacing: CGFloat = 10
82-
static let chartAspectRatio: CGFloat = 2.2
83-
static let chartMaxHeight: CGFloat = 48
84+
static let chartHeight: CGFloat = 32
85+
static let chartWidth: CGFloat = 72
8486
}
8587
}
8688

0 commit comments

Comments
 (0)