feat: Adds reset button to result container view.
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
import Elementary
|
||||
import ElementaryHTMX
|
||||
import Routes
|
||||
|
||||
public struct ResultContainer<Body: HTML>: HTML {
|
||||
public struct ResultContainer<Body: HTML, Header: HTML>: HTML {
|
||||
let body: Body
|
||||
let header: Header
|
||||
|
||||
public init(
|
||||
@HTMLBuilder body: () -> Body
|
||||
@HTMLBuilder body: () -> Body,
|
||||
@HTMLBuilder header: () -> Header
|
||||
) {
|
||||
self.body = body()
|
||||
self.header = header()
|
||||
}
|
||||
|
||||
public var content: some HTML {
|
||||
@@ -15,10 +20,25 @@ public struct ResultContainer<Body: HTML>: HTML {
|
||||
bg-blue-50 dark:bg-slate-600
|
||||
text-blue-500 dark:text-slate-200
|
||||
""")) {
|
||||
h3(.class("text-xl font-semibold mb-4")) { "Results" }
|
||||
div(.class("relative")) {
|
||||
h3(.class("text-xl font-semibold mb-4")) { "Results" }
|
||||
header
|
||||
}
|
||||
body
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ResultContainer: Sendable where Body: Sendable {}
|
||||
public extension ResultContainer where Header == _AttributedElement<ResetButton> {
|
||||
init(
|
||||
reset resetRoute: SiteRoute.View,
|
||||
@HTMLBuilder body: () -> Body
|
||||
) {
|
||||
self.init(body: body) {
|
||||
ResetButton()
|
||||
.attributes(.class("absolute bottom-0 right-0"), .hx.get(route: resetRoute), .hx.target("#content"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ResultContainer: Sendable where Body: Sendable, Header: Sendable {}
|
||||
|
||||
Reference in New Issue
Block a user