From 7adca7af3356076f5a670b44eaba169bc8576949 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Tue, 25 Feb 2020 14:43:14 +0100 Subject: [PATCH] Fix broken update message --- front/src/App.vue | 41 +++++++++++++++++++++++++++++++---------- front/src/store/ui.js | 4 ++++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/front/src/App.vue b/front/src/App.vue index 6900ccaf8d..b6bec0edef 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -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> diff --git a/front/src/store/ui.js b/front/src/store/ui.js index f6346d6f85..3e481917ae 100644 --- a/front/src/store/ui.js +++ b/front/src/store/ui.js @@ -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() -- GitLab