summary refs log tree commit diff stats
path: root/src/components/site_header.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-09-30 09:15:56 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-09-30 09:15:56 +0200
commitd0263ce46160cd4152c67381fab2ee557f3aa483 (patch)
treeb24a725d71b984e466ff478fbb4449111beeacac /src/components/site_header.rs
parentchore: Second version (diff)
downloadweb-client-d0263ce46160cd4152c67381fab2ee557f3aa483.zip
feat(treewide): Switch to tailwindcss and add more components
Diffstat (limited to 'src/components/site_header.rs')
-rw-r--r--src/components/site_header.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/components/site_header.rs b/src/components/site_header.rs
new file mode 100644
index 0000000..65f7137
--- /dev/null
+++ b/src/components/site_header.rs
@@ -0,0 +1,29 @@
+use icondata_core::Icon as DataIcon;
+use leptos::prelude::{ClassAttribute, ElementChild, IntoView, OnAttribute, component, view};
+use leptos_icons::Icon;
+use leptos_router::{NavigateOptions, hooks::use_navigate};
+
+#[component]
+pub fn SiteHeader(
+    logo: DataIcon,
+    back_location: &'static str,
+    name: &'static str,
+    #[prop(default = None)] menu: Option<String>,
+) -> impl IntoView {
+    let navigate = use_navigate();
+
+    view! {
+        <div
+            class="flex flex-row justify-between items-center p-2 px-4 w-full h-1/12 bg-gray-100"
+            on:click=move |_| {
+                navigate(back_location, NavigateOptions::default());
+            }
+        >
+            <div class="max-w-14">
+                <Icon icon=logo />
+            </div>
+            <p class="text-xl">{name}</p>
+            <div>{menu}</div>
+        </div>
+    }
+}