@@ -54,7 +54,8 @@ <h1>Sifrr</h1>
5454    for  ( let  i  =  0 ;  i  <  count ;  i ++ ) 
5555      data . push ( { 
5656        id : i  +  from , 
57-         label : adjectives [ _random ( adjectives . length ) ]  +  ' '  +  colours [ _random ( colours . length ) ]  +  ' '  +  nouns [ _random ( nouns . length ) ] 
57+         label : adjectives [ _random ( adjectives . length ) ]  +  ' '  +  colours [ _random ( colours . length ) ]  +  ' '  +  nouns [ _random ( nouns . length ) ] , 
58+         class : '' 
5859      } ) ; 
5960    from  =  from  +  count ; 
6061    return  data ; 
@@ -67,22 +68,24 @@ <h1>Sifrr</h1>
6768
6869  class  MainElement  extends  Sifrr . Dom . Element  { 
6970    onConnect ( )  { 
70-       const  self  =  this ; 
71+       const  me  =  this ; 
7172      Sifrr . Dom . Event . addListener ( 'click' ,  '.remove' ,  ( e ,  target )  =>  { 
7273        const  id  =  getParent ( target ) . state . id ; 
73-         const  data  =  self . state . data ; 
74-         for ( let  i  =  data . length  -  1 ;  i  >=  0 ;  i -- ) { 
75-           if  ( data [ i ] . id  ===  id )  { 
76-             data . splice ( i ,  1 ) ; 
77-           } 
78-         } 
79-         self . state  =  {  data : data  } ; 
74+         const  data  =  me . state . data ; 
75+         const  todel  =  data . findIndex ( d  =>  d . id  ===  id ) ; 
76+         data . splice ( todel ,  1 ) ; 
77+         me . state  =  {  data : data  } ; 
8078      } ) ; 
8179      Sifrr . Dom . Event . addListener ( 'click' ,  '.lbl' ,  ( e ,  target )  =>  { 
82-         const  el  =  getParent ( target ) ; 
83-         if  ( self . selected )  self . selected . className  =  '' ; 
84-         el . className  =  'danger' ; 
85-         self . selected  =  el ; 
80+         const  id  =  getParent ( target ) . state . id ; 
81+         const  data  =  me . state . data ,  l  =  me . state . data . length ; 
82+         let  k  =  0 ; 
83+         for  ( let  i  =  0 ;  i  <  l ;  i ++ )  { 
84+           if  ( me . state . data [ i ] . class )  me . state . data [ i ] . class  =  '' ,  k ++ ; 
85+           if  ( me . state . data [ i ] . id  ===  id )  me . state . data [ i ] . class  =  'danger' ,  k ++ ; 
86+           if  ( k  >  1 )  break ; 
87+         } 
88+         me . state  =  {  data : data  } ; 
8689      } ) ; 
8790    } 
8891
@@ -139,7 +142,7 @@ <h1>Sifrr</h1>
139142    if  ( window . useSifrrInArray )  { 
140143      MainElement . addArrayToDom ( 'data' ,  '<tr is="sifrr-row"></tr>' ) ; 
141144    }  else  { 
142-       MainElement . addArrayToDom ( 'data' ,  "<tr><td class='col-md-1 id'>${id}</td><td class='col-md-4'><a class='lbl'>${label}</a></td><td class='col-md-1'><a class='remove'><span class='glyphicon glyphicon-remove' aria-hidden='true'></span></a></td><td class='col-md-6'></td></tr>" ) ; 
145+       MainElement . addArrayToDom ( 'data' ,  "<tr class=${class} ><td class='col-md-1 id'>${id}</td><td class='col-md-4'><a class='lbl'>${label}</a></td><td class='col-md-1'><a class='remove'><span class='glyphicon glyphicon-remove' aria-hidden='true'></span></a></td><td class='col-md-6'></td></tr>" ) ; 
143146    } 
144147    Sifrr . Dom . register ( MainElement ) ; 
145148  } ) ; 
0 commit comments