import { LoadingPlugin } from 'tdesign-vue-next'

/* 全局请求 loading */
let loadingInstance: ReturnType<typeof LoadingPlugin>

/**
 * @description 开启 Loading
 * */
const startLoading = () => {
  loadingInstance = LoadingPlugin({
    fullscreen: true,
    text: 'Loading'
  })
}

/**
 * @description 结束 Loading
 * */
const endLoading = () => {
  loadingInstance.hide()
}

/**
 * @description 显示全屏加载
 * */
let needLoadingRequestCount = 0
export const showFullScreenLoading = () => {
  if (needLoadingRequestCount === 0) {
    startLoading()
  }
  needLoadingRequestCount++
}

/**
 * @description 隐藏全屏加载
 * */
export const tryHideFullScreenLoading = () => {
  if (needLoadingRequestCount <= 0) return
  needLoadingRequestCount--
  if (needLoadingRequestCount === 0) {
    endLoading()
  }
}
