= Yew Table
A simple table component for the Yew web framework.
NOTE: This crate is still at a very early stage; Enjoy It Responsibly™.
== Usage
.Use the Table component by setting the columns
and data
properties.
[source,rust]
impl Renderable for Model { fn view(&self) -> Html { // Define the columns. The first string is the field name, the second is the label. let columns = columns![ ("id", "Id.") ("description", "Description") ("due_date", "Due date") ("status", "Status") ("is_favorite", "Fav.") ("is_archived", "Arch.") ];
html! {
<>
// Here, self.tasks is a Vec<Task>
<Table<Task>: columns=columns, data=&self.tasks,/>
</>
}
}
}
.Implement the TableData trait for the struct to be used. [source,rust]
#[derive(Default, Clone, PartialEq, Serialize)] pub struct Task { pub id: String, // ... }
impl TableData for Task { fn get_field_as_html(&self, field_name: &str) -> Html<Table> { match field_name { // Define how each field should be rendered. No restrictions. "id" => html! { { &self.id } }, // ... } } }
== Example
An example Yew app showing a plain table can be found in the examples folder. Just run the contained run.sh
script.
== License
link:LICENSE[MIT] © 2019 Alexis Luengas