Skip to content

Commit 7a79766

Browse files
committed
Fix flash state
1 parent b4bd4f3 commit 7a79766

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/js/tabs/firmware_flasher.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -804,12 +804,29 @@ firmware_flasher.initialize = async function (callback) {
804804
// Maybe the board is in DFU mode, but it does not have permissions. Ask for them.
805805
console.log(`${self.logHead} No valid port detected, asking for permissions`);
806806
DFU.requestPermission().then((device) => {
807-
DFU.connect(device.path, firmware, options);
807+
if (device?.path) {
808+
DFU.connect(device.path, firmware, options);
809+
} else {
810+
// User cancelled or no device found: reset flashing state and re-enable button
811+
self.isFlashing = false;
812+
self.enableFlashButton(true);
813+
self.enableDfuExitButton(PortHandler.dfuAvailable);
814+
self.enableLoadRemoteFileButton(true);
815+
self.enableLoadFileButton(true);
816+
self.flashingMessage(i18n.getMessage("firmwareFlasherFirmwareNotLoaded"), self.FLASH_MESSAGE_TYPES.NEUTRAL);
817+
GUI.interval_resume("sponsor");
818+
}
819+
}).catch(() => {
820+
// Error or user cancelled: reset flashing state and re-enable button
821+
self.isFlashing = false;
822+
self.enableFlashButton(true);
823+
self.enableDfuExitButton(PortHandler.dfuAvailable);
824+
self.enableLoadRemoteFileButton(true);
825+
self.enableLoadFileButton(true);
826+
self.flashingMessage(i18n.getMessage("firmwareFlasherFirmwareNotLoaded"), self.FLASH_MESSAGE_TYPES.NEUTRAL);
827+
GUI.interval_resume("sponsor");
808828
});
809829
}
810-
811-
self.isFlashing = false;
812-
GUI.interval_resume("sponsor");
813830
}
814831

815832
let result = getConfig("erase_chip");

0 commit comments

Comments
 (0)