diff --git a/packages/booking-flow/lib/components/BookingFlowInput/errors.ts b/packages/booking-flow/lib/components/BookingFlowInput/errors.ts index 92379cd03..744d1ae57 100644 --- a/packages/booking-flow/lib/components/BookingFlowInput/errors.ts +++ b/packages/booking-flow/lib/components/BookingFlowInput/errors.ts @@ -1,6 +1,11 @@ import { logger } from "@scandic-hotels/common/logger" +import { phoneErrors } from "@scandic-hotels/common/utils/zod/phoneValidator" import { bookingWidgetErrors } from "../BookingWidget/BookingWidgetForm/schema" +import { + multiroomErrors, + roomOneErrors, +} from "../EnterDetails/enterDetailsErrors" import type { IntlShape } from "react-intl" @@ -46,6 +51,86 @@ export function getErrorMessage(intl: IntlShape, errorCode?: string) { defaultMessage: "Reward nights can't be combined with codes or vouchers.", }) + case phoneErrors.PHONE_NUMBER_TOO_SHORT: + return intl.formatMessage({ + defaultMessage: "The number you have entered is too short", + }) + case multiroomErrors.FIRST_NAME_REQUIRED: + case roomOneErrors.FIRST_NAME_REQUIRED: + return intl.formatMessage({ + defaultMessage: "First name is required", + }) + case multiroomErrors.FIRST_NAME_SPECIAL_CHARACTERS: + case roomOneErrors.FIRST_NAME_SPECIAL_CHARACTERS: + return intl.formatMessage({ + defaultMessage: "First name can't contain any special characters", + }) + case multiroomErrors.LAST_NAME_REQUIRED: + case roomOneErrors.LAST_NAME_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Last name is required", + }) + case multiroomErrors.LAST_NAME_SPECIAL_CHARACTERS: + case roomOneErrors.LAST_NAME_SPECIAL_CHARACTERS: + return intl.formatMessage({ + defaultMessage: "Last name can't contain any special characters", + }) + case multiroomErrors.FIRST_AND_LAST_NAME_UNIQUE: + return intl.formatMessage({ + defaultMessage: + "First and last name can't be the same in two different rooms", + }) + case multiroomErrors.EMAIL_REQUIRED: + case roomOneErrors.EMAIL_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Email address is required", + }) + case multiroomErrors.COUNTRY_REQUIRED: + case roomOneErrors.COUNTRY_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Country is required", + }) + case multiroomErrors.PHONE_REQUIRED: + case roomOneErrors.PHONE_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Phone is required", + }) + case multiroomErrors.PHONE_REQUESTED: + case roomOneErrors.PHONE_REQUESTED: + return intl.formatMessage({ + defaultMessage: "Please enter a valid phone number", + }) + case roomOneErrors.BIRTH_DATE_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Date of birth is required", + }) + case roomOneErrors.BIRTH_DATE_AGE_18: + return intl.formatMessage({ + defaultMessage: "Must be at least 18 years of age to continue", + }) + case roomOneErrors.ZIP_CODE_INVALID: + return intl.formatMessage({ + defaultMessage: "The postal code can only contain numbers and letters", + }) + case roomOneErrors.ZIP_CODE_REQUIRED: + return intl.formatMessage({ + defaultMessage: "Zip code is required", + }) + case multiroomErrors.MEMBERSHIP_NO_ONLY_DIGITS: + case roomOneErrors.MEMBERSHIP_NO_ONLY_DIGITS: + return intl.formatMessage({ + defaultMessage: "Only digits are allowed", + }) + case multiroomErrors.MEMBERSHIP_NO_INVALID: + case roomOneErrors.MEMBERSHIP_NO_INVALID: + return intl.formatMessage({ + defaultMessage: "Invalid membership number format", + }) + case multiroomErrors.MEMBERSHIP_NO_UNIQUE: + return intl.formatMessage({ + defaultMessage: + "Membership number can't be the same for two different rooms", + }) default: logger.warn("Error code not supported:", errorCode) return errorCode