Added customers overview, booking detail dialog and about dialog.
parent
952f8fbe94
commit
549ec86684
Binary file not shown.
After Width: | Height: | Size: 4.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,58 @@
|
|||||||
|
use leptos::*;
|
||||||
|
use crate::backend::customer::get_customers;
|
||||||
|
use crate::backend::data::ApiResponse;
|
||||||
|
use crate::locales::trl;
|
||||||
|
|
||||||
|
#[component]
|
||||||
|
pub fn customers() -> impl IntoView {
|
||||||
|
let customers = create_blocking_resource(||(), |_| get_customers());
|
||||||
|
|
||||||
|
view! {
|
||||||
|
<h1>{trl("Customers")}</h1>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<Transition fallback=move || view! {<div>"Loading"</div>}>
|
||||||
|
<table class="table card-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{trl("Full name")}</th>
|
||||||
|
<th>{trl("E-mail")}</th>
|
||||||
|
<th>{trl("Phone")}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
{
|
||||||
|
customers.get().map(|c| match c {
|
||||||
|
Ok(c) => {match c {
|
||||||
|
ApiResponse::Data(c) => {
|
||||||
|
view! {
|
||||||
|
<tbody>
|
||||||
|
<For each=move || c.clone() key=|i| i.id() let:data>
|
||||||
|
<tr>
|
||||||
|
<td>{data.full_name}</td>
|
||||||
|
<td>{data.email}</td>
|
||||||
|
<td>{data.phone}</td>
|
||||||
|
</tr>
|
||||||
|
</For>
|
||||||
|
</tbody>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ApiResponse::Error(e) => {
|
||||||
|
view! {<tbody class="table-border-bottom-0">
|
||||||
|
<tr><td colspan=3>{trl("Something went wrong")}<br/>{e.to_string()}</td></tr></tbody>}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
view! {<tbody class="table-border-bottom-0">
|
||||||
|
<tr><td colspan=3>{trl("Something went wrong")}<br/>{e.to_string()}</td></tr></tbody>}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</table>
|
||||||
|
</Transition>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue