feat: Adding improvements to pressure estimations feature.

This commit is contained in:
2024-06-12 10:29:33 -04:00
parent da8a8638c7
commit 9a145b3290
7 changed files with 239 additions and 89 deletions

View File

@@ -57,8 +57,9 @@ public struct FlaggedMeasurementsList: Sendable {
@CasePathable
public enum View {
case addButtonTapped
case deleteEstimationButtonTapped(id: SharedPressureEstimationState.FlaggedEstimationContainer.ID)
case destination(DestinationAction)
case editButtonTapped(id: SharedPressureEstimationState.FlaggedMeasurementContainer.ID)
case editButtonTapped(id: SharedPressureEstimationState.FlaggedEstimationContainer.ID)
case onAppear
@CasePathable
@@ -107,10 +108,15 @@ public struct FlaggedMeasurementsList: Sendable {
case .addButtonTapped:
state.destination = .estimationForm(.init(
existingMeasurement: state.$sharedSettings.equipmentMeasurement,
coolingCapacity: state.sharedSettings.equipmentMetadata.coolingCapacity
))
return .none
case let .deleteEstimationButtonTapped(id: id):
state.sharedSettings.flaggedEstimations.remove(id: id)
return .none
case let .destination(action):
switch action {
case .cancelButtonTapped:
@@ -237,7 +243,16 @@ public struct FlaggedMeasurementListView: View {
HStack {
Text(measurement.name)
Spacer()
Button("Edit") { send(.editButtonTapped(id: measurement.id)) }
Menu {
EditButton { send(.editButtonTapped(id: measurement.id)) }
DeleteButton { send(.deleteEstimationButtonTapped(id: measurement.id)) }
} label: {
Label("Actions", systemImage: "list.dash")
} primaryAction: {
send(.editButtonTapped(id: measurement.id))
}
.labelStyle(.iconOnly)
.menuStyle(ButtonMenuStyle())
}
}
}
@@ -282,7 +297,7 @@ public struct FlaggedMeasurementListView: View {
#if DEBUG
private let budgets = BudgetedPercentEnvelope(equipmentType: .airHandler, fanType: .constantSpeed)
private let flaggedMeasurements = IdentifiedArrayOf<SharedPressureEstimationState.FlaggedMeasurementContainer>(
private let flaggedMeasurements = IdentifiedArrayOf<SharedPressureEstimationState.FlaggedEstimationContainer>(
uniqueElements: [
.init(
id: UUID(0),