use yew::prelude::*; use chrono::{DateTime, Utc}; use crate::services::CalendarEvent; #[derive(Properties, PartialEq)] pub struct EventModalProps { pub event: Option, pub on_close: Callback<()>, } #[function_component] pub fn EventModal(props: &EventModalProps) -> Html { let close_modal = { let on_close = props.on_close.clone(); Callback::from(move |_| { on_close.emit(()); }) }; let backdrop_click = { let on_close = props.on_close.clone(); Callback::from(move |e: MouseEvent| { if e.target() == e.current_target() { on_close.emit(()); } }) }; if let Some(ref event) = props.event { html! { } } else { html! {} } } fn format_datetime(dt: &DateTime, all_day: bool) -> String { if all_day { dt.format("%B %d, %Y").to_string() } else { dt.format("%B %d, %Y at %I:%M %p").to_string() } }