<script setup lang="ts">
	// #ifdef APP-PLUS
	import { setSdkLanguageFromSystem } from '@/uni_modules/tuikit-atomic-x/utils/setSdkLanguageFromSystem'
	// import * as call from "@/uni_modules/RongCloud-CallWrapper/lib/index"
	// #endif
	import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'
	import { reLaunch } from './utils/router'
	import { useAuthUser } from './composables/useAuthUser'
	import { useUserStore } from './stores/user'
	import { TUIChatKit } from './TUIKit'
	import { getIpBlack } from './api'
	import {reasonDeal,errorDeal,imCode} from '@/utils/code.js'
	import { navigateTo } from '@/utils/router'

	TUIChatKit.init()

	const { token, tencentUserSig } = useAuthUser()
	const { loginTencentIM } = useUserStore()
	/** 静默登录逻辑 */
	const silentLogin = async (e : any) => {
		if (token.value) {
			loginTencentIM()
			// reLaunch('/TUIKit/components/TUIConversation/index')
			return
		}

		console.log(tencentUserSig, '=====222==')
		if (e?.query?.invitationCode) {
			reLaunch('/pages/login/phone-register/phone-register', {
				invitationCode: e.query.invitationCode
			})
		} else {
			// 没有token去登录页
			reLaunch('/pages/login/login')
		}
	}

	onLaunch((e : any) => {
		// return
		console.log('App Launch111')
		silentLogin(e)

		// #ifdef APP-PLUS
		setSdkLanguageFromSystem()
		// onAllListeners()
		// #endif
	})

	onShow(() => {
		console.log('App Show222')
	})

	onHide(async () => {
		if (token.value) {
			const show = await getIpBlack(false)
			console.log(show.data.data, '======')
		}
		// #ifdef APP-PLUS
		removeAllListeners()
		// #endif
		console.log('App Hide333')
	})
	
	
	
	function removeAllListeners(){
		call.unInit();
		//移除监听-接收到通话呼入
		call.removeCallReceivedListener();
		// 移除监听-开始呼叫通话的回调
		call.removeCallOutgoingListener();
		// 移除监听-通话已接通
		call.removeCallReceivedListener();
		// 移除监听-通话已结束
		call.removeCallDisconnectedListener();
		// 移除监听-对端用户正在振铃
		call.removeRemoteUserRingingListener();
		// 移除监听-对端用户加入了通话
		call.removeRemoteUserJoinedListener();
		// 移除监听-有用户被邀请加入通话
		call.removeRemoteUserInvited();
		// 移除监听-对端用户挂断
		call.removeRemoteUserLeftListener();
		// 移除监听-对端用户切换了媒体类型
		call.removeRemoteUserMediaTypeChangedListener();
		// 移除监听-通话出现错误的回调
		call.removeErrorListener();
		
	}
	
</script>

<style lang="scss">
	/*每个页面公共css */
	@import './styles/global.scss';

	/* common css for page */
	// uni-page-body,
	// html,
	// body,
	// page {
	//   width: 100% !important;
	//   height: 100% !important;
	//   overflow: hidden;
	// }
</style>