lan-party-backend/web/src/pages/events.rs

31 lines
813 B
Rust

use crate::components::{Page, RenderEvent};
use yew::prelude::*;
use yew_hooks::*;
use crate::{clone, util::api_request};
#[function_component(EventsPage)]
pub fn events_page() -> Html {
let events: UseAsyncHandle<Vec<lan_party_core::event::Event>, _> = use_async(async move {
api_request::<_, Vec<lan_party_core::event::Event>>("GET", "/event", Option::<()>::None)
.await
.map(|inner| inner.unwrap())
.map_err(|_| "failed to load users")
});
clone!(events; use_effect_with_deps(move |_| {
if events.data.is_none() {
events.run();
}
|| ()
}, ()));
html! {
<Page>
{ if let Some(events) = &events.data {
events.view()
} else { html! {} }}
</Page>
}
}