From f71ff9797ad6c86252c644f0a82cc8e8b12ad976 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 4 Mar 2024 08:48:06 +0800 Subject: [PATCH] fix and ensure the execution sequence of download browser and check cookie file --- .../index.vue | 4 +++- .../operations.ts | 5 +++-- .../src/features/WaitForLoginDialog/index.vue | 4 +++- .../src/features/WaitForLoginDialog/operations.ts | 3 ++- .../src/renderer/src/page/Configuration/index.vue | 14 ++++++++++++-- pnpm-lock.yaml | 8 ++++---- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/index.vue b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/index.vue index 12c7645..64eddb8 100644 --- a/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/index.vue +++ b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/index.vue @@ -26,7 +26,8 @@ const props = defineProps({ dependenciesStatus: { type: Object as PropType>, default: () => ({}) - } + }, + processWaitee: Object }) // shallow copy @@ -75,6 +76,7 @@ const processTasks = async () => { try { p.then(() => { if (!promiseList.length) { + props.processWaitee?.resolve?.() props.dispose?.() } }) diff --git a/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts index 23e49c1..4ecbed1 100644 --- a/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts +++ b/packages/ui/src/renderer/src/features/DependenciesSetupProgressIndicatorDialog/operations.ts @@ -2,7 +2,7 @@ import { createApp } from 'vue' import ElementPlus from 'element-plus' import DependenciesSetupProgressIndicatorDialog from './index.vue' -export const mountGlobalDialog = (dependenciesStatus: Record) => { +export const mountGlobalDialog = (o: { dependenciesStatus: Record, processWaitee? }) => { const containerElId = `elForDependenciesSetupProgressIndicatorDialog` if (document.getElementById(containerElId)) { @@ -28,7 +28,8 @@ export const mountGlobalDialog = (dependenciesStatus: Record) = dispose() }, dispose, - dependenciesStatus + dependenciesStatus: o?.dependenciesStatus, + processWaitee: o?.processWaitee }).use(ElementPlus) app.mount(containerEl) diff --git a/packages/ui/src/renderer/src/features/WaitForLoginDialog/index.vue b/packages/ui/src/renderer/src/features/WaitForLoginDialog/index.vue index 440e20c..040f7f2 100644 --- a/packages/ui/src/renderer/src/features/WaitForLoginDialog/index.vue +++ b/packages/ui/src/renderer/src/features/WaitForLoginDialog/index.vue @@ -117,7 +117,8 @@ import { ref, onUnmounted, onMounted } from 'vue' import { checkCookieListFormat } from '../../../../common/utils/cookie' const props = defineProps({ - dispose: Function + dispose: Function, + processWaitee: Object }) const cookieInvalid = ref(false) @@ -201,6 +202,7 @@ const handleSubmit = async () => { data: formContent.value.collectedCookies }) ElMessage.success('Boss直聘 Cookie 保存成功') + props.processWaitee?.resolve?.() props.dispose() } diff --git a/packages/ui/src/renderer/src/features/WaitForLoginDialog/operations.ts b/packages/ui/src/renderer/src/features/WaitForLoginDialog/operations.ts index 73265d3..98f773b 100644 --- a/packages/ui/src/renderer/src/features/WaitForLoginDialog/operations.ts +++ b/packages/ui/src/renderer/src/features/WaitForLoginDialog/operations.ts @@ -2,7 +2,7 @@ import { createApp } from 'vue' import ElementPlus from 'element-plus' import WaitForLogin from './index.vue' -export const mountGlobalDialog = () => { +export const mountGlobalDialog = (o: { processWaitee? }) => { const containerElId = `elForWaitForLogin` if (document.getElementById(containerElId)) { @@ -28,6 +28,7 @@ export const mountGlobalDialog = () => { dispose() }, dispose, + processWaitee: o?.processWaitee }).use(ElementPlus) app.mount(containerEl) diff --git a/packages/ui/src/renderer/src/page/Configuration/index.vue b/packages/ui/src/renderer/src/page/Configuration/index.vue index 0539e82..6d249b5 100644 --- a/packages/ui/src/renderer/src/page/Configuration/index.vue +++ b/packages/ui/src/renderer/src/page/Configuration/index.vue @@ -23,12 +23,22 @@ onUnmounted(() => { ;(async () => { const checkDependenciesResult = await electron.ipcRenderer.invoke('check-dependencies') if (Object.values(checkDependenciesResult).includes(false)) { - mountDependenciesSetupProgressIndicatorDialog(checkDependenciesResult) + const processWaitee = Promise.withResolvers() + mountDependenciesSetupProgressIndicatorDialog({ + checkDependenciesResult, processWaitee + }) + + await processWaitee.promise } const isCookieFileValid = await electron.ipcRenderer.invoke('check-boss-zhipin-cookie-file') if (!isCookieFileValid) { - mountWaitForLoginDialog() + const processWaitee = Promise.withResolvers() + mountWaitForLoginDialog({ + processWaitee + }) + + await processWaitee.promise } })() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12ad584..32da681 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - importers: .: @@ -5465,3 +5461,7 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false