Loaded edit pages for each

This commit is contained in:
Franklin 2023-04-25 08:58:44 -04:00
parent 661127b7e9
commit 71ec8e2234
2 changed files with 22 additions and 4 deletions

View File

@ -6,7 +6,7 @@ use yew_router::prelude::use_navigator;
use crate::{
api::backend::{
get_project_listing, get_agent_with_id,
get_project_listing, get_agent_with_id, get_unit_with_id,
},
components::{
admin_nav_bar::AdminNavigationBar,
@ -23,6 +23,8 @@ pub fn edit_page(props: &AdminEditPageProps) -> Html {
let unit = use_state(|| None);
use_state(|| {
let listing = listing.clone();
let agent = agent.clone();
let unit = unit.clone();
match props.edit_item {
EditItem::Agent => {
match props.edit_type {
@ -56,7 +58,22 @@ pub fn edit_page(props: &AdminEditPageProps) -> Html {
}
};
}
EditItem::Unit(_) => {}
EditItem::Unit(_) => {
match props.edit_type {
EditType::New => {}
EditType::Existing(uid) => {
wasm_bindgen_futures::spawn_local(async move {
let unit_result = get_unit_with_id(&uid).await;
match unit_result {
Ok(unit_persisted) => {
unit.set(Some(unit_persisted));
}
Err(error) => log::error!("Error loading unit: {error}"),
};
});
}
};
}
}
});
@ -78,9 +95,9 @@ pub fn edit_page(props: &AdminEditPageProps) -> Html {
<div class={"admin-project-fields-container"}>
{
match props.edit_item {
EditItem::Agent => { html! { <AgentFields edittype={props.edit_type.clone()} agent={(*agent).clone()} /> } },
EditItem::Agent => { html! { <AgentFields agent={(*agent).clone()} edittype={props.edit_type.clone()} /> } },
EditItem::Project => { html! { <ProjectFields listing={(*listing).clone()} edittype={props.edit_type.clone()}/> } },
EditItem::Unit(project_id) => { html! { <UnitFields edittype={props.edit_type.clone()} unit={}/> } },
EditItem::Unit(project_id) => { html! { <UnitFields edittype={props.edit_type.clone()} unit={(*unit).clone()} projectid={project_id}/> } },
}
}
</div>

View File

@ -1,4 +1,5 @@
use jl_types::domain::unit::Unit;
use uuid::Uuid;
use yew::prelude::*;
use yew_router::prelude::use_navigator;