diff --git a/.changeset/slimy-hairs-rush.md b/.changeset/slimy-hairs-rush.md
new file mode 100644
index 00000000..b1ad117a
--- /dev/null
+++ b/.changeset/slimy-hairs-rush.md
@@ -0,0 +1,5 @@
+---
+"@explorer-1/vue": patch
+---
+
+Fixing link logic in HomepageTeaserBlock
diff --git a/packages/vue/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue b/packages/vue/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue
index c4ceed8d..44126fa7 100644
--- a/packages/vue/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue
+++ b/packages/vue/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue
@@ -33,14 +33,14 @@
class="lg:pr-14"
:text="data.paragraph"
/>
-
+
{{ data.link.text }}
@@ -60,13 +60,13 @@
v-if="theCard.image"
class="relative h-auto"
>
-
+
@@ -87,14 +87,14 @@
{{ theCard.description }}
-
+
{{ theCard.link.text }}
@@ -135,11 +135,11 @@ export default defineComponent({
}
},
computed: {
- theCard(): object | null {
- if (this.data.card && this.data.card.length > 0) {
- return this.data.card[0]
+ theCard(): object | undefined {
+ if (this.data?.card && this.data.card.length > 0) {
+ return this.data?.card[0]
}
- return null
+ return undefined
},
hasCoverImage(): boolean {
if (this.data.coverImage && this.data.coverImage.src) {
@@ -147,8 +147,11 @@ export default defineComponent({
}
return false
},
- theLink() {
- return mixinGetExternalLink(this.data.link) || undefined
+ theExternalLink() {
+ return mixinGetExternalLink(this.data?.link) || undefined
+ },
+ theCardExternalLink() {
+ return mixinGetExternalLink(this.theCard?.link) || undefined
},
theSrcSet() {
return this.data.coverImage
diff --git a/packages/vue/src/utils/mixins.ts b/packages/vue/src/utils/mixins.ts
index f8210258..bd323bf9 100644
--- a/packages/vue/src/utils/mixins.ts
+++ b/packages/vue/src/utils/mixins.ts
@@ -217,9 +217,9 @@ export const mixinGetSrcSet = (srcSetObject: Partial): string => {
}
// Use with RelatedLinkBlock to retrieve the external link to use with an href prop
export const mixinGetExternalLink = (link: RelatedLinkObject): string | undefined => {
- if (link.externalLink) {
+ if (link?.externalLink) {
return link.externalLink
- } else if (link.document) {
+ } else if (link?.document) {
return link.document.url
}
return undefined