argo-cd
37 строк · 981.0 Байт
1import {Checkbox} from 'argo-ui';
2import * as React from 'react';
3import * as ReactForm from 'react-form';
4
5import {ArrayInput, NameValueEditor} from '../../../shared/components';
6
7export interface Var {
8name: string;
9value: string;
10code: boolean;
11}
12
13const VarInputEditor = (item: Var, onChange: (item: Var) => any) => (
14<React.Fragment>
15{NameValueEditor(item, onChange)}
16
17<Checkbox checked={!!item.code} onChange={val => onChange({...item, code: val})} />
18
19</React.Fragment>
20);
21
22export const VarsInputField = ReactForm.FormField((props: {fieldApi: ReactForm.FieldApi}) => {
23const {
24fieldApi: {getValue, setValue, setTouched}
25} = props;
26const val = getValue() || [];
27return (
28<ArrayInput
29editor={VarInputEditor}
30items={val}
31onChange={items => {
32setTouched(true);
33setValue(items);
34}}
35/>
36);
37});
38