Skip to content

Commit 3a41e00

Browse files
committed
make further smaller subviews
1 parent 7d68926 commit 3a41e00

File tree

1 file changed

+43
-73
lines changed

1 file changed

+43
-73
lines changed

WooCommerce/Classes/POS/Presentation/Settings/PointOfSaleSettingsStoreDetailView.swift

Lines changed: 43 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -41,36 +41,11 @@ struct PointOfSaleSettingsStoreDetailView: View {
4141
@ViewBuilder
4242
private var storeInformationView: some View {
4343
VStack(spacing: POSSpacing.none) {
44-
ZStack {
45-
backgroundColor
46-
Text(Localization.storeInformation)
47-
.font(.posBodyLargeBold)
48-
.foregroundColor(.posOnSurface)
49-
.frame(maxWidth: .infinity, alignment: .leading)
50-
.padding(.horizontal, POSPadding.medium)
51-
.padding(.vertical, POSPadding.small)
52-
}
44+
sectionHeaderView(title: Localization.storeInformation)
5345

5446
VStack(spacing: POSSpacing.medium) {
55-
VStack(alignment: .leading, spacing: POSPadding.small) {
56-
Text(Localization.storeName)
57-
.font(.posBodyMediumRegular())
58-
Text(viewModel.storeName)
59-
.font(.posBodyMediumRegular())
60-
.foregroundStyle(.secondary)
61-
}
62-
.frame(maxWidth: .infinity, alignment: .leading)
63-
.padding(.horizontal, POSPadding.medium)
64-
65-
VStack(alignment: .leading, spacing: POSPadding.small) {
66-
Text(Localization.address)
67-
.font(.posBodyMediumRegular())
68-
Text(viewModel.storeAddress)
69-
.font(.posBodyMediumRegular())
70-
.foregroundStyle(.secondary)
71-
}
72-
.frame(maxWidth: .infinity, alignment: .leading)
73-
.padding(.horizontal, POSPadding.medium)
47+
fieldRowView(label: Localization.storeName, value: viewModel.storeName)
48+
fieldRowView(label: Localization.address, value: viewModel.storeAddress)
7449
}
7550
.padding(.bottom, POSPadding.medium)
7651
}
@@ -79,59 +54,54 @@ struct PointOfSaleSettingsStoreDetailView: View {
7954
@ViewBuilder
8055
private var receiptInformationView: some View {
8156
VStack(spacing: POSSpacing.none) {
82-
ZStack {
83-
backgroundColor
84-
Text(Localization.receiptInformation)
85-
.font(.posBodyLargeBold)
86-
.foregroundColor(.posOnSurface)
87-
.frame(maxWidth: .infinity, alignment: .leading)
88-
.padding(.horizontal, POSPadding.medium)
89-
.padding(.vertical, POSPadding.small)
90-
}
57+
sectionHeaderView(title: Localization.receiptInformation)
9158

9259
VStack(spacing: POSSpacing.medium) {
93-
VStack(alignment: .leading, spacing: POSPadding.small) {
94-
Text(Localization.receiptStoreName)
95-
.font(.posBodyMediumRegular())
96-
settingValueView(for: viewModel.receiptInformation.storeName)
97-
}
98-
.frame(maxWidth: .infinity, alignment: .leading)
99-
.padding(.horizontal, POSPadding.medium)
100-
101-
VStack(alignment: .leading, spacing: POSPadding.small) {
102-
Text(Localization.physicalAddress)
103-
.font(.posBodyMediumRegular())
104-
settingValueView(for: viewModel.receiptInformation.storeAddress)
105-
}
106-
.frame(maxWidth: .infinity, alignment: .leading)
107-
.padding(.horizontal, POSPadding.medium)
60+
receiptFieldRowView(label: Localization.receiptStoreName, value: viewModel.receiptInformation.storeName)
61+
receiptFieldRowView(label: Localization.physicalAddress, value: viewModel.receiptInformation.storeAddress)
62+
receiptFieldRowView(label: Localization.phoneNumber, value: viewModel.receiptInformation.phone)
63+
receiptFieldRowView(label: Localization.email, value: viewModel.receiptInformation.email)
64+
receiptFieldRowView(label: Localization.refundReturnsPolicy, value: viewModel.receiptInformation.refundReturnsPolicy)
65+
}
66+
.padding(.bottom, POSPadding.medium)
67+
}
68+
}
10869

109-
VStack(alignment: .leading, spacing: POSPadding.small) {
110-
Text(Localization.phoneNumber)
111-
.font(.posBodyMediumRegular())
112-
settingValueView(for: viewModel.receiptInformation.phone)
113-
}
70+
@ViewBuilder
71+
private func sectionHeaderView(title: String) -> some View {
72+
ZStack {
73+
backgroundColor
74+
Text(title)
75+
.font(.posBodyLargeBold)
76+
.foregroundColor(.posOnSurface)
11477
.frame(maxWidth: .infinity, alignment: .leading)
11578
.padding(.horizontal, POSPadding.medium)
79+
.padding(.vertical, POSPadding.small)
80+
}
81+
}
11682

117-
VStack(alignment: .leading, spacing: POSPadding.small) {
118-
Text(Localization.email)
119-
.font(.posBodyMediumRegular())
120-
settingValueView(for: viewModel.receiptInformation.email)
121-
}
122-
.frame(maxWidth: .infinity, alignment: .leading)
123-
.padding(.horizontal, POSPadding.medium)
83+
@ViewBuilder
84+
private func fieldRowView(label: String, value: String) -> some View {
85+
VStack(alignment: .leading, spacing: POSPadding.small) {
86+
Text(label)
87+
.font(.posBodyMediumRegular())
88+
Text(value)
89+
.font(.posBodyMediumRegular())
90+
.foregroundStyle(.secondary)
91+
}
92+
.frame(maxWidth: .infinity, alignment: .leading)
93+
.padding(.horizontal, POSPadding.medium)
94+
}
12495

125-
VStack(alignment: .leading, spacing: POSPadding.small) {
126-
Text(Localization.refundReturnsPolicy)
127-
.font(.posBodyMediumRegular())
128-
settingValueView(for: viewModel.receiptInformation.refundReturnsPolicy)
129-
}
130-
.frame(maxWidth: .infinity, alignment: .leading)
131-
.padding(.horizontal, POSPadding.medium)
132-
}
133-
.padding(.bottom, POSPadding.medium)
96+
@ViewBuilder
97+
private func receiptFieldRowView(label: String, value: String?) -> some View {
98+
VStack(alignment: .leading, spacing: POSPadding.small) {
99+
Text(label)
100+
.font(.posBodyMediumRegular())
101+
settingValueView(for: value)
134102
}
103+
.frame(maxWidth: .infinity, alignment: .leading)
104+
.padding(.horizontal, POSPadding.medium)
135105
}
136106

137107
@ViewBuilder

0 commit comments

Comments
 (0)