feat: Working on pressure estimations feature, integrating all views and shared settings

This commit is contained in:
2024-06-10 13:34:38 -04:00
parent 51f7a30701
commit a6bfbd6877
15 changed files with 447 additions and 348 deletions

View File

@@ -20,12 +20,12 @@ public struct FlaggedMeasurementsList {
public struct State: Equatable {
@Presents public var destination: Destination.State?
@Shared var sharedSettings: SharedSettings
@Shared var sharedSettings: SharedPressureEstimationSettings
public var estimatedMeasurements: IdentifiedArrayOf<FlaggedMeasurementContainer>
init(
destination: Destination.State? = nil,
sharedSettings: Shared<SharedSettings>,
sharedSettings: Shared<SharedPressureEstimationSettings>,
estimatedMeasurements: IdentifiedArrayOf<FlaggedMeasurementContainer> = []
) {
self.destination = destination
@@ -33,6 +33,7 @@ public struct FlaggedMeasurementsList {
self.estimatedMeasurements = estimatedMeasurements
}
#warning("Move to shared settings.")
public struct FlaggedMeasurementContainer: Equatable, Identifiable {
public let id: UUID
public var flaggedMeasurement: EquipmentMeasurement.FlaggedMeasurement
@@ -115,7 +116,7 @@ public struct FlaggedMeasurementsList {
case .addButtonTapped:
state.destination = .estimationForm(.init(
coolingCapacity: state.sharedSettings.coolingCapacity
coolingCapacity: state.sharedSettings.equipmentMetadata.coolingCapacity
))
return .none
@@ -145,16 +146,20 @@ public struct FlaggedMeasurementsList {
return .none
case .onAppear:
guard let equipmentMeasurement = state.sharedSettings.equipmentMeasurement,
let budgets = state.sharedSettings.budgets
else {
guard let equipmentMeasurement = state.sharedSettings.equipmentMeasurement else {
return .none
}
if state.sharedSettings.budgets == nil {
state.sharedSettings.budgets = .init(
equipmentType: state.sharedSettings.equipmentMeasurement!.equipmentType,
fanType: state.sharedSettings.equipmentMetadata.fanType
)
}
state.sharedSettings.flaggedEquipmentMeasurement = .init(
budgets: budgets,
budgets: state.sharedSettings.budgets!,
measurement: equipmentMeasurement,
ratedPressures: state.sharedSettings.ratedStaticPressures,
tons: state.sharedSettings.coolingCapacity
ratedPressures: state.sharedSettings.equipmentMetadata.ratedStaticPressures,
tons: state.sharedSettings.equipmentMetadata.coolingCapacity
)
return .none
}
@@ -178,8 +183,8 @@ public struct FlaggedMeasurementsList {
)
}
return .receive(action: \.receive) { [ratedStaticPressures = state.sharedSettings.ratedStaticPressures] in
return .receive(action: \.receive) { [ratedStaticPressures = state.sharedSettings.equipmentMetadata.ratedStaticPressures] in
let filterPressureDrop = form.filterPressureDrop != nil
? Positive(wrappedValue: form.filterPressureDrop!)
: nil
@@ -221,8 +226,6 @@ public struct FlaggedMeasurementListView: View {
} header: {
HStack {
Text("Existing Measurements")
Spacer()
// Button("Edit") { }
}
}
}
@@ -278,7 +281,7 @@ public struct FlaggedMeasurementListView: View {
}
#if DEBUG
private let sharedSettings = SharedSettings(
private let sharedPressureEstimationSettings = SharedPressureEstimationSettings(
budgets: .init(equipmentType: .airHandler, fanType: .constantSpeed),
equipmentMeasurement: .mock(type: .airHandler),
flaggedEquipmentMeasurement: nil
@@ -290,10 +293,10 @@ private let flaggedMeasurements = IdentifiedArrayOf<FlaggedMeasurementsList.Stat
id: UUID(0),
name: "Existing",
flaggedMeasurement: .init(
budgets: sharedSettings.budgets!,
measurement: sharedSettings.equipmentMeasurement!,
ratedPressures: sharedSettings.ratedStaticPressures,
tons: sharedSettings.coolingCapacity
budgets: sharedPressureEstimationSettings.budgets!,
measurement: sharedPressureEstimationSettings.equipmentMeasurement!,
ratedPressures: sharedPressureEstimationSettings.equipmentMetadata.ratedStaticPressures,
tons: sharedPressureEstimationSettings.equipmentMetadata.coolingCapacity
)
),
]
@@ -305,7 +308,7 @@ private let flaggedMeasurements = IdentifiedArrayOf<FlaggedMeasurementsList.Stat
FlaggedMeasurementListView(
store: Store(
initialState: FlaggedMeasurementsList.State(
sharedSettings: Shared(sharedSettings)
sharedSettings: Shared(sharedPressureEstimationSettings)
)
) {
FlaggedMeasurementsList()
@@ -319,7 +322,7 @@ private let flaggedMeasurements = IdentifiedArrayOf<FlaggedMeasurementsList.Stat
FlaggedMeasurementListView(
store: Store(
initialState: FlaggedMeasurementsList.State(
sharedSettings: Shared(sharedSettings)
sharedSettings: Shared(sharedPressureEstimationSettings)
)
) {
FlaggedMeasurementsList()