useLoginAndDownloadModal.ts 1003 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { ref } from 'vue'
  2. // import { useUserStore } from '@/stores/modules/user'
  3. interface LoginResult {
  4. status: boolean
  5. error?: string
  6. isFirstLogin?: boolean
  7. }
  8. const isLoginAndDownloadOpen = ref(false)
  9. let resolvePromise: ((value: LoginResult) => void) | null = null
  10. export function useLoginAndDownLoadModal() {
  11. const openLoginAndDownloadModal = (): Promise<LoginResult> => {
  12. // const userStore = useUserStore()
  13. // const { isLogin } = storeToRefs(userStore)
  14. // if (isLogin.value)
  15. // return Promise.resolve({ status: true, isFirstLogin: false })
  16. isLoginAndDownloadOpen.value = true
  17. return new Promise((resolve) => {
  18. resolvePromise = resolve
  19. })
  20. }
  21. const closeLoginAndDownloadModal = (result: LoginResult) => {
  22. isLoginAndDownloadOpen.value = false
  23. if (resolvePromise) {
  24. resolvePromise(result)
  25. resolvePromise = null
  26. }
  27. }
  28. return {
  29. isLoginAndDownloadOpen,
  30. openLoginAndDownloadModal,
  31. closeLoginAndDownloadModal,
  32. }
  33. }