Fix null error releated to refreshInterval + cleanup. Fix #210

pull/214/head
Bastien Wirtz 2021-04-21 22:09:01 -07:00
parent aadd8b49cc
commit 7596bc527f
1 changed files with 14 additions and 4 deletions

View File

@ -42,19 +42,29 @@ export default {
}, },
methods: { methods: {
getMessage: async function () { 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); let fetchedMessage = await this.downloadMessage(this.item.url);
if (this.item.mapping) console.log("done");
if (this.item.mapping) {
fetchedMessage = this.mapRemoteMessage(fetchedMessage); fetchedMessage = this.mapRemoteMessage(fetchedMessage);
}
// keep the original config value if no value is provided by the endpoint // keep the original config value if no value is provided by the endpoint
const message = this.message;
for (const prop of ["title", "style", "content"]) { for (const prop of ["title", "style", "content"]) {
if (prop in fetchedMessage && fetchedMessage[prop] !== null) { 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); setTimeout(this.getMessage, this.item.refreshInterval);
}
}, },
downloadMessage: function (url) { downloadMessage: function (url) {