Skip to content

Commit 78fd82f

Browse files
authored
[Woo POS][Settings] i2: Update store, help, and card details (#16319)
2 parents 9ce35ff + 5d85948 commit 78fd82f

File tree

5 files changed

+139
-150
lines changed

5 files changed

+139
-150
lines changed

Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsHardwareDetailView.swift

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct POSSettingsHardwareDetailView: View {
3232
}
3333

3434
private var backgroundColor: Color {
35-
Color.posOnSecondaryContainer
35+
Color.posSurface
3636
}
3737

3838
var body: some View {
@@ -143,47 +143,46 @@ private extension POSSettingsHardwareDetailView {
143143
}, buttonIcon: "chevron.left"))
144144
.foregroundColor(.posSurface)
145145

146-
List {
147-
if case .connected = posModel.cardReaderConnectionStatus {
148-
VStack(spacing: POSPadding.xSmall) {
149-
HStack {
150-
Text(Localization.readerModelTitle)
151-
.foregroundStyle(.primary)
152-
Spacer()
153-
Text(cardReaderName)
154-
.foregroundStyle(.secondary)
155-
}
156-
.padding()
157-
HStack {
158-
Text(Localization.readerBatteryTitle)
159-
.foregroundStyle(.primary)
160-
Spacer()
161-
Text(formattedBatteryLevel)
162-
.foregroundStyle(.secondary)
146+
ScrollView {
147+
VStack(spacing: POSSpacing.small) {
148+
if case .connected = posModel.cardReaderConnectionStatus {
149+
VStack(spacing: POSPadding.xSmall) {
150+
HStack {
151+
Text(Localization.readerModelTitle)
152+
.foregroundStyle(.primary)
153+
Spacer()
154+
Text(cardReaderName)
155+
.foregroundStyle(.secondary)
156+
}
157+
.padding()
158+
HStack {
159+
Text(Localization.readerBatteryTitle)
160+
.foregroundStyle(.primary)
161+
Spacer()
162+
Text(formattedBatteryLevel)
163+
.foregroundStyle(.secondary)
164+
}
165+
.padding()
163166
}
164-
.padding()
167+
.font(.posBodyMediumRegular())
168+
} else {
169+
POSSettingsCard(title: Localization.cardReaderConnectTitle,
170+
subtitle: Localization.cardReaderConnectSubtitle,
171+
action: {
172+
posModel.connectCardReader()
173+
})
165174
}
166-
.font(.posBodyMediumRegular())
167-
} else {
168-
POSSettingsCard(title: Localization.cardReaderConnectTitle,
169-
subtitle: Localization.cardReaderConnectSubtitle,
170-
action: {
171-
posModel.connectCardReader()
172-
})
173-
}
174175

175-
POSSettingsCard(title: Localization.cardReaderDocumentationTitle,
176-
subtitle: Localization.cardReaderDocumentationSubtitle,
177-
action: { showCardReaderDocumentationModal = true })
178-
.accessibilityAddTraits(.isButton)
179-
.listRowSeparator(.hidden)
176+
POSSettingsCard(title: Localization.cardReaderDocumentationTitle,
177+
subtitle: Localization.cardReaderDocumentationSubtitle,
178+
action: { showCardReaderDocumentationModal = true })
179+
.accessibilityAddTraits(.isButton)
180+
}
181+
.padding(.horizontal, POSPadding.medium)
182+
.foregroundColor(.posOnSurface)
180183
}
181-
.listStyle(.plain)
182-
.scrollContentBackground(.hidden)
183-
.listRowBackground(Color.clear)
184-
.background(backgroundColor)
185-
.foregroundColor(.posOnSurface)
186184
}
185+
.background(backgroundColor)
187186
.navigationBarBackButtonHidden(true)
188187
.posFullScreenCover(isPresented: $showCardReaderDocumentationModal) {
189188
SafariView(url: POSConstants.URLs.inPersonPaymentsLearnMoreWCPay.asURL())
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,54 @@
11
import SwiftUI
22
import struct WooFoundation.SafariView
33

4-
struct PointOfSaleSettingsHelpDetailView: View {
5-
@Environment(\.dynamicTypeSize) private var dynamicTypeSize
4+
struct POSSettingsHelpDetailView: View {
65
@Environment(\.posExternalViews) private var externalViews
76

87
@State private var showProductRestrictions = false
98
@State private var showDocumentation = false
109
@State private var showSupport = false
1110

1211
private var backgroundColor: Color {
13-
Color.posOnSecondaryContainer
12+
Color.posSurface
1413
}
1514

1615
var body: some View {
1716
NavigationStack {
18-
POSPageHeaderView(title: Localization.helpTitle)
19-
.foregroundColor(.posSurface)
20-
.accessibilityAddTraits(.isHeader)
21-
List {
22-
Button {
23-
showProductRestrictions = true
24-
} label: {
25-
HStack(spacing: POSSpacing.medium) {
26-
Image(systemName: "magnifyingglass")
27-
.font(.posBodyLargeRegular())
28-
.accessibilityHidden(true)
29-
.renderedIf(!dynamicTypeSize.isAccessibilitySize)
30-
VStack(alignment: .leading, spacing: POSPadding.xSmall) {
31-
Text(Localization.productRestrictionsInfo)
32-
.font(.posBodyLargeRegular())
33-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
34-
Text(Localization.productRestrictionsInfoSubtitle)
35-
.font(.posBodyMediumRegular())
36-
.foregroundStyle(.secondary)
37-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
38-
}
39-
Spacer()
17+
VStack(spacing: POSSpacing.none) {
18+
POSPageHeaderView(title: Localization.helpTitle)
19+
.foregroundColor(.posSurface)
20+
.accessibilityAddTraits(.isHeader)
21+
22+
ScrollView {
23+
VStack(spacing: POSSpacing.small) {
24+
POSSettingsCard(
25+
title: Localization.productRestrictionsInfo,
26+
subtitle: Localization.productRestrictionsInfoSubtitle,
27+
action: {
28+
showProductRestrictions = true
29+
}
30+
)
31+
32+
POSSettingsCard(
33+
title: Localization.documentationTitle,
34+
subtitle: Localization.documentationSubtitle,
35+
action: {
36+
showDocumentation = true
37+
}
38+
)
39+
40+
POSSettingsCard(
41+
title: Localization.getSupportTitle,
42+
subtitle: Localization.getSupportSubtitle,
43+
action: {
44+
showSupport = true
45+
}
46+
)
4047
}
48+
.padding(.horizontal, POSPadding.medium)
4149
}
42-
.accessibilityAddTraits(.isButton)
43-
.listRowSeparator(.hidden)
44-
.buttonStyle(.plain)
45-
46-
Button {
47-
showDocumentation = true
48-
} label: {
49-
HStack(spacing: POSSpacing.medium) {
50-
Image(systemName: "doc.text")
51-
.font(.posBodyLargeRegular())
52-
.accessibilityHidden(true)
53-
.renderedIf(!dynamicTypeSize.isAccessibilitySize)
54-
VStack(alignment: .leading, spacing: POSPadding.xSmall) {
55-
Text(Localization.documentationTitle)
56-
.font(.posBodyLargeRegular())
57-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
58-
Text(Localization.documentationSubtitle)
59-
.font(.posBodyMediumRegular())
60-
.foregroundStyle(.secondary)
61-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
62-
}
63-
Spacer()
64-
}
65-
}
66-
.accessibilityAddTraits(.isButton)
67-
.listRowSeparator(.hidden)
68-
.buttonStyle(.plain)
69-
70-
Button {
71-
showSupport = true
72-
} label: {
73-
HStack(spacing: POSSpacing.medium) {
74-
Image(systemName: "questionmark")
75-
.font(.posBodyLargeRegular())
76-
.accessibilityHidden(true)
77-
.renderedIf(!dynamicTypeSize.isAccessibilitySize)
78-
VStack(alignment: .leading, spacing: POSPadding.xSmall) {
79-
Text(Localization.getSupportTitle)
80-
.font(.posBodyLargeRegular())
81-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
82-
Text(Localization.getSupportSubtitle)
83-
.font(.posBodyMediumRegular())
84-
.foregroundStyle(.secondary)
85-
.dynamicTypeSize(...DynamicTypeSize.accessibility2)
86-
}
87-
Spacer()
88-
}
89-
}
90-
.accessibilityAddTraits(.isButton)
91-
.listRowSeparator(.hidden)
92-
.buttonStyle(.plain)
9350
}
94-
.listStyle(.plain)
95-
.scrollContentBackground(.hidden)
9651
.background(backgroundColor)
97-
.listRowBackground(Color.clear)
98-
.listRowSeparator(.hidden)
9952
}
10053
.posModal(isPresented: $showProductRestrictions) {
10154
// TODO: Remove copy on POSFloatingControlView.documentationView
@@ -117,7 +70,7 @@ struct PointOfSaleSettingsHelpDetailView: View {
11770
}
11871
}
11972

120-
private extension PointOfSaleSettingsHelpDetailView {
73+
private extension POSSettingsHelpDetailView {
12174
enum Constants {
12275
static let supportTag = "origin:point-of-sale"
12376
}
@@ -191,6 +144,6 @@ private extension PointOfSaleSettingsHelpDetailView {
191144

192145
#if DEBUG
193146
#Preview {
194-
PointOfSaleSettingsHelpDetailView()
147+
POSSettingsHelpDetailView()
195148
}
196149
#endif

Modules/Sources/PointOfSale/Presentation/Settings/POSSettingsLocalCatalogDetailView.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ struct POSSettingsLocalCatalogDetailView: View {
2121
managingDataUsage
2222
manualCatalogUpdate
2323
}
24+
.padding(.horizontal, POSPadding.medium)
2425
}
25-
.background(Style.backgroundColor)
2626
}
27+
.background(Style.backgroundColor)
2728
}
2829
.task {
2930
await viewModel.loadCatalogData()
@@ -128,7 +129,7 @@ private extension POSSettingsLocalCatalogDetailView {
128129

129130
private extension POSSettingsLocalCatalogDetailView {
130131
enum Style {
131-
static let backgroundColor = Color.posOnSecondaryContainer
132+
static let backgroundColor = Color.posSurface
132133
}
133134

134135
enum Localization {

0 commit comments

Comments
 (0)