diff --git a/hassio/src/dashboard/hassio-update.ts b/hassio/src/dashboard/hassio-update.ts
index 2fee6b61dc..d23fba6c97 100644
--- a/hassio/src/dashboard/hassio-update.ts
+++ b/hassio/src/dashboard/hassio-update.ts
@@ -21,6 +21,11 @@ import {
import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style";
+import {
+ showConfirmationDialog,
+ showAlertDialog,
+} from "../../../src/dialogs/generic/show-dialog-box";
+import { HassioResponse } from "../../../src/data/hassio/common";
@customElement("hassio-update")
export class HassioUpdate extends LitElement {
@@ -126,30 +131,38 @@ export class HassioUpdate extends LitElement {
Release notes
-
- Update
-
+
`;
}
- private _apiCalled(ev): void {
- if (ev.detail.success) {
- this._error = "";
+ private async _confirmUpdate(ev): Promise {
+ const item = ev.target;
+ const confirmed = await showConfirmationDialog(this, {
+ title: `Update ${item.name}`,
+ text: `Are you sure you want to upgrade ${item.name} to version ${item.version}?`,
+ confirmText: "update",
+ dismissText: "cancel",
+ });
+
+ if (!confirmed) {
return;
}
-
- const response = ev.detail.response;
-
- if (typeof response.body === "object") {
- this._error = response.body.message || "Unknown error";
- } else {
- this._error = response.body;
+ try {
+ await this.hass.callApi>("POST", item.apiPath);
+ } catch (err) {
+ showAlertDialog(this, {
+ title: "Update failed",
+ text:
+ typeof err === "object" ? err.body?.message || "Unkown error" : err,
+ });
}
}