Files
Pascal Martineau 9bb09b89d9
All checks were successful
Deployment / wordpress (push) Successful in 6s
Deployment / nuxt (push) Successful in 58s
feat: Replace eslint => oxlint + oxfmt
2026-02-01 22:06:16 -05:00

32 lines
916 B
Vue

<script setup lang="ts">
// Fetch node by URI and handle query errors
const { path: uri } = useRoute();
const { data, error } = await useAsyncGraphQLQuery("NodeByUri", { uri });
if (!data.value?.nodeByUri) {
console.error("NodeByUri query error:", error.value);
throw createError({
statusCode: 404,
message: `La page demandée est introuvable: ${uri}`,
fatal: true,
});
}
// Dynamically resolve component based on node type
const componentName = `Node${data.value.nodeByUri.__typename}`;
if (!useNuxtApp().vueApp.component(componentName)) {
throw createError({
statusCode: 404,
message: `La page demandée ne peut pas être affichée correctement: ${componentName}`,
fatal: true,
});
}
useNodeSeo(data.value.nodeByUri);
</script>
<template>
<div v-if="data?.nodeByUri" id="page-node-from-uri">
<Component :is="componentName" v-bind="data.nodeByUri" />
</div>
</template>