All files / utils viewTransition.js

64.28% Statements 9/14
75% Branches 9/12
100% Functions 2/2
75% Lines 9/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  3x           3x   3x         2x 2x       1x 1x           1x 1x              
function prefersReducedMotion() {
  return typeof window !== "undefined"
    && typeof window.matchMedia === "function"
    && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
}
 
export async function runViewTransition(update) {
  Iif (typeof update !== "function") return;
 
  if (
    typeof document === "undefined"
    || typeof document.startViewTransition !== "function"
    || prefersReducedMotion()
  ) {
    await update();
    return;
  }
 
  let transition;
  try {
    transition = document.startViewTransition(update);
  } catch {
    await update();
    return;
  }
 
  try {
    await transition.finished;
  } catch (error) {
    if (error?.name !== "AbortError") throw error;
  }
}
 
export { prefersReducedMotion };