Skip to content

Commit 1eb2f75

Browse files
committed
chore(nuxt): prefer handleNodesCSR
1 parent 664f676 commit 1eb2f75

File tree

1 file changed

+4
-34
lines changed

1 file changed

+4
-34
lines changed
Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import { createSchemaOrg, handleNodesCSR, useVueUseHead } from '@vueuse/schema-org'
12
import { defineNuxtPlugin } from '#app'
2-
import { createSchemaOrg, getCurrentInstance, onBeforeUnmount, ref, useRoute, useRouter, useVueUseHead } from '#imports'
3+
import { useRoute } from '#imports'
34
import meta from '#build/schemaOrg.config.mjs'
45

56
export default defineNuxtPlugin((nuxtApp) => {
@@ -13,41 +14,10 @@ export default defineNuxtPlugin((nuxtApp) => {
1314
...meta.config,
1415
})
1516

16-
let _routeChanged = false
1717
nuxtApp._useSchemaOrg = (input) => {
1818
// if we should client side rendered, we may not need to
19-
const ids = ref(new Set())
20-
21-
const vm = getCurrentInstance()!
22-
let ctx = client.setupRouteContext(vm.uid)
23-
if (!client.serverRendered || _routeChanged) {
24-
// initial state will be correct from server, only need to watch for route changes to re-compute
25-
ids.value = client.addNodesAndResolveRelations(ctx, input)
26-
if (!client.serverRendered)
27-
client.generateSchema()
28-
}
29-
30-
const handleRouteChange = () => {
31-
ctx = client.setupRouteContext(vm.uid)
32-
33-
client.removeContext(ctx)
34-
ids.value = client.addNodesAndResolveRelations(ctx, input)
35-
client.generateSchema()
36-
37-
client.setupDOM()
38-
_routeChanged = true
39-
}
40-
41-
const unwatchRoute = useRouter().afterEach(handleRouteChange)
42-
// clean up nodes on unmount, client side only
43-
onBeforeUnmount(() => {
44-
client.removeContext(ctx)
45-
ids.value = new Set()
46-
client.generateSchema()
47-
unwatchRoute()
48-
})
49-
50-
return ids
19+
// @todo handle true SSR mode
20+
return handleNodesCSR(client, input)
5121
}
5222
nuxtApp.vueApp.use(client)
5323
})

0 commit comments

Comments
 (0)