2024-11-01 13:15:09 +00:00
|
|
|
<template>
|
2024-11-03 10:21:44 +00:00
|
|
|
<div class="min-h-[calc(100vh-9rem)] w-full">
|
|
|
|
<SharedHero v-if="hero" :data="hero" />
|
2024-11-03 12:13:36 +00:00
|
|
|
<div class="container mx-auto py-12 min-h-[50vh] flex flex-col gap-2">
|
2024-11-03 10:21:44 +00:00
|
|
|
<div v-for="item in content" class="contents">
|
|
|
|
<DynamicZoneColumnImageText v-if="item.__component == 'dynamic-zone.column-image-text'" :data="item" />
|
|
|
|
<DynamicZoneDualColumnText v-else-if="item.__component == 'dynamic-zone.dual-column-text'" :data="item" />
|
|
|
|
<DynamicZoneEmphasiseArticle v-else-if="item.__component == 'dynamic-zone.emphasise-article'" :data="item" />
|
|
|
|
<DynamicZoneFullImage v-else-if="item.__component == 'dynamic-zone.full-image'" :data="item" />
|
|
|
|
<DynamicZoneFullText v-else-if="item.__component == 'dynamic-zone.full-text'" :data="item" />
|
|
|
|
<DynamicZoneGallery v-else-if="item.__component == 'dynamic-zone.gallery'" :data="item" />
|
|
|
|
<SharedList v-else-if="item.__component == 'shared.list'" :data="item" />
|
2024-11-03 12:13:36 +00:00
|
|
|
<br />
|
2024-11-03 10:21:44 +00:00
|
|
|
</div>
|
2024-11-02 11:47:07 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
2024-11-01 13:15:09 +00:00
|
|
|
</template>
|
|
|
|
|
2024-11-02 11:47:07 +00:00
|
|
|
<script setup lang="ts">
|
|
|
|
import type { PropType } from "vue";
|
|
|
|
import type SharedHero from "../types/component/sharedHero";
|
|
|
|
import type { ComponentTypes } from "../types/component/baseComponent";
|
|
|
|
|
|
|
|
defineProps({
|
2024-11-03 10:21:44 +00:00
|
|
|
hero: { type: Object as PropType<SharedHero>, required: false, default: null },
|
2024-11-02 11:47:07 +00:00
|
|
|
content: Array<ComponentTypes>,
|
|
|
|
});
|
|
|
|
</script>
|