abort POST request

This commit is contained in:
Petar Petrov 2025-07-14 10:33:15 +03:00
parent 651d2f597c
commit 6a9e6412a7
2 changed files with 9 additions and 3 deletions

View File

@ -923,7 +923,8 @@ export const uploadFirmwareAndBeginUpdate = async (
hass: HomeAssistant, hass: HomeAssistant,
device_id: string, device_id: string,
file: File, file: File,
target?: number target?: number,
signal?: AbortSignal
) => { ) => {
const fd = new FormData(); const fd = new FormData();
fd.append("file", file); fd.append("file", file);
@ -935,6 +936,7 @@ export const uploadFirmwareAndBeginUpdate = async (
{ {
method: "POST", method: "POST",
body: fd, body: fd,
signal,
} }
); );

View File

@ -198,7 +198,8 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
)} )}
</p> </p>
${beginFirmwareUpdateHTML} ${beginFirmwareUpdateHTML}
${this._uploading && this._nodeStatus.status === NodeStatus.Asleep ${this._uploading &&
this._nodeStatus.status === NodeStatus.Asleep
? html`<p class="wakeup"> ? html`<p class="wakeup">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.zwave_js.update_firmware.device_asleep" "ui.panel.config.zwave_js.update_firmware.device_asleep"
@ -332,15 +333,18 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
try { try {
this._subscribeNodeFirmwareUpdate(); this._subscribeNodeFirmwareUpdate();
await new Promise<void>((resolve, reject) => { await new Promise<void>((resolve, reject) => {
const abortController = new AbortController();
this._cancelUpload = () => { this._cancelUpload = () => {
this._cancelUpload = undefined; this._cancelUpload = undefined;
abortController.abort();
resolve(); resolve();
}; };
uploadFirmwareAndBeginUpdate( uploadFirmwareAndBeginUpdate(
this.hass, this.hass,
this.device!.id, this.device!.id,
this._firmwareFile!, this._firmwareFile!,
this._firmwareTarget this._firmwareTarget,
abortController.signal
) )
.then(() => this._cancelUpload?.()) .then(() => this._cancelUpload?.())
.catch(reject); .catch(reject);