import React, { Component } from 'react';
import './index.less';
import Module from '../Module';
import Tabs from '../Tabs';
import Icon from '../Icon';

class QAItem extends Component {
  constructor(props) {
    super(props);
    this.Text = null;
    this.state = { show: false, more: false };
    this.checkHeight();
  }

  checkHeight() {
    if (this.Text != null) {
      if (this.Text.offsetHeight > 80) {
        this.setState({ more: true });
      }
    } else {
      setTimeout(() => {
        this.checkHeight();
      }, 1);
    }
  }

  render() {
    const { data } = this.props;
    const { show, more } = this.state;
    return (
      <div className={`qa-item ${more ? 'more' : ''} ${!show ? 'hide' : ''}`}>
        <div className="title">Q: {data.content}</div>
        <div
          ref={ref => {
            this.Text = ref;
          }}
          className="desc"
        >
          A: {data.answer}
        </div>
        {more && show && <Icon name="up" onClick={() => this.setState({ show: false })} />}
        {more && !show && <Icon name="down" onClick={() => this.setState({ show: true })} />}
      </div>
    );
  }
}

function QAList(props) {
  const { style, data = [], tabs = [], active } = props;
  return (
    <Module style={style} className="qa-list">
      <Tabs
        type="division"
        theme="theme"
        active={active}
        space={2.5}
        width={100}
        tabs={tabs}
      />
      {data.map(item => {
        return <QAItem data={item} />;
      })}
    </Module>
  );
}

QAList.propTypes = {};
export default QAList;