Compare commits

...

2 Commits

Author SHA1 Message Date
antifallobst af1a045464
feat: added an impress
Build and Deploy / build-docker (push) Successful in 7m34s Details
2023-12-07 17:01:04 +01:00
antifallobst b989dc06d7
feat: added profile routing 2023-10-13 18:20:18 +02:00
5 changed files with 40 additions and 2 deletions

16
src/content/impress.rs Normal file
View File

@ -0,0 +1,16 @@
use yew::prelude::*;
#[function_component]
pub fn Impress() -> Html {
html! {
<div class="content">
<p class="content-box-heading">{"Impress / Impressum"}</p>
<div class="content-box-data">
<p>{
"This website is hosted in germany. By the german law websites that are for private use don't require an impress. \
This is neither a commercial site nor are our non-profit services available to the public at the moment."
}</p>
</div>
</div>
}
}

View File

@ -1,3 +1,5 @@
pub mod about; pub mod about;
pub mod home;
pub mod error; pub mod error;
pub mod home;
pub mod impress;
pub mod profile;

View File

@ -0,0 +1,13 @@
use yew::prelude::*;
#[derive(PartialEq, Properties)]
pub struct Props {
pub username: AttrValue,
}
#[function_component]
pub fn Profile(props: &Props) -> Html {
html! {
<h1>{"User profile: "}{props.username.clone()}</h1>
}
}

View File

@ -3,7 +3,7 @@ mod content;
mod topbar; mod topbar;
use backend::Session; use backend::Session;
use content::{about::About, error, home::Home}; use content::{about::About, error, home::Home, impress::Impress, profile::Profile};
use gloo::dialogs::alert; use gloo::dialogs::alert;
use gloo_storage::{SessionStorage, Storage}; use gloo_storage::{SessionStorage, Storage};
use std::ops::Deref; use std::ops::Deref;
@ -21,6 +21,10 @@ enum Route {
Community, Community,
#[at("/about")] #[at("/about")]
About, About,
#[at("/impress")]
Impress,
#[at("/profile/:username")]
Profile { username: String },
#[not_found] #[not_found]
#[at("/404")] #[at("/404")]
NotFound, NotFound,
@ -32,6 +36,8 @@ fn switch(routes: Route) -> Html {
Route::Services => html! {<h1>{ "Services" }</h1>}, Route::Services => html! {<h1>{ "Services" }</h1>},
Route::Community => html! {<h1>{ "Community" }</h1>}, Route::Community => html! {<h1>{ "Community" }</h1>},
Route::About => html! {<About/>}, Route::About => html! {<About/>},
Route::Impress => html! { <Impress/>},
Route::Profile { username } => html! { <Profile username={username}/> },
Route::NotFound => html! { <error::NotFound/> }, Route::NotFound => html! { <error::NotFound/> },
} }
} }

View File

@ -77,6 +77,7 @@ pub fn TopBar() -> Html {
<li><a href="/services"><Tab text="Services" /></a></li> <li><a href="/services"><Tab text="Services" /></a></li>
<li><a href="/community"><Tab text="Community" /></a></li> <li><a href="/community"><Tab text="Community" /></a></li>
<li><a href="/about"><Tab text="About" /></a></li> <li><a href="/about"><Tab text="About" /></a></li>
<li><a href="/impress"><Tab text="Impress" /></a></li>
</ul> </ul>
<ul id="tabs-account" class="tabs"> <ul id="tabs-account" class="tabs">