This repository was archived by the owner on Jun 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathParametersContainer.tsx
More file actions
77 lines (74 loc) · 2.69 KB
/
ParametersContainer.tsx
File metadata and controls
77 lines (74 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import { FieldArray, useField } from 'formik';
import ComponentMapping from '../../mappings/ComponentMapping';
import ParameterMapping from '../../mappings/ParameterMapping';
import { useStoreActions } from '../../state/Hooks';
import { InspectorDefinitionMenu } from '../menus/definitions/InspectorDefinitionMenu';
import SubTypeMenuNav from '../menus/SubTypeMenu';
const ParameterContainer = (props: {
dataMapping: ComponentMapping;
values: any;
}) => {
const [field] = useField(props.values.parameters);
const navigateTo = useStoreActions((actions) => actions.navigateTo);
return (
<FieldArray
{...field}
name="parameters"
render={(arrayHelpers) => (
<div className="p-6 flex flex-col">
<button
type="button"
onClick={() => {
navigateTo({
component: SubTypeMenuNav,
props: {
typePage: ParameterMapping.subtypes?.component,
typeProps: { component: props.dataMapping },
menuPage: InspectorDefinitionMenu,
menuProps: {
dataType: ParameterMapping,
passBackKey: 'parameters',
},
},
values: {
...props.values,
},
});
}}
className="m-auto tracking-wide hover:underline leading-6 text-sm text-circle-blue font-medium mb-4"
>
Add Parameter
</button>
{props.values.parameters &&
Object.entries(props.values.parameters).map(
([name, parameter]: [string, any]) => (
<div
key={name}
className="p-4 mb-4 w-full border-circle-gray-300 border-2 rounded text-left"
>
<div className="flex">
<p className="font-bold">{name}</p>
</div>
{parameter.description && (
<p className="text-sm mt-1 leading-4 whitespace-pre-wrap text-circle-gray-500">
{parameter.description}
</p>
)}
{parameter.defaultValue ? (
<p className="text-sm mt-1 leading-4 whitespace-pre-wrap text-circle-gray-500">
{parameter.description}
</p>
) : (
<p className="text-sm mt-1 leading-4 whitespace-pre-wrap text-circle-gray-500">
Required
</p>
)}
</div>
),
)}
</div>
)}
/>
);
};
export default ParameterContainer;