summary refs log tree commit diff stats
path: root/src/components/product_parent_overview.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/product_parent_overview.rs')
-rw-r--r--src/components/product_parent_overview.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/components/product_parent_overview.rs b/src/components/product_parent_overview.rs
new file mode 100644
index 0000000..4aa2a0f
--- /dev/null
+++ b/src/components/product_parent_overview.rs
@@ -0,0 +1,37 @@
+use leptos::{IntoView, component, view};
+
+use crate::{
+    api::product_parents_wrapped,
+    components::{async_fetch::AsyncFetch, container::Container, icon_p::IconP},
+};
+
+#[component]
+pub fn ProductParentOverview() -> impl IntoView {
+    view! {
+        <Container
+            header="Products Parents"
+            buttons=vec![
+                (
+                    view! { <IconP icon=icondata_io::IoClipboard text="Show products" /> },
+                    "products",
+                ),
+                (
+                    view! { <IconP icon=icondata_io::IoPricetags text="Create product parent" /> },
+                    "create-product-parent",
+                ),
+            ]
+        >
+            {
+                AsyncFetch! {
+                    @map_error_in_producer
+                    fetcher = product_parents_wrapped(),
+                    producer = |product_parents| {
+                        view! {
+                            <p>{format!("You have {} product parents.", product_parents.len())}</p>
+                        }
+                    }
+                }
+            }
+        </Container>
+    }
+}