import { BlocksEnums } from "@scandic-hotels/trpc/types/blocks" import { DynamicContentEnum } from "@scandic-hotels/trpc/types/dynamicContent" import Overview from "@/components/Blocks/DynamicContent/Overview" import EarnAndBurn from "@/components/Blocks/DynamicContent/Points/EarnAndBurn" import PointsOverview from "@/components/Blocks/DynamicContent/Points/Overview" import CurrentRewardsBlock from "@/components/Blocks/DynamicContent/Rewards/CurrentRewards" import NextLevelRewardsBlock from "@/components/Blocks/DynamicContent/Rewards/NextLevel" import ShortcutsList from "@/components/Blocks/ShortcutsList" import JsonToHtml from "@/components/JsonToHtml" import { getLang } from "@/i18n/serverContext" import { modWebviewLink } from "@/utils/webviews" import type { AccountPageContentProps, ContentProps, } from "@/types/components/myPages/myPage/accountPage" async function DynamicComponent({ dynamic_content }: AccountPageContentProps) { const lang = await getLang() const dynamicContent = { ...dynamic_content, link: dynamic_content.link ? { ...dynamic_content.link, href: await modWebviewLink(dynamic_content.link.href, lang), } : undefined, } switch (dynamic_content.component) { case DynamicContentEnum.Blocks.components.membership_overview: return case DynamicContentEnum.Blocks.components.points_overview: return case DynamicContentEnum.Blocks.components.current_benefits: return case DynamicContentEnum.Blocks.components.next_benefits: return case DynamicContentEnum.Blocks.components.expiring_points: // TODO: Add once available // return return null case DynamicContentEnum.Blocks.components.earn_and_burn: return default: return null } } export default async function Content({ content }: ContentProps) { const lang = await getLang() return ( <> {await Promise.all( content.map(async (item, idx) => { switch (item.typename) { case BlocksEnums.block.DynamicContent: return ( ) case BlocksEnums.block.Shortcuts: const shortcuts = await Promise.all( item.shortcuts.shortcuts.map(async (shortcut) => { return { ...shortcut, url: await modWebviewLink(shortcut.url, lang), } }) ) return ( ) case BlocksEnums.block.TextContent: return ( ) default: return null } }) )} ) }