feat: Adds text labeled content and style.

This commit is contained in:
2024-06-11 16:31:59 -04:00
parent c6c45ffa7e
commit da8a8638c7
8 changed files with 144 additions and 77 deletions

View File

@@ -19,7 +19,7 @@ public struct EquipmentMeasurementForm {
@ObservableState
public struct State: Equatable, Sendable {
@Presents public var destination: Destination.State?
@Shared public var sharedSettings: SharedPressureEstimationSettings
@Shared public var sharedSettings: SharedPressureEstimationState
public var allowEquipmentTypeSelection: Bool
public var equipmentType: EquipmentMeasurement.EquipmentType
public var focusedField: Field?
@@ -28,7 +28,7 @@ public struct EquipmentMeasurementForm {
public init(
allowEquipmentTypeSelection: Bool = true,
destination: Destination.State? = nil,
sharedSettings: Shared<SharedPressureEstimationSettings>,
sharedSettings: Shared<SharedPressureEstimationState>,
equipmentType: EquipmentMeasurement.EquipmentType = .airHandler,
focusedField: Field? = nil,
measurements: Measurements = .init()
@@ -224,8 +224,8 @@ public struct EquipmentMeasurementForm {
}
}
extension Store where State == EquipmentMeasurementForm.State {
fileprivate extension Store where State == EquipmentMeasurementForm.State {
func prompt(
field: EquipmentMeasurementForm.State.Field
) -> String {
@@ -258,7 +258,7 @@ extension Store where State == EquipmentMeasurementForm.State {
case .supplyPlenumPressure:
return "Supply"
case .airflow:
return "Airflow"
return "CFM"
}
}
@@ -293,12 +293,7 @@ public struct EquipmentMeasurementFormView: View {
}
Section {
Grid(alignment: .leading, horizontalSpacing: 40) {
ForEach(store.pressureFields) { field in
GridRow {
TextLabel(store.label(field: field))
textField(for: field)
}
}
ForEach(store.pressureFields, content: gridRow(for:))
}
} header: {
HStack {
@@ -310,10 +305,7 @@ public struct EquipmentMeasurementFormView: View {
Section {
Grid(alignment: .leading, horizontalSpacing: 60) {
GridRow {
TextLabel(store.label(field: .airflow))
textField(for: .airflow)
}
gridRow(for: .airflow)
}
} footer: {
HStack {
@@ -325,6 +317,7 @@ public struct EquipmentMeasurementFormView: View {
}
}
.bind($focusedField, to: $store.focusedField)
.labeledContentStyle(.gridRow)
.onAppear { send(.onAppear) }
.textLabelStyle(.boldSecondary)
.textFieldStyle(.roundedBorder)
@@ -349,7 +342,13 @@ public struct EquipmentMeasurementFormView: View {
FlaggedMeasurementListView(store: store)
}
}
private func gridRow(for field: EquipmentMeasurementForm.State.Field) -> some View {
TextLabeledContent(store.label(field: field)) {
textField(for: field)
}
}
private func textField(
for field: EquipmentMeasurementForm.State.Field
) -> some View {
@@ -424,7 +423,7 @@ fileprivate extension InfoViewFeature.State {
NavigationStack {
EquipmentMeasurementFormView(
store: Store(initialState: EquipmentMeasurementForm.State(
sharedSettings: Shared(SharedPressureEstimationSettings()))
sharedSettings: Shared(SharedPressureEstimationState()))
) {
EquipmentMeasurementForm()
}