From 7596bc527f5b995bedd6a77ed71b6e1feba1364d Mon Sep 17 00:00:00 2001 From: Bastien Wirtz Date: Wed, 21 Apr 2021 22:09:01 -0700 Subject: [PATCH] Fix null error releated to refreshInterval + cleanup. Fix #210 --- src/components/Message.vue | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/Message.vue b/src/components/Message.vue index 7c6acdd..6cc649a 100644 --- a/src/components/Message.vue +++ b/src/components/Message.vue @@ -42,19 +42,29 @@ export default { }, methods: { getMessage: async function () { - if (this.item && this.item.url) { + if (!this.item) { + return; + } + if (this.item.url) { let fetchedMessage = await this.downloadMessage(this.item.url); - if (this.item.mapping) + console.log("done"); + if (this.item.mapping) { fetchedMessage = this.mapRemoteMessage(fetchedMessage); + } + // keep the original config value if no value is provided by the endpoint + const message = this.message; for (const prop of ["title", "style", "content"]) { if (prop in fetchedMessage && fetchedMessage[prop] !== null) { - this.message[prop] = fetchedMessage[prop]; + message[prop] = fetchedMessage[prop]; } } + this.message = { ...message }; // Force computed property to re-evaluate } - if (this.item.refreshInterval) + + if (this.item.refreshInterval) { setTimeout(this.getMessage, this.item.refreshInterval); + } }, downloadMessage: function (url) { -- 2.41.0