Merged in fix/sas-flow-design-updates (pull request #1567)
Fix typography in SAS flow * Add missing translation * Update SAS login page typography * Update LinkAccountFormTypography * Update typography in OneTimePasswordForm * Update typography of SAS link success page * Update typography of SAS flow errors * Update typography of SAS unlink success page * Update typography of SAS error boundary Approved-by: Linus Flood
This commit is contained in:
@@ -2,12 +2,12 @@
|
|||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { partnerSas } from "@/constants/routes/myPages"
|
import { partnerSas } from "@/constants/routes/myPages"
|
||||||
|
|
||||||
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
import useLang from "@/hooks/useLang"
|
import useLang from "@/hooks/useLang"
|
||||||
|
|
||||||
import { SASModal, SASModalContactBlock, SASModalDivider } from "./SASModal"
|
import { SASModal, SASModalContactBlock, SASModalDivider } from "./SASModal"
|
||||||
@@ -19,15 +19,17 @@ export function AlreadyLinkedError() {
|
|||||||
return (
|
return (
|
||||||
<SASModal>
|
<SASModal>
|
||||||
<ErrorCircleFilledIcon height={64} width={64} color="red" />
|
<ErrorCircleFilledIcon height={64} width={64} color="red" />
|
||||||
<Title as="h2" level="h1" textAlign="center" textTransform="regular">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Accounts are already linked" })}
|
<h1>{intl.formatMessage({ id: "Accounts are already linked" })}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{/* TODO copy */}
|
<p>
|
||||||
{intl.formatMessage({
|
{/* TODO copy */}
|
||||||
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Button theme="base" asChild>
|
<Button theme="base" asChild>
|
||||||
<Link href={partnerSas[lang]}>
|
<Link href={partnerSas[lang]}>
|
||||||
{intl.formatMessage({ id: "View your account" })}
|
{intl.formatMessage({ id: "View your account" })}
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
import { Link } from "react-aria-components"
|
import { Link } from "react-aria-components"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { profile } from "@/constants/routes/myPages"
|
import { profile } from "@/constants/routes/myPages"
|
||||||
|
|
||||||
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
import useLang from "@/hooks/useLang"
|
import useLang from "@/hooks/useLang"
|
||||||
|
|
||||||
import { SASModal, SASModalContactBlock, SASModalDivider } from "./SASModal"
|
import { SASModal, SASModalContactBlock, SASModalDivider } from "./SASModal"
|
||||||
@@ -19,16 +19,18 @@ export function DateOfBirthError() {
|
|||||||
return (
|
return (
|
||||||
<SASModal>
|
<SASModal>
|
||||||
<ErrorCircleFilledIcon height={64} width={64} color="red" />
|
<ErrorCircleFilledIcon height={64} width={64} color="red" />
|
||||||
<Title as="h2" level="h1" textAlign="center" textTransform="regular">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Date of birth not matching" })}
|
<h1>{intl.formatMessage({ id: "Date of birth not matching" })}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{/* TODO copy */}
|
<p>
|
||||||
{intl.formatMessage({
|
{/* TODO copy */}
|
||||||
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
||||||
</Body>
|
})}
|
||||||
<Button theme="base">
|
</p>
|
||||||
|
</Typography>
|
||||||
|
<Button theme="base" asChild>
|
||||||
<Link href={profile[lang]}>
|
<Link href={profile[lang]}>
|
||||||
{intl.formatMessage({ id: "View your account" })}
|
{intl.formatMessage({ id: "View your account" })}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
|
|
||||||
import { GenericError } from "./GenericError"
|
import { GenericError } from "./GenericError"
|
||||||
|
|
||||||
@@ -15,11 +16,13 @@ export function FailedAttemptsError() {
|
|||||||
title={intl.formatMessage({ id: "Too many failed attempts" })}
|
title={intl.formatMessage({ id: "Too many failed attempts" })}
|
||||||
variant="info"
|
variant="info"
|
||||||
>
|
>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "Please wait 1 hour before trying again.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "Please wait 1 hour before trying again.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Button theme="base" disabled>
|
<Button theme="base" disabled>
|
||||||
{intl.formatMessage({ id: "Send new code" })}
|
{intl.formatMessage({ id: "Send new code" })}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
"use client"
|
"use client"
|
||||||
import Image from "next/image"
|
import Image from "next/image"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
|
|
||||||
import { SASModal } from "./SASModal"
|
import { SASModal } from "./SASModal"
|
||||||
|
|
||||||
@@ -30,9 +31,9 @@ export function GenericError({
|
|||||||
style={{ marginTop: 16 }}
|
style={{ marginTop: 16 }}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<Title as="h3" level="h1" textAlign="center" textTransform="regular">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{title}
|
<h1>{title}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
{children}
|
{children}
|
||||||
</SASModal>
|
</SASModal>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
padding: 0 var(--Spacing-x2);
|
padding: 0 var(--Spacing-x2);
|
||||||
background-color: white;
|
background-color: white;
|
||||||
|
color: var(--UI-Text-Placeholder);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
|
|
||||||
import styles from "./SASModal.module.css"
|
import styles from "./SASModal.module.css"
|
||||||
|
|
||||||
@@ -17,9 +17,9 @@ export function SASModalDivider() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.divider}>
|
<div className={styles.divider}>
|
||||||
<Body asChild color="uiTextPlaceholder">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
<span>{intl.formatMessage({ id: "or" })}</span>
|
<span>{intl.formatMessage({ id: "or" })}</span>
|
||||||
</Body>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -31,14 +31,11 @@ export function SASModalContactBlock() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={{ display: "flex", flexDirection: "column" }}>
|
<div style={{ display: "flex", flexDirection: "column" }}>
|
||||||
<Title
|
<Typography variant="Title/Subtitle/md">
|
||||||
level="h4"
|
<h4 className={styles.contactBlockTitle}>
|
||||||
as="h3"
|
{intl.formatMessage({ id: "Contact our memberservice" })}
|
||||||
textTransform="regular"
|
</h4>
|
||||||
className={styles.contactBlockTitle}
|
</Typography>
|
||||||
>
|
|
||||||
{intl.formatMessage({ id: "Contact our memberservice" })}
|
|
||||||
</Title>
|
|
||||||
<Link
|
<Link
|
||||||
href={`tel:${phone.replaceAll(" ", "")}`}
|
href={`tel:${phone.replaceAll(" ", "")}`}
|
||||||
textDecoration="underline"
|
textDecoration="underline"
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
|
|
||||||
import { GenericError } from "./GenericError"
|
import { GenericError } from "./GenericError"
|
||||||
|
|
||||||
@@ -15,11 +16,13 @@ export function TooManyCodesError() {
|
|||||||
title={intl.formatMessage({ id: "You’ve requested too many codes" })}
|
title={intl.formatMessage({ id: "You’ve requested too many codes" })}
|
||||||
variant="info"
|
variant="info"
|
||||||
>
|
>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "Please wait 1 hour before trying again.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "Please wait 1 hour before trying again.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Button theme="base" disabled>
|
<Button theme="base" disabled>
|
||||||
{intl.formatMessage({ id: "Send new code" })}
|
{intl.formatMessage({ id: "Send new code" })}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
|
|
||||||
import { GenericError } from "./GenericError"
|
import { GenericError } from "./GenericError"
|
||||||
|
|
||||||
@@ -15,11 +16,13 @@ export function TooManyFailedAttemptsError() {
|
|||||||
title={intl.formatMessage({ id: "Too many failed attempts." })}
|
title={intl.formatMessage({ id: "Too many failed attempts." })}
|
||||||
variant="info"
|
variant="info"
|
||||||
>
|
>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "Please wait 1 hour before trying again.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "Please wait 1 hour before trying again.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Button theme="base" disabled>
|
<Button theme="base" disabled>
|
||||||
{intl.formatMessage({ id: "Send new code" })}
|
{intl.formatMessage({ id: "Send new code" })}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import * as Sentry from "@sentry/nextjs"
|
|||||||
import { useEffect } from "react"
|
import { useEffect } from "react"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { GenericError } from "./components/GenericError"
|
import { GenericError } from "./components/GenericError"
|
||||||
import { SASModalContactBlock } from "./components/SASModal"
|
import { SASModalContactBlock } from "./components/SASModal"
|
||||||
@@ -29,11 +29,13 @@ export default function Error({
|
|||||||
id: "Something went wrong",
|
id: "Something went wrong",
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "Please try again later",
|
{intl.formatMessage({
|
||||||
})}
|
id: "Please try again later",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<SASModalContactBlock />
|
<SASModalContactBlock />
|
||||||
</GenericError>
|
</GenericError>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
import { AlreadyLinkedError } from "../components/AlreadyLinkedError"
|
import { AlreadyLinkedError } from "../components/AlreadyLinkedError"
|
||||||
@@ -39,11 +40,13 @@ export default async function Page({
|
|||||||
id: "We could not connect your accounts",
|
id: "We could not connect your accounts",
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "We could not connect your accounts to give you access. Please contact us and we’ll help you resolve this issue.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<SASModalContactBlock />
|
<SASModalContactBlock />
|
||||||
</GenericError>
|
</GenericError>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,15 +6,14 @@ import { useTransition } from "react"
|
|||||||
import { FormProvider, useForm } from "react-hook-form"
|
import { FormProvider, useForm } from "react-hook-form"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { profileEdit } from "@/constants/routes/myPages"
|
import { profileEdit } from "@/constants/routes/myPages"
|
||||||
|
|
||||||
import { ArrowRightIcon } from "@/components/Icons"
|
import { ArrowRightIcon } from "@/components/Icons"
|
||||||
import Button from "@/components/TempDesignSystem/Button"
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
import Checkbox from "@/components/TempDesignSystem/Form/Checkbox"
|
import Checkbox from "@/components/TempDesignSystem/Form/Checkbox"
|
||||||
import Label from "@/components/TempDesignSystem/Form/Label"
|
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
|
|
||||||
import styles from "./link-sas.module.css"
|
import styles from "./link-sas.module.css"
|
||||||
|
|
||||||
@@ -60,28 +59,32 @@ export function LinkAccountForm({
|
|||||||
width={182}
|
width={182}
|
||||||
src="/_static/img/partner/sas/sas-campaign-logo.png"
|
src="/_static/img/partner/sas/sas-campaign-logo.png"
|
||||||
/>
|
/>
|
||||||
<Title level="h3" textTransform="regular">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Link your accounts" })}
|
<h3>{intl.formatMessage({ id: "Link your accounts" })}</h3>
|
||||||
</Title>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.dateOfBirth}>
|
<div className={styles.dateOfBirth}>
|
||||||
<Body textTransform="bold">
|
<Typography variant="Body/Paragraph/mdBold">
|
||||||
{userDateOfBirth
|
<p>
|
||||||
? intl.formatMessage(
|
{userDateOfBirth
|
||||||
{
|
? intl.formatMessage(
|
||||||
id: "Birth date: {dateOfBirth, date, ::MMMM d yyyy}",
|
{
|
||||||
},
|
id: "Birth date: {dateOfBirth, date, ::MMMM d yyyy}",
|
||||||
{
|
},
|
||||||
dateOfBirth: new Date(userDateOfBirth),
|
{
|
||||||
}
|
dateOfBirth: new Date(userDateOfBirth),
|
||||||
)
|
}
|
||||||
: intl.formatMessage({ id: "Birth date is missing" })}
|
)
|
||||||
</Body>
|
: intl.formatMessage({ id: "Birth date is missing" })}
|
||||||
<Label size="small" className={styles.dateOfBirthDescription}>
|
</p>
|
||||||
{intl.formatMessage({
|
</Typography>
|
||||||
id: "We require your birth date in order to link your Scandic account with your SAS EuroBonus account. Please check that it is correct.",
|
<Typography variant="Label/xsRegular">
|
||||||
})}
|
<p className={styles.dateOfBirthDescription}>
|
||||||
</Label>
|
{intl.formatMessage({
|
||||||
|
id: "We require your birth date in order to link your Scandic account with your SAS EuroBonus account. Please check that it is correct.",
|
||||||
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Link
|
<Link
|
||||||
href={profileEdit[params.lang]}
|
href={profileEdit[params.lang]}
|
||||||
className={styles.dateOfBirthLink}
|
className={styles.dateOfBirthLink}
|
||||||
@@ -107,30 +110,36 @@ export function LinkAccountForm({
|
|||||||
disabled: !userDateOfBirth,
|
disabled: !userDateOfBirth,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Body>
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({ id: "I accept the terms and conditions" })}
|
<p>
|
||||||
</Body>
|
{intl.formatMessage({
|
||||||
|
id: "I accept the terms and conditions",
|
||||||
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
</Checkbox>
|
</Checkbox>
|
||||||
<Body className={styles.termsDescription}>
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage(
|
<p className={styles.termsDescription}>
|
||||||
{
|
{intl.formatMessage(
|
||||||
id: "By linking your accounts you accept the <sasScandicTermsAndConditionsLink>Scandic Friends & SAS Terms and Conditions</sasScandicTermsAndConditionsLink>. You will be connected throughout the duration of your employment or until further notice, and you can opt out at any time.",
|
{
|
||||||
},
|
id: "By linking your accounts you accept the <sasScandicTermsAndConditionsLink>Scandic Friends & SAS Terms and Conditions</sasScandicTermsAndConditionsLink>. You will be connected throughout the duration of your employment or until further notice, and you can opt out at any time.",
|
||||||
{
|
},
|
||||||
sasScandicTermsAndConditionsLink: (str) => (
|
{
|
||||||
<Link
|
sasScandicTermsAndConditionsLink: (str) => (
|
||||||
// TODO correct link
|
<Link
|
||||||
href={"#"}
|
// TODO correct link
|
||||||
weight="bold"
|
href={"#"}
|
||||||
variant="default"
|
weight="bold"
|
||||||
textDecoration="underline"
|
variant="default"
|
||||||
>
|
textDecoration="underline"
|
||||||
{str}
|
>
|
||||||
</Link>
|
{str}
|
||||||
),
|
</Link>
|
||||||
}
|
),
|
||||||
)}
|
}
|
||||||
</Body>
|
)}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.ctaContainer}>
|
<div className={styles.ctaContainer}>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import React from "react"
|
import React from "react"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { partnerSas } from "@/constants/routes/myPages"
|
import { partnerSas } from "@/constants/routes/myPages"
|
||||||
|
|
||||||
import CheckCircle from "@/components/Icons/CheckCircle"
|
import CheckCircle from "@/components/Icons/CheckCircle"
|
||||||
import { Redirect } from "@/components/Redirect"
|
import { Redirect } from "@/components/Redirect"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
import { SASModal } from "../../components/SASModal"
|
import { SASModal } from "../../components/SASModal"
|
||||||
@@ -21,20 +21,24 @@ export default async function SASxScandicLinkPage({
|
|||||||
<SASModal>
|
<SASModal>
|
||||||
<Redirect url={partnerSas[params.lang]} timeout={3000} />
|
<Redirect url={partnerSas[params.lang]} timeout={3000} />
|
||||||
<CheckCircle height={64} width={64} color="uiSemanticSuccess" />
|
<CheckCircle height={64} width={64} color="uiSemanticSuccess" />
|
||||||
<Title as="h2" level="h1" textAlign="center">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Your accounts are connected" })}
|
<h1>{intl.formatMessage({ id: "Your accounts are linked" })}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
<div>
|
<div>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "We successfully connected your accounts!",
|
{intl.formatMessage({
|
||||||
})}
|
id: "We successfully connected your accounts!",
|
||||||
</Body>
|
})}
|
||||||
<Body textAlign="center">
|
</p>
|
||||||
{intl.formatMessage({
|
</Typography>
|
||||||
id: "Redirecting you to my pages.",
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
})}
|
<p>
|
||||||
</Body>
|
{intl.formatMessage({
|
||||||
|
id: "Redirecting you to my pages.",
|
||||||
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</SASModal>
|
</SASModal>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ import { redirect } from "next/navigation"
|
|||||||
import React from "react"
|
import React from "react"
|
||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { env } from "@/env/server"
|
import { env } from "@/env/server"
|
||||||
|
|
||||||
import Image from "@/components/Image"
|
import Image from "@/components/Image"
|
||||||
import { Redirect } from "@/components/Redirect"
|
import { Redirect } from "@/components/Redirect"
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
|
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
import { SASModal } from "../components/SASModal"
|
import { SASModal } from "../components/SASModal"
|
||||||
@@ -73,10 +73,14 @@ export default async function SASxScandicLoginPage({
|
|||||||
height="110"
|
height="110"
|
||||||
style={{ marginTop: 16 }}
|
style={{ marginTop: 16 }}
|
||||||
/>
|
/>
|
||||||
<Title as="h2" level="h1" textTransform="regular">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Redirecting you to SAS" })}
|
<h1>{intl.formatMessage({ id: "Redirecting you to SAS" })}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
<Body textAlign="center">{intentDescriptions[parsedParams.intent]}</Body>
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
|
<p style={{ textAlign: "center" }}>
|
||||||
|
{intentDescriptions[parsedParams.intent]}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
<Footnote textAlign="center">
|
<Footnote textAlign="center">
|
||||||
{intl.formatMessage<
|
{intl.formatMessage<
|
||||||
React.ReactNode,
|
React.ReactNode,
|
||||||
|
|||||||
@@ -6,14 +6,12 @@ import { useParams, useRouter } from "next/navigation"
|
|||||||
import { type ReactNode, useState, useTransition } from "react"
|
import { type ReactNode, useState, useTransition } from "react"
|
||||||
import { useIntl } from "react-intl"
|
import { useIntl } from "react-intl"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { trpc } from "@/lib/trpc/client"
|
import { trpc } from "@/lib/trpc/client"
|
||||||
|
|
||||||
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
import ErrorCircleFilledIcon from "@/components/Icons/ErrorCircleFilled"
|
||||||
import Link from "@/components/TempDesignSystem/Link"
|
import Link from "@/components/TempDesignSystem/Link"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Caption from "@/components/TempDesignSystem/Text/Caption"
|
|
||||||
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
|
|
||||||
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
|
|
||||||
|
|
||||||
import { GenericError } from "../components/GenericError"
|
import { GenericError } from "../components/GenericError"
|
||||||
import { SASModal, SASModalContactBlock } from "../components/SASModal"
|
import { SASModal, SASModalContactBlock } from "../components/SASModal"
|
||||||
@@ -63,7 +61,9 @@ export default function OneTimePasswordForm({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<GenericError title={title}>
|
<GenericError title={title}>
|
||||||
<Body textAlign="center">{body}</Body>
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
|
<p style={{ textAlign: "center" }}>{body}</p>
|
||||||
|
</Typography>
|
||||||
<SASModalContactBlock />
|
<SASModalContactBlock />
|
||||||
</GenericError>
|
</GenericError>
|
||||||
)
|
)
|
||||||
@@ -116,7 +116,7 @@ export default function OneTimePasswordForm({
|
|||||||
onClick={handleRequestNewOtp}
|
onClick={handleRequestNewOtp}
|
||||||
color="red"
|
color="red"
|
||||||
variant="default"
|
variant="default"
|
||||||
size="tiny"
|
size="small"
|
||||||
className={disableResend ? styles["disabled-link"] : ""}
|
className={disableResend ? styles["disabled-link"] : ""}
|
||||||
>
|
>
|
||||||
{str}
|
{str}
|
||||||
@@ -141,10 +141,12 @@ export default function OneTimePasswordForm({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<SASModal>
|
<SASModal>
|
||||||
<Subtitle textAlign={"center"}>{heading}</Subtitle>
|
<Typography variant="Title/Subtitle/lg">
|
||||||
<div>
|
<h1>{heading}</h1>
|
||||||
<Body textAlign={"center"}>{ingress}</Body>
|
</Typography>
|
||||||
</div>
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
|
<p>{ingress}</p>
|
||||||
|
</Typography>
|
||||||
|
|
||||||
<OTPInput
|
<OTPInput
|
||||||
autoFocus
|
autoFocus
|
||||||
@@ -169,21 +171,27 @@ export default function OneTimePasswordForm({
|
|||||||
{errorMessage && (
|
{errorMessage && (
|
||||||
<div className={styles["error-message"]}>
|
<div className={styles["error-message"]}>
|
||||||
<ErrorCircleFilledIcon height={20} width={20} color="red" />
|
<ErrorCircleFilledIcon height={20} width={20} color="red" />
|
||||||
<Caption color="red">{errorMessage}</Caption>
|
<Typography variant="Body/Supporting text (caption)/smRegular">
|
||||||
|
<p style={{ color: "var(--Scandic-Red-60)" }}>{errorMessage}</p>
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div>
|
<div>
|
||||||
<Footnote>{footnote}</Footnote>
|
<Typography variant="Body/Supporting text (caption)/smRegular">
|
||||||
<Footnote>
|
<p>{footnote}</p>
|
||||||
{intl.formatMessage(
|
</Typography>
|
||||||
{
|
<Typography variant="Body/Supporting text (caption)/smRegular">
|
||||||
id: "Didn't receive a code? <resendOtpLink>Resend code</resendOtpLink>",
|
<p>
|
||||||
},
|
{intl.formatMessage(
|
||||||
{
|
{
|
||||||
resendOtpLink: getResendOtpLink,
|
id: "Didn't receive a code? <resendOtpLink>Resend code</resendOtpLink>",
|
||||||
}
|
},
|
||||||
)}
|
{
|
||||||
</Footnote>
|
resendOtpLink: getResendOtpLink,
|
||||||
|
}
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</SASModal>
|
</SASModal>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import React from "react"
|
import React from "react"
|
||||||
|
|
||||||
|
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||||
|
|
||||||
import { overview } from "@/constants/routes/myPages"
|
import { overview } from "@/constants/routes/myPages"
|
||||||
|
|
||||||
import CheckCircle from "@/components/Icons/CheckCircle"
|
import CheckCircle from "@/components/Icons/CheckCircle"
|
||||||
import { Redirect } from "@/components/Redirect"
|
import { Redirect } from "@/components/Redirect"
|
||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
import { SASModal } from "../../components/SASModal"
|
import { SASModal } from "../../components/SASModal"
|
||||||
@@ -21,15 +21,17 @@ export default async function SASxScandicUnlinkSuccessPage({
|
|||||||
<SASModal>
|
<SASModal>
|
||||||
<Redirect url={overview[params.lang]} timeout={3000} />
|
<Redirect url={overview[params.lang]} timeout={3000} />
|
||||||
<CheckCircle height={64} width={64} color="uiSemanticSuccess" />
|
<CheckCircle height={64} width={64} color="uiSemanticSuccess" />
|
||||||
<Title as="h2" level="h1" textAlign="center">
|
<Typography variant="Title/Subtitle/lg">
|
||||||
{intl.formatMessage({ id: "Your accounts are now unlinked" })}
|
<h1>{intl.formatMessage({ id: "Your accounts are now unlinked" })}</h1>
|
||||||
</Title>
|
</Typography>
|
||||||
<div>
|
<div>
|
||||||
<Body textAlign="center">
|
<Typography variant="Body/Paragraph/mdRegular">
|
||||||
{intl.formatMessage({
|
<p>
|
||||||
id: "Redirecting you to My Pages.",
|
{intl.formatMessage({
|
||||||
})}
|
id: "Redirecting you to My Pages.",
|
||||||
</Body>
|
})}
|
||||||
|
</p>
|
||||||
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</SASModal>
|
</SASModal>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -570,6 +570,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Kontakt venligst <link>kundeservice</link>.",
|
"Please contact <link>customer service</link>.": "Kontakt venligst <link>kundeservice</link>.",
|
||||||
"Please enter a valid phone number": "Indtast venligst et gyldigt telefonnummer",
|
"Please enter a valid phone number": "Indtast venligst et gyldigt telefonnummer",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vær opmærksom på, at dette er påkrævet, og at dit kort kun vil blive opkrævet i tilfælde af en no-show.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vær opmærksom på, at dette er påkrævet, og at dit kort kun vil blive opkrævet i tilfælde af en no-show.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -855,7 +856,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Dine udfordringer Overvind og tjen!",
|
"Your Challenges Conquer & Earn!": "Dine udfordringer Overvind og tjen!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din booking er bekræftet, men vi kunne ikke verificere dit medlemskab. Hvis du har booket med et medlemstilbud, skal du enten vise dit eksisterende medlemskab ved check-in, blive medlem eller betale prisdifferencen ved check-in. Tilmelding er foretrukket online før opholdet.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din booking er bekræftet, men vi kunne ikke verificere dit medlemskab. Hvis du har booket med et medlemstilbud, skal du enten vise dit eksisterende medlemskab ved check-in, blive medlem eller betale prisdifferencen ved check-in. Tilmelding er foretrukket online før opholdet.",
|
||||||
"Your card was successfully removed!": "Dit kort blev fjernet!",
|
"Your card was successfully removed!": "Dit kort blev fjernet!",
|
||||||
|
|||||||
@@ -569,6 +569,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Bitte wenden Sie sich an den <link>Kundendienst</link>.",
|
"Please contact <link>customer service</link>.": "Bitte wenden Sie sich an den <link>Kundendienst</link>.",
|
||||||
"Please enter a valid phone number": "Bitte geben Sie eine gültige Telefonnummer ein",
|
"Please enter a valid phone number": "Bitte geben Sie eine gültige Telefonnummer ein",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Bitte beachten Sie, dass dies erforderlich ist und dass Ihr Kreditkartenkonto nur in einem No-Show-Fall belastet wird.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Bitte beachten Sie, dass dies erforderlich ist und dass Ihr Kreditkartenkonto nur in einem No-Show-Fall belastet wird.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -853,7 +854,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Meistern Sie Ihre Herausforderungen und verdienen Sie Geld!",
|
"Your Challenges Conquer & Earn!": "Meistern Sie Ihre Herausforderungen und verdienen Sie Geld!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Ihre Buchung ist bestätigt, aber wir konnten Ihr Mitglied nicht verifizieren. Wenn Sie mit einem Mitgliederrabatt gebucht haben, müssen Sie entweder Ihr vorhandenes Mitgliedschaftsnummer bei der Anreise präsentieren, ein Mitglied werden oder die Preisdifferenz bei der Anreise bezahlen. Die Anmeldung ist vorzugsweise online vor der Aufenthaltsdauer erfolgreich.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Ihre Buchung ist bestätigt, aber wir konnten Ihr Mitglied nicht verifizieren. Wenn Sie mit einem Mitgliederrabatt gebucht haben, müssen Sie entweder Ihr vorhandenes Mitgliedschaftsnummer bei der Anreise präsentieren, ein Mitglied werden oder die Preisdifferenz bei der Anreise bezahlen. Die Anmeldung ist vorzugsweise online vor der Aufenthaltsdauer erfolgreich.",
|
||||||
"Your card was successfully removed!": "Ihre Karte wurde erfolgreich entfernt!",
|
"Your card was successfully removed!": "Ihre Karte wurde erfolgreich entfernt!",
|
||||||
|
|||||||
@@ -568,6 +568,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Please contact <link>customer service</link>.",
|
"Please contact <link>customer service</link>.": "Please contact <link>customer service</link>.",
|
||||||
"Please enter a valid phone number": "Please enter a valid phone number",
|
"Please enter a valid phone number": "Please enter a valid phone number",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Please note that this is mandatory, and that your card will only be charged in the event of a no-show.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Please note that this is mandatory, and that your card will only be charged in the event of a no-show.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -851,7 +852,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Your Challenges Conquer & Earn!",
|
"Your Challenges Conquer & Earn!": "Your Challenges Conquer & Earn!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.",
|
||||||
"Your card was successfully removed!": "Your card was successfully removed!",
|
"Your card was successfully removed!": "Your card was successfully removed!",
|
||||||
|
|||||||
@@ -568,6 +568,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Ota yhteyttä <link>asiakaspalveluun</link>.",
|
"Please contact <link>customer service</link>.": "Ota yhteyttä <link>asiakaspalveluun</link>.",
|
||||||
"Please enter a valid phone number": "Ole hyvä ja näppäile voimassaoleva puhelinnumero",
|
"Please enter a valid phone number": "Ole hyvä ja näppäile voimassaoleva puhelinnumero",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Huomaa, että tämä on pakollinen, ja että maksukorttiisi kirjataan vain, jos varausmyyntiä ei tapahtu.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Huomaa, että tämä on pakollinen, ja että maksukorttiisi kirjataan vain, jos varausmyyntiä ei tapahtu.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -853,7 +854,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Your Challenges Conquer & Earn!",
|
"Your Challenges Conquer & Earn!": "Your Challenges Conquer & Earn!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Varauksesi on vahvistettu, mutta jäsenyytesi ei voitu vahvistaa. Jos olet bookeutunut jäsenyysalennoilla, sinun on joko esitettävä olemassa olevan jäsenyysnumero tarkistukseen, tulla jäseneksi tai maksamaan hinnan eron hotellissa. Jäsenyyden tilittäminen on suositeltavampaa tehdä verkkoon ennen majoittumista.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Varauksesi on vahvistettu, mutta jäsenyytesi ei voitu vahvistaa. Jos olet bookeutunut jäsenyysalennoilla, sinun on joko esitettävä olemassa olevan jäsenyysnumero tarkistukseen, tulla jäseneksi tai maksamaan hinnan eron hotellissa. Jäsenyyden tilittäminen on suositeltavampaa tehdä verkkoon ennen majoittumista.",
|
||||||
"Your card was successfully removed!": "Korttisi poistettiin onnistuneesti!",
|
"Your card was successfully removed!": "Korttisi poistettiin onnistuneesti!",
|
||||||
|
|||||||
@@ -567,6 +567,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Vennligst kontakt <link>kundeservice</link>.",
|
"Please contact <link>customer service</link>.": "Vennligst kontakt <link>kundeservice</link>.",
|
||||||
"Please enter a valid phone number": "Vennligst oppgi et gyldig telefonnummer",
|
"Please enter a valid phone number": "Vennligst oppgi et gyldig telefonnummer",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vær oppmerksom på at dette er påkrevd, og at ditt kredittkort kun vil bli belastet i tilfelle av en no-show.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vær oppmerksom på at dette er påkrevd, og at ditt kredittkort kun vil bli belastet i tilfelle av en no-show.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -849,7 +850,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Dine utfordringer Erobre og tjen!",
|
"Your Challenges Conquer & Earn!": "Dine utfordringer Erobre og tjen!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din bestilling er bekreftet, men vi kunne ikke verifisere medlemskapet ditt. Hvis du har booke ut med et medlemsrabatt, må du enten presentere eksisterende medlemsnummer ved check-in, bli medlem eller betale prisdifferansen ved hotellet. Registrering er foretrukket gjort online før oppholdet.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din bestilling er bekreftet, men vi kunne ikke verifisere medlemskapet ditt. Hvis du har booke ut med et medlemsrabatt, må du enten presentere eksisterende medlemsnummer ved check-in, bli medlem eller betale prisdifferansen ved hotellet. Registrering er foretrukket gjort online før oppholdet.",
|
||||||
"Your card was successfully removed!": "Kortet ditt ble fjernet!",
|
"Your card was successfully removed!": "Kortet ditt ble fjernet!",
|
||||||
|
|||||||
@@ -567,6 +567,7 @@
|
|||||||
"Please contact <link>customer service</link>.": "Vänligen kontakta <link>kundtjänst</link>.",
|
"Please contact <link>customer service</link>.": "Vänligen kontakta <link>kundtjänst</link>.",
|
||||||
"Please enter a valid phone number": "Var vänlig och ange ett giltigt telefonnummer",
|
"Please enter a valid phone number": "Var vänlig och ange ett giltigt telefonnummer",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
|
||||||
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to transfer your points.",
|
||||||
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to unlink your accounts.",
|
||||||
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vänligen notera att detta är obligatoriskt, och att ditt kreditkort endast debiteras i händelse av en no-show.",
|
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Vänligen notera att detta är obligatoriskt, och att ditt kreditkort endast debiteras i händelse av en no-show.",
|
||||||
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
|
||||||
@@ -851,7 +852,7 @@
|
|||||||
"Your Challenges Conquer & Earn!": "Dina utmaningar Erövra och tjäna!",
|
"Your Challenges Conquer & Earn!": "Dina utmaningar Erövra och tjäna!",
|
||||||
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
"Your SAS level has upgraded you to {level}!": "Your SAS level has upgraded you to {level}!",
|
||||||
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
"Your SAS level has upgraded your friends level": "Your SAS level has upgraded your friends level",
|
||||||
"Your accounts are connected": "Your accounts are connected",
|
"Your accounts are linked": "Your accounts are linked",
|
||||||
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
"Your accounts are now unlinked": "Your accounts are now unlinked",
|
||||||
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din bokning är bekräftad, men vi kunde inte verifiera ditt medlemskap. Om du har bokat med ett medlemsrabatt måste du antingen presentera ditt befintliga medlemsnummer vid check-in, bli medlem eller betala prisdifferensen vid hotell. Registrering är föredragen gjord online före vistelsen.",
|
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Din bokning är bekräftad, men vi kunde inte verifiera ditt medlemskap. Om du har bokat med ett medlemsrabatt måste du antingen presentera ditt befintliga medlemsnummer vid check-in, bli medlem eller betala prisdifferensen vid hotell. Registrering är föredragen gjord online före vistelsen.",
|
||||||
"Your card was successfully removed!": "Ditt kort har tagits bort!",
|
"Your card was successfully removed!": "Ditt kort har tagits bort!",
|
||||||
|
|||||||
Reference in New Issue
Block a user