<template>
	<view class="page__view">

		<navbar bgColor="#FFFFFF" >
			<image class="nav-icon" :src="configList.icon_nav_dark" mode="widthFix"></image>
		</navbar>

		<view class="content">
			<view id="productSwiper" class="swiper">
				<productSwiper :autoplay="autoplay.productSwiper"></productSwiper>
			</view>

			<view class="section">
				<sectionHeader title="个性推荐" desc="Personal Recommendation"></sectionHeader>
				<view id="recommendSwiper" class="swiper">
					<recommend-swiper :autoplay="autoplay.recommendSwiper"></recommend-swiper>
				</view>
				<health-records-intro></health-records-intro>
			</view>

			<view class="section">
				<achievement-intro></achievement-intro>
			</view>

			<view class="section">
				<sectionHeader title="团队成员背景" desc="Background of Team Members"></sectionHeader>
				<team-bg-intro></team-bg-intro>
			</view>

			<view class="section">
				<sectionHeader desc="Background of Team Members">
					<template #title>
						关注我们<br/>参与更多健康活动
					</template>
				</sectionHeader>
				<follow-us-intro></follow-us-intro>
			</view>

		</view>

		<tabber select="home" />
		
	</view>
</template>

<script>
	import tabber from '@/components/base/tabbar.vue'
	import sectionHeader from '@/components/home/sectionHeader.vue'
	import productSwiper from '@/components/home/productSwiper.vue'
	import recommendSwiper from '@/pages_order/home/recommendSwiper.vue'
	import healthRecordsIntro from '@/pages_order/home/healthRecordsIntro.vue'
	import achievementIntro from '@/pages_order/home/achievementIntro.vue'
	import teamBgIntro from '@/pages_order/home/teamBgIntro.vue'
	import followUsIntro from '@/pages_order/home/followUsIntro.vue'

	export default {
		components: {
			productSwiper,
			sectionHeader,
			recommendSwiper,
			healthRecordsIntro,
			achievementIntro,
			teamBgIntro,
			followUsIntro,
			tabber,
		},
		data() {
			return {
				isMounted: false,
        observer: null,
				autoplay: {
					productSwiper: false,
					recommendSwiper: false,
				},
			}
		},
		onLoad() {

			if(uni.getStorageSync('token')){
				this.$store.commit('getUserInfo')
			}

		},
		onShow() {
			if (this.isMounted) {
				this.observeElement()
			}
		},
    mounted() {
      this.observeElement()
			this.isMounted = true
    },
    unmounted() {
      this.observer.disconnect()
    },
		onHide() {
      this.observer.disconnect()
			this.observer = null
			this.autoplay.productSwiper = false
			this.autoplay.recommendSwiper = false
		},
		methods: {
      observeElement() {
        this.observer = uni.createIntersectionObserver(this, { observeAll: true, thresholds: [0, 1] });

        this.observer.relativeTo('.content').observe('.swiper', res => {
					if (res.intersectionRatio === 0) {
						this.autoplay[res.id] = false
					} else if (res.intersectionRatio === 1) {
						this.autoplay[res.id] = true
					}
        })
 
      },
		},
	}
</script>

<style scoped lang="scss">
	.page__view {
		width: 100vw;
		min-height: 100vh;
		background-color: $uni-bg-color;
		position: relative;
	}

	.nav-icon {
		width: 200rpx;
		height: auto;
		vertical-align: top;
	}

	.content {
		width: 100vw;
		height: calc(100vh - (var(--status-bar-height) + 120rpx) - (env(safe-area-inset-bottom) + 120rpx));
		padding: 70rpx 0 182rpx 0;
		// padding-bottom: calc(env(safe-area-inset-bottom) + 120rpx + 182rpx);
		box-sizing: border-box;
		overflow-x: hidden;
		overflow-y: auto;
	}

	.section {
		margin-top: 80rpx;
	}
</style>