Added settings for company info. Added code for entity validation.

This commit is contained in:
2023-09-08 11:53:08 +02:00
parent 44b8b21426
commit 9dd0993204
18 changed files with 488 additions and 20 deletions
+43
View File
@@ -0,0 +1,43 @@
use leptos::*;
use serde::de::Unexpected::Option;
use crate::backend::company::get_company;
use crate::components::modal_box::DialogOpener;
use crate::locales::trl;
use crate::pages::company_edit::CompanyEdit;
#[component]
pub fn CompanyInfo(cx: Scope) -> impl IntoView {
let editor = DialogOpener::new(cx);
let company = create_resource(cx, move|| editor.visible(), move |_| { get_company(cx) });
let (cmp, set_cmp) = create_signal(cx, None);
view! {cx,
<CompanyEdit company={cmp} opener=editor/>
<div class="card">
<div class="card-body">
<h5 class="card-title"><i class="bx bx-buildings"></i>" "{trl(cx, "Company info")}</h5>
<p class="card-text">
<Transition fallback=move || view! {cx, <p>{trl(cx, "Loading...")}</p> }>
{move || {
company.read(cx).map(|c| match c {
Err(e) => {view! {cx, <p>{trl(cx, "Error loading data")}</p>
<p>{e.to_string()}</p>
}}
Ok(c) => {
set_cmp.update(|cmp| *cmp = Some(c.clone()));
view! {
cx, <p><b>{c.name}</b></p>
<p>{c.street}" "{c.house_number}<br/>
{c.zip_code}" "{c.city}
</p>
}}
})
}}
</Transition>
</p>
<a href="javascript:void(0)" class="card-link" on:click = move |_| editor.show()>
<i class="bx bx-pencil fs-4 lh-0"></i></a>
</div>
</div>
}
}