diff --git a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/index.tsx index a9aff9505..98a24916a 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/index.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/ReferenceCard/index.tsx @@ -6,6 +6,7 @@ import { useIntl } from "react-intl" import { BookingStatusEnum } from "@/constants/booking" import { dt } from "@/lib/dt" +import { BookingCodeIcon } from "@/components/Icons" import CrossCircleIcon from "@/components/Icons/CrossCircle" import Button from "@/components/TempDesignSystem/Button" import Divider from "@/components/TempDesignSystem/Divider" @@ -137,6 +138,17 @@ export function ReferenceCard({ booking, hotel }: ReferenceCardProps) { {formatPrice(intl, totalPrice, currencyCode)} + {booking?.bookingCode && ( +
+ {intl.formatMessage({ id: "Booking code" })} + }> + + {intl.formatMessage({ id: "Booking code" })} + {booking.bookingCode} + + +
+ )} {!showCancelButton && (
+
-
+ {booking?.bookingCode && ( + }> + + {intl.formatMessage({ id: "Booking code" })} + {booking.bookingCode} + + + )}
diff --git a/apps/scandic-web/components/HotelReservation/MyStay/Room/room.module.css b/apps/scandic-web/components/HotelReservation/MyStay/Room/room.module.css index e6489bb1a..0e688d1a6 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/Room/room.module.css +++ b/apps/scandic-web/components/HotelReservation/MyStay/Room/room.module.css @@ -6,6 +6,11 @@ padding: var(--Spacing-x3) 0; } +.bookingCode { + display: flex; + gap: var(--Spacing-x1); +} + @media (min-width: 768px) { .room { background-color: transparent; @@ -261,6 +266,7 @@ .bookingInformation { flex-direction: row; justify-content: space-between; + align-items: flex-start; } } diff --git a/apps/scandic-web/components/Icons/BookingCode.tsx b/apps/scandic-web/components/Icons/BookingCode.tsx new file mode 100644 index 000000000..94aa7dbe1 --- /dev/null +++ b/apps/scandic-web/components/Icons/BookingCode.tsx @@ -0,0 +1,29 @@ +import { iconVariants } from "./variants" + +import type { IconProps } from "@/types/components/icon" + +export default function BookingCodeIcon({ + className, + color, + ...props +}: IconProps) { + const classNames = iconVariants({ className, color }) + return ( + + + + ) +} diff --git a/apps/scandic-web/components/Icons/index.tsx b/apps/scandic-web/components/Icons/index.tsx index 07bbd4da7..002f9e2d3 100644 --- a/apps/scandic-web/components/Icons/index.tsx +++ b/apps/scandic-web/components/Icons/index.tsx @@ -26,6 +26,7 @@ export { default as SingleBedIcon } from "./Beds/SingleBed" export { default as TwinBedsIcon } from "./Beds/TwinBeds" export { default as BikeIcon } from "./Bike" export { default as BikingIcon } from "./Biking" +export { default as BookingCodeIcon } from "./BookingCode" export { default as BreakfastIcon } from "./Breakfast" export { default as BusinessIcon } from "./Business" export { default as CableIcon } from "./Cable" diff --git a/apps/scandic-web/i18n/dictionaries/da.json b/apps/scandic-web/i18n/dictionaries/da.json index e569b6228..184a22462 100644 --- a/apps/scandic-web/i18n/dictionaries/da.json +++ b/apps/scandic-web/i18n/dictionaries/da.json @@ -86,6 +86,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Book {type} parkering", "Booking": "Booking", + "Booking code": "Bookingkode", "Booking confirmation": "Booking bekræftelse", "Booking number": "Bookingnummer", "Booking policy": "Booking politik", diff --git a/apps/scandic-web/i18n/dictionaries/de.json b/apps/scandic-web/i18n/dictionaries/de.json index 3d4bbb594..f01ae5de4 100644 --- a/apps/scandic-web/i18n/dictionaries/de.json +++ b/apps/scandic-web/i18n/dictionaries/de.json @@ -87,6 +87,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Buchen Sie {type} Parkplatz", "Booking": "Booking", + "Booking code": "Buchungscode", "Booking confirmation": "Buchungsbestätigung", "Booking number": "Buchungsnummer", "Booking policy": "Buchungsbedingungen", diff --git a/apps/scandic-web/i18n/dictionaries/en.json b/apps/scandic-web/i18n/dictionaries/en.json index 0c1fdfda5..3efe24924 100644 --- a/apps/scandic-web/i18n/dictionaries/en.json +++ b/apps/scandic-web/i18n/dictionaries/en.json @@ -86,6 +86,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Book {type} parking", "Booking": "Booking", + "Booking code": "Booking code", "Booking confirmation": "Booking confirmation", "Booking number": "Booking number", "Booking policy": "Booking policy", diff --git a/apps/scandic-web/i18n/dictionaries/fi.json b/apps/scandic-web/i18n/dictionaries/fi.json index 67b7b6696..549681077 100644 --- a/apps/scandic-web/i18n/dictionaries/fi.json +++ b/apps/scandic-web/i18n/dictionaries/fi.json @@ -85,6 +85,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Varaa {type} pysäköinti", "Booking": "Booking", + "Booking code": "Varauskoodi", "Booking confirmation": "Varausvahvistus", "Booking number": "Varausnumero", "Booking policy": "Varauskäytäntö", diff --git a/apps/scandic-web/i18n/dictionaries/no.json b/apps/scandic-web/i18n/dictionaries/no.json index 8b48a6710..45dab8c66 100644 --- a/apps/scandic-web/i18n/dictionaries/no.json +++ b/apps/scandic-web/i18n/dictionaries/no.json @@ -85,6 +85,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Book {type} parkering", "Booking": "Booking", + "Booking code": "Bestillingskode", "Booking confirmation": "Bestillingsbekreftelse", "Booking number": "Bestillingsnummer", "Booking policy": "Bestillingsbetingelser", diff --git a/apps/scandic-web/i18n/dictionaries/sv.json b/apps/scandic-web/i18n/dictionaries/sv.json index ffdba2f3d..9462a5454 100644 --- a/apps/scandic-web/i18n/dictionaries/sv.json +++ b/apps/scandic-web/i18n/dictionaries/sv.json @@ -85,6 +85,7 @@ "Book your next stay": "Book your next stay", "Book {type} parking": "Boka {type} parkering", "Booking": "Booking", + "Booking code": "Bokningskod", "Booking confirmation": "Bokningsbekräftelse", "Booking number": "Bokningsnummer", "Booking policy": "Bokningsvillkor", diff --git a/apps/scandic-web/server/routers/booking/output.ts b/apps/scandic-web/server/routers/booking/output.ts index f37f5c4b3..65c2dcd93 100644 --- a/apps/scandic-web/server/routers/booking/output.ts +++ b/apps/scandic-web/server/routers/booking/output.ts @@ -196,6 +196,7 @@ export const bookingConfirmationSchema = z childBedPreferences: z.array(childBedPreferencesSchema).default([]), childrenAges: z.array(z.number().int()).default([]), canChangeDate: z.boolean(), + bookingCode: z.string().nullable(), computedReservationStatus: z.string().nullable().default(""), confirmationNumber: z.string().nullable().default(""), createDateTime: z.date({ coerce: true }),