Home Reference Source

src/components/HostList/NewMetricModal/MetricForm/index.js

import React from 'react';

import { Form, Input, InputNumber } from 'antd';
import FormItem from './FormItem';
import { Input as DecoratedInput } from './Decorated/Input';
import { Select as DecoratedSelect } from './Decorated/Select';

const { TextArea } = Input;

const MetricForm = ({form, host, metrics, newMetric, onChange, onClear, setFormRef}) => {
    setFormRef(form);
    if(host !== null) {
        return(
            <Form className="metric-add-form">
                <FormItem label="Nazwa hosta">
                    <DecoratedInput
                        id="hostname" disabled={true} icon="desktop"
                        value={host.hostname} help="Adres hosta"
                    >
                        <Input />
                    </DecoratedInput>
                </FormItem>
                <FormItem label="Metryka bazowa">
                    {form.getFieldDecorator('parent_id', {
                        rules: [{ required: true, message: 'Metryka bazowa musi zostać wybrana' }],
                    })(
                        <DecoratedSelect
                            id="parent_id" icon="bulb" help="Bazowa metryka dla obecnie tworzonej"
                            options={metrics} myValue={newMetric.parent_id}
                            onChange={onChange} onClear={onClear}
                        />
                    )}
                </FormItem>
                <FormItem label="Opis metryki">
                    {form.getFieldDecorator('description', {
                        rules: [{ required: true, message: 'Proszę podać opis metryki' }],
                    })(
                        <TextArea id="description" onChange={(e) => onChange('description', e.target.value)} />
                    )}
                </FormItem>
                <FormItem label="Szerokość okna czasowego">
                    {form.getFieldDecorator('moving_window_duration', {
                        rules: [{ required: true, message: 'Proszę podać szerokość okna czasowego' }],
                    })(
                        <InputNumber
                            id="moving_window_duration" help="Szerokość okna czasowego"
                            onChange={(value) => onChange('moving_window_duration', value)}
                            onClear={onClear} min={1}
                        />
                    )}
                </FormItem>
                <FormItem label="Częstotliwość">
                    {form.getFieldDecorator('interval', {
                        rules: [{ required: true, message: 'Proszę podać częstotliwość' }],
                    })(
                        <InputNumber
                            id="interval" help="Częstotliwość"
                            onChange={(value) => onChange('interval', value)}
                            onClear={onClear} min={1}
                        />
                    )}
                </FormItem>
            </Form>
        );
    } else {
        return null;
    }
};

const WrappedMetricForm = Form.create()(MetricForm);
export default WrappedMetricForm;