@@ -198,7 +198,12 @@ export default class SwupPreloadPlugin extends Plugin {
198
198
const el = event . delegateTarget ;
199
199
if ( ! isAnchorElement ( el ) ) return ;
200
200
201
- this . swup . hooks . callSync ( 'link:hover' , undefined , { el, event } ) ;
201
+ // Create temporary visit object for link:hover hook
202
+ const { url : to , hash } = Location . fromElement ( el ) ;
203
+ // @ts -expect-error: createVisit is currently private, need to make this semi-public somehow
204
+ const visit = this . swup . createVisit ( { to, hash, el, event } ) ;
205
+
206
+ this . swup . hooks . callSync ( 'link:hover' , visit , { el, event } ) ;
202
207
this . preload ( el , { priority : true } ) ;
203
208
} ;
204
209
@@ -404,7 +409,12 @@ export default class SwupPreloadPlugin extends Plugin {
404
409
*/
405
410
protected async performPreload ( href : string ) : Promise < PageData > {
406
411
const { url } = Location . fromUrl ( href ) ;
407
- const page = await this . swup . hooks . call ( 'page:preload' , undefined , { url } , async ( visit , args ) => {
412
+
413
+ // Create temporary visit object for page:preload hook
414
+ // @ts -expect-error: createVisit is currently private, need to make this semi-public somehow
415
+ const visit = this . swup . createVisit ( { to : url } ) ;
416
+
417
+ const page = await this . swup . hooks . call ( 'page:preload' , visit , { url } , async ( visit , args ) => {
408
418
args . page = await this . swup . fetchPage ( href ) ;
409
419
return args . page ;
410
420
} ) ;
0 commit comments