use super::types::*; use wasm_bindgen::JsCast; use web_sys::{HtmlInputElement, HtmlTextAreaElement}; use yew::prelude::*; #[function_component(PeopleTab)] pub fn people_tab(props: &TabProps) -> Html { let data = &props.data; let on_organizer_input = { let data = data.clone(); Callback::from(move |e: InputEvent| { if let Some(target) = e.target() { if let Ok(input) = target.dyn_into::() { let mut event_data = (*data).clone(); event_data.organizer = input.value(); data.set(event_data); } } }) }; let on_attendees_input = { let data = data.clone(); Callback::from(move |e: InputEvent| { if let Some(target) = e.target() { if let Ok(textarea) = target.dyn_into::() { let mut event_data = (*data).clone(); event_data.attendees = textarea.value(); data.set(event_data); } } }) }; html! {

{"Email address of the person organizing this event"}

{"Enter attendee email addresses separated by commas"}

{"Invitation & Response Management"}
  • {"Invitations are sent automatically when the event is saved"}
  • {"Attendees can respond with Accept, Decline, or Tentative"}
  • {"Response tracking follows RFC 5545 PARTSTAT standards"}
  • {"Delegation and role management available after event creation"}
{"Email Validation"}

{"Email addresses will be validated when you save the event. Invalid emails will be highlighted and must be corrected before proceeding."}

{"Advanced Attendee Features"}
{"Required Participant:"} {"Must attend for meeting to proceed"}
{"Optional Participant:"} {"Attendance welcome but not required"}
{"Resource:"} {"Meeting room, equipment, or facility"}
{"Non-Participant:"} {"For information only"}

{"Advanced role assignment and RSVP management will be available in future versions"}

} }