/**
 * imui.Validator.Msg
 * @author moxhe
 * @date 2016-08-10
 */

import React from 'react';
import classnames from 'classnames';
import PropTypes from 'prop-types';
import Icon from '../../icon/index';

const iconMap = {
  success: 'success',
  error: 'alert',
  info: 'info',
};

export default class Msg extends React.Component {
  static propTypes = {
    status: PropTypes.oneOf(['success', 'error', 'info']),
    // 以数组形式传递，方便扩展
    msgs: PropTypes.array,
  };

  static defaultProps = {
    prefixCls: 'im-validator-msg',
    status: null,
    msgs: [],
  };

  render() {
    const { prefixCls, status, msgs } = this.props;
    const msg = msgs.length ? msgs[0] : '';

    const allCls = {
      [prefixCls]: true,
      [`${prefixCls}--${status}`]: !!status,
    };

    return (
      <div className={classnames(allCls)}>
        <Icon
          className={`${prefixCls}-icon`}
          type={iconMap[status]}
        />
        <span className={`${prefixCls}-text`}>
          {msg}
        </span>
      </div>
    );
  }
}
