+ getMessage: async function () {
+ if (!this.item) {
+ return;
+ }
+ if (this.item.url) {
+ let fetchedMessage = await this.downloadMessage(this.item.url);
+ 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", "icon"]) {
+ if (prop in fetchedMessage && fetchedMessage[prop] !== null) {
+ message[prop] = fetchedMessage[prop];
+ }
+ }
+ this.message = { ...message }; // Force computed property to re-evaluate
+ }
+
+ if (this.item.refreshInterval) {
+ setTimeout(this.getMessage, this.item.refreshInterval);
+ }
+ },
+
+ downloadMessage: function (url) {