11import { afterNavigate , beforeNavigate } from '$app/navigation' ;
22import { getTransitionContext } from '$lib/utils/resource-context' ;
33import { onDestroy } from 'svelte' ;
4- import { get } from 'svelte/store' ;
5- import { page as pageStore } from '$app/stores' ;
64
75// Call this hook on this first page before you start the page transition.
86// For Shared Element Transitions, you need to call the transition.start()
@@ -16,7 +14,7 @@ export const prepareTransitionFromPage = () => {
1614 beforeNavigate ( ( { to } ) => {
1715 // Feature detection
1816 if ( ! document . createDocumentTransition ) {
19- return null ;
17+ return ;
2018 }
2119
2220 const transitionKey = to . pathname ;
@@ -28,6 +26,10 @@ export const prepareTransitionFromPage = () => {
2826 [ transitionKey ] : { transition, resolver }
2927 } ) ) ;
3028 } ) ;
29+ transitionStore . update ( ( current ) => ( {
30+ ...current ,
31+ [ transitionKey ] : null
32+ } ) ) ;
3133 } ) ;
3234 } ) ;
3335} ;
@@ -39,11 +41,10 @@ export const prepareTransitionFromPage = () => {
3941// shared elements.
4042export const prepareTransitionToPage = ( ) => {
4143 const transitionStore = getTransitionContext ( ) ;
42- const page = get ( pageStore ) ;
43- const transitionKey = page . url . pathname ;
4444 let unsub ;
4545
46- afterNavigate ( ( ) => {
46+ afterNavigate ( ( { to } ) => {
47+ const transitionKey = to . pathname ;
4748 unsub = transitionStore . subscribe ( ( transitions ) => {
4849 const transition = transitions [ transitionKey ] ;
4950 if ( ! transition ) {
@@ -56,9 +57,5 @@ export const prepareTransitionToPage = () => {
5657
5758 onDestroy ( ( ) => {
5859 unsub ?. ( ) ;
59- transitionStore . update ( ( current ) => ( {
60- ...current ,
61- [ transitionKey ] : null
62- } ) ) ;
6360 } ) ;
6461} ;
0 commit comments