import behavior from '~/mixins/video'
import {
    submitPlayLog
} from '~/api/video'
let _observer
let timer;
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) {
                                clearTimeout(timer);
                                timer = setTimeout(() => {
                                    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
                                        }
                                    })
                                }
                                }, 600);
                            }
                        })
                }
            }
        },
        // 是否自动播放
        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
            })
        },
    },
})