import React, { Component } from 'react';
import classnames from 'classnames';
import { http, SendMessageToApp } from "@/utils";
import './index.scss';
import { getParam } from '../../../utils';

class CoursePopup extends Component {
  constructor(props) {
    super(props);
    this.state = {
      courseList: [],
      isshowAppTip:false
    };
  }

  componentDidMount() {
    this.fetchCourseData();
    this.distinguishVersion();
  }

  distinguishVersion = () => {
      // plat_form 1ios 2android
      // version  1->3.704    2->4.5.1.20191105
    if(getParam('plat_form') == 1){
        let version = Number(getParam('version'))
        this.setState({
            isshowAppTip: version < 3.704 ? true : false
        });
    }
    if(getParam('plat_form') == 2){
        let version = getParam('version').replace(/\./g, '').slice(0, 3)
        this.setState({
         isshowAppTip: Number(version) < 451 ? true:false
        });
    }
  }

  fetchCourseData = () => {
    Promise.all([
      http.get(`${API.home}/sys/browse/blessing/courses`),
      http.get(`${API.home}/sys/user/blessing`)
    ]).then(res => {
      const { code, data } = res[0].data;
      const doneCourse = res[1].data.data.today_browsed_courses || [];
      if(code === 200) {
        this.setState({
          courseList: data.map(item => {
            if(doneCourse.some(id => id == item.course_id)) {
              return Object.assign({}, item, {
                blessing: 2
              });
            }
            return item;
          })
        });
      }
    });
  }

  toCourseDetail = (item) => {
    console.log(this.props);
    const {isLogin, history, toLogin} = this.props;
    // to={`/detail?id=${item.course_id}&ac=11`}
    if(isLogin) {
      if(!getParam('version')) {
        history.push(`/detail?id=${item.course_id}&ac=11`);
      }else{
        if(this.state.isshowAppTip){
          SendMessageToApp("toCourse", item.course_id);
        } else {
          if(item.blessing) {
            let data = {
              courseId: item.course_id,
              type: 2
            }
            SendMessageToApp("toBlessingCourse", data);
          }else{
            let data = {
              courseId: item.course_id,
              type: 1 // 正常跳课程详情页type:0,积福气浏览课程详情页-没有浏览过type:1 已浏览过type:2
            }
            SendMessageToApp("toBlessingCourse", data);
          }
        }
      }
    }else{
      toLogin();
    }
  }

  render() {
    const { courseList,isshowAppTip } = this.state;
    const { handleToHide } = this.props;
    return (
      <div className="course-popup__container">
        <div className="course-popup">
          <h2 className="course-popup__title">指定课程</h2>
          <div className="course-popup__list">
            {
              courseList.map(item => (
                <span
                  className={classnames("course-popup__item", {
                    "course-popup__item--active": item.blessing
                  })}
                  key={item.course_id}
                  onClick={()=>{this.toCourseDetail(item)}}
                >
                  <span className="course-popup__name">{item.course_title}</span>
                  {
                    item.blessing &&
                    <span>+2点</span>
                  }
                </span>
              ))
            }
          </div>

          {
            isshowAppTip &&
            <div className="course-popup-apptip">
              当前版本浏览课程暂不能增加福气值,可以前往h5/pc端浏览课程增加福气值
            </div>
          }
        </div>
        <i className="iconfont iconiconfront-2" onClick={handleToHide}></i>
      </div>
    );
  }
}

export default CoursePopup;