@@ -80,7 +80,21 @@ export const FirmwareUploaderComponent = ({
80
80
81
81
setInstallFeedback ( ( installStatus && 'ok' ) || 'fail' ) ;
82
82
setInstallingFw ( false ) ;
83
- } , [ firmwareUploader , selectedBoard , selectedFirmware ] ) ;
83
+ } , [ firmwareUploader , selectedBoard , selectedFirmware , availableFirmwares ] ) ;
84
+
85
+ const onBoardSelect = React . useCallback (
86
+ ( board : AvailableBoard ) => {
87
+ const newFqbn = ( board && board . fqbn ) || null ;
88
+ const prevFqbn = ( selectedBoard && selectedBoard . fqbn ) || null ;
89
+
90
+ if ( newFqbn !== prevFqbn ) {
91
+ setInstallFeedback ( null ) ;
92
+ setAvailableFirmwares ( [ ] ) ;
93
+ setSelectedBoard ( board ) ;
94
+ }
95
+ } ,
96
+ [ selectedBoard ]
97
+ ) ;
84
98
85
99
return (
86
100
< >
@@ -93,14 +107,7 @@ export const FirmwareUploaderComponent = ({
93
107
< SelectBoardComponent
94
108
availableBoards = { availableBoards }
95
109
updatableFqbns = { updatableFqbns }
96
- onBoardSelect = { ( board ) => {
97
- if ( board ) {
98
- // clear previously available firmwares for the board
99
- setInstallFeedback ( null ) ;
100
- setAvailableFirmwares ( [ ] ) ;
101
- setSelectedBoard ( board ) ;
102
- }
103
- } }
110
+ onBoardSelect = { onBoardSelect }
104
111
selectedBoard = { selectedBoard }
105
112
/>
106
113
</ div >
0 commit comments