fix: Fixes duct sizing rooms table not showing forms correctly, updates the table styles.
This commit is contained in:
@@ -5,58 +5,25 @@ import Styleguide
|
||||
|
||||
struct RectangularSizeForm: HTML, Sendable {
|
||||
|
||||
static func id(_ roomID: Room.ID? = nil) -> String {
|
||||
let base = "rectangularSize"
|
||||
guard let roomID else { return base }
|
||||
return "\(base)_\(roomID.idString)"
|
||||
}
|
||||
|
||||
static func id(_ room: DuctSizing.RoomContainer) -> String {
|
||||
return id(room.roomID)
|
||||
let base = "rectangularSize"
|
||||
return "\(base)_\(room.registerID.idString)"
|
||||
}
|
||||
|
||||
@Environment(ProjectViewValue.$projectID) var projectID
|
||||
|
||||
let id: String
|
||||
let roomID: Room.ID
|
||||
let rectangularSizeID: DuctSizing.RectangularDuct.ID?
|
||||
let register: Int
|
||||
let height: Int?
|
||||
let room: DuctSizing.RoomContainer
|
||||
let dismiss: Bool
|
||||
|
||||
init(
|
||||
id: String? = nil,
|
||||
roomID: Room.ID,
|
||||
rectangularSizeID: DuctSizing.RectangularDuct.ID? = nil,
|
||||
register: Int,
|
||||
height: Int? = nil,
|
||||
dismiss: Bool = true
|
||||
) {
|
||||
self.id = id ?? Self.id(roomID)
|
||||
self.roomID = roomID
|
||||
self.rectangularSizeID = rectangularSizeID
|
||||
self.register = register
|
||||
self.height = height
|
||||
self.dismiss = dismiss
|
||||
}
|
||||
|
||||
init(
|
||||
id: String? = nil,
|
||||
room: DuctSizing.RoomContainer,
|
||||
dismiss: Bool = true
|
||||
) {
|
||||
let register =
|
||||
room.rectangularSize?.register
|
||||
?? (Int("\(room.roomName.last!)") ?? 1)
|
||||
|
||||
self.init(
|
||||
id: id,
|
||||
roomID: room.roomID,
|
||||
rectangularSizeID: room.rectangularSize?.id,
|
||||
register: register,
|
||||
height: room.rectangularSize?.height,
|
||||
dismiss: dismiss
|
||||
)
|
||||
self.id = Self.id(room)
|
||||
self.room = room
|
||||
self.dismiss = dismiss
|
||||
}
|
||||
|
||||
var route: String {
|
||||
@@ -64,23 +31,30 @@ struct RectangularSizeForm: HTML, Sendable {
|
||||
for: .project(.detail(projectID, .ductSizing(.index)))
|
||||
)
|
||||
.appendingPath("room")
|
||||
.appendingPath(roomID)
|
||||
.appendingPath(room.roomID)
|
||||
|
||||
}
|
||||
|
||||
var rowID: String {
|
||||
DuctSizingView.RoomRow.id(room)
|
||||
}
|
||||
|
||||
var height: Int? {
|
||||
room.rectangularSize?.height
|
||||
}
|
||||
|
||||
var body: some HTML<HTMLTag.dialog> {
|
||||
ModalForm(id: id, dismiss: dismiss) {
|
||||
|
||||
h1(.class("text-lg pb-6")) { "Rectangular Size" }
|
||||
|
||||
form(
|
||||
.class("space-y-4"),
|
||||
.hx.post(route),
|
||||
.hx.target("closest tr"),
|
||||
.hx.target("#\(rowID)"),
|
||||
.hx.swap(.outerHTML)
|
||||
) {
|
||||
input(.class("hidden"), .name("register"), .value(register))
|
||||
input(.class("hidden"), .name("id"), .value(rectangularSizeID))
|
||||
input(.class("hidden"), .name("register"), .value(room.roomRegister))
|
||||
input(.class("hidden"), .name("id"), .value(room.rectangularSize?.id))
|
||||
|
||||
LabeledInput(
|
||||
"Height",
|
||||
|
||||
Reference in New Issue
Block a user