diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx index 3a0f924a4..013d9747c 100644 --- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx +++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx @@ -1,8 +1,8 @@ import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import Link from "@scandic-hotels/design-system/Link" +import OpeningHours from "@scandic-hotels/design-system/OpeningHours" import { Typography } from "@scandic-hotels/design-system/Typography" -import OpeningHours from "@/components/OpeningHours" import { getIntl } from "@/i18n" import { appendSlugToPathname } from "@/utils/appendSlugToPathname" diff --git a/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx b/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx index e3f0b2866..e1093ebe5 100644 --- a/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx +++ b/apps/scandic-web/components/ContentType/HotelSubpage/Sidebar/RestaurantSidebar.tsx @@ -1,10 +1,10 @@ import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import Link from "@scandic-hotels/design-system/Link" import { OldDSButton as Button } from "@scandic-hotels/design-system/OldDSButton" +import OpeningHours from "@scandic-hotels/design-system/OpeningHours" import { Typography } from "@scandic-hotels/design-system/Typography" import LocalCallCharges from "@/components/LocalCallCharges" -import OpeningHours from "@/components/OpeningHours" import { getIntl } from "@/i18n" import styles from "./sidebar.module.css" diff --git a/apps/scandic-web/components/SidePeeks/AmenitiesSidepeekContent/Accordions/Breakfast.tsx b/apps/scandic-web/components/SidePeeks/AmenitiesSidepeekContent/Accordions/Breakfast.tsx index 7a06a40b8..792ac7aca 100644 --- a/apps/scandic-web/components/SidePeeks/AmenitiesSidepeekContent/Accordions/Breakfast.tsx +++ b/apps/scandic-web/components/SidePeeks/AmenitiesSidepeekContent/Accordions/Breakfast.tsx @@ -5,10 +5,10 @@ import { useIntl } from "react-intl" import { isDefined } from "@scandic-hotels/common/utils/isDefined" import AccordionItem from "@scandic-hotels/design-system/Accordion/AccordionItem" import { IconName } from "@scandic-hotels/design-system/Icons/iconName" +import OpeningHours from "@scandic-hotels/design-system/OpeningHours" import { Typography } from "@scandic-hotels/design-system/Typography" import { HotelTypeEnum } from "@scandic-hotels/trpc/enums/hotelType" -import OpeningHours from "@/components/OpeningHours" import { trackAccordionClick } from "@/utils/tracking" import styles from "./sidePeekAccordion.module.css" diff --git a/apps/scandic-web/components/OpeningHours/AlternateOpeningHours/index.tsx b/packages/design-system/lib/components/OpeningHours/AlternateOpeningHours/index.tsx similarity index 72% rename from apps/scandic-web/components/OpeningHours/AlternateOpeningHours/index.tsx rename to packages/design-system/lib/components/OpeningHours/AlternateOpeningHours/index.tsx index bd34c886f..056dbc646 100644 --- a/apps/scandic-web/components/OpeningHours/AlternateOpeningHours/index.tsx +++ b/packages/design-system/lib/components/OpeningHours/AlternateOpeningHours/index.tsx @@ -1,18 +1,17 @@ -"use client" +'use client' -import { useIntl } from "react-intl" +import { useIntl } from 'react-intl' -import { Divider } from "@scandic-hotels/design-system/Divider" -import { Typography } from "@scandic-hotels/design-system/Typography" +import { Divider } from '@scandic-hotels/design-system/Divider' +import { Typography } from '@scandic-hotels/design-system/Typography' -import { getGroupedOpeningHours } from "../utils" +import { getGroupedOpeningHours } from '../utils' -import styles from "../openingHours.module.css" - -import type { RestaurantOpeningHours } from "@scandic-hotels/trpc/types/hotel" +import styles from '../openingHours.module.css' +import { OpeningHours } from '../openingHoursTypes' interface AlternateOpeningHoursProps { - alternateOpeningHours: RestaurantOpeningHours + alternateOpeningHours: OpeningHours } export default function AlternateOpeningHours({ @@ -39,7 +38,7 @@ export default function AlternateOpeningHours({
{intl.formatMessage( { - defaultMessage: "Alternate opening hours ({name})", + defaultMessage: 'Alternate opening hours ({name})', }, { name: alternateOpeningHours.name } )} diff --git a/apps/scandic-web/components/OpeningHours/index.tsx b/packages/design-system/lib/components/OpeningHours/index.tsx similarity index 64% rename from apps/scandic-web/components/OpeningHours/index.tsx rename to packages/design-system/lib/components/OpeningHours/index.tsx index 5ed7ba7c0..e1afc0851 100644 --- a/apps/scandic-web/components/OpeningHours/index.tsx +++ b/packages/design-system/lib/components/OpeningHours/index.tsx @@ -1,20 +1,19 @@ -"use client" +'use client' -import { useIntl } from "react-intl" +import { useIntl } from 'react-intl' -import { Divider } from "@scandic-hotels/design-system/Divider" -import { Typography } from "@scandic-hotels/design-system/Typography" +import { Divider } from '../Divider' +import { Typography } from '../Typography' -import AlternateOpeningHours from "./AlternateOpeningHours" -import { getGroupedOpeningHours, getTranslatedName } from "./utils" +import AlternateOpeningHours from './AlternateOpeningHours' +import { getGroupedOpeningHours, getTranslatedName } from './utils' -import styles from "./openingHours.module.css" - -import type { RestaurantOpeningHours } from "@scandic-hotels/trpc/types/hotel" +import styles from './openingHours.module.css' +import type { OpeningHours } from './openingHoursTypes' interface OpeningHoursProps { - openingHours: RestaurantOpeningHours - alternateOpeningHours?: RestaurantOpeningHours + openingHours: OpeningHours + alternateOpeningHours?: OpeningHours heading?: string } diff --git a/apps/scandic-web/components/OpeningHours/openingHours.module.css b/packages/design-system/lib/components/OpeningHours/openingHours.module.css similarity index 100% rename from apps/scandic-web/components/OpeningHours/openingHours.module.css rename to packages/design-system/lib/components/OpeningHours/openingHours.module.css diff --git a/apps/scandic-web/components/OpeningHours/openingHours.test.ts b/packages/design-system/lib/components/OpeningHours/openingHours.test.ts similarity index 58% rename from apps/scandic-web/components/OpeningHours/openingHours.test.ts rename to packages/design-system/lib/components/OpeningHours/openingHours.test.ts index 3004e5e69..36d2bdcbb 100644 --- a/apps/scandic-web/components/OpeningHours/openingHours.test.ts +++ b/packages/design-system/lib/components/OpeningHours/openingHours.test.ts @@ -1,190 +1,190 @@ -import { describe, expect, it } from "vitest" +import { describe, expect, it } from 'vitest' -import { getGroupedOpeningHours } from "./utils" +import { getGroupedOpeningHours } from './utils' -import type { RestaurantOpeningHours } from "@scandic-hotels/trpc/types/hotel" -import type { IntlShape } from "react-intl" +import type { RestaurantOpeningHours } from '@scandic-hotels/trpc/types/hotel' +import type { IntlShape } from 'react-intl' // Mock IntlShape for testing const mockIntl = { formatMessage: ({ defaultMessage }: { defaultMessage: string }) => { const messages: Record = { - Monday: "Monday", - Tuesday: "Tuesday", - Wednesday: "Wednesday", - Thursday: "Thursday", - Friday: "Friday", - Saturday: "Saturday", - Sunday: "Sunday", - Closed: "Closed", - "Always open": "Always open", + Monday: 'Monday', + Tuesday: 'Tuesday', + Wednesday: 'Wednesday', + Thursday: 'Thursday', + Friday: 'Friday', + Saturday: 'Saturday', + Sunday: 'Sunday', + Closed: 'Closed', + 'Always open': 'Always open', } return messages[defaultMessage] || defaultMessage }, } as IntlShape -describe("getGroupedOpeningHours", () => { - it("should group all days as closed", () => { +describe('getGroupedOpeningHours', () => { + it('should group all days as closed', () => { const allDaysClosed: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 1, }, tuesday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 2, }, wednesday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 3, }, thursday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 4, }, friday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 5, }, saturday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 6, }, sunday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 7, }, } const result = getGroupedOpeningHours(allDaysClosed, mockIntl) - expect(result).toEqual(["Monday-Sunday: Closed"]) + expect(result).toEqual(['Monday-Sunday: Closed']) }) - it("should group all days with same opening hours", () => { + it('should group all days with same opening hours', () => { const allDaysSameHours: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 1, }, tuesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 2, }, wednesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, }, thursday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 4, }, friday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 5, }, saturday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 6, }, sunday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 7, }, } const result = getGroupedOpeningHours(allDaysSameHours, mockIntl) - expect(result).toEqual(["Monday-Sunday: 09:00-17:00"]) + expect(result).toEqual(['Monday-Sunday: 09:00-17:00']) }) - it("should handle mixed opening hours", () => { + it('should handle mixed opening hours', () => { const mixedOpeningHours: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 1, }, tuesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 2, }, wednesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, }, thursday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 4, }, friday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 5, }, saturday: { - openingTime: "10:00", - closingTime: "15:00", + openingTime: '10:00', + closingTime: '15:00', isClosed: false, alwaysOpen: false, sortOrder: 6, @@ -192,55 +192,55 @@ describe("getGroupedOpeningHours", () => { sunday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 7, }, } const result = getGroupedOpeningHours(mixedOpeningHours, mockIntl) expect(result).toEqual([ - "Monday-Friday: 09:00-17:00", - "Saturday: 10:00-15:00", - "Sunday: Closed", + 'Monday-Friday: 09:00-17:00', + 'Saturday: 10:00-15:00', + 'Sunday: Closed', ]) }) - it("should handle always open days", () => { + it('should handle always open days', () => { const someAlwaysOpen: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { alwaysOpen: true, isClosed: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 1, }, tuesday: { alwaysOpen: true, isClosed: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 2, }, wednesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, }, thursday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 4, }, friday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 5, @@ -248,48 +248,48 @@ describe("getGroupedOpeningHours", () => { saturday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 6, }, sunday: { isClosed: true, alwaysOpen: false, - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', sortOrder: 7, }, } const result = getGroupedOpeningHours(someAlwaysOpen, mockIntl) expect(result).toEqual([ - "Monday-Tuesday: Always open", - "Wednesday-Friday: 09:00-17:00", - "Saturday-Sunday: Closed", + 'Monday-Tuesday: Always open', + 'Wednesday-Friday: 09:00-17:00', + 'Saturday-Sunday: Closed', ]) }) - it("should handle missing days", () => { + it('should handle missing days', () => { const missingDays: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 1, }, wednesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, }, friday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 5, @@ -297,34 +297,34 @@ describe("getGroupedOpeningHours", () => { } const result = getGroupedOpeningHours(missingDays, mockIntl) expect(result).toEqual([ - "Monday: 09:00-17:00", - "Wednesday: 09:00-17:00", - "Friday: 09:00-17:00", + 'Monday: 09:00-17:00', + 'Wednesday: 09:00-17:00', + 'Friday: 09:00-17:00', ]) }) - it("should not group non-consecutive days with same hours", () => { + it('should not group non-consecutive days with same hours', () => { const nonConsecutiveSameHours: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 1, }, tuesday: { - openingTime: "10:00", - closingTime: "18:00", + openingTime: '10:00', + closingTime: '18:00', isClosed: false, alwaysOpen: false, sortOrder: 2, }, wednesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, @@ -332,34 +332,34 @@ describe("getGroupedOpeningHours", () => { } const result = getGroupedOpeningHours(nonConsecutiveSameHours, mockIntl) expect(result).toEqual([ - "Monday: 09:00-17:00", - "Tuesday: 10:00-18:00", - "Wednesday: 09:00-17:00", + 'Monday: 09:00-17:00', + 'Tuesday: 10:00-18:00', + 'Wednesday: 09:00-17:00', ]) }) - it("should handle nullable opening/closing times", () => { + it('should handle nullable opening/closing times', () => { const nullableHours: RestaurantOpeningHours = { isActive: true, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "", - closingTime: "", + openingTime: '', + closingTime: '', isClosed: true, alwaysOpen: false, sortOrder: 1, }, tuesday: { - openingTime: "09:00", - closingTime: "", + openingTime: '09:00', + closingTime: '', isClosed: false, alwaysOpen: false, sortOrder: 2, }, wednesday: { - openingTime: "", - closingTime: "17:00", + openingTime: '', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 3, @@ -367,27 +367,27 @@ describe("getGroupedOpeningHours", () => { } const result = getGroupedOpeningHours(nullableHours, mockIntl) expect(result).toEqual([ - "Monday: Closed", + 'Monday: Closed', // Tuesday and Wednesday won't appear in the result because they have empty string values // that don't match any of the conditions in the getGroupedOpeningHours function ]) }) - it("should handle inactive restaurant hours", () => { + it('should handle inactive restaurant hours', () => { const inactiveHours: RestaurantOpeningHours = { isActive: false, - name: "Opening hours", - nameEnglish: "Opening hours", + name: 'Opening hours', + nameEnglish: 'Opening hours', monday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 1, }, tuesday: { - openingTime: "09:00", - closingTime: "17:00", + openingTime: '09:00', + closingTime: '17:00', isClosed: false, alwaysOpen: false, sortOrder: 2, @@ -396,6 +396,6 @@ describe("getGroupedOpeningHours", () => { // Even though isActive is false, the function should still process the hours // as it doesn't check for the isActive flag const result = getGroupedOpeningHours(inactiveHours, mockIntl) - expect(result).toEqual(["Monday-Tuesday: 09:00-17:00"]) + expect(result).toEqual(['Monday-Tuesday: 09:00-17:00']) }) }) diff --git a/packages/design-system/lib/components/OpeningHours/openingHoursTypes.ts b/packages/design-system/lib/components/OpeningHours/openingHoursTypes.ts new file mode 100644 index 000000000..1a611b8d3 --- /dev/null +++ b/packages/design-system/lib/components/OpeningHours/openingHoursTypes.ts @@ -0,0 +1,20 @@ +type OpeningHoursDetails = { + alwaysOpen: boolean + closingTime: string + isClosed: boolean + openingTime: string + sortOrder: number +} + +export type OpeningHours = { + name: string + isActive: boolean + nameEnglish: string + monday?: OpeningHoursDetails + tuesday?: OpeningHoursDetails + wednesday?: OpeningHoursDetails + thursday?: OpeningHoursDetails + friday?: OpeningHoursDetails + saturday?: OpeningHoursDetails + sunday?: OpeningHoursDetails +} diff --git a/apps/scandic-web/components/OpeningHours/utils.ts b/packages/design-system/lib/components/OpeningHours/utils.ts similarity index 61% rename from apps/scandic-web/components/OpeningHours/utils.ts rename to packages/design-system/lib/components/OpeningHours/utils.ts index 55766648f..97320d238 100644 --- a/apps/scandic-web/components/OpeningHours/utils.ts +++ b/packages/design-system/lib/components/OpeningHours/utils.ts @@ -1,61 +1,61 @@ -import { logger } from "@scandic-hotels/common/logger" +import { logger } from '@scandic-hotels/common/logger' -import type { RestaurantOpeningHours } from "@scandic-hotels/trpc/types/hotel" -import type { IntlShape } from "react-intl" +import type { IntlShape } from 'react-intl' +import { OpeningHours } from './openingHoursTypes' export function getGroupedOpeningHours( - openingHours: RestaurantOpeningHours, + openingHours: OpeningHours, intl: IntlShape ): string[] { const closedMsg = intl.formatMessage({ - defaultMessage: "Closed", + defaultMessage: 'Closed', }) const alwaysOpenMsg = intl.formatMessage({ - defaultMessage: "Always open", + defaultMessage: 'Always open', }) // In order const weekdayDefinitions = [ { - key: "monday", + key: 'monday', label: intl.formatMessage({ - defaultMessage: "Monday", + defaultMessage: 'Monday', }), }, { - key: "tuesday", + key: 'tuesday', label: intl.formatMessage({ - defaultMessage: "Tuesday", + defaultMessage: 'Tuesday', }), }, { - key: "wednesday", + key: 'wednesday', label: intl.formatMessage({ - defaultMessage: "Wednesday", + defaultMessage: 'Wednesday', }), }, { - key: "thursday", + key: 'thursday', label: intl.formatMessage({ - defaultMessage: "Thursday", + defaultMessage: 'Thursday', }), }, { - key: "friday", + key: 'friday', label: intl.formatMessage({ - defaultMessage: "Friday", + defaultMessage: 'Friday', }), }, { - key: "saturday", + key: 'saturday', label: intl.formatMessage({ - defaultMessage: "Saturday", + defaultMessage: 'Saturday', }), }, { - key: "sunday", + key: 'sunday', label: intl.formatMessage({ - defaultMessage: "Sunday", + defaultMessage: 'Sunday', }), }, ] as const @@ -63,7 +63,7 @@ export function getGroupedOpeningHours( const groupedOpeningHours: string[] = [] let rangeWeekdays: string[] = [] - let rangeValue = "" + let rangeValue = '' for (let i = 0, n = weekdayDefinitions.length; i < n; ++i) { const weekdayDefinition = weekdayDefinitions[i] @@ -91,7 +91,7 @@ export function getGroupedOpeningHours( } else { if (rangeValue) { groupedOpeningHours.push( - `${rangeWeekdays.join("-")}: ${rangeValue}` + `${rangeWeekdays.join('-')}: ${rangeValue}` ) } rangeValue = newValue @@ -100,11 +100,11 @@ export function getGroupedOpeningHours( } if (rangeValue && i === n - 1) { // Flush everything at the end - groupedOpeningHours.push(`${rangeWeekdays.join("-")}: ${rangeValue}`) + groupedOpeningHours.push(`${rangeWeekdays.join('-')}: ${rangeValue}`) } } else if (rangeValue) { - groupedOpeningHours.push(`${rangeWeekdays.join("-")}: ${rangeValue}`) - rangeValue = "" + groupedOpeningHours.push(`${rangeWeekdays.join('-')}: ${rangeValue}`) + rangeValue = '' rangeWeekdays = [] } } @@ -113,59 +113,59 @@ export function getGroupedOpeningHours( export function getTranslatedName(name: string, intl: IntlShape) { switch (name) { - case "Breakfast": + case 'Breakfast': return intl.formatMessage({ - defaultMessage: "Breakfast", + defaultMessage: 'Breakfast', }) - case "Brunch": + case 'Brunch': return intl.formatMessage({ - defaultMessage: "Brunch", + defaultMessage: 'Brunch', }) - case "After Work": + case 'After Work': return intl.formatMessage({ - defaultMessage: "After Work", + defaultMessage: 'After Work', }) - case "Cafe": + case 'Cafe': return intl.formatMessage({ - defaultMessage: "Cafe", + defaultMessage: 'Cafe', }) - case "Lunch": + case 'Lunch': return intl.formatMessage({ - defaultMessage: "Lunch", + defaultMessage: 'Lunch', }) - case "Dinner": + case 'Dinner': return intl.formatMessage({ - defaultMessage: "Dinner", + defaultMessage: 'Dinner', }) - case "Bar": + case 'Bar': return intl.formatMessage({ - defaultMessage: "Bar", + defaultMessage: 'Bar', }) - case "Snacks & drinks": + case 'Snacks & drinks': return intl.formatMessage({ - defaultMessage: "Snacks & drinks", + defaultMessage: 'Snacks & drinks', }) - case "Takeaway": + case 'Takeaway': return intl.formatMessage({ - defaultMessage: "Takeaway", + defaultMessage: 'Takeaway', }) - case "Changes": + case 'Changes': return intl.formatMessage({ - defaultMessage: "Changes", + defaultMessage: 'Changes', }) - case "Live events": + case 'Live events': return intl.formatMessage({ - defaultMessage: "Live events", + defaultMessage: 'Live events', }) - case "Terrace": + case 'Terrace': return intl.formatMessage({ - defaultMessage: "Terrace", + defaultMessage: 'Terrace', }) default: logger.warn(`Unsupported name given: ${name}`) return intl.formatMessage({ - defaultMessage: "N/A", + defaultMessage: 'N/A', }) } } diff --git a/packages/design-system/package.json b/packages/design-system/package.json index 7750ef4ee..74f0071c2 100644 --- a/packages/design-system/package.json +++ b/packages/design-system/package.json @@ -31,6 +31,7 @@ "./Label": "./lib/components/Label/index.tsx", "./Link": "./lib/components/Link/index.tsx", "./OldDSButton": "./lib/components/OldDSButton/index.tsx", + "./OpeningHours": "./lib/components/OpeningHours/index.tsx", "./Select": "./lib/components/Select/index.tsx", "./SkeletonShimmer": "./lib/components/SkeletonShimmer/index.tsx", "./SidePeek": "./lib/components/SidePeek/index.tsx",