升级到 vue3
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
import { useAction, nextTick, onBeforeUnmount } from '@renderer/utils/vueTools'
|
||||
import { onUpdateAvailable, onUpdateDownloaded, onUpdateError, onUpdateNotAvailable, onUpdateProgress } from '@renderer/utils/tools'
|
||||
import { compareVer } from '@renderer/utils'
|
||||
import { versionInfo } from '@renderer/core/share'
|
||||
|
||||
export default (setting) => {
|
||||
const getVersionInfo = useAction('getVersionInfo')
|
||||
|
||||
// 更新超时定时器
|
||||
let updateTimeout = setTimeout(() => {
|
||||
updateTimeout = null
|
||||
versionInfo.isTimeOut = true
|
||||
nextTick(() => {
|
||||
showUpdateModal()
|
||||
})
|
||||
}, 60 * 30 * 1000)
|
||||
|
||||
const clearUpdateTimeout = () => {
|
||||
if (!updateTimeout) return
|
||||
clearTimeout(updateTimeout)
|
||||
updateTimeout = null
|
||||
}
|
||||
|
||||
const showUpdateModal = () => {
|
||||
(versionInfo.newVersion && versionInfo.newVersion.history
|
||||
? Promise.resolve(versionInfo.newVersion)
|
||||
: getVersionInfo().then(body => {
|
||||
versionInfo.newVersion = body
|
||||
return body
|
||||
})
|
||||
).catch(() => {
|
||||
if (versionInfo.newVersion) return versionInfo.newVersion
|
||||
versionInfo.isUnknow = true
|
||||
let result = {
|
||||
version: '0.0.0',
|
||||
desc: null,
|
||||
}
|
||||
versionInfo.newVersion = result
|
||||
return result
|
||||
}).then(result => {
|
||||
if (result.version == '0.0.0') {
|
||||
versionInfo.isUnknow = true
|
||||
versionInfo.showModal = true
|
||||
return
|
||||
}
|
||||
if (compareVer(versionInfo.version, result.version) != -1) {
|
||||
versionInfo.isLatestVer = true
|
||||
return
|
||||
}
|
||||
|
||||
if (result.version === setting.value.ignoreVersion) return
|
||||
// console.log(this.version)
|
||||
nextTick(() => {
|
||||
versionInfo.showModal = true
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const rUpdateAvailable = onUpdateAvailable((event, info) => {
|
||||
versionInfo.isDownloading = true
|
||||
getVersionInfo().catch(() => ({
|
||||
version: info.version,
|
||||
desc: info.releaseNotes,
|
||||
})).then(body => {
|
||||
// console.log(body)
|
||||
versionInfo.newVersion = body
|
||||
nextTick(() => {
|
||||
versionInfo.showModal = true
|
||||
})
|
||||
})
|
||||
})
|
||||
const rUpdateNotAvailable = onUpdateNotAvailable((event, info) => {
|
||||
clearUpdateTimeout()
|
||||
versionInfo.newVersion = {
|
||||
version: info.version,
|
||||
desc: info.releaseNotes,
|
||||
}
|
||||
versionInfo.isLatestVer = true
|
||||
})
|
||||
const rUpdateError = onUpdateError((event, info) => {
|
||||
clearUpdateTimeout()
|
||||
versionInfo.isError = true
|
||||
nextTick(() => {
|
||||
showUpdateModal()
|
||||
})
|
||||
})
|
||||
const rUpdateProgress = onUpdateProgress((event, progress) => {
|
||||
versionInfo.downloadProgress = progress
|
||||
})
|
||||
const rUpdateDownloaded = onUpdateDownloaded((event, info) => {
|
||||
clearUpdateTimeout()
|
||||
versionInfo.isDownloaded = true
|
||||
nextTick(() => {
|
||||
showUpdateModal()
|
||||
})
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
clearUpdateTimeout()
|
||||
rUpdateAvailable()
|
||||
rUpdateNotAvailable()
|
||||
rUpdateError()
|
||||
rUpdateProgress()
|
||||
rUpdateDownloaded()
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user