feat(SW-2973): Added bookingCode if available to links inside campaign pages

* feat(SW-2973): Moved block types to trpc lib

Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-07-04 10:15:01 +00:00
parent fa7214cb58
commit 270249c6c4
44 changed files with 187 additions and 115 deletions

View File

@@ -1,9 +1,12 @@
import { CampaignPageEnum } from "../../../types/campaignPage"
import {
CampaignPageEnum,
type CampaignPageRefs,
} from "../../../types/campaignPage"
import { generateTag, generateTagsFromSystem } from "../../../utils/generateTag"
import type { Lang } from "@scandic-hotels/common/constants/language"
import type { CampaignPageRefs } from "../../../types/campaignPage"
import type { CarouselCardsBlock } from "../../../types/campaignPage"
import type { System } from "../schemas/system"
export function generatePageTags(
@@ -43,3 +46,35 @@ export function getConnections({ campaign_page }: CampaignPageRefs) {
return connections
}
export function getCarouselCardsBlockWithBookingCodeLinks(
block: CarouselCardsBlock,
bookingCode: string | null
): CarouselCardsBlock {
if (!bookingCode) {
return block
}
const { link, cards, ...carousel_cards } = block.carousel_cards
return {
...block,
carousel_cards: {
...carousel_cards,
link: link
? {
...link,
href: `${link.href}?bookingCode=${bookingCode}`,
}
: undefined,
cards: cards.map(({ link, ...card }) => ({
...card,
link: link
? {
...link,
href: `${link.href}?bookingCode=${bookingCode}`,
}
: undefined,
})),
},
}
}