Skip to main content

edc_web_components/pages/
request_verifiable_credential_page.rs

1use crate::components::{Issuer, RequestVerifiableCredential};
2use patternfly_yew::prelude::*;
3use yew::prelude::*;
4
5#[derive(Clone, Debug, PartialEq, Properties)]
6pub struct RequestVerifiableCredentialPageProps {
7  #[prop_or("Request a Verifiable Credentials".to_string())]
8  pub title: String,
9  #[prop_or(None)]
10  pub tag_line: Option<String>,
11  #[prop_or_default]
12  pub issuers: Vec<Issuer>,
13  pub on_create: Callback<()>,
14}
15
16#[component]
17pub fn RequestVerifiableCredentialPage(props: &RequestVerifiableCredentialPageProps) -> Html {
18  let tag_line = props
19    .tag_line
20    .as_ref()
21    .map(|tag_line| html!(<p>{ tag_line }</p>))
22    .unwrap_or_default();
23
24  html!(
25    <Stack gutter=true>
26      <StackItem>
27        <Title level={Level::H3} size={Size::XXLarge}>{ &props.title }</Title>
28        { tag_line }
29      </StackItem>
30      <StackItem>
31        <RequestVerifiableCredential
32          on_create={props.on_create.clone()}
33          issuers={props.issuers.clone()}
34        />
35      </StackItem>
36    </Stack>
37  )
38}