fix(SW-187): Fixed open in new tab and some general refactoring

This commit is contained in:
Erik Tiekstra
2024-10-11 09:44:50 +02:00
parent 5ef5129a92
commit 3656245f8d
3 changed files with 17 additions and 25 deletions

View File

@@ -17,6 +17,7 @@ export default function FooterMainNav({ mainLinks }: FooterMainNavProps) {
color="burgundy"
href={link.url}
className={styles.mainNavigationLink}
target={link.openInNewTab ? "_blank" : undefined}
>
{link.title}

View File

@@ -56,26 +56,13 @@ export default function FooterSecondaryNav({
<ul className={styles.secondaryNavigationList}>
{link?.links?.map((link) => (
<li key={link.title} className={styles.secondaryNavigationItem}>
{link.isExternal ? (
<a
href={link.url}
key={link.title}
target={link.openInNewTab ? "_blank" : "_self"}
aria-label={link.title}
className={styles.secondaryNavigationLink}
>
{link.title}
</a>
) : (
<Link
href={link.url}
key={link.title}
target={link.openInNewTab ? "_blank" : "_self"}
color="burgundy"
>
{link.title}
</Link>
)}
<Link
href={link.url}
target={link.openInNewTab ? "_blank" : undefined}
color="burgundy"
>
{link.title}
</Link>
</li>
))}
</ul>

View File

@@ -321,7 +321,7 @@ const validateInternalLink = z
const lang = node.system.locale
return {
url: originalUrl ?? removeMultipleSlashes(`/${lang}/${url}`),
url: originalUrl || removeMultipleSlashes(`/${lang}/${url}`),
title: node.title,
}
})
@@ -339,14 +339,18 @@ export const validateLinkItem = z
url: data.pageConnection?.url ?? data.link?.href ?? "",
title: data?.title ?? data.link?.title,
openInNewTab: data.open_in_new_tab,
isExternal: !!data.link?.href,
isExternal: !data.pageConnection?.url,
}
})
const validateLinks = z
.array(validateLinkItem)
.transform((data) => data.filter((item) => item.url))
export const validateSecondaryLinks = z.array(
z.object({
title: z.string(),
links: z.array(validateLinkItem),
links: validateLinks,
})
)
@@ -362,7 +366,7 @@ export const validateFooterConfigSchema = z
all_footer: z.object({
items: z.array(
z.object({
main_links: z.array(validateLinkItem),
main_links: validateLinks,
app_downloads: z.object({
title: z.string(),
links: validateLinksWithType,
@@ -371,7 +375,7 @@ export const validateFooterConfigSchema = z
social_media: z.object({
links: validateLinksWithType,
}),
tertiary_links: z.array(validateLinkItem),
tertiary_links: validateLinks,
})
),
}),