summary refs log tree commit diff stats
path: root/src/components/product_overview.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-10-25 02:15:31 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-10-25 02:15:31 +0200
commit3a0e91bda1e93afa33dd182c2e820c94b3e94593 (patch)
tree436fb1b1e1b0bbe450436ccb5e105b8bea8db17f /src/components/product_overview.rs
parentfeat(treewide): Make usage more intuitive (diff)
downloadweb-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.rs25
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>
                         }
                     }
                 }