You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
import Elementary |
|
import Fluent |
|
|
|
struct TodosFormComponent: HTML { |
|
|
|
var name: String |
|
var target: String |
|
var errors: [String: String] = [:] |
|
|
|
// ------------------------------------- |
|
|
|
var content: some HTML { |
|
div(.id("cdiv_" + name)) { |
|
form( |
|
.id("\(name)-form"), |
|
.hx.post("/\(target)"), .hx.target("#cdiv_" + name), .hx.swap(.outerHTML) |
|
) { |
|
div(.class("row")) { |
|
div(.class("col-11")) { |
|
input( |
|
.class("form-control"), .type(.text), .id("\(name)-title"), |
|
.name("title"), .placeholder("Title")) // .required |
|
} |
|
div(.class("col-1")) { |
|
button(.class("btn btn-success"), .type(.submit)) { "Add" } |
|
} |
|
} |
|
if let error = errors["title"] { |
|
div(.class("form-text text-danger px-2")) { "\(error)." } |
|
} |
|
} |
|
} |
|
} |
|
|
|
}
|
|
|