diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-10-25 02:15:31 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-10-25 02:15:31 +0200 |
| commit | 3a0e91bda1e93afa33dd182c2e820c94b3e94593 (patch) | |
| tree | 436fb1b1e1b0bbe450436ccb5e105b8bea8db17f /src/components/product_overview.rs | |
| parent | feat(treewide): Make usage more intuitive (diff) | |
| download | web-client-3a0e91bda1e93afa33dd182c2e820c94b3e94593.zip | |
feat(treewide): Add further buttons
The register product > associate barcode > buy barcode workflow is now usable. The only missing features for an MVP are unit and unit property creation.
Diffstat (limited to 'src/components/product_overview.rs')
| -rw-r--r-- | src/components/product_overview.rs | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/src/components/product_overview.rs b/src/components/product_overview.rs index 5413dc1..bf81624 100644 --- a/src/components/product_overview.rs +++ b/src/components/product_overview.rs @@ -1,7 +1,7 @@ use leptos::{IntoView, component, view}; use crate::{ - api::get_products, + api::products_registered_wrapped, components::{async_fetch::AsyncFetch, container::Container, icon_p::IconP}, }; @@ -9,31 +9,20 @@ use crate::{ pub fn ProductOverview() -> impl IntoView { view! { <Container - header="Inventory" + header="Products" buttons=vec![ - (view! { <IconP icon=icondata_io::IoClipboard text="Inventory" /> }, "inventory"), - (view! { <IconP icon=icondata_io::IoPricetags text="Consume" /> }, "consume"), - (view! { <IconP icon=icondata_io::IoStorefront text="Buy" /> }, "buy"), + (view! { <IconP icon=icondata_io::IoClipboard text="Show products" /> }, "products"), + (view! { <IconP icon=icondata_io::IoPricetags text="Create product" /> }, "create-product"), + (view! { <IconP icon=icondata_io::IoPricetags text="Associate barcode with product" /> }, "associate-barcode-product"), ] > { AsyncFetch! { @map_error_in_producer - fetcher = get_products(), + fetcher = products_registered_wrapped(), producer = |products| { - let products_num = products.len(); - let plural_s = if products_num == 1 { "" } else { "s" }; - let products_value = 2; - let products_currency = "EUR"; - view! { - <p> - {format!( - "You have {products_num} product{plural_s} \ - in stock with a value \ - of {products_value} {products_currency}.", - )} - </p> + <p>{format!("You have {} products", products.len())}</p> } } } |
