import React, { Component } from 'react';
import './index.scss';

class CourseItem extends Component {
  constructor(props) {
    super(props);
    this.state = {
      countdown: ''
    }
  }

  componentDidMount() {
    const { time } = this.props;
    this.startCountDown(time);
  }

  componentWillReceiveProps(nextProps) {
    const { time: newTime } = nextProps
    const { time: oldTime } = this.props;
    if(oldTime != newTime) {
      this.startCountDown(newTime);
    }
  }

  startCountDown = (time) => {
    if(time) {
      let date = time * 1000,
        hours = 0,
        minutes = 0,
        seconds = 0;
      setInterval(() => {
          date -= 1000
          hours = `${parseInt(date / (60 * 60 * 1000))}`.padStart(2, 0);
          minutes = `${parseInt((date - hours * 3600000) / 60000)}`.padStart(2, 0);
          seconds = `${parseInt((date - hours * 3600000 - minutes * 60000) / 1000)}`.padStart(2, 0);
          this.setState({
            countdown: `${hours}时${minutes}分${seconds}秒后结束`
          });
      }, 1000);
    }
  }

  render() {
    const { image, toCourse, id} = this.props;
    const { countdown } = this.state;
    return (
      <div className="course-container">
        <div className="course__cover">
          {
            countdown &&
            <p className="course__time">{countdown}</p>
          }
          <img src={image} alt="cover" onClick={() => toCourse(id)}/>
        </div>
        {this.props.children}
      </div>
    );
  }
}

export default CourseItem;