edc_web_components/pages/
new_asset_page.rs1use crate::components::CreateAsset;
2use patternfly_yew::prelude::*;
3use yew::prelude::*;
4
5#[derive(Clone, Debug, PartialEq, Properties)]
6pub struct NewAssetPageProps {
7 #[prop_or("New Asset".to_string())]
8 pub title: String,
9 #[prop_or(Some("The data you hold, before any of it is offered.".to_string()))]
10 pub tag_line: Option<String>,
11 #[prop_or_default]
12 pub company_name: Option<String>,
13 #[prop_or_default]
14 pub company_logo_url: Option<String>,
15 pub on_create: Callback<()>,
16 #[prop_or_default]
17 pub dcterm_types: Option<Vec<(String, String)>>,
18}
19
20#[component]
21pub fn NewAssetPage(props: &NewAssetPageProps) -> Html {
22 let tag_line = props
23 .tag_line
24 .as_ref()
25 .map(|tag_line| html!(<p>{ tag_line }</p>))
26 .unwrap_or_default();
27
28 html!(
29 <>
30 <Title level={Level::H2} size={Size::XXXLarge}>{ &props.title }</Title>
31 { tag_line }
32 <CreateAsset
33 on_create={props.on_create.clone()}
34 company_name={props.company_name.clone()}
35 company_logo_url={props.company_logo_url.clone()}
36 dcterm_types={props.dcterm_types.clone()}
37 />
38 </>
39 )
40}