import Elementary import SharedModels import URLRouting enum Button { @Sendable static func add() -> some HTML { button(.class("btn btn-add")) { "+" } } @Sendable static func danger(@HTMLBuilder body: () -> C) -> some HTML { button(.class("danger")) { body() } } @Sendable static func close(id: String, resetURL: String? = nil) -> some HTML { button(.class("btn-close"), .on(.click, makeOnClick(id, resetURL))) { "x" } } @Sendable static func close(id: IDKey, resetURL route: ViewRoute? = nil) -> some HTML { close( id: id.description, resetURL: route != nil ? ViewRoute.router.path(for: route!) : nil ) } @Sendable static func update() -> some HTML { button(.class("btn-update")) { "Update" } } @Sendable static func detail() -> some HTML { button(.class("btn-detail")) { "〉" } } @Sendable private static func makeOnClick(_ id: String, _ resetURL: String?) -> String { let output = "toggleContent('\(id)');" if let resetURL { return "\(output) window.location.href='\(resetURL)';" } return output } }