diff --git a/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx b/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx index 84e681faa..16948763a 100644 --- a/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx +++ b/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx @@ -40,7 +40,6 @@ export default async function RestaurantSidebar({ key={details.openingHours.name} openingHours={details.openingHours} alternateOpeningHours={details.alternateOpeningHours} - heading={details.openingHours.name} /> ))} diff --git a/apps/scandic-web/components/OpeningHours/index.tsx b/apps/scandic-web/components/OpeningHours/index.tsx index 74a9b9771..5ed7ba7c0 100644 --- a/apps/scandic-web/components/OpeningHours/index.tsx +++ b/apps/scandic-web/components/OpeningHours/index.tsx @@ -6,7 +6,7 @@ import { Divider } from "@scandic-hotels/design-system/Divider" import { Typography } from "@scandic-hotels/design-system/Typography" import AlternateOpeningHours from "./AlternateOpeningHours" -import { getGroupedOpeningHours } from "./utils" +import { getGroupedOpeningHours, getTranslatedName } from "./utils" import styles from "./openingHours.module.css" @@ -25,11 +25,12 @@ export default function OpeningHours({ }: OpeningHoursProps) { const intl = useIntl() const groupedOpeningHours = getGroupedOpeningHours(openingHours, intl) - return (
-
{heading ?? openingHours.name}
+
+ {heading ?? getTranslatedName(openingHours.nameEnglish, intl)} +
diff --git a/apps/scandic-web/components/OpeningHours/openingHours.test.ts b/apps/scandic-web/components/OpeningHours/openingHours.test.ts index 9cadb5547..3004e5e69 100644 --- a/apps/scandic-web/components/OpeningHours/openingHours.test.ts +++ b/apps/scandic-web/components/OpeningHours/openingHours.test.ts @@ -28,6 +28,7 @@ describe("getGroupedOpeningHours", () => { const allDaysClosed: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { isClosed: true, alwaysOpen: false, @@ -86,6 +87,7 @@ describe("getGroupedOpeningHours", () => { const allDaysSameHours: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "09:00", closingTime: "17:00", @@ -144,6 +146,7 @@ describe("getGroupedOpeningHours", () => { const mixedOpeningHours: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "09:00", closingTime: "17:00", @@ -206,6 +209,7 @@ describe("getGroupedOpeningHours", () => { const someAlwaysOpen: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { alwaysOpen: true, isClosed: false, @@ -268,6 +272,7 @@ describe("getGroupedOpeningHours", () => { const missingDays: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "09:00", closingTime: "17:00", @@ -302,6 +307,7 @@ describe("getGroupedOpeningHours", () => { const nonConsecutiveSameHours: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "09:00", closingTime: "17:00", @@ -336,6 +342,7 @@ describe("getGroupedOpeningHours", () => { const nullableHours: RestaurantOpeningHours = { isActive: true, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "", closingTime: "", @@ -370,6 +377,7 @@ describe("getGroupedOpeningHours", () => { const inactiveHours: RestaurantOpeningHours = { isActive: false, name: "Opening hours", + nameEnglish: "Opening hours", monday: { openingTime: "09:00", closingTime: "17:00", diff --git a/apps/scandic-web/components/OpeningHours/utils.ts b/apps/scandic-web/components/OpeningHours/utils.ts index 746217474..55766648f 100644 --- a/apps/scandic-web/components/OpeningHours/utils.ts +++ b/apps/scandic-web/components/OpeningHours/utils.ts @@ -1,3 +1,5 @@ +import { logger } from "@scandic-hotels/common/logger" + import type { RestaurantOpeningHours } from "@scandic-hotels/trpc/types/hotel" import type { IntlShape } from "react-intl" @@ -108,3 +110,62 @@ export function getGroupedOpeningHours( } return groupedOpeningHours } + +export function getTranslatedName(name: string, intl: IntlShape) { + switch (name) { + case "Breakfast": + return intl.formatMessage({ + defaultMessage: "Breakfast", + }) + case "Brunch": + return intl.formatMessage({ + defaultMessage: "Brunch", + }) + case "After Work": + return intl.formatMessage({ + defaultMessage: "After Work", + }) + case "Cafe": + return intl.formatMessage({ + defaultMessage: "Cafe", + }) + case "Lunch": + return intl.formatMessage({ + defaultMessage: "Lunch", + }) + case "Dinner": + return intl.formatMessage({ + defaultMessage: "Dinner", + }) + case "Bar": + return intl.formatMessage({ + defaultMessage: "Bar", + }) + case "Snacks & drinks": + return intl.formatMessage({ + defaultMessage: "Snacks & drinks", + }) + case "Takeaway": + return intl.formatMessage({ + defaultMessage: "Takeaway", + }) + case "Changes": + return intl.formatMessage({ + defaultMessage: "Changes", + }) + case "Live events": + return intl.formatMessage({ + defaultMessage: "Live events", + }) + case "Terrace": + return intl.formatMessage({ + defaultMessage: "Terrace", + }) + default: + logger.warn(`Unsupported name given: ${name}`) + + return intl.formatMessage({ + defaultMessage: "N/A", + }) + } +} diff --git a/packages/trpc/lib/routers/hotels/schemas/hotel/include/restaurants.ts b/packages/trpc/lib/routers/hotels/schemas/hotel/include/restaurants.ts index 61888fc24..e0d8b26a6 100644 --- a/packages/trpc/lib/routers/hotels/schemas/hotel/include/restaurants.ts +++ b/packages/trpc/lib/routers/hotels/schemas/hotel/include/restaurants.ts @@ -59,6 +59,7 @@ export const openingHoursSchema = z.object({ isActive: z.boolean().default(false), monday: openingHoursDetailsSchema.optional(), name: nullableStringValidator, + nameEnglish: nullableStringValidator, saturday: openingHoursDetailsSchema.optional(), sunday: openingHoursDetailsSchema.optional(), thursday: openingHoursDetailsSchema.optional(),