From 5e80a2b4653f6a0b9f15a29b0e52fe77683ef6d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 3 Feb 2022 09:56:38 +0100 Subject: [PATCH] Make sure we load data in update card (#11516) --- .../update-available/update-available-card.ts | 65 +++++++++++++++++-- src/data/supervisor/supervisor.ts | 2 +- 2 files changed, 59 insertions(+), 8 deletions(-) diff --git a/hassio/src/update-available/update-available-card.ts b/hassio/src/update-available/update-available-card.ts index df35fcd40c..5012d61567 100644 --- a/hassio/src/update-available/update-available-card.ts +++ b/hassio/src/update-available/update-available-card.ts @@ -33,8 +33,12 @@ import { extractApiErrorMessage, ignoreSupervisorError, } from "../../../src/data/hassio/common"; -import { updateOS } from "../../../src/data/hassio/host"; -import { updateSupervisor } from "../../../src/data/hassio/supervisor"; +import { fetchHassioHassOsInfo, updateOS } from "../../../src/data/hassio/host"; +import { + fetchHassioHomeAssistantInfo, + fetchHassioSupervisorInfo, + updateSupervisor, +} from "../../../src/data/hassio/supervisor"; import { updateCore } from "../../../src/data/supervisor/core"; import { StoreAddon } from "../../../src/data/supervisor/store"; import { Supervisor } from "../../../src/data/supervisor/supervisor"; @@ -212,11 +216,22 @@ class UpdateAvailableCard extends LitElement { : "addon"; this._updateType = updateType as updateType; - if (updateType === "addon") { - if (!this.addonSlug) { - this.addonSlug = pathPart; - } - this._loadAddonData(); + switch (updateType) { + case "addon": + if (!this.addonSlug) { + this.addonSlug = pathPart; + } + this._loadAddonData(); + break; + case "core": + this._loadCoreData(); + break; + case "supervisor": + this._loadSupervisorData(); + break; + case "os": + this._loadOsData(); + break; } } @@ -308,6 +323,42 @@ class UpdateAvailableCard extends LitElement { } } + private async _loadSupervisorData() { + try { + const supervisor = await fetchHassioSupervisorInfo(this.hass); + fireEvent(this, "supervisor-update", { supervisor }); + } catch (err) { + showAlertDialog(this, { + title: this._updateType, + text: extractApiErrorMessage(err), + }); + } + } + + private async _loadCoreData() { + try { + const core = await fetchHassioHomeAssistantInfo(this.hass); + fireEvent(this, "supervisor-update", { core }); + } catch (err) { + showAlertDialog(this, { + title: this._updateType, + text: extractApiErrorMessage(err), + }); + } + } + + private async _loadOsData() { + try { + const os = await fetchHassioHassOsInfo(this.hass); + fireEvent(this, "supervisor-update", { os }); + } catch (err) { + showAlertDialog(this, { + title: this._updateType, + text: extractApiErrorMessage(err), + }); + } + } + private async _update() { this._error = undefined; this._updating = true; diff --git a/src/data/supervisor/supervisor.ts b/src/data/supervisor/supervisor.ts index 1a38c4cbe2..965d51506b 100644 --- a/src/data/supervisor/supervisor.ts +++ b/src/data/supervisor/supervisor.ts @@ -82,7 +82,7 @@ async function processEvent( event: SupervisorEvent, key: string ) { - if (event.event !== "supervisor-update" || event.update_key !== key) { + if (event.event !== "supervisor_update" || event.update_key !== key) { return; }