Only show zwave_js firmware action if no other updates in progress (#13002)

* Only show zwave_js firmware update action if no other updates in progress

* readability
This commit is contained in:
Raman Gupta 2022-06-23 20:19:20 -04:00 committed by GitHub
parent 535fe2686b
commit c03849d30b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 3 deletions

View File

@ -674,6 +674,15 @@ export const fetchZwaveNodeIsFirmwareUpdateInProgress = (
device_id,
});
export const fetchZwaveIsAnyFirmwareUpdateInProgress = (
hass: HomeAssistant,
entry_id: string
): Promise<boolean> =>
hass.callWS({
type: "zwave_js/get_any_firmware_update_progress",
entry_id,
});
export const fetchZwaveNodeFirmwareUpdateCapabilities = (
hass: HomeAssistant,
device_id: string

View File

@ -1,7 +1,9 @@
import { getConfigEntries } from "../../../../../../data/config_entries";
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
import {
fetchZwaveIsAnyFirmwareUpdateInProgress,
fetchZwaveNodeFirmwareUpdateCapabilities,
fetchZwaveNodeIsFirmwareUpdateInProgress,
fetchZwaveNodeStatus,
} from "../../../../../../data/zwave_js";
import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box";
@ -85,10 +87,20 @@ export const getZwaveDeviceActions = async (
return actions;
}
const firmwareUpdateCapabilities =
await fetchZwaveNodeFirmwareUpdateCapabilities(hass, device.id);
const [
firmwareUpdateCapabilities,
isAnyFirmwareUpdateInProgress,
isNodeFirmwareUpdateInProgress,
] = await Promise.all([
fetchZwaveNodeFirmwareUpdateCapabilities(hass, device.id),
fetchZwaveIsAnyFirmwareUpdateInProgress(hass, entryId),
fetchZwaveNodeIsFirmwareUpdateInProgress(hass, device.id),
]);
if (firmwareUpdateCapabilities.firmware_upgradable) {
if (
firmwareUpdateCapabilities.firmware_upgradable &&
(!isAnyFirmwareUpdateInProgress || isNodeFirmwareUpdateInProgress)
) {
actions.push({
label: hass.localize(
"ui.panel.config.zwave_js.device_info.update_firmware"