Skip to content

Commit 46313b8

Browse files
asuzuki-jumptradingjherrera-jump
authored andcommitted
fix: delete shred slots when there are too many
1 parent 7d55e48 commit 46313b8

File tree

1 file changed

+35
-21
lines changed
  • src/features/Overview/ShredsProgression

1 file changed

+35
-21
lines changed

src/features/Overview/ShredsProgression/atoms.ts

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -118,36 +118,50 @@ export function createLiveShredsAtoms() {
118118

119119
if (!prev || !slotRange) return;
120120

121-
const nowDelta = new Date().getTime() - prev.referenceTs;
122-
123-
let shouldDeleteSlot = false;
124-
for (
125-
let slotNumber = slotRange.max;
126-
slotNumber >= slotRange.min;
127-
slotNumber--
128-
) {
129-
const slot = prev.slots[slotNumber];
130-
if (!slot) continue;
131-
132-
if (
133-
!shouldDeleteSlot &&
134-
slot.completionTsDelta != null &&
135-
nowDelta - slot.completionTsDelta > xRangeMs + delayMs
121+
if (slotRange.max - slotRange.min > 50) {
122+
// only keep 50 slots
123+
for (
124+
let slotNumber = slotRange.min;
125+
slotNumber <= slotRange.max - 50;
126+
slotNumber++
136127
) {
137-
// once we find a slot that is complete and far enough in the past, delete all slot numbers less it
138-
shouldDeleteSlot = true;
139-
}
128+
const slot = prev.slots[slotNumber];
129+
if (!slot) continue;
140130

141-
if (shouldDeleteSlot) {
142131
delete prev.slots[slotNumber];
143132
}
133+
} else {
134+
// delete slots outside visible range
135+
const nowDelta = new Date().getTime() - prev.referenceTs;
136+
137+
let shouldDeleteSlot = false;
138+
for (
139+
let slotNumber = slotRange.max;
140+
slotNumber >= slotRange.min;
141+
slotNumber--
142+
) {
143+
const slot = prev.slots[slotNumber];
144+
if (!slot) continue;
145+
146+
if (
147+
!shouldDeleteSlot &&
148+
slot.completionTsDelta != null &&
149+
nowDelta - slot.completionTsDelta > xRangeMs + delayMs
150+
) {
151+
// once we find a slot that is complete and far enough in the past, delete all slot numbers less it
152+
shouldDeleteSlot = true;
153+
}
154+
155+
if (shouldDeleteSlot) {
156+
delete prev.slots[slotNumber];
157+
}
158+
}
144159
}
145160

161+
// update range to reflect remaining slots
146162
const remainingSlotNumbers = Object.keys(prev.slots).map(
147163
(slotNumber) => parseInt(slotNumber),
148164
);
149-
150-
// update range to reflect remaining slots
151165
set(_slotRangeAtom, (prevRange) => {
152166
if (!prevRange || !remainingSlotNumbers.length) {
153167
return;

0 commit comments

Comments
 (0)