Update:Show version number in bottom of siderail #660 and save previous version data to continue showing if update is available

This commit is contained in:
advplyr 2022-06-01 17:15:13 -05:00
parent c88bbf1ce4
commit 4621c78573
4 changed files with 83 additions and 30 deletions

View file

@ -1,4 +1,4 @@
import { checkForUpdate } from '@/plugins/version'
import { checkForUpdate, currentVersion } from '@/plugins/version'
import Vue from 'vue'
export const state = () => ({
@ -65,15 +65,44 @@ export const actions = {
})
},
checkForUpdate({ commit }) {
return checkForUpdate()
.then((res) => {
commit('setVersionData', res)
return res
})
.catch((error) => {
console.error('Update check failed', error)
return false
})
const VERSION_CHECK_BUFF = 1000 * 60 * 5 // 5 minutes
var lastVerCheck = localStorage.getItem('lastVerCheck') || 0
var savedVersionData = localStorage.getItem('versionData')
if (savedVersionData) {
try {
savedVersionData = JSON.parse(localStorage.getItem('versionData'))
} catch (error) {
console.error('Failed to parse version data', error)
savedVersionData = null
localStorage.removeItem('versionData')
}
}
var shouldCheckForUpdate = Date.now() - Number(lastVerCheck) > VERSION_CHECK_BUFF
if (!shouldCheckForUpdate && savedVersionData && savedVersionData.version !== currentVersion) {
// Version mismatch between saved data so check for update anyway
shouldCheckForUpdate = true
}
if (shouldCheckForUpdate) {
return checkForUpdate()
.then((res) => {
if (res) {
localStorage.setItem('lastVerCheck', Date.now())
localStorage.setItem('versionData', JSON.stringify(res))
commit('setVersionData', res)
}
return res && res.hasUpdate
})
.catch((error) => {
console.error('Update check failed', error)
return false
})
} else if (savedVersionData) {
commit('setVersionData', savedVersionData)
}
return null
}
}