generated from pascalmartineau/wp-skeleton
wip: preview
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
const body = await readBody(event);
|
||||
console.log(body);
|
||||
return `<div>TODO: Preview from Nuxt API endpoint</div>`;
|
||||
});
|
||||
21
wp-content/themes/ccat/server/api/preview.post.ts
Normal file
21
wp-content/themes/ccat/server/api/preview.post.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { renderToString } from "vue/server-renderer";
|
||||
import { createSSRApp, h } from "vue";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const { fieldGroupName, ...attrs } = await readBody(event);
|
||||
const componentName = fieldGroupName.replace(/^GroupAbstractBuilder(.*)Layout$/, "Section$1");
|
||||
try {
|
||||
const componentModule = await import(`../../app/components/sections/${componentName}.vue`);
|
||||
const app = createSSRApp({
|
||||
render() {
|
||||
return h(componentModule.default, attrs);
|
||||
},
|
||||
});
|
||||
const html = await renderToString(app);
|
||||
return html;
|
||||
}
|
||||
catch (error) {
|
||||
const message = error instanceof Error ? error.message : "Une erreur est survenue.";
|
||||
throw createError({ statusCode: 500, statusMessage: "Erreur interne", message });
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user