From 10152a2fc2b3de942b9f08d81c81d6566003d336 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 2 Oct 2025 13:16:37 +0200 Subject: feat(buy): Add the framework for the /buy page --- src/components/buy.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/components/buy.rs (limited to 'src/components/buy.rs') diff --git a/src/components/buy.rs b/src/components/buy.rs new file mode 100644 index 0000000..86e9952 --- /dev/null +++ b/src/components/buy.rs @@ -0,0 +1,38 @@ +use leptos::{ + IntoView, component, + html::Input, + prelude::{ClassAttribute, ElementChild, Get, NodeRef, OnAttribute, Set, signal}, + view, + web_sys::SubmitEvent, +}; + +use crate::components::{input_placeholder::InputPlaceholder, site_header::SiteHeader}; + +#[component] +pub fn Buy() -> impl IntoView { + let (product_barcode, set_product_barcode) = signal(String::new()); + + let input_element: NodeRef = NodeRef::new(); + + let on_submit = move |ev: SubmitEvent| { + // stop the page from reloading! + ev.prevent_default(); + + let value = input_element + .get() + // event handlers can only fire after the view + // is mounted to the DOM, so the `NodeRef` will be `Some` + .expect(" to exist") + .value(); + set_product_barcode.set(value); + }; + + view! { + +
+ + + +

"Name is: " {product_barcode}

+ } +} -- cgit 1.4.1