@@ -66,15 +66,15 @@ function _random(max) {
66
66
function buildData ( count ) {
67
67
let data = new Array ( count ) ;
68
68
for ( let i = 0 ; i < count ; i ++ ) {
69
- const [ label , setLabel ] = signal (
69
+ const [ label , setLabel , updateLabel ] = signal (
70
70
`${ adjectives [ _random ( adjectives . length ) ] } ${
71
71
colours [ _random ( colours . length ) ]
72
72
} ${ nouns [ _random ( nouns . length ) ] } `,
73
73
) ;
74
74
data [ i ] = {
75
75
id : idCounter ++ ,
76
76
label,
77
- setLabel ,
77
+ updateLabel ,
78
78
} ;
79
79
}
80
80
return data ;
@@ -94,17 +94,17 @@ const Button = ({ id, text, fn }) => (
94
94
) ;
95
95
96
96
const App = ( ) => {
97
- const [ data , setData ] = signal ( [ ] ) ,
97
+ const [ data , setData , updateData ] = signal ( [ ] ) ,
98
98
[ selected , setSelected ] = signal ( null ) ,
99
99
run = ( ) => setData ( buildData ( 1000 ) ) ,
100
100
runLots = ( ) => {
101
101
setData ( buildData ( 10000 ) ) ;
102
102
} ,
103
- add = ( ) => setData ( ( d ) => [ ...d , ...buildData ( 1000 ) ] ) ,
103
+ add = ( ) => updateData ( ( d ) => [ ...d , ...buildData ( 1000 ) ] ) ,
104
104
update = ( ) =>
105
105
batch ( ( ) => {
106
106
for ( let i = 0 , d = data ( ) , len = d . length ; i < len ; i += 10 )
107
- d [ i ] . setLabel ( ( l ) => l + " !!!" ) ;
107
+ d [ i ] . updateLabel ( ( l ) => l + " !!!" ) ;
108
108
} ) ,
109
109
swapRows = ( ) => {
110
110
const d = data ( ) . slice ( ) ;
@@ -117,7 +117,7 @@ const App = () => {
117
117
} ,
118
118
clear = ( ) => setData ( [ ] ) ,
119
119
remove = ( id ) =>
120
- setData ( ( d ) => {
120
+ updateData ( ( d ) => {
121
121
const idx = d . findIndex ( ( datum ) => datum . id === id ) ;
122
122
d . splice ( idx , 1 ) ;
123
123
return [ ...d ] ;
0 commit comments