edc_web_components/components/
show_data_plane.rs1use crate::models::DataPlane;
2use edc_connector_client::types::dataplane::DataPlaneInstanceState;
3use patternfly_yew::prelude::*;
4use yew::prelude::*;
5
6#[derive(Clone, Debug, PartialEq, Properties)]
7pub struct ShowDataPlaneProps {
8 pub data_plane: DataPlane,
9}
10
11#[component]
12pub fn ShowDataPlane(props: &ShowDataPlaneProps) -> Html {
13 let state = match &props.data_plane.state {
14 DataPlaneInstanceState::Available => "Available".to_string(),
15 DataPlaneInstanceState::Registered => "Registered".to_string(),
16 DataPlaneInstanceState::Unavailable => "Unavailable".to_string(),
17 DataPlaneInstanceState::Unregistered => "Unregistered".to_string(),
18 DataPlaneInstanceState::Other(state) => state.to_string(),
19 };
20
21 let allowed_source_types =
22 props
23 .data_plane
24 .allowed_source_types
25 .iter()
26 .map(|allowed_source_type| {
27 html_nested!(
28 <FlexItem>
29 <Label label={allowed_source_type.to_string()} />
30 </FlexItem>
31 )
32 });
33
34 let allowed_dest_types = props
35 .data_plane
36 .allowed_dest_types
37 .iter()
38 .map(|allowed_dest_type| {
39 html_nested!(
40 <FlexItem>
41 <Label label={allowed_dest_type.to_string()} />
42 </FlexItem>
43 )
44 });
45
46 let allowed_transfer_types =
47 props
48 .data_plane
49 .allowed_transfer_types
50 .iter()
51 .map(|allowed_transfer_type| {
52 html_nested!(
53 <FlexItem>
54 <Label label={allowed_transfer_type.to_string()} />
55 </FlexItem>
56 )
57 });
58
59 html! {
60 <Card>
61 <CardTitle>{ "Data Plane" }</CardTitle>
62 <CardBody>
63 <DescriptionList mode={[DescriptionListMode::Horizontal]}>
64 <DescriptionGroup term="Id">{ &props.data_plane.id }</DescriptionGroup>
65 <DescriptionGroup term="URL">{ &props.data_plane.url }</DescriptionGroup>
66 <DescriptionGroup term="Allowed Source Types">
67 <Flex>{ for allowed_source_types }</Flex>
68 </DescriptionGroup>
69 <DescriptionGroup term="Allowed Destination Types">
70 <Flex>{ for allowed_dest_types }</Flex>
71 </DescriptionGroup>
72 <DescriptionGroup term="Allowed Transfer Types">
73 <Flex>{ for allowed_transfer_types }</Flex>
74 </DescriptionGroup>
75 <DescriptionGroup term="State">{ state }</DescriptionGroup>
76 </DescriptionList>
77 </CardBody>
78 </Card>
79 }
80}