Merged in feat/SW-1468 (pull request #2529)

feat(SW-1468): add restaurant name mapping

* feat(SW-1468): add restaurant name mapping


Approved-by: Bianca Widstam
Approved-by: Chuma Mcphoy (We Ahead)
This commit is contained in:
Matilda Landström
2025-07-08 12:20:18 +00:00
parent b35ceafc00
commit 19b58be654
5 changed files with 74 additions and 4 deletions

View File

@@ -40,7 +40,6 @@ export default async function RestaurantSidebar({
key={details.openingHours.name}
openingHours={details.openingHours}
alternateOpeningHours={details.alternateOpeningHours}
heading={details.openingHours.name}
/>
))}
</div>

View File

@@ -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 (
<div className={styles.wrapper}>
<Typography variant="Title/Overline/sm">
<h5 className={styles.heading}>{heading ?? openingHours.name}</h5>
<h5 className={styles.heading}>
{heading ?? getTranslatedName(openingHours.nameEnglish, intl)}
</h5>
</Typography>
<Divider />

View File

@@ -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",

View File

@@ -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",
})
}
}