import JsonToHtml from "@/components/JsonToHtml" import CurrentBenefitsBlock from "@/components/MyPages/Blocks/Benefits/CurrentLevel" import NextLevelBenefitsBlock from "@/components/MyPages/Blocks/Benefits/NextLevel" import Overview from "@/components/MyPages/Blocks/Overview" import EarnAndBurn from "@/components/MyPages/Blocks/Points/EarnAndBurn" import ExpiringPoints from "@/components/MyPages/Blocks/Points/ExpiringPoints" import PointsOverview from "@/components/MyPages/Blocks/Points/Overview" import Shortcuts from "@/components/MyPages/Blocks/Shortcuts" import PreviousStays from "@/components/MyPages/Blocks/Stays/Previous" import SoonestStays from "@/components/MyPages/Blocks/Stays/Soonest" import UpcomingStays from "@/components/MyPages/Blocks/Stays/Upcoming" import { getLang } from "@/i18n/serverContext" import { removeMultipleSlashes } from "@/utils/url" import { AccountPageContentProps, ContentProps, } from "@/types/components/myPages/myPage/accountPage" import { ContentEntries, DynamicContentComponents, } from "@/types/components/myPages/myPage/enums" function DynamicComponent({ component, props }: AccountPageContentProps) { switch (component) { case DynamicContentComponents.membership_overview: return case DynamicContentComponents.points_overview: return case DynamicContentComponents.previous_stays: return case DynamicContentComponents.soonest_stays: return case DynamicContentComponents.upcoming_stays: return case DynamicContentComponents.current_benefits: return case DynamicContentComponents.next_benefits: return case DynamicContentComponents.expiring_points: return case DynamicContentComponents.earn_and_burn: return default: return null } } export default function Content({ content }: ContentProps) { return content.map((item, idx) => { switch (item.__typename) { case ContentEntries.AccountPageContentDynamicContent: const link = item.dynamic_content.link.linkConnection.edges.length ? { href: item.dynamic_content.link.linkConnection.edges[0].node .original_url || removeMultipleSlashes( `/${getLang()}/${item.dynamic_content.link.linkConnection.edges[0].node.url}` ), text: item.dynamic_content.link.link_text, } : null const componentProps = { title: item.dynamic_content.title, // TODO: rename preamble to subtitle in Contentstack? subtitle: item.dynamic_content.preamble, ...(link && { link }), } return ( ) case ContentEntries.AccountPageContentShortcuts: return ( ) case ContentEntries.AccountPageContentTextContent: return (
) default: return null } }) }