use chrono::Weekday; use leptos::*; use crate::backend::data::{DayHours, WeekHours}; use crate::backend::opening_hours::get_hours; use crate::components::modal_box::DialogOpener; use crate::locales::{show_day, trl}; use crate::pages::hours_edit::EditHours; fn show_time(tm: &str) -> impl Fn() -> String { if tm.is_empty() { trl("Closed") } else { trl(tm) } } #[component] pub fn OpeningHours() -> impl IntoView { let editor = DialogOpener::new(); let hours = create_blocking_resource(move || editor.visible(), move |_| {get_hours()}); let hrs = create_rw_signal(WeekHours::default()); view! {
" "{trl("Opening hours")}

{trl("Loading...")}

}> {move || { hours.get().map(|h| match h { Ok(h) => { let h = create_rw_signal(h); let d = create_rw_signal((0..7).collect::>()); view! {
} } />
{show_day(&week_day)} {show_time(&DayHours(hr_day).to_string())}
} } Err(e) => {view! {

{trl("Error loading data")}

{e.to_string()}

}} }) }}

} }