edc_web_components/pages/
new_contract_definition_page.rs1use crate::components::CreateContractDefinition;
2use patternfly_yew::prelude::*;
3use yew::prelude::*;
4
5#[derive(Clone, Debug, PartialEq, Properties)]
6pub struct NewContractDefinitionPageProps {
7 #[prop_or("New Contract Definition".to_string())]
8 pub title: String,
9 #[prop_or(Some("A contract definition links an asset to an access policy and a contract policy. The contract definition constitutes an offer to the other participants.".to_string()))]
10 pub tag_line: Option<String>,
11 pub on_create: Callback<()>,
12}
13
14#[component]
15pub fn NewContractDefinitionPage(props: &NewContractDefinitionPageProps) -> Html {
16 let tag_line = props
17 .tag_line
18 .as_ref()
19 .map(|tag_line| html!(<p>{ tag_line }</p>))
20 .unwrap_or_default();
21
22 html!(
23 <>
24 <Title level={Level::H2} size={Size::XXXLarge}>{ &props.title }</Title>
25 { tag_line }
26 <CreateContractDefinition on_create={props.on_create.clone()} />
27 </>
28 )
29}