@@ -128,8 +128,8 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
128
128
} = options ;
129
129
130
130
// We only want to compute this on initial render.
131
- let [ tree , setItems ] = useState < { items : TreeNode < T > [ ] , mappy : Map < Key , TreeNode < T > > } > ( ( ) => buildTree ( initialItems ) ) ;
132
- let { items, mappy : map } = tree ;
131
+ let [ tree , setItems ] = useState < { items : TreeNode < T > [ ] , nodeMap : Map < Key , TreeNode < T > > } > ( ( ) => buildTree ( initialItems ) ) ;
132
+ let { items, nodeMap } = tree ;
133
133
134
134
let [ selectedKeys , setSelectedKeys ] = useState ( new Set < Key > ( initialSelectedKeys || [ ] ) ) ;
135
135
@@ -151,14 +151,14 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
151
151
map . set ( node . key , node ) ;
152
152
return node ;
153
153
} ) ,
154
- mappy : map
154
+ nodeMap : map
155
155
} ;
156
156
}
157
157
158
158
function updateTree ( items : TreeNode < T > [ ] , key : Key , update : ( node : TreeNode < T > ) => TreeNode < T > , originalMap : Map < Key , TreeNode < T > > ) {
159
159
let node = originalMap . get ( key ) ;
160
160
if ( ! node ) {
161
- return { items, mappy : originalMap } ;
161
+ return { items, nodeMap : originalMap } ;
162
162
}
163
163
let map = new Map < Key , TreeNode < T > > ( originalMap ) ;
164
164
@@ -205,25 +205,24 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
205
205
206
206
return {
207
207
items : items . map ( item => {
208
- // if (item.key === node.key) {
209
208
if ( item === node ) {
210
209
return newNode ;
211
210
}
212
211
213
212
return item ;
214
213
} ) ,
215
- mappy : map
214
+ nodeMap : map
216
215
} ;
217
216
}
218
217
219
- function addNode ( node : TreeNode < T > , map ) {
218
+ function addNode ( node : TreeNode < T > , map : Map < Key , TreeNode < T > > ) {
220
219
map . set ( node . key , node ) ;
221
220
for ( let child of node . children ) {
222
221
addNode ( child , map ) ;
223
222
}
224
223
}
225
224
226
- function deleteNode ( node : TreeNode < T > , map ) {
225
+ function deleteNode ( node : TreeNode < T > , map : Map < Key , TreeNode < T > > ) {
227
226
map . delete ( node . key ) ;
228
227
for ( let child of node . children ) {
229
228
deleteNode ( child , map ) ;
@@ -235,21 +234,21 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
235
234
selectedKeys,
236
235
setSelectedKeys,
237
236
getItem ( key : Key ) {
238
- return map . get ( key ) ;
237
+ return nodeMap . get ( key ) ;
239
238
} ,
240
239
insert ( parentKey : Key | null , index : number , ...values : T [ ] ) {
241
- setItems ( ( { items, mappy : originalMap } ) => {
242
- let { items : nodes , mappy : newMap } = buildTree ( values , parentKey , originalMap ) ;
240
+ setItems ( ( { items, nodeMap : originalMap } ) => {
241
+ let { items : newNodes , nodeMap : newMap } = buildTree ( values , parentKey , originalMap ) ;
243
242
244
243
// If parentKey is null, insert into the root.
245
244
if ( parentKey == null ) {
246
245
return {
247
246
items : [
248
247
...items . slice ( 0 , index ) ,
249
- ...nodes ,
248
+ ...newNodes ,
250
249
...items . slice ( index )
251
250
] ,
252
- mappy : newMap
251
+ nodeMap : newMap
253
252
} ;
254
253
}
255
254
@@ -260,30 +259,30 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
260
259
value : parentNode . value ,
261
260
children : [
262
261
...parentNode . children . slice ( 0 , index ) ,
263
- ...nodes ,
262
+ ...newNodes ,
264
263
...parentNode . children . slice ( index )
265
264
]
266
265
} ) , newMap ) ;
267
266
} ) ;
268
267
} ,
269
268
insertBefore ( key : Key , ...values : T [ ] ) : void {
270
- let node = map . get ( key ) ;
269
+ let node = nodeMap . get ( key ) ;
271
270
if ( ! node ) {
272
271
return ;
273
272
}
274
273
275
- let parentNode = map . get ( node . parentKey ) ;
274
+ let parentNode = nodeMap . get ( node . parentKey ) ;
276
275
let nodes = parentNode ? parentNode . children : items ;
277
276
let index = nodes . indexOf ( node ) ;
278
277
this . insert ( parentNode ?. key , index , ...values ) ;
279
278
} ,
280
279
insertAfter ( key : Key , ...values : T [ ] ) : void {
281
- let node = map . get ( key ) ;
280
+ let node = nodeMap . get ( key ) ;
282
281
if ( ! node ) {
283
282
return ;
284
283
}
285
284
286
- let parentNode = map . get ( node . parentKey ) ;
285
+ let parentNode = nodeMap . get ( node . parentKey ) ;
287
286
let nodes = parentNode ? parentNode . children : items ;
288
287
let index = nodes . indexOf ( node ) ;
289
288
this . insert ( parentNode ?. key , index + 1 , ...values ) ;
@@ -295,7 +294,7 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
295
294
if ( parentKey == null ) {
296
295
this . insert ( null , items . length , ...values ) ;
297
296
} else {
298
- let parentNode = map . get ( parentKey ) ;
297
+ let parentNode = nodeMap . get ( parentKey ) ;
299
298
if ( ! parentNode ) {
300
299
return ;
301
300
}
@@ -305,19 +304,19 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
305
304
} ,
306
305
remove ( ...keys : Key [ ] ) {
307
306
let newItems = items ;
308
- let prevMap = map ;
309
- let tree ;
307
+ let prevMap = nodeMap ;
308
+ let newTree ;
310
309
for ( let key of keys ) {
311
- tree = updateTree ( newItems , key , ( ) => null , prevMap ) ;
312
- prevMap = tree . mappy ;
313
- newItems = tree . items ;
310
+ newTree = updateTree ( newItems , key , ( ) => null , prevMap ) ;
311
+ prevMap = newTree . nodeMap ;
312
+ newItems = newTree . items ;
314
313
}
315
314
316
- setItems ( tree ) ;
315
+ setItems ( newTree ) ;
317
316
318
317
let selection = new Set ( selectedKeys ) ;
319
318
for ( let key of selectedKeys ) {
320
- if ( ! tree . mappy . has ( key ) ) {
319
+ if ( ! newTree . nodeMap . has ( key ) ) {
321
320
selection . delete ( key ) ;
322
321
}
323
322
}
@@ -328,14 +327,14 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
328
327
this . remove ( ...selectedKeys ) ;
329
328
} ,
330
329
move ( key : Key , toParentKey : Key | null , index : number ) {
331
- setItems ( ( { items, mappy : originalMap } ) => {
330
+ setItems ( ( { items, nodeMap : originalMap } ) => {
332
331
let node = originalMap . get ( key ) ;
333
332
if ( ! node ) {
334
- return { items, mappy : originalMap } ;
333
+ return { items, nodeMap : originalMap } ;
335
334
}
336
335
337
- let tree = updateTree ( items , key , ( ) => null , originalMap ) ;
338
- let { items : newItems , mappy : map } = tree ;
336
+ let { items : newItems , nodeMap : newMap } = updateTree ( items , key , ( ) => null , originalMap ) ;
337
+
339
338
340
339
const movedNode = {
341
340
...node ,
@@ -348,7 +347,7 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
348
347
...newItems . slice ( 0 , index ) ,
349
348
movedNode ,
350
349
...newItems . slice ( index )
351
- ] , mappy : map } ;
350
+ ] , nodeMap : newMap } ;
352
351
}
353
352
354
353
// Otherwise, update the parent node and its ancestors.
@@ -361,11 +360,11 @@ export function useTreeData<T extends object>(options: TreeOptions<T>): TreeData
361
360
movedNode ,
362
361
...parentNode . children . slice ( index )
363
362
]
364
- } ) , map ) ;
363
+ } ) , newMap ) ;
365
364
} ) ;
366
365
} ,
367
366
update ( oldKey : Key , newValue : T ) {
368
- setItems ( ( { items, mappy : originalMap } ) => updateTree ( items , oldKey , oldNode => {
367
+ setItems ( ( { items, nodeMap : originalMap } ) => updateTree ( items , oldKey , oldNode => {
369
368
let node : TreeNode < T > = {
370
369
key : oldNode . key ,
371
370
parentKey : oldNode . parentKey ,
0 commit comments