Skip to content

Commit 866a531

Browse files
committed
fix(nuxt): defer registering inp handler until nuxt is mounted
1 parent e7fbc9f commit 866a531

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed
Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import { defineNuxtPlugin } from '../nuxt'
2-
import { useRouter } from '../composables'
2+
import { onNuxtReady } from '../composables/ready'
3+
import { useRouter } from '../composables/router'
34

45
export default defineNuxtPlugin(() => {
5-
useRouter().beforeResolve(async () => {
6-
/**
7-
* This gives an opportunity for the browser to repaint, acknowledging user interaction.
8-
* It can reduce INP when navigating on prerendered routes.
9-
*
10-
* @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037
11-
* @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights
12-
*/
13-
await new Promise((resolve) => {
14-
// Ensure we always resolve, even if the animation frame never fires
15-
setTimeout(resolve, 100)
16-
requestAnimationFrame(() => { setTimeout(resolve, 0) })
6+
const router = useRouter()
7+
onNuxtReady(() => {
8+
router.beforeResolve(async () => {
9+
/**
10+
* This gives an opportunity for the browser to repaint, acknowledging user interaction.
11+
* It can reduce INP when navigating on prerendered routes.
12+
*
13+
* @see https://github.com/nuxt/nuxt/issues/26271#issuecomment-2178582037
14+
* @see https://vercel.com/blog/demystifying-inp-new-tools-and-actionable-insights
15+
*/
16+
await new Promise((resolve) => {
17+
// Ensure we always resolve, even if the animation frame never fires
18+
setTimeout(resolve, 100)
19+
requestAnimationFrame(() => { setTimeout(resolve, 0) })
20+
})
1721
})
1822
})
1923
})

0 commit comments

Comments
 (0)