|
|
@@ -10,6 +10,7 @@ type PropsType = {
|
|
|
onSubmit: (formValues: any) => void,
|
|
|
disabled?: boolean,
|
|
|
saveValuesStatus?: string | null,
|
|
|
+ isInModal?: boolean,
|
|
|
};
|
|
|
|
|
|
type StateType = any;
|
|
|
@@ -21,38 +22,43 @@ export default class ValuesWrapper extends Component<PropsType, StateType> {
|
|
|
requiredFields: string[] = [];
|
|
|
|
|
|
updateFormState() {
|
|
|
+ console.log('here')
|
|
|
+ console.log(this.props.formTabs)
|
|
|
let metaState: any = {};
|
|
|
this.props.formTabs.forEach((tab: any, i: number) => {
|
|
|
- tab.sections.forEach((section: Section, i: number) => {
|
|
|
- console.log(section);
|
|
|
- section.contents.forEach((item: FormElement, i: number) => {
|
|
|
-
|
|
|
- // If no name is assigned use values.yaml variable as identifier
|
|
|
- let key = item.name || item.variable;
|
|
|
- let def = (item.value && item.value[0]) || (item.settings && item.settings.default);
|
|
|
-
|
|
|
- // Handle add to list of required fields
|
|
|
- if (item.required || true) {
|
|
|
- key && this.requiredFields.push(key);
|
|
|
- }
|
|
|
-
|
|
|
- switch (item.type) {
|
|
|
- case 'checkbox':
|
|
|
- metaState[key] = def ? def : false;
|
|
|
- break;
|
|
|
- case 'string-input':
|
|
|
- metaState[key] = def ? def : '';
|
|
|
- break;
|
|
|
- case 'number-input':
|
|
|
- metaState[key] = def.toString() ? def : '';
|
|
|
- break;
|
|
|
- case 'select':
|
|
|
- metaState[key] = def ? def : item.settings.options[0].value;
|
|
|
- break;
|
|
|
- default:
|
|
|
- }
|
|
|
+
|
|
|
+ // TODO: reconcile tab.name and tab.value
|
|
|
+ if (tab.name || (tab.value && tab.value.includes('@'))) {
|
|
|
+ tab.sections.forEach((section: Section, i: number) => {
|
|
|
+ section.contents.forEach((item: FormElement, i: number) => {
|
|
|
+
|
|
|
+ // If no name is assigned use values.yaml variable as identifier
|
|
|
+ let key = item.name || item.variable;
|
|
|
+ let def = (item.value && item.value[0]) || (item.settings && item.settings.default);
|
|
|
+
|
|
|
+ // Handle add to list of required fields
|
|
|
+ if (item.required) {
|
|
|
+ key && this.requiredFields.push(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (item.type) {
|
|
|
+ case 'checkbox':
|
|
|
+ metaState[key] = def ? def : false;
|
|
|
+ break;
|
|
|
+ case 'string-input':
|
|
|
+ metaState[key] = def ? def : '';
|
|
|
+ break;
|
|
|
+ case 'number-input':
|
|
|
+ metaState[key] = def.toString() ? def : '';
|
|
|
+ break;
|
|
|
+ case 'select':
|
|
|
+ metaState[key] = def ? def : item.settings.options[0].value;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ }
|
|
|
+ });
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
});
|
|
|
this.setState(metaState);
|
|
|
}
|
|
|
@@ -80,7 +86,7 @@ export default class ValuesWrapper extends Component<PropsType, StateType> {
|
|
|
render() {
|
|
|
let renderFunc: any = this.props.children;
|
|
|
return (
|
|
|
- <StyledValuesWrapper>
|
|
|
+ <StyledValuesWrapper isInModal={this.props.isInModal}>
|
|
|
{renderFunc(this.state, (x: any) => this.setState(x))}
|
|
|
<SaveButton
|
|
|
disabled={this.isDisabled() || this.props.disabled}
|
|
|
@@ -96,6 +102,6 @@ export default class ValuesWrapper extends Component<PropsType, StateType> {
|
|
|
|
|
|
const StyledValuesWrapper = styled.div`
|
|
|
width: 100%;
|
|
|
- height: calc(100% + 65px);
|
|
|
- padding-bottom: 65px;
|
|
|
+ height: ${(props: { isInModal: boolean }) => props.isInModal ? '100%' : 'calc(100% + 65px)'};
|
|
|
+ padding-bottom: ${(props: { isInModal: boolean }) => props.isInModal ? '' : '65px'};
|
|
|
`;
|