feat(LOY-284): add accordion support to account pages

This commit is contained in:
Christian Andolf
2025-06-25 16:30:35 +02:00
parent 36d010a0a4
commit 471b1b6409
6 changed files with 141 additions and 8 deletions

View File

@@ -35,6 +35,8 @@ export const accordionItemsSchema = z.array(
export type Accordion = z.infer<typeof accordionSchema>
enum AccordionEnum {
AccountPageContentAccordionBlockAccordionsGlobalAccordion = "AccountPageContentAccordionBlockAccordionsGlobalAccordion",
AccountPageContentAccordionBlockAccordionsSpecificAccordion = "AccountPageContentAccordionBlockAccordionsSpecificAccordion",
CampaignPageBlocksAccordionBlockAccordionsGlobalAccordion = "CampaignPageBlocksAccordionBlockAccordionsGlobalAccordion",
CampaignPageBlocksAccordionBlockAccordionsSpecificAccordion = "CampaignPageBlocksAccordionBlockAccordionsSpecificAccordion",
ContentPageBlocksAccordionBlockAccordionsGlobalAccordion = "ContentPageBlocksAccordionBlockAccordionsGlobalAccordion",
@@ -82,6 +84,7 @@ export const accordionSchema = z.object({
...data,
accordions: data.accordions.flatMap((acc) => {
switch (acc.__typename) {
case AccordionEnum.AccountPageContentAccordionBlockAccordionsGlobalAccordion:
case AccordionEnum.CampaignPageBlocksAccordionBlockAccordionsGlobalAccordion:
case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsGlobalAccordion:
case AccordionEnum.DestinationCityPageBlocksAccordionBlockAccordionsGlobalAccordion:
@@ -93,11 +96,14 @@ export const accordionSchema = z.object({
}
) || []
)
case AccordionEnum.AccountPageContentAccordionBlockAccordionsSpecificAccordion:
case AccordionEnum.CampaignPageBlocksAccordionBlockAccordionsSpecificAccordion:
case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsSpecificAccordion:
case AccordionEnum.DestinationCityPageBlocksAccordionBlockAccordionsSpecificAccordion:
case AccordionEnum.DestinationCountryPageBlocksAccordionBlockAccordionsSpecificAccordion:
return acc.specific_accordion?.questions || []
default:
return null
}
}),
}