import DatabaseClient import Dependencies import Elementary import ElementaryHTMX import SharedModels struct UserTable: HTML { let users: [User] var content: some HTML { table(.id("user-table")) { thead { tr { th { "Username" } th { "Email" } th(.style("width: 50px;")) { Button.add() .attributes( .hx.get("/users/create"), .hx.target("#float"), .hx.swap(.outerHTML) ) } } } tbody(.id("user-table-body")) { for user in users { Row(user: user) } } } } struct Row: HTML { let user: User init(user: User) { self.user = user } var content: some HTML { tr(.id("user_\(user.id)")) { td { user.username } td { user.email } td { Button.detail().attributes( .hx.get("/users/\(user.id.uuidString)"), .hx.target("#float"), .hx.swap(.outerHTML), .hx.pushURL(true) ) } } } } }