import React, { Component } from "react"
import { WingBlank } from "antd-mobile"

import "./index.scss"
import { getParam, http } from "src/utils"

// 课程页面滚动广告
class Barrage extends Component {
  timer
  barageTimer

  constructor(props) {
    super(props)
    this.state = {
      list: [],
      isShowBarrage: false,
    }
  }

  setupBarrage = () => {
    const periods = [
      { start: 0, end: 7, interval: 60000 },
      { start: 7, end: 8, interval: 30000 },
      { start: 8, end: 23, interval: 15000 },
      { start: 23, end: 24, interval: 30000 },
    ]
    const now = new Date(Date.now()).getHours()
    for (let period of periods) {
      if (now >= period.start && now <= period.end) {
        this.timer = setTimeout(() => {
          this.getList()
        }, period.interval)
        break
      }
    }
  }

  componentDidUpdate(prevProps) {
    const { isShow } = this.props
    const { isShow: prevIsShow } = prevProps
    if (prevIsShow !== isShow && isShow !== undefined) {
      if (isShow) {
        setTimeout(() => {
          this.getList()
        }, 5000)
      }
      this.componentDidUpdate = null
    }
  }

  componentWillUnmount() {
    this.timer && clearTimeout(this.timer)
    this.barageTimer && clearTimeout(this.barageTimer)
  }

  // 获取课程接口
  getList = () => {
    let data = {
      course_id: getParam("id"),
    }
    http.post(`${API.home}/m/course/barrages`, data).then((res) => {
      if (res.data.code === 200) {
        this.setState(
          {
            list: res.data.data,
            isShowBarrage: true,
          },
          () => {
            this.barageTimer = setTimeout(() => {
              this.setState({ isShowBarrage: !this.state.isShowBarrage })
              this.setupBarrage()
            }, 5000)
          }
        )
      }
    })
  }

  render() {
    return (
      <WingBlank>
        <div
          className="my-carousel"
          style={{ opacity: this.state.isShowBarrage ? 1 : 0 }}
        >
          {this.state.list && (
            <div className="v-item text-overflow-one">
              <img src={this.state.list.avatar} alt="" />
              {this.state.list.user_name} {this.state.list.live_msg}
            </div>
          )}
        </div>
        {/*
                <Carousel className="my-carousel"
                          vertical
                          dots={false}
                          autoplay
                          infinite
                >
                    {
                        this.state.list &&
                        <div className="v-item text-overflow-one">
                            <img src={this.state.list.avatar} alt=""/>
                            {this.state.list.user_name} {this.state.list.live_msg}
                        </div>
                    }

                </Carousel>
*/}
      </WingBlank>
    )
  }
}

export default Barrage