const extractSlideNumberFromPath = (pathname) => (
/\d{1,3}(\.\d)*/.exec(pathname)?.at(0);
);
const determineTransitionType = ({ url: fromURL }, { url: toURL }) => {
const fromSlideNumber = extractSlideNumberFromPath(fromURL.pathname);
const toSlideNumber = extractSlideNumberFromPath(toURL.pathname);
if (fromSlideNumber > toSlideNumber) return 'backwards';
if (toSlideNumber < toSlideNumber) return 'forwards';
return 'unknown';
};
window.addEventListener('pagereveal', async (event) => {
if (!event.viewTransition) return;
const transitionType = determineTransitionType(
navigation.activation.from,
navigation.activation.entry
);
event.viewTransition.types.add(transitionType);
});