Skip to content

Commit dd21031

Browse files
committed
time table - fixed rendered group cutoff
1 parent 96b01fb commit dd21031

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

library/src/components/timetable/TimeTableRows.tsx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,24 @@ export default function TimeTableRows<
367367
`Timetable - shorten rendered elements array from ${groupRowsRendered.length} to ${groupRows.size}`,
368368
)
369369
setGroupRowsRendered(groupRowsRendered.slice(0, groupRows.size))
370+
for (const changedG of changedGroupRows.current) {
371+
if (changedG > groupRows.size - 1) {
372+
changedGroupRows.current.delete(changedG)
373+
}
374+
}
375+
for (const renderedG of renderedGroups.current) {
376+
if (renderedG > groupRows.size - 1) {
377+
renderedGroups.current.delete(renderedG)
378+
}
379+
}
370380
refCollection.current.length = groupRows.size
381+
if (renderGroupRangeRef.current[0] > groupRows.size - 1) {
382+
renderGroupRangeRef.current = [0, groupRows.size - 1]
383+
setRenderGroupRange([0, groupRows.size - 1])
384+
}
385+
if (refCollection.current.length < groupRows.size) {
386+
refCollection.current.length = groupRows.size
387+
}
371388
}
372389

373390
// determine when new ones start
@@ -398,18 +415,11 @@ export default function TimeTableRows<
398415
changedGroupRows.current.delete(changedG)
399416
}
400417
}
401-
for (const renderedG of renderedGroups.current) {
402-
if (renderedG > keys.length - 1) {
403-
// delete obsolete change
404-
renderedGroups.current.delete(renderedG)
405-
}
406-
}
407418

408419
if (updateCounter) {
409420
console.log(
410421
`TimeTable - group rows require updated rendering ${updateCounter}, with first ${changedFound}`,
411422
renderGroupRangeRef.current,
412-
currentGroupRowsRef.current.size,
413423
groupRows.size,
414424
)
415425
} else {
@@ -557,6 +567,9 @@ export default function TimeTableRows<
557567
)
558568
++counter
559569
}
570+
if (groupRowsRendered.length > currentGroupRowsRef.current.size) {
571+
groupRowsRendered.length = currentGroupRowsRef.current.size
572+
}
560573
rateLimiterIntersection(handleIntersections)
561574
return groupRowsRendered
562575
})

0 commit comments

Comments
 (0)