31 lines
813 B
Rust
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>
|
|
}
|
|
}
|