Skip to content

Commit e0441ae

Browse files
committed
update cards style
1 parent e0c0bab commit e0441ae

File tree

1 file changed

+38
-57
lines changed

1 file changed

+38
-57
lines changed

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

Lines changed: 38 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -34,51 +34,58 @@ struct POSSettingsLocalCatalogDetailView: View {
3434
private extension POSSettingsLocalCatalogDetailView {
3535
@ViewBuilder
3636
var catalogStatus: some View {
37-
VStack(spacing: POSSpacing.medium) {
38-
fieldRowView(label: Localization.catalogSize, value: viewModel.catalogSize)
39-
fieldRowView(label: Localization.lastIncrementalSync, value: viewModel.lastIncrementalSyncDate)
40-
fieldRowView(label: Localization.lastFullSync, value: viewModel.lastFullSyncDate)
37+
POSInformationCard {
38+
VStack(spacing: POSSpacing.small) {
39+
POSInformationCardFieldRow(
40+
label: Localization.catalogSize,
41+
value: viewModel.catalogSize
42+
)
43+
POSInformationCardFieldRow(
44+
label: Localization.lastIncrementalSync,
45+
value: viewModel.lastIncrementalSyncDate
46+
)
47+
POSInformationCardFieldRow(
48+
label: Localization.lastFullSync,
49+
value: viewModel.lastFullSyncDate,
50+
showSeparator: false
51+
)
4152
}
42-
.padding(.bottom, POSPadding.medium)
43-
.redacted(reason: viewModel.isLoading ? .placeholder : [])
44-
.shimmering(active: viewModel.isLoading)
53+
}
54+
.redacted(reason: viewModel.isLoading ? .placeholder : [])
55+
.shimmering(active: viewModel.isLoading)
4556
}
4657

4758
@ViewBuilder
4859
var managingDataUsage: some View {
49-
@Bindable var viewModel = viewModel
5060
VStack(spacing: POSSpacing.none) {
51-
sectionHeaderView(title: Localization.managingDataUsage)
52-
53-
VStack(spacing: POSSpacing.medium) {
54-
toggleRowView(label: Localization.allowSyncOnCellular, isOn: $viewModel.allowFullSyncOnCellular)
61+
POSInformationCard {
62+
POSInformationCardFieldRow(label: Localization.managingDataUsage,
63+
value: Localization.allowSyncOnCellular,
64+
showSeparator: false,
65+
buttonAction: {
66+
viewModel.allowFullSyncOnCellular.toggle()
67+
})
5568
}
56-
.padding(.bottom, POSPadding.medium)
5769
}
5870
}
5971

6072
@ViewBuilder
6173
var manualCatalogUpdate: some View {
6274
VStack(spacing: POSSpacing.none) {
63-
sectionHeaderView(title: Localization.manualCatalogUpdate)
64-
65-
VStack(spacing: POSSpacing.medium) {
66-
Text(Localization.manualUpdateInfo)
67-
.font(.posCaptionRegular)
68-
.foregroundStyle(.secondary)
69-
.frame(maxWidth: .infinity, alignment: .leading)
70-
71-
Button(action: {
72-
Task {
73-
await viewModel.refreshCatalog()
74-
}
75-
}) {
76-
Text(Localization.updateCatalog)
77-
}
78-
.buttonStyle(POSFilledButtonStyle(size: .normal, isLoading: viewModel.isRefreshingCatalog))
75+
POSInformationCard {
76+
POSInformationCardFieldRow(
77+
label: Localization.manualCatalogUpdate,
78+
value: Localization.manualUpdateInfo,
79+
showSeparator: false,
80+
buttonTitle: Localization.updateCatalog,
81+
buttonAction: {
82+
Task {
83+
await viewModel.refreshCatalog()
84+
}
85+
},
86+
buttonStyle: .primary
87+
)
7988
}
80-
.padding(.horizontal, POSPadding.medium)
81-
.padding(.bottom, POSPadding.medium)
8289
}
8390
}
8491

@@ -94,32 +101,6 @@ private extension POSSettingsLocalCatalogDetailView {
94101
.padding(.vertical, POSPadding.small)
95102
}
96103
}
97-
98-
@ViewBuilder
99-
func fieldRowView(label: String, value: String) -> some View {
100-
VStack(alignment: .leading, spacing: POSPadding.small) {
101-
Text(label)
102-
.font(.posBodyMediumRegular())
103-
Text(value)
104-
.font(.posBodyMediumRegular())
105-
.foregroundStyle(.secondary)
106-
}
107-
.frame(maxWidth: .infinity, alignment: .leading)
108-
.padding(.horizontal, POSPadding.medium)
109-
}
110-
111-
@ViewBuilder
112-
func toggleRowView(label: String, isOn: Binding<Bool>) -> some View {
113-
HStack {
114-
Text(label)
115-
.font(.posBodyMediumRegular())
116-
Spacer()
117-
Toggle("", isOn: isOn)
118-
.toggleStyle(SwitchToggleStyle())
119-
}
120-
.frame(maxWidth: .infinity, alignment: .leading)
121-
.padding(.horizontal, POSPadding.medium)
122-
}
123104
}
124105

125106
private extension POSSettingsLocalCatalogDetailView {

0 commit comments

Comments
 (0)