Implemented public form appearance settings.

This commit is contained in:
2024-02-22 21:54:00 +01:00
parent 653249287d
commit 2119c2e56b
15 changed files with 469 additions and 4 deletions
+30
View File
@@ -3,6 +3,7 @@ use leptos::*;
use leptos_captcha::{Captcha, pow_dispatch};
use leptos_router::*;
use rust_decimal::Decimal;
use crate::backend::appearance::get_appearance;
use crate::backend::customer::get_remembered;
use crate::backend::data::{ApiResponse, Customer, DayHour, Reservation, ResProperty, SlotType, TmCheck};
use crate::backend::reservation::{CreateReservation, get_public_form_data, is_reserved};
@@ -103,6 +104,7 @@ pub fn Public() -> impl IntoView {
let is_pending = create_rw_signal(None);
let active_str = create_rw_signal("true".to_string());
let get_customer = create_blocking_resource(||(), move |_| get_remembered());
let appearance = create_blocking_resource(||(), move |_| get_appearance());
let customer = create_rw_signal(Customer::default());
create_effect(move |_| {
@@ -117,6 +119,34 @@ pub fn Public() -> impl IntoView {
price=price.write_only()
slots=slots.write_only()
captcha_state=is_pending.read_only()/>
<Transition fallback=move || view! {<p>{trl("Loading...")}</p> }>
{
appearance.get().map(|a| match a {
Ok(a) => {
let app = a.clone();
view! {
<div>
<Show when=move || a.clone().banner.is_some()>
<div class="header_banner">
<h1 class="header_banner">{app.title.clone().unwrap_or_default()}</h1>
</div>
</Show>
<div>
<div>
{app.text.unwrap_or("".to_string())}
</div>
</div>
</div>
}
},
Err(e) => {view! {<div><p>{trl("Error loading data")}</p>
<p>{e.to_string()}</p></div>
}}
})
}
</Transition>
<div class="card-body">
<ActionForm
on:submit=move |ev| {