fix(SW-187): Fixed open in new tab and some general refactoring
This commit is contained in:
@@ -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}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
),
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user