/* eslint react/no-multi-comp:0, no-console:0 */

import BaseMixin from '../../_util/BaseMixin';
import createDOMForm from '../src/createDOMForm';
import { Modal } from 'ant-design-vue';
import { regionStyle, errorStyle } from './styles';

var Form = {
  mixins: [BaseMixin],
  props: {
    form: Object
  },

  data: function data() {
    return { visible: false };
  },

  methods: {
    onSubmit: function onSubmit(e) {
      e.preventDefault();
      this.form.validateFieldsAndScroll(function (error, values) {
        if (!error) {
          console.log('ok', values);
        } else {
          console.log('error', error, values);
        }
      });
    },
    onCancel: function onCancel() {
      this.setState({ visible: false });
    },
    open: function open() {
      this.setState({ visible: true });
    }
  },

  render: function render() {
    var h = arguments[0];
    var _form = this.form,
        getFieldProps = _form.getFieldProps,
        getFieldError = _form.getFieldError;

    return h(
      'div',
      {
        style: {
          margin: '20px'
        }
      },
      [h('h2', ['modal']), h(
        Modal,
        {
          attrs: {
            visible: this.visible,
            bodyStyle: {
              height: '200px',
              overflow: 'auto'
            },

            title: 'modal'
          },
          on: {
            'cancel': this.onCancel
          }
        },
        [h(
          'div',
          { ref: 'dialogContent' },
          [h(
            'form',
            {
              on: {
                'submit': this.onSubmit
              }
            },
            [h('input', getFieldProps('required', { rules: [{ required: true, message: '必填' }] })), h(
              'div',
              { style: errorStyle },
              [getFieldError('required') ? getFieldError('required').join(',') : h(
                'b',
                {
                  style: {
                    visibility: 'hidden'
                  }
                },
                ['1']
              )]
            ), h(
              'div',
              {
                style: {
                  marginTop: '300px'
                }
              },
              [h('button', ['submit'])]
            )]
          )]
        )]
      ), h(
        'div',
        { style: regionStyle },
        [h(
          'button',
          {
            on: {
              'click': this.open
            }
          },
          ['open']
        )]
      )]
    );
  }
};
export default createDOMForm()(Form);