@@ -18,10 +18,10 @@ export let AppView = (app : App) =>
1818 < div className = "col-md-6" >
1919 < div className = "row" >
2020 < div className = "col-sm-6 smallpad" >
21- < button type = "button" className = "btn btn-primary btn-block" id = "run" onClick = { e => app . run ( ) } > Create 1,000 rows</ button >
21+ < button type = "button" className = "btn btn-primary btn-block" id = "run" onClick = { e => app . run ( ! USE_NON_KEYED_TBODY ) } > Create 1,000 rows</ button >
2222 </ div >
2323 < div className = "col-sm-6 smallpad" >
24- < button type = "button" className = "btn btn-primary btn-block" id = "runlots" onClick = { e => app . runLots ( ) } > Create 10,000 rows</ button >
24+ < button type = "button" className = "btn btn-primary btn-block" id = "runlots" onClick = { e => app . runLots ( ! USE_NON_KEYED_TBODY ) } > Create 10,000 rows</ button >
2525 </ div >
2626 < div className = "col-sm-6 smallpad" >
2727 < button type = "button" className = "btn btn-primary btn-block" id = "add" onClick = { e => app . add ( ) } > Append 1,000 rows</ button >
@@ -49,19 +49,24 @@ export let AppView = (app : App) =>
4949 while ( el . tagName !== 'TR' ) el = el . parentElement ! ;
5050 return + el . childNodes [ 0 ] . textContent ! ;
5151 } ,
52- TBodyKeyed = ( app : App ) =>
53- < tbody >
54- { app . store . data . mapSample ( row =>
55- < tr className = { row . id === app . store . selected ( ) ? 'danger' : '' } >
56- < td className = "col-md-1" innerText = { row . id } > </ td >
57- < td className = "col-md-4" >
58- < a innerText = { row . label ( ) } > </ a >
59- </ td >
60- < td className = "col-md-1" > < a > < span className = "glyphicon glyphicon-remove delete" > </ span > </ a > </ td >
61- < td className = "col-md-6" > </ td >
62- </ tr >
63- ) }
64- </ tbody > ,
52+ TBodyKeyed = ( app : App ) => {
53+ let trs = app . store . data . mapSample ( row =>
54+ < tr >
55+ < td className = "col-md-1" innerText = { row . id } > </ td >
56+ < td className = "col-md-4" >
57+ < a innerText = { row . label ( ) } > </ a >
58+ </ td >
59+ < td className = "col-md-1" > < a > < span className = "glyphicon glyphicon-remove delete" > </ span > </ a > </ td >
60+ < td className = "col-md-6" > </ td >
61+ </ tr > ) ;
62+
63+ S . on ( app . store . selected , ( ) => {
64+ let sel = app . store . selected ( ) , data = app . store . data ( ) ;
65+ trs ( ) . forEach ( ( tr , i ) => tr . className = data [ i ] . id === sel ? 'danger' : '' ) ;
66+ } ) ;
67+
68+ return < tbody > { trs } </ tbody > ;
69+ } ,
6570 TBodyNonKeyed = ( app : App ) => {
6671 var tbody = < tbody > </ tbody > ,
6772 trs = [ ] as RowTr [ ] ;
0 commit comments