import { generateTag, generateTagsFromSystem } from "../../../utils/generateTag" import { CampaignOverviewPageEnum } from "../../../types/campaignOverviewPageEnum" import type { Lang } from "@scandic-hotels/common/constants/language" import type { System } from "../../../routers/contentstack/schemas/system" import type { CampaignOverviewPageRefs } from "../../../types/campaignOverviewPage" export function generatePageTags( validatedData: CampaignOverviewPageRefs, lang: Lang ): string[] { const connections = getConnections(validatedData) return [ generateTagsFromSystem(lang, connections), generateTag(lang, validatedData.campaign_overview_page.system.uid), ].flat() } export function getConnections({ campaign_overview_page, }: CampaignOverviewPageRefs) { const connections: System["system"][] = [campaign_overview_page.system] if (campaign_overview_page.header.navigation_links) { campaign_overview_page.header.navigation_links.forEach((link) => { if (link.link) { connections.push(link.link) } }) } if (campaign_overview_page.top_campaignConnection) { campaign_overview_page.top_campaignConnection.edges.forEach(({ node }) => { connections.push(node.system) }) } if (campaign_overview_page.blocks) { campaign_overview_page.blocks.forEach((block) => { switch (block.__typename) { case CampaignOverviewPageEnum.ContentStack.blocks.CarouselCards: { block.carousel_cards.card_groups.forEach((group) => { group.cardConnection.edges.forEach(({ node }) => { connections.push(node.system) }) }) break } } }) } return connections }