fix: do not recreate haps mapping on update

This commit is contained in:
Felix Roos 2023-07-04 18:22:22 +02:00
parent 78770888a5
commit 3fc5bb31d0

View File

@ -98,18 +98,17 @@ const visibleMiniLocations = StateField.define({
// this is called every frame to show the locations that are currently active
// we can NOT create new marks because the context.locations haven't changed since eval time
// this is why we need to find a way to update the existing decorations, showing the ones that have an active range
const haps = new Map();
for (let hap of e.value.haps) {
for (let { start, end } of hap.context.locations) {
let id = `${start}:${end}`;
if (!haps.has(id) || haps.get(id).whole.begin.lt(hap.whole.begin)) {
haps.set(id, hap);
if (!visible.haps.has(id) || visible.haps.get(id).whole.begin.lt(hap.whole.begin)) {
visible.haps.set(id, hap);
}
}
}
visible = { atTime: e.value.atTime, haps };
visible = { atTime: e.value.atTime, haps: visible.haps };
}
}