import Elementary import ElementaryHTMX import SharedModels struct VendorForm: HTML { let vendor: Vendor? var content: some HTML { form( .id("vendor-form"), vendor != nil ? .hx.put(targetURL) : .hx.post(targetURL), .hx.target("this"), .hx.swap(.outerHTML) ) { div(.class("row")) { input( .id("vendor-name"), .name("name"), .value(vendor?.name ?? ""), .placeholder("Vendor Name"), .required ) button(.type(.submit), .class("btn-primary")) { buttonLabel } } } } private var buttonLabel: String { guard vendor != nil else { return "Update" } return "Create" } var targetURL: String { guard let vendor else { return "/vendors" } return "/vendors/\(vendor.id)" } }