feat(SW-243): implement mobile design
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
.main {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--Spacing-x4);
|
||||||
|
padding: var(--Spacing-x4) var(--Spacing-x4);
|
||||||
|
background-color: var(--Scandic-Brand-Warm-White);
|
||||||
|
min-height: 100dvh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--Spacing-x3);
|
||||||
|
width: 100%;
|
||||||
|
max-width: 525px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--Spacing-x2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 240px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import ConfirmationCard from "@/components/HotelReservation/BookingConfirmation/ConfirmationCard"
|
||||||
|
import ConfirmationSummary from "@/components/HotelReservation/BookingConfirmation/ConfirmationSummary"
|
||||||
|
import ConfirmationTimes from "@/components/HotelReservation/BookingConfirmation/ConfirmationTimes"
|
||||||
|
import Button from "@/components/TempDesignSystem/Button"
|
||||||
|
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||||
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
|
|
||||||
|
import styles from "./page.module.css"
|
||||||
|
|
||||||
|
export default function BookingConfirmationPage() {
|
||||||
|
return (
|
||||||
|
<main className={styles.main}>
|
||||||
|
<section className={styles.section}>
|
||||||
|
<div>
|
||||||
|
<Title textAlign="center">Thank you</Title>
|
||||||
|
<Title textAlign="center" as="h3">
|
||||||
|
We look forward to your visit!
|
||||||
|
</Title>
|
||||||
|
</div>
|
||||||
|
<Body color="burgundy" textAlign="center">
|
||||||
|
We have sent a detailed confirmation of your booking to your email:
|
||||||
|
lisa.andersson@gmail.com.
|
||||||
|
</Body>
|
||||||
|
<div className={styles.buttons}>
|
||||||
|
<Button
|
||||||
|
size="small"
|
||||||
|
theme="base"
|
||||||
|
intent="secondary"
|
||||||
|
className={styles.button}
|
||||||
|
>
|
||||||
|
Download the Scandic app
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
size="small"
|
||||||
|
theme="base"
|
||||||
|
intent="secondary"
|
||||||
|
className={styles.button}
|
||||||
|
>
|
||||||
|
View your booking
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<ConfirmationCard />
|
||||||
|
<ConfirmationTimes />
|
||||||
|
<ConfirmationSummary />
|
||||||
|
</main>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
.test {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 365px;
|
||||||
|
background-color: var(--Base-Surface-Primary-light-Normal);
|
||||||
|
border-radius: var(--Corner-radius-Small);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 105px;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--Spacing-x1);
|
||||||
|
padding: var(--Spacing-x2);
|
||||||
|
font-family: var(--typography-Caption-Regular-fontFamily);
|
||||||
|
font-size: var(--typography-Caption-Regular-fontSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hotel {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--Spacing-x-half);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stay {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--Spacing-x-half);
|
||||||
|
}
|
||||||
|
.dates {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import { ArrowRightIcon, ScandicLogoIcon } from "@/components/Icons"
|
||||||
|
import Image from "@/components/Image"
|
||||||
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
|
|
||||||
|
import styles from "./confirmationCard.module.css"
|
||||||
|
|
||||||
|
export default function ConfirmationCard() {
|
||||||
|
return (
|
||||||
|
<section className={styles.test}>
|
||||||
|
<div>
|
||||||
|
<Image
|
||||||
|
src="https://test3.scandichotels.com/imagevault/publishedmedia/i11isd60bh119s9486b7/downtown-camper-by-scandic-lobby-reception-desk-ch.jpg?w=640"
|
||||||
|
alt=""
|
||||||
|
height={400}
|
||||||
|
width={200}
|
||||||
|
className={styles.image}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className={styles.info}>
|
||||||
|
<header>
|
||||||
|
<ScandicLogoIcon color="red" />
|
||||||
|
<Title as="h5" textTransform="capitalize">
|
||||||
|
Helsinki Hub
|
||||||
|
</Title>
|
||||||
|
</header>
|
||||||
|
<div className={styles.hotel}>
|
||||||
|
<span>Kaisaniemenkatu 7, Helsinki</span>
|
||||||
|
<span>Call us at +358 300 870680</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.stay}>
|
||||||
|
<span>1 night</span>
|
||||||
|
<div className={styles.dates}>
|
||||||
|
<span>2024.03.09</span>
|
||||||
|
<ArrowRightIcon height={15} width={15} />
|
||||||
|
<span>2024.03.10</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
.section {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 365px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.summary {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: var(--Spacing-x2) var(--Spacing-x0);
|
||||||
|
font-family: var(--typography-Caption-Regular-fontFamily);
|
||||||
|
font-size: var(--typography-Caption-Regular-fontSize);
|
||||||
|
border-bottom: 1px solid var(--Base-Border-Subtle);
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
import React from "react"
|
||||||
|
|
||||||
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
|
import styles from "./confirmationSummary.module.css"
|
||||||
|
|
||||||
|
export default async function ConfirmationSummary() {
|
||||||
|
const intl = await getIntl()
|
||||||
|
return (
|
||||||
|
<section className={styles.section}>
|
||||||
|
<Title as="h4" textAlign="center">
|
||||||
|
{intl.formatMessage({ id: "Summary" })}
|
||||||
|
</Title>
|
||||||
|
<div className={styles.summary}>
|
||||||
|
<span>Type of room: Standard Room</span>
|
||||||
|
<span>1648 SEK</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.summary}>
|
||||||
|
<span>Type of bed: King Bed</span>
|
||||||
|
<span>0 SEK</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.summary}>
|
||||||
|
<span>Breakfast: Breakfast Buffé</span>
|
||||||
|
<span>198 SEK</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.summary}>
|
||||||
|
<span>Flexibility: Free Rebooking</span>
|
||||||
|
<span>200 SEK</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
.section {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: var(--Spacing-x2);
|
||||||
|
border-radius: var(--Corner-radius-Small);
|
||||||
|
background-color: var(--Base-Surface-Primary-dark-Normal);
|
||||||
|
width: 100%;
|
||||||
|
max-width: 365px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breakfast,
|
||||||
|
.checkIn,
|
||||||
|
.checkOut {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--Spacing-x-half);
|
||||||
|
font-family: var(--typography-Caption-Regular-fontFamily);
|
||||||
|
font-size: var(--typography-Caption-Regular-fontSize);
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import React from "react"
|
||||||
|
|
||||||
|
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||||
|
import { getIntl } from "@/i18n"
|
||||||
|
|
||||||
|
import styles from "./confirmationTimes.module.css"
|
||||||
|
|
||||||
|
export default async function ConfirmationTimes() {
|
||||||
|
const intl = await getIntl()
|
||||||
|
return (
|
||||||
|
<section className={styles.section}>
|
||||||
|
<div className={styles.breakfast}>
|
||||||
|
<Body color="burgundy">{intl.formatMessage({ id: "Breakfast" })}</Body>
|
||||||
|
<span>Mon-Fri 06:30-10:00</span>
|
||||||
|
<span>Mon-Fri 06:30-10:00</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.checkIn}>
|
||||||
|
<Body color="burgundy">{intl.formatMessage({ id: "Check in" })}</Body>
|
||||||
|
<span>From</span>
|
||||||
|
<span>15:00</span>
|
||||||
|
</div>
|
||||||
|
<div className={styles.checkOut}>
|
||||||
|
<Body color="burgundy">{intl.formatMessage({ id: "Check out" })}</Body>
|
||||||
|
<span>At latest</span>
|
||||||
|
<span>12:00</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -149,6 +149,9 @@
|
|||||||
"Hotel facilities": "Hotel facilities",
|
"Hotel facilities": "Hotel facilities",
|
||||||
"Hotel surroundings": "Hotel surroundings",
|
"Hotel surroundings": "Hotel surroundings",
|
||||||
"Show map": "Show map",
|
"Show map": "Show map",
|
||||||
|
"Check in": "Check in",
|
||||||
|
"Check out": "Check out",
|
||||||
|
"Summary": "Summary",
|
||||||
"Where to": "Where to",
|
"Where to": "Where to",
|
||||||
"When": "When",
|
"When": "When",
|
||||||
"Rooms & Guests": "Rooms & Guests",
|
"Rooms & Guests": "Rooms & Guests",
|
||||||
|
|||||||
Reference in New Issue
Block a user