diff --git a/components/Blocks/index.tsx b/components/Blocks/index.tsx index 43843ee30..f165b50ba 100644 --- a/components/Blocks/index.tsx +++ b/components/Blocks/index.tsx @@ -18,7 +18,7 @@ export default function Blocks({ blocks }: BlocksProps) { case BlocksEnums.block.Accordion: return ( diff --git a/components/ContentType/HotelPage/index.tsx b/components/ContentType/HotelPage/index.tsx index d1d1dd98b..5b0139d6f 100644 --- a/components/ContentType/HotelPage/index.tsx +++ b/components/ContentType/HotelPage/index.tsx @@ -82,7 +82,9 @@ export default async function HotelPage() { - {faq && } + {faq && ( + + )} {googleMapsApiKey ? ( <> diff --git a/lib/graphql/Fragments/Blocks/Accordion.graphql b/lib/graphql/Fragments/Blocks/Accordion.graphql index ea82ba484..e77b26606 100644 --- a/lib/graphql/Fragments/Blocks/Accordion.graphql +++ b/lib/graphql/Fragments/Blocks/Accordion.graphql @@ -36,18 +36,18 @@ fragment Accordion_ContentPage on ContentPageBlocksAccordion { __typename accordion { title - faq { + accordions { __typename - ...GlobalFaq - ...SpecificFaq + ...GlobalAccordion + ...SpecificAccordion } } } -fragment GlobalFaq on ContentPageBlocksAccordionBlockFaqGlobalFaq { +fragment GlobalAccordion on ContentPageBlocksAccordionBlockAccordionsGlobalAccordion { __typename - global_faq { - global_faqConnection { + global_accordion { + global_accordionConnection { edges { node { ...AccordionBlock @@ -57,9 +57,9 @@ fragment GlobalFaq on ContentPageBlocksAccordionBlockFaqGlobalFaq { } } -fragment SpecificFaq on ContentPageBlocksAccordionBlockFaqSpecificFaq { +fragment SpecificAccordion on ContentPageBlocksAccordionBlockAccordionsSpecificAccordion { __typename - specific_faq { + specific_accordion { questions { question answer { @@ -82,17 +82,17 @@ fragment SpecificFaq on ContentPageBlocksAccordionBlockFaqSpecificFaq { fragment Accordion_ContentPageRefs on ContentPageBlocksAccordion { accordion { - faq { + accordions { __typename - ...GlobalFaqRefs - ...SpecificFaqRefs + ...GlobalAccordionRefs + ...SpecificAccordionRefs } } } -fragment GlobalFaqRefs on ContentPageBlocksAccordionBlockFaqGlobalFaq { - global_faq { - global_faqConnection { +fragment GlobalAccordionRefs on ContentPageBlocksAccordionBlockAccordionsGlobalAccordion { + global_accordion { + global_accordionConnection { edges { node { ...AccordionBlockRefs @@ -102,8 +102,8 @@ fragment GlobalFaqRefs on ContentPageBlocksAccordionBlockFaqGlobalFaq { } } -fragment SpecificFaqRefs on ContentPageBlocksAccordionBlockFaqSpecificFaq { - specific_faq { +fragment SpecificAccordionRefs on ContentPageBlocksAccordionBlockAccordionsSpecificAccordion { + specific_accordion { questions { answer { embedded_itemsConnection { diff --git a/server/routers/contentstack/schemas/blocks/accordion.ts b/server/routers/contentstack/schemas/blocks/accordion.ts index f6a5a386a..c593c5c22 100644 --- a/server/routers/contentstack/schemas/blocks/accordion.ts +++ b/server/routers/contentstack/schemas/blocks/accordion.ts @@ -36,8 +36,8 @@ export const accordionItemsSchema = z.array( export type Accordion = z.infer enum AccordionEnum { - ContentPageBlocksAccordionBlockFaqGlobalFaq = "ContentPageBlocksAccordionBlockFaqGlobalFaq", - ContentPageBlocksAccordionBlockFaqSpecificFaq = "ContentPageBlocksAccordionBlockFaqSpecificFaq", + ContentPageBlocksAccordionBlockAccordionsGlobalAccordion = "ContentPageBlocksAccordionBlockAccordionsGlobalAccordion", + ContentPageBlocksAccordionBlockAccordionsSpecificAccordion = "ContentPageBlocksAccordionBlockAccordionsSpecificAccordion", } export const accordionSchema = z.object({ @@ -48,15 +48,15 @@ export const accordionSchema = z.object({ accordion: z .object({ title: z.string().optional().default(""), - faq: z.array( + accordions: z.array( z.object({ __typename: z.enum([ - AccordionEnum.ContentPageBlocksAccordionBlockFaqGlobalFaq, - AccordionEnum.ContentPageBlocksAccordionBlockFaqSpecificFaq, + AccordionEnum.ContentPageBlocksAccordionBlockAccordionsGlobalAccordion, + AccordionEnum.ContentPageBlocksAccordionBlockAccordionsSpecificAccordion, ]), - global_faq: z + global_accordion: z .object({ - global_faqConnection: z.object({ + global_accordionConnection: z.object({ edges: z.array( z.object({ node: z.object({ @@ -67,7 +67,7 @@ export const accordionSchema = z.object({ }), }) .optional(), - specific_faq: z + specific_accordion: z .object({ questions: accordionItemsSchema, }) @@ -78,18 +78,18 @@ export const accordionSchema = z.object({ .transform((data) => { return { ...data, - faq: data.faq.flatMap((faq) => { - switch (faq.__typename) { - case AccordionEnum.ContentPageBlocksAccordionBlockFaqGlobalFaq: + accordions: data.accordions.flatMap((acc) => { + switch (acc.__typename) { + case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsGlobalAccordion: return ( - faq.global_faq?.global_faqConnection.edges.flatMap( - ({ node: faqConnection }) => { - return faqConnection.questions + acc.global_accordion?.global_accordionConnection.edges.flatMap( + ({ node: accordionConnection }) => { + return accordionConnection.questions } ) || [] ) - case AccordionEnum.ContentPageBlocksAccordionBlockFaqSpecificFaq: - return faq.specific_faq?.questions || [] + case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsSpecificAccordion: + return acc.specific_accordion?.questions || [] } }), } @@ -103,7 +103,7 @@ const actualRefs = z.discriminatedUnion("__typename", [ pageLinks.loyaltyPageRefSchema, ]) -export const globalFaqConnectionRefs = z.object({ +export const globalAccordionConnectionRefs = z.object({ edges: z.array( z.object({ node: z.object({ @@ -125,7 +125,7 @@ export const globalFaqConnectionRefs = z.object({ ), }) -export const specificFaqConnectionRefs = z.object({ +export const specificAccordionConnectionRefs = z.object({ questions: z.array( z.object({ answer: z.object({ @@ -144,29 +144,29 @@ export const specificFaqConnectionRefs = z.object({ export const accordionRefsSchema = z.object({ accordion: z .object({ - faq: z.array( + accordions: z.array( z.object({ __typename: z.enum([ - AccordionEnum.ContentPageBlocksAccordionBlockFaqGlobalFaq, - AccordionEnum.ContentPageBlocksAccordionBlockFaqSpecificFaq, + AccordionEnum.ContentPageBlocksAccordionBlockAccordionsGlobalAccordion, + AccordionEnum.ContentPageBlocksAccordionBlockAccordionsSpecificAccordion, ]), - global_faq: z + global_accordion: z .object({ - global_faqConnection: globalFaqConnectionRefs, + global_accordionConnection: globalAccordionConnectionRefs, }) .optional(), - specific_faq: specificFaqConnectionRefs.optional(), + specific_accordion: specificAccordionConnectionRefs.optional(), }) ), }) .transform((data) => { - return data.faq.flatMap((faq) => { - switch (faq.__typename) { - case AccordionEnum.ContentPageBlocksAccordionBlockFaqGlobalFaq: + return data.accordions.flatMap((accordion) => { + switch (accordion.__typename) { + case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsGlobalAccordion: return ( - faq.global_faq?.global_faqConnection.edges.flatMap( - ({ node: faqConnection }) => { - return faqConnection.questions.flatMap((question) => + accordion.global_accordion?.global_accordionConnection.edges.flatMap( + ({ node: accordionConnection }) => { + return accordionConnection.questions.flatMap((question) => question.answer.embedded_itemsConnection.edges.flatMap( ({ node }) => node.system ) @@ -174,9 +174,9 @@ export const accordionRefsSchema = z.object({ } ) || [] ) - case AccordionEnum.ContentPageBlocksAccordionBlockFaqSpecificFaq: + case AccordionEnum.ContentPageBlocksAccordionBlockAccordionsSpecificAccordion: return ( - faq.specific_faq?.questions.flatMap((question) => + accordion.specific_accordion?.questions.flatMap((question) => question.answer.embedded_itemsConnection.edges.flatMap( ({ node }) => node.system ) diff --git a/server/routers/contentstack/schemas/blocks/hotelFaq.ts b/server/routers/contentstack/schemas/blocks/hotelFaq.ts index 3130b4f37..b6d4d42cf 100644 --- a/server/routers/contentstack/schemas/blocks/hotelFaq.ts +++ b/server/routers/contentstack/schemas/blocks/hotelFaq.ts @@ -2,8 +2,8 @@ import { z } from "zod" import { accordionItemsSchema, - globalFaqConnectionRefs, - specificFaqConnectionRefs, + globalAccordionConnectionRefs, + specificAccordionConnectionRefs, } from "./accordion" import { BlocksEnums } from "@/types/enums/blocks" @@ -41,7 +41,7 @@ export const hotelFaqSchema = z }) || [] ) array.push(data.specific_faq?.questions || []) - return { ...data, faq: array.flat(2) } + return { ...data, accordions: array.flat(2) } }) export const hotelFaqRefsSchema = z @@ -50,8 +50,8 @@ export const hotelFaqRefsSchema = z .literal(HotelPageEnum.ContentStack.blocks.Faq) .optional() .default(HotelPageEnum.ContentStack.blocks.Faq), - global_faqConnection: globalFaqConnectionRefs.optional(), - specific_faq: specificFaqConnectionRefs.optional(), + global_faqConnection: globalAccordionConnectionRefs.optional(), + specific_faq: specificAccordionConnectionRefs.optional(), }) .transform((data) => { const array = [] diff --git a/types/components/blocks/Accordion.ts b/types/components/blocks/Accordion.ts index 69325ae40..669b28b1d 100644 --- a/types/components/blocks/Accordion.ts +++ b/types/components/blocks/Accordion.ts @@ -1,6 +1,6 @@ import type { Accordion } from "@/server/routers/contentstack/schemas/blocks/accordion" export type AccordionProps = { - accordion: Accordion["accordion"]["faq"] + accordion: Accordion["accordion"]["accordions"] title?: string } diff --git a/types/trpc/routers/contentstack/contentPage.ts b/types/trpc/routers/contentstack/contentPage.ts index 9e1760be6..e3f0f99bb 100644 --- a/types/trpc/routers/contentstack/contentPage.ts +++ b/types/trpc/routers/contentstack/contentPage.ts @@ -17,9 +17,6 @@ export interface ContentPageRefs export interface GetContentPageSchema extends z.input {} -export interface GetContentPageSchemaBlocks - extends z.input {} - export interface ContentPage extends z.output {} export type Block = z.output