12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #![allow(non_snake_case)]
- use components::home::Home;
- use components::loading::ChildrenOrLoading;
- use dioxus::prelude::*;
- mod components {
- pub mod error;
- pub mod home;
- pub mod loading;
- pub mod nav;
- pub mod product_item;
- pub mod product_page;
- }
- mod api;
- fn main() {
- dioxus::launch(|| {
- rsx! {
- document::Link {
- rel: "stylesheet",
- href: asset!("/public/tailwind.css")
- }
- ChildrenOrLoading {
- Router::<Route> {}
- }
- }
- });
- }
- #[derive(Clone, Routable, Debug, PartialEq)]
- enum Route {
- #[route("/")]
- Home {},
- #[route("/details/:product_id")]
- Details { product_id: usize },
- }
- #[component]
- /// Render a more sophisticated page with ssr
- fn Details(product_id: usize) -> Element {
- rsx! {
- div {
- components::nav::nav {}
- components::product_page::product_page {
- product_id
- }
- }
- }
- }
|