diff --git a/demo/app.jsx b/demo/app.jsx index 5daa479d..7a906b7b 100644 --- a/demo/app.jsx +++ b/demo/app.jsx @@ -36,17 +36,6 @@ const scrollToBottom = (target) => { const daemon = new Daemon('https://builder.arduino.cc/v3/boards', chromeExtensionID); const firmwareUpdater = new FirmwareUpdater(daemon); -const handleUpload = () => { - const target = { - board: 'arduino:samd:mkr1000', - port: '/dev/ttyACM0', - network: false - }; - - // Upload a compiled sketch. - daemon.uploadSerial(target, 'serial_mirror', { bin: HEX }); -}; - const handleBootloaderMode = (e, port) => { e.preventDefault(); daemon.setBootloaderMode(port); @@ -98,7 +87,8 @@ class App extends React.Component { downloadStatus: '', downloadError: '', serialInput: '', - supportedBoards: [] + supportedBoards: [], + uploadingPort: '' }; this.handleOpen = this.handleOpen.bind(this); this.handleClose = this.handleClose.bind(this); @@ -106,6 +96,7 @@ class App extends React.Component { this.handleChangeSerial = this.handleChangeSerial.bind(this); this.showError = this.showError.bind(this); this.clearError = this.clearError.bind(this); + this.handleUpload = this.handleUpload.bind(this); } componentDidMount() { @@ -191,6 +182,24 @@ class App extends React.Component { this.setState({ serialInput: '' }); } + handleUpload() { + const target = { + board: 'arduino:samd:mkr1000', + port: '/dev/ttyACM1', + network: false + }; + + this.setState({ uploadingPort: target.port }); + daemon.boardPortAfterUpload.subscribe(portStatus => { + if (portStatus.hasChanged) { + this.setState({ uploadingPort: portStatus.newPort }); + } + }); + + // Upload a compiled sketch. + daemon.uploadSerial(target, 'serial_mirror', { bin: HEX }); + } + render() { const listSerialDevices = this.state.serialDevices.map((device, i) =>