@@ -48,28 +48,33 @@ namespace BoardsConfigComponent {
48
48
}
49
49
}
50
50
51
- export abstract class Item < T > extends React . Component < {
51
+ class Item < T > extends React . Component < {
52
52
item : T ;
53
53
label : string ;
54
54
selected : boolean ;
55
55
onClick : ( item : T ) => void ;
56
56
missing ?: boolean ;
57
57
details ?: string ;
58
+ title ?: string | ( ( item : T ) => string ) ;
58
59
} > {
59
60
override render ( ) : React . ReactNode {
60
- const { selected, label, missing, details } = this . props ;
61
+ const { selected, label, missing, details, item } = this . props ;
61
62
const classNames = [ 'item' ] ;
62
63
if ( selected ) {
63
64
classNames . push ( 'selected' ) ;
64
65
}
65
66
if ( missing === true ) {
66
67
classNames . push ( 'missing' ) ;
67
68
}
69
+ let title = this . props . title ?? `${ label } ${ ! details ? '' : details } ` ;
70
+ if ( typeof title === 'function' ) {
71
+ title = title ( item ) ;
72
+ }
68
73
return (
69
74
< div
70
75
onClick = { this . onClick }
71
76
className = { classNames . join ( ' ' ) }
72
- title = { ` ${ label } ${ ! details ? '' : details } ` }
77
+ title = { title }
73
78
>
74
79
< div className = "label" > { label } </ div >
75
80
{ ! details ? '' : < div className = "details" > { details } </ div > }
@@ -234,16 +239,28 @@ export class BoardsConfigComponent extends React.Component<
234
239
distinctBoards . set ( key , board ) ;
235
240
}
236
241
}
242
+ const title = ( board : Board . Detailed ) : string => {
243
+ const { details, manuallyInstalled } = board ;
244
+ let label = board . name ;
245
+ if ( details ) {
246
+ label += details ;
247
+ }
248
+ if ( manuallyInstalled ) {
249
+ label += nls . localize ( 'arduino/board/inSketchbook' , ' (in Sketchbook)' ) ;
250
+ }
251
+ return label ;
252
+ } ;
237
253
238
254
const boardsList = Array . from ( distinctBoards . values ( ) ) . map ( ( board ) => (
239
- < Item < BoardWithPackage >
255
+ < Item < Board . Detailed >
240
256
key = { toKey ( board ) }
241
257
item = { board }
242
258
label = { board . name }
243
259
details = { board . details }
244
260
selected = { board . selected }
245
261
onClick = { this . selectBoard }
246
262
missing = { board . missing }
263
+ title = { title }
247
264
/>
248
265
) ) ;
249
266
0 commit comments