feat: Finishes filter pressure drop calculator

This commit is contained in:
2025-03-03 12:55:06 -05:00
parent eb6ec446dc
commit 8e0860af8e
10 changed files with 279 additions and 54 deletions

View File

@@ -44,7 +44,7 @@ struct HomePage: HTML, Sendable {
route: .capacitor(.index)
)
group(
label: "Filter Pressure Drop",
label: "Filter Sizing",
description: FilterPressureDrop.description,
svg: .funnel,
route: .filterPressureDrop(.index)

View File

@@ -103,15 +103,10 @@ extension ViewController: DependencyKey {
case let .filterPressureDrop(route):
switch route {
case let .index(mode: mode):
// FIX: remove response.
#if DEBUG
return request.respond(FilterPressureDropForm(mode: mode, response: .mock(mode: mode ?? .basic)))
#else
return request.respond(FilterPressureDropForm(mode: mode, response: nil))
#endif
case .submit:
// FIX: implement.
fatalError()
return request.respond(FilterPressureDropForm(mode: mode, response: nil))
case let .submit(request):
let response = try await request.respond(logger: logger)
return FilterPressureDropResponse(response: response)
}
case let .hvacSystemPerformance(route):

View File

@@ -25,9 +25,6 @@ struct FilterPressureDropForm: HTML, Sendable {
.attributes(.class("mb-6"))
}
// FIX: Remove when done.
WarningBox("This is under construction and does not work currently.")
form(
.hx.post(route: .filterPressureDrop(.index)),
.hx.target("#result")
@@ -41,8 +38,6 @@ struct FilterPressureDropForm: HTML, Sendable {
}
div {
SubmitButton(label: "Calculate Pressure Drop")
// FIX: Remove when done.
.attributes(.disabled)
}
}
}
@@ -127,7 +122,7 @@ struct FilterPressureDropForm: HTML, Sendable {
.attributes(.type(.number), .step("0.1"), .min("0.1"), .required)
}
LabeledContent(label: "Filter Pressure Drop: (in. w.c.)") {
Input(id: "ratedPressure", placeholder: "Rated or measured pressure drop")
Input(id: "ratedPressureDrop", placeholder: "Rated or measured pressure drop")
.attributes(.type(.number), .step("0.1"), .min("0.1"), .required)
}
LabeledContent(label: "Design Airflow: (CFM)") {