40 lines
1.1 KiB
Rust
40 lines
1.1 KiB
Rust
|
use crate::{
|
||
|
components::{
|
||
|
event::{Edit, EventSpecEdit},
|
||
|
Button, Page, View,
|
||
|
},
|
||
|
init,
|
||
|
};
|
||
|
use lan_party_core::event::EventSpec;
|
||
|
use wasm_bindgen::JsValue;
|
||
|
use wasm_bindgen_futures::spawn_local;
|
||
|
use yew::prelude::*;
|
||
|
use yew_hooks::*;
|
||
|
|
||
|
use crate::{clone, clone_cb, util::api_request};
|
||
|
|
||
|
#[function_component(EventsPage)]
|
||
|
pub fn events_page() -> Html {
|
||
|
let events = use_state(|| Vec::new());
|
||
|
|
||
|
init!(events => {
|
||
|
events.set(api_request::<_, Vec<lan_party_core::event::Event>>(reqwasm::http::Method::GET, "/event", Option::<()>::None)
|
||
|
.await
|
||
|
.map(|inner| inner.unwrap())
|
||
|
.unwrap())
|
||
|
});
|
||
|
|
||
|
//let edit_event = use_state(|| EventSpecEditHandle::to_edit(EventSpec::default()));
|
||
|
let event_spec = use_state(|| EventSpec::default());
|
||
|
|
||
|
html! {
|
||
|
<Page>
|
||
|
{ events.view() }
|
||
|
|
||
|
{ event_spec.edit() }
|
||
|
|
||
|
<Button text="Create" onclick={clone_cb!(event_spec => move |_| web_sys::console::log_1(&JsValue::from_serde(&*event_spec).unwrap()))} />
|
||
|
</Page>
|
||
|
}
|
||
|
}
|