Fix broken update message

This commit is contained in:
Eliot Berriot 2020-02-25 14:43:14 +01:00
parent ce2f48dd91
commit 7adca7af33
No known key found for this signature in database
GPG Key ID: 6B501DFD73514E14
2 changed files with 35 additions and 10 deletions

View File

@ -11,16 +11,7 @@
<template>
<sidebar></sidebar>
<set-instance-modal @update:show="showSetInstanceModal = $event" :show="showSetInstanceModal"></set-instance-modal>
<service-messages>
<message key="refreshApp" class="large info" v-if="serviceWorker.updateAvailable">
<p>
<translate translate-context="App/Message/Paragraph">A new version of the app is available.</translate>
</p>
<button class="ui basic button" @click.stop="updateApp">
<translate translate-context="App/Message/Button">Update</translate>
</button>
</message>
</service-messages>
<service-messages></service-messages>
<transition name="queue">
<queue @touch-progress="$refs.player.setCurrentTime($event)" v-if="$store.state.ui.queueFocused"></queue>
</transition>
@ -263,6 +254,7 @@ export default {
parts.push(this.$store.state.instance.settings.instance.name.value || 'Funkwhale')
document.title = parts.join(' ')
},
updateApp () {
this.$store.commit('ui/serviceWorker', {updateAvailable: false})
if (!this.serviceWorker.registration || !this.serviceWorker.registration.waiting) { return; }
@ -380,6 +372,35 @@ export default {
this.updateDocumentTitle()
},
},
'serviceWorker.updateAvailable': {
handler (v) {
if (!v) {
return
}
let self = this
this.$store.commit('ui/addMessage', {
content: this.$pgettext("App/Message/Paragraph", "A new version of the app is available."),
date: new Date(),
key: 'refreshApp',
displayTime: 0,
classActions: 'bottom attached',
actions: [
{
text: this.$pgettext("App/Message/Paragraph", "Update"),
class: "primary",
click: function () {
self.updateApp()
},
},
{
text: this.$pgettext("App/Message/Paragraph", "Later"),
class: "basic",
}
]
})
},
immediate: true,
}
}
}
</script>

View File

@ -190,6 +190,10 @@ export default {
key: String(new Date()),
...message,
}
let key = finalMessage.key
state.messages = state.messages.filter((m) => {
return m.key != key
})
state.messages.push(finalMessage)
if (state.messages.length > state.maxMessages) {
state.messages.shift()