import { Lang } from "@scandic-hotels/common/constants/language" import { isValidLang } from "@scandic-hotels/common/utils/languages" import { Divider } from "@scandic-hotels/design-system/Divider" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import { Typography } from "@scandic-hotels/design-system/Typography" import { countriesMap } from "@/constants/countries" import { languages } from "@/constants/languages" import { profileEdit } from "@/constants/routes/myPages" import { getProfile } from "@/lib/trpc/memoizedRequests" import ButtonLink from "@/components/ButtonLink" import CommunicationSlot from "@/components/MyPages/Profile/Communication" import CreditCardSlot from "@/components/MyPages/Profile/CreditCards" import Header from "@/components/Profile/Header" import { getIntl } from "@/i18n" import { getLang } from "@/i18n/serverContext" import { isValidCountry } from "@/utils/countries" import ChangeNameDisclaimer from "./ChangeNameDisclaimer" import styles from "./profile.module.css" export default async function Profile() { const user = await getProfile() if (!user || "error" in user) { return null } const intl = await getIntl() const lang = await getLang() const addressParts = [] if (user.address.streetAddress) { addressParts.push(user.address.streetAddress) } if (user.address.city) { addressParts.push(user.address.city) } const displayNames = { language: new Intl.DisplayNames([lang], { type: "language" }), region: new Intl.DisplayNames([lang], { type: "region" }), } if (user.address.country) { const countryCode = isValidCountry(user.address.country) ? countriesMap[user.address.country] : null const localizedCountry = countryCode ? displayNames.region.of(countryCode) : user.address.country addressParts.push(localizedCountry) } const addressOutput = addressParts.length > 0 ? addressParts.join(", ") : intl.formatMessage({ defaultMessage: "N/A", }) const userLang = isValidLang(user.language) ? user.language : Lang.en const localizedLanguage = displayNames.language.of(userLang) const normalizedLanguage = localizedLanguage ? localizedLanguage.charAt(0).toUpperCase() + localizedLanguage.slice(1) : languages[userLang] return (

{intl.formatMessage({ defaultMessage: "Welcome", })}
{user.name}

{intl.formatMessage({ defaultMessage: "Edit profile", })}

{intl.formatMessage({ defaultMessage: "Date of Birth", })}

{user.dateOfBirth}

{intl.formatMessage({ defaultMessage: "Phone number", })}

{user.phoneNumber}

{intl.formatMessage({ defaultMessage: "Language", })}

{normalizedLanguage}

{intl.formatMessage({ defaultMessage: "Email", })}

{user.email}

{intl.formatMessage({ defaultMessage: "Address", })}

{addressOutput}

{intl.formatMessage({ defaultMessage: "Password", })}

{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */}

**********

{/* */}
) }