Disable row and height animations when removing downloads

This commit is contained in:
Sucukdeluxe
2026-09-04 22:13:06 +02:00
parent 3436fcdd24
commit 36611647ab
9 changed files with 49 additions and 6 deletions
+1
View File
@@ -205,5 +205,6 @@ export async function startVisualHarness(
}
if (typeof window !== "undefined" && typeof document !== "undefined") {
if (new URLSearchParams(window.location.search).has("check-removal-motion")) void import("./removal-motion-probe");
startVisualHarness();
}
+18
View File
@@ -0,0 +1,18 @@
let checks = 0;
let movingChecks = 0;
const observer = new MutationObserver(() => {
const body = document.querySelector(".downloads-table-body");
if (!body) return;
checks++;
const moving = [...body.querySelectorAll<HTMLElement>(".downloads-virtual-row")].some((row) => {
const target = Number.parseFloat(row.style.getPropertyValue("--downloads-virtual-row-top"));
return Math.abs(new DOMMatrixReadOnly(getComputedStyle(row).transform).m42 - target) > 0.5;
});
const spacer = body.querySelector<HTMLElement>(".downloads-virtual-spacer");
const resizing = spacer && Math.abs(spacer.getBoundingClientRect().height - Number.parseFloat(spacer.style.getPropertyValue("--downloads-virtual-total-height"))) > 0.5;
if (moving || resizing) movingChecks++;
document.documentElement.dataset.removalMotion = JSON.stringify({ checks, movingChecks });
});
observer.observe(document.body, { subtree: true, childList: true, attributes: true, attributeFilter: ["style", "class"] });
export {};