leptos_struct_table/components/
row.rs1use crate::table_row::TableRow;
2use crate::{ChangeEvent, EventHandler};
3use leptos::*;
4
5#[allow(unused_variables)]
8pub fn DefaultTableRowRenderer<Row>(
9 class: Signal<String>,
11 row: Row,
13 index: usize,
15 selected: Signal<bool>,
17 on_select: EventHandler<web_sys::MouseEvent>,
19 on_change: EventHandler<ChangeEvent<Row>>,
21) -> impl IntoView
22where
23 Row: TableRow + Clone + 'static,
24{
25 view! {
26 <tr class=class on:click=move |mouse_event| on_select.run(mouse_event)>
27 {row.render_row(index, on_change)}
28 </tr>
29 }
30}
31
32pub fn DefaultRowPlaceholderRenderer(height: Signal<f64>) -> impl IntoView {
36 view! { <tr style:height=move || format!("{}px", height.get()) style="display: block"></tr> }
37}
38
39#[allow(unused_variables)]
42pub fn DefaultErrorRowRenderer(err: String, index: usize, col_count: usize) -> impl IntoView {
43 view! { <tr><td colspan=col_count>{err}</td></tr> }
44}
45
46#[allow(unused_variables, unstable_name_collisions)]
48pub fn DefaultLoadingRowRenderer(
49 class: Signal<String>,
50 get_cell_class: Callback<usize, String>,
51 get_inner_cell_class: Callback<usize, String>,
52 index: usize,
53 col_count: usize,
54) -> impl IntoView {
55 view! {
56 <tr class=class>
57 {
58 (0..col_count).map(|col_index| view! {
59 <td class=get_cell_class.call(col_index)>
60 <div class=get_inner_cell_class.call(col_index)></div>
61 " "
62 </td>
63 }).collect_view()
64 }
65 </tr>
66 }
67}