@@ -67,14 +67,11 @@ function _random(max) {
67
67
function buildData ( count ) {
68
68
const data = new Array ( count )
69
69
for ( let i = 0 ; i < count ; i ++ ) {
70
- const [ label , setLabel , updateLabel ] = signal (
70
+ const label = signal (
71
71
`${ adjectives [ _random ( adjectives . length ) ] } ${ colours [ _random ( colours . length ) ] } ${ nouns [ _random ( nouns . length ) ] } ` ,
72
72
)
73
- data [ i ] = {
74
- id : idCounter ++ ,
75
- label,
76
- updateLabel,
77
- }
73
+ label . id = idCounter ++
74
+ data [ i ] = label
78
75
}
79
76
return data
80
77
}
@@ -86,14 +83,17 @@ const Button = ({ id, text, fn }) => (
86
83
id = { id }
87
84
class = "btn btn-primary btn-block"
88
85
type = "button"
89
- on :click = { fn }
86
+ on :click = { ( e ) => {
87
+ e . stopPropagation ( )
88
+ fn ( )
89
+ }
90
90
/ >
91
91
</div >
92
92
)
93
93
94
94
const App = ( ) => {
95
95
const [ data , setData , updateData ] = signal ( [ ] ) ,
96
- [ selected , setSelected ] = signal ( null ) ,
96
+ [ selected , setSelected ] = signal ( ) ,
97
97
run = ( ) => {
98
98
setData ( buildData ( 1000 ) )
99
99
} ,
@@ -107,7 +107,7 @@ const App = () => {
107
107
const d = data ( )
108
108
const len = d . length
109
109
for ( let i = 0 ; i < len ; i += 10 )
110
- d [ i ] . updateLabel ( l => l + ' !!!' )
110
+ d [ i ] . update ( l => l + ' !!!' )
111
111
} ,
112
112
swapRows = ( ) => {
113
113
const d = [ ...data ( ) ]
@@ -176,6 +176,8 @@ const App = () => {
176
176
< table
177
177
class = "table table-hover table-striped test-data"
178
178
on :click = { e => {
179
+ e . stopPropagation ( )
180
+
179
181
const element = e . target
180
182
const { selectRow, removeRow } = element
181
183
@@ -189,7 +191,7 @@ const App = () => {
189
191
< tbody >
190
192
< For each = { data } >
191
193
{ row => {
192
- const { id, label } = row
194
+ const { id, read } = row
193
195
194
196
return (
195
197
< tr class :danger = { isSelected ( id ) } >
@@ -199,7 +201,7 @@ const App = () => {
199
201
/>
200
202
< td class = "col-md-4" >
201
203
< a
202
- textContent = { label }
204
+ textContent = { read }
203
205
prop :selectRow = { id }
204
206
/>
205
207
</ td >
0 commit comments