Skip to content

Commit

Permalink
Finalize View Transition event names
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewp committed Aug 21, 2023
1 parent f003e73 commit 1fab2a1
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .changeset/proud-fans-type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': minor
---

Finalize View Transition event names
10 changes: 5 additions & 5 deletions packages/astro/components/ViewTransitions.astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const { fallback = 'animate' } = Astro.props as Props;
index: number;
scrollY: number;
};
type Events = 'astro:load' | 'astro:beforeload';
type Events = 'astro:pageload' | 'astro:afterswap';

const persistState = (state: State) => history.replaceState(state, '');

Expand All @@ -33,7 +33,7 @@ const { fallback = 'animate' } = Astro.props as Props;
const transitionEnabledOnThisPage = () =>
!!document.querySelector('[name="astro-view-transitions-enabled"]');
const triggerEvent = (name: Events) => document.dispatchEvent(new Event(name));
const onload = () => triggerEvent('astro:load');
const onPageLoad = () => triggerEvent('astro:pageload');
const PERSIST_ATTR = 'data-astro-transition-persist';

const throttle = (cb: (...args: any[]) => any, delay: number) => {
Expand Down Expand Up @@ -175,7 +175,7 @@ const { fallback = 'animate' } = Astro.props as Props;
persistState(state);
}

triggerEvent('astro:beforeload');
triggerEvent('astro:afterswap');
};

// Wait on links to finish, to prevent FOUC
Expand Down Expand Up @@ -245,7 +245,7 @@ const { fallback = 'animate' } = Astro.props as Props;
// document.documentElement.removeAttribute('data-astro-transition');
await runScripts();
markScriptsExec();
onload();
onPageLoad();
}
}

Expand Down Expand Up @@ -339,7 +339,7 @@ const { fallback = 'animate' } = Astro.props as Props;
{ passive: true, capture: true }
);
});
addEventListener('load', onload);
addEventListener('load', onPageLoad);
// There's not a good way to record scroll position before a back button.
// So the way we do it is by listening to scroll and just continuously recording it.
addEventListener(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
}

toggle();
document.addEventListener('astro:beforeload', () => {
document.addEventListener('astro:afterswap', () => {
toggle();
})
</script>
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/e2e/view-transitions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ test.describe('View Transitions', () => {
await expect(article, 'should have script content').toHaveText('works');
});

test('astro:beforeload event fires right before the swap', async ({ page, astro }) => {
test('astro:afterswap event fires right after the swap', async ({ page, astro }) => {
// Go to page 1
await page.goto(astro.resolveUrl('/one'));
let p = page.locator('#one');
Expand Down

0 comments on commit 1fab2a1

Please sign in to comment.