feat(SW-186): implemented queries and typings for top_link inside header query
This commit is contained in:
31
server/routers/contentstack/base/utils.ts
Normal file
31
server/routers/contentstack/base/utils.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { removeMultipleSlashes } from "@/utils/url"
|
||||
|
||||
import { InternalExternalLink, InternalExternalLinkData } from "./output"
|
||||
|
||||
export function makeLinkObjectFromInternalExternalLink(
|
||||
data: InternalExternalLinkData | undefined
|
||||
): InternalExternalLink | null {
|
||||
if (!data) {
|
||||
return null
|
||||
}
|
||||
|
||||
const linkConnectionNode =
|
||||
data.page_link.linkConnection.edges[0]?.node || null
|
||||
const isExternalLink = data.is_external_link && data.external_link.href
|
||||
const isOriginalLink = linkConnectionNode?.web?.original_url
|
||||
const externalLink = data.external_link
|
||||
const href = isExternalLink
|
||||
? externalLink.href
|
||||
: linkConnectionNode?.web?.original_url ||
|
||||
removeMultipleSlashes(
|
||||
`/${linkConnectionNode.system.locale}/${linkConnectionNode.url}`
|
||||
)
|
||||
const title = isExternalLink ? externalLink.title : data.page_link.link_title
|
||||
|
||||
return {
|
||||
openInNewTab: data.open_in_new_tab,
|
||||
title,
|
||||
href,
|
||||
isExternal: !!(isExternalLink || isOriginalLink),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user