import behavior from '~/mixins/video'
import {
  submitPlayLog
} from '~/api/video'
let _observer
let preId = ''
Component({
  behaviors: [behavior],
  properties: {
    worksList: {
      type: Array,
      value: [],
      observer(newVal) {
        this.setData({
          worksListCopy: newVal
        })
        if (this.properties.autoPlay) {
          // 自动播放
          this._observer = this.createIntersectionObserver({
            observeAll: true
          })
          this._observer.relativeTo('.playLine')
            .observe('.videoPreview', (res) => {
              let intersectionRatio = res.intersectionRatio
              if (intersectionRatio > 0 && preId != res.dataset.id) {
                preId = res.dataset.id
                submitPlayLog({
                  userReadId: res.dataset.id,
                  playStopTime: 1000
                })
                // 0视频1音频
                if (res.dataset.type == 0) {
                  this.resetAudio();
                  this.setData({
                    currentId: res.dataset.id,
                  })
                } else {
                  this.playAudio({
                    currentTarget: {
                      dataset: res.dataset
                    }
                  })
                }
              }
            })
        }
      }
    },
    // 是否自动播放
    autoPlay: {
      type: Boolean,
      value: true
    },
    videoType: {
      type: String,
      // value 为public时是默认公共样式,为my时为“我的”样式,展示下载删除是否公开,pk为pk的样式文案,collection为收藏时的样式,
      value: 'public',
    },
    // 是否在tabbar页面使用
    tabBarPadding: {
      type: Boolean,
      value: false,
    }
  },
  data: {
    worksListCopy: {}
  },
  lifetimes: {
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
      this.resetAudio()
    },
  },
  methods: {
    setListFans({
      detail
    }) {
      let worksListCopy = JSON.parse(JSON.stringify(this.data.worksListCopy))
      worksListCopy.forEach(item => {
        if (item.user.uid == detail) {
          item.isFans = true
        }
      })
      this.setData({
        worksListCopy
      })
    },
    addCommentNum({
      detail
    }) {
      let worksListCopy = this.data.worksListCopy
      let index = worksListCopy.findIndex(item => {
        return item.userRead.id == detail
      })
      if (index != -1) {
        this.setData({
          [`worksListCopy[${index}].userRead.commentAmount`]: ++worksListCopy[index].userRead.commentAmount
        })
      }
    },
    deleteVideo({
      detail
    }) {
      let worksListCopy = this.properties.worksListCopy.filter(item => {
        return item.userRead.id != detail
      })
      this.setData({
        worksListCopy
      })
    }
  },
})