This commit is contained in:
@@ -1,15 +1,37 @@
|
||||
<script setup lang="ts">
|
||||
import TableHeader from '~/components/parts/TableHeader.vue';
|
||||
import FixedLayout from '~/components/layouts/FixedLayout.vue';
|
||||
import { useSeo } from '~/composables/seo';
|
||||
|
||||
const { get, post } = api();
|
||||
const { locale } = useI18n();
|
||||
|
||||
useSeo({
|
||||
title: 'Contact',
|
||||
description: 'Get in touch with Aran Roig. Reach out for collaborations, freelance projects, or just to say hello.',
|
||||
canonicalUrl: '/contact'
|
||||
});
|
||||
|
||||
// WebPage structured data for contact page
|
||||
useHead({
|
||||
script: [{
|
||||
type: 'application/ld+json',
|
||||
innerHTML: JSON.stringify({
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'WebPage',
|
||||
name: 'Contact Aran Roig',
|
||||
description: 'Get in touch with Aran Roig for collaborations, freelance projects, or inquiries.',
|
||||
url: 'https://aranroig.com/contact',
|
||||
inLanguage: ['en', 'es', 'ca']
|
||||
})
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
// Move useAsyncData to top level — NOT inside onMounted
|
||||
const { data: markdown } = await useAsyncData(`fixed`, async () =>
|
||||
await queryCollection(`fixed`).path(`/fixed/${locale.value}/contact`).first()
|
||||
, {watch: [locale]})
|
||||
,{watch: [locale]})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -19,6 +41,7 @@ const { data: markdown } = await useAsyncData(`fixed`, async () =>
|
||||
|
||||
<FixedLayout>
|
||||
<Container>
|
||||
<h1>Contact Aran Roig</h1>
|
||||
<ContentRenderer v-if="markdown" :value="markdown"></ContentRenderer>
|
||||
</Container>
|
||||
</FixedLayout>
|
||||
|
||||
Reference in New Issue
Block a user