@roomstay/frontend 2.6.32 → 2.6.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/166.bundle.js +1 -1
  2. package/dist/370.bundle.js +1 -1
  3. package/dist/449.bundle.js +1 -1
  4. package/dist/736.bundle.js +1 -1
  5. package/dist/903.bundle.js +1 -1
  6. package/dist/927.bundle.js +1 -1
  7. package/dist/e2e/canChangeCurrency.spec.d.ts +1 -0
  8. package/dist/e2e/canChangeCurrency.spec.js +59 -0
  9. package/dist/e2e/canChangeCurrency.spec.js.map +1 -0
  10. package/dist/e2e/canCheckout.spec.d.ts +1 -0
  11. package/dist/e2e/canCheckout.spec.js +205 -0
  12. package/dist/e2e/canCheckout.spec.js.map +1 -0
  13. package/dist/e2e/canViewFindReservationsPage.spec.d.ts +1 -0
  14. package/dist/e2e/canViewFindReservationsPage.spec.js +37 -0
  15. package/dist/e2e/canViewFindReservationsPage.spec.js.map +1 -0
  16. package/dist/e2e/canViewHotelnfoPage.spec.d.ts +1 -0
  17. package/dist/e2e/canViewHotelnfoPage.spec.js +42 -0
  18. package/dist/e2e/canViewHotelnfoPage.spec.js.map +1 -0
  19. package/dist/e2e/frontendTestConfigs.d.ts +7 -0
  20. package/dist/e2e/frontendTestConfigs.js +31 -0
  21. package/dist/e2e/frontendTestConfigs.js.map +1 -0
  22. package/dist/e2e/frontendTestData.d.ts +15 -0
  23. package/dist/e2e/frontendTestData.js +18 -0
  24. package/dist/e2e/frontendTestData.js.map +1 -0
  25. package/dist/e2e/goBackAndCheckoutAgain.spec.js +1 -0
  26. package/dist/e2e/goBackAndCheckoutAgain.spec.js.map +1 -1
  27. package/dist/e2e/helpers/playwrightHelpers.d.ts +2 -0
  28. package/dist/e2e/helpers/playwrightHelpers.js +27 -0
  29. package/dist/e2e/helpers/playwrightHelpers.js.map +1 -0
  30. package/dist/main.bundle.js +1 -1
  31. package/dist/src/animations/AutoAutoHeight.js +4 -2
  32. package/dist/src/animations/AutoAutoHeight.js.map +1 -1
  33. package/dist/src/api/AvailabilityAPI.d.ts +10 -1
  34. package/dist/src/api/AvailabilityAPI.js +14 -2
  35. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  36. package/dist/src/api/HotelAPI.js +3 -0
  37. package/dist/src/api/HotelAPI.js.map +1 -1
  38. package/dist/src/components/User/Forms/SignUpForm.js +1 -1
  39. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  40. package/dist/src/components/generic/HtmlContentViewer.d.ts +3 -0
  41. package/dist/src/components/generic/HtmlContentViewer.js +44 -0
  42. package/dist/src/components/generic/HtmlContentViewer.js.map +1 -0
  43. package/dist/src/components/generic/Icon/Icon.d.ts +5 -93
  44. package/dist/src/components/generic/Icon/Icon.js +6 -124
  45. package/dist/src/components/generic/Icon/Icon.js.map +1 -1
  46. package/dist/src/components/generic/date/DatePicker.js +16 -3
  47. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  48. package/dist/src/components/generic/date/DatePickerDay.js +2 -2
  49. package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
  50. package/dist/src/components/generic/modal/SimpleModal.js +0 -22
  51. package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
  52. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +1 -8
  53. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
  54. package/dist/src/components/members/SignInModal/MemberSignInModal.js +2 -2
  55. package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
  56. package/dist/src/components/steps/MinimumNightStayPill.js +2 -2
  57. package/dist/src/components/steps/MinimumNightStayPill.js.map +1 -1
  58. package/dist/src/components/steps/confirmation/RoomContactDetails.js +6 -6
  59. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  60. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  61. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +3 -2
  62. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
  63. package/dist/src/components/steps/date/PeoplePicker.js +5 -4
  64. package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
  65. package/dist/src/components/steps/date/StepDatePricePerRoom.js +2 -2
  66. package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
  67. package/dist/src/components/steps/hotel/HotelCard.js +8 -6
  68. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  69. package/dist/src/components/steps/hotel/HotelCardModal.js +8 -6
  70. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  71. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js +3 -5
  72. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js.map +1 -1
  73. package/dist/src/components/steps/room/AvailableUpgradesModal.js +3 -3
  74. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  75. package/dist/src/components/steps/room/LargeRoomCard.js +3 -1
  76. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  77. package/dist/src/components/steps/room/NoRoomsFoundBlock.js +2 -2
  78. package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
  79. package/dist/src/components/steps/room/RoomListCrossSellBlock.js +3 -3
  80. package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
  81. package/dist/src/components/steps/room/RoomModalPerkRow.js +3 -5
  82. package/dist/src/components/steps/room/RoomModalPerkRow.js.map +1 -1
  83. package/dist/src/components/steps/room/StepRoomBestRateAlert.js +13 -2
  84. package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
  85. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js +13 -2
  86. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js.map +1 -1
  87. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +4 -6
  88. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  89. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +16 -10
  90. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  91. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +1 -1
  92. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  93. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +3 -2
  94. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
  95. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +3 -1
  96. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  97. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +1 -1
  98. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  99. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js +6 -5
  100. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js.map +1 -1
  101. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +3 -2
  102. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  103. package/dist/src/components/summary/BEMobileSummaryModal.js +1 -1
  104. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  105. package/dist/src/components/summary/BESummary.js +4 -4
  106. package/dist/src/components/summary/BESummary.js.map +1 -1
  107. package/dist/src/components/summary/BESummaryPerkBlock.js +4 -3
  108. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  109. package/dist/src/components/summary/BESummaryRoomRow.js +2 -3
  110. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  111. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +18 -11
  112. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  113. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -1
  114. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  115. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +94 -32
  116. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  117. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +0 -1
  118. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  119. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +20 -12
  120. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  121. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +5 -3
  122. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  123. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +1 -1
  124. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  125. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +2 -2
  126. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  127. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +3 -4
  128. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  129. package/dist/src/hooks/useCalendarNightStay.js +2 -2
  130. package/dist/src/hooks/useCalendarNightStay.js.map +1 -1
  131. package/dist/src/hooks/useSignedInMember.d.ts +7 -0
  132. package/dist/src/hooks/{useExternalMember.js → useSignedInMember.js} +7 -5
  133. package/dist/src/hooks/useSignedInMember.js.map +1 -0
  134. package/dist/src/index.d.ts +1 -1
  135. package/dist/src/index.js +3 -3
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/models/Api/HotelDTO.d.ts +1 -1
  138. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  139. package/dist/src/models/Api/ReservationsDTO.d.ts +1 -0
  140. package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
  141. package/dist/src/models/BasketRow.d.ts +6 -1
  142. package/dist/src/models/BasketRow.js +21 -3
  143. package/dist/src/models/BasketRow.js.map +1 -1
  144. package/dist/src/models/Client/Hotel/Hotel.d.ts +4 -1
  145. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  146. package/dist/src/models/Client/Hotel/HotelPerk.d.ts +1 -1
  147. package/dist/src/models/Client/Hotel/HotelPerk.js.map +1 -1
  148. package/dist/src/pages/findReservation/FindReservationResults.js +22 -4
  149. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  150. package/dist/src/pages/hotel/HotelInfo.js +2 -2
  151. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  152. package/dist/src/pages/steps/StepDate/StepDateComponent.d.ts +2 -2
  153. package/dist/src/pages/steps/StepDate/StepDateComponent.js +14 -7
  154. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  155. package/dist/src/translations/Translation.d.ts +10 -0
  156. package/dist/src/translations/Translation.js +10 -0
  157. package/dist/src/translations/Translation.js.map +1 -1
  158. package/dist/src/translations/languages/en-gb.js +11 -1
  159. package/dist/src/translations/languages/en-gb.js.map +1 -1
  160. package/dist/src/util/HotelPerkHelper.d.ts +3 -0
  161. package/dist/src/util/HotelPerkHelper.js +46 -0
  162. package/dist/src/util/HotelPerkHelper.js.map +1 -0
  163. package/dist/test.bundle.js +1 -1
  164. package/dist/vendors.bundle.js +1 -1
  165. package/dist/vendors.bundle.js.LICENSE.txt +2 -0
  166. package/package.json +6 -3
  167. package/dist/src/hooks/useExternalMember.d.ts +0 -5
  168. package/dist/src/hooks/useExternalMember.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalMemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/InternalMemberSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport { MemberOnlyModalViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport * as Sentry from '@sentry/browser';\nimport { ErrorHandler } from 'contexts/ErrorContext';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport InputGroup from '@/components/generic/InputGroup/InputGroup';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport { InternalMemberSignInInputs } from '@/components/members/SignInModal/InternalMemberSignInModal.types';\nimport ImageProvider, { ImageSize } from '@/providers/ImageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\nimport { EMAIL_REGEX } from '@/util/Validation';\n\ninterface MemberSignInModalProps {\n onClose?: () => void;\n isOpen?: boolean;\n image?: string;\n}\n\nexport default function InternalMemberSignInModal(props: MemberSignInModalProps) {\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const [isLoading, setIsLoading] = useState(false);\n const [showErrors, setShowErrors] = useState(false);\n\n const [captchaScriptLoaded, setCaptchaScriptLoaded] = useState(false);\n const [captchaRendered, setCaptchaRendered] = useState(false);\n const [reCaptchaSecret, setReCaptchaSecret] = useState<string | null>(null);\n const [captchaError, setCaptchaError] = useState<string | null | undefined>(null);\n\n const captchaRef = useRef(null);\n\n const shouldLoadCaptcha = !!hotel?.googleReCaptcha?.loadForMembers && !!hotel?.googleReCaptcha?.siteKey;\n\n const MemberOnlyModalDefaultInputs: InternalMemberSignInInputs = useMemo(() => {\n return {\n Lines: [\n {\n Dimension: '2/2',\n Inputs: [\n {\n name: 'FirstName',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.FirstName),\n isRequired: true,\n },\n {\n name: 'LastName',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.LastName),\n isRequired: true,\n },\n ],\n },\n {\n Dimension: '1',\n Inputs: [\n {\n name: 'Email',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.Email.Label),\n isRequired: true,\n validate: (input: string) => {\n if (!input.match(EMAIL_REGEX)) {\n return t(Translation.MemberOnlyPopup.Fields.Email.Validation.Invalid) as string;\n }\n return true;\n },\n },\n ],\n },\n ],\n };\n }, []);\n\n const memberImage = useMemo(() => {\n if (props.image) {\n return props.image;\n }\n\n if (hotel?.heroImage) {\n return hotel?.heroImage;\n }\n }, [hotel?.heroImage]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n if (props.isOpen) {\n const event = new MemberOnlyModalViewEvent();\n raise(event);\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n let cancelled = false;\n\n if (shouldLoadCaptcha) {\n RoomstayThemeEngine.loadScript('https://www.google.com/recaptcha/api.js', 'Google ReCaptcha').then(() => {\n try {\n (window as any).grecaptcha.ready(() => {\n if (!cancelled) {\n setCaptchaScriptLoaded(true);\n }\n });\n } catch (ex) {\n console.log('Captcha loaded too quickly, will try again');\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [hotel]);\n\n useEffect(() => {\n if (shouldLoadCaptcha && captchaScriptLoaded && captchaRef?.current && !captchaRendered && props.isOpen) {\n try {\n setTimeout(() => {\n const captchaCallback = (secret: string) => {\n setReCaptchaSecret(secret);\n setCaptchaError(undefined);\n };\n\n (window as any).grecaptcha.render(captchaRef.current, {\n sitekey: hotel.googleReCaptcha?.siteKey,\n callback: captchaCallback,\n });\n\n setCaptchaRendered(true);\n }, 5);\n } catch (ex) {\n console.log(ex);\n\n Sentry.captureException(ex);\n }\n }\n }, [props.isOpen, captchaScriptLoaded, captchaRef, captchaRef?.current, captchaRendered]);\n\n useEffect(() => {\n if (!props.isOpen) {\n setReCaptchaSecret(null);\n setCaptchaError(null);\n setCaptchaRendered(false);\n }\n }, [props.isOpen]);\n\n const getValidationClass = (name: string) => {\n if (errors && (formState.touchedFields[name] || showErrors)) {\n if (errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n const methods = useForm({\n mode: 'onChange',\n });\n\n const { formState, register } = methods;\n const errors = methods.formState.errors;\n\n const onSubmit = async () => {\n if (shouldLoadCaptcha && (!reCaptchaSecret || reCaptchaSecret === '')) {\n setCaptchaError(t(Translation.MemberOnlyPopup.Errors.ReCaptcha.PleaseTick));\n return;\n }\n\n await signUpMember();\n };\n\n const signUpMember = async () => {\n setIsLoading(true);\n const { FirstName, LastName, Email, ...extra } = methods.getValues();\n\n if (!FirstName || !LastName || !Email) {\n setIsLoading(false);\n ErrorHandler.add({\n title: t(Translation.MemberOnlyPopup.Errors.RequiredFields.Title),\n message: t(Translation.MemberOnlyPopup.Errors.RequiredFields.Message),\n });\n\n return;\n }\n\n try {\n const extraFields = Object.keys(extra).map((extraFieldKey: string) => {\n return { name: extraFieldKey, value: extra[extraFieldKey] };\n });\n\n const response = await API.Member.addMember(FirstName, LastName, Email, extraFields, hotel?.hotelID as string, reCaptchaSecret as string);\n\n if (response.error) {\n setCaptchaError(t(Translation.MemberOnlyPopup.Errors.ReCaptcha.ValidationError));\n } else {\n ccx.signUserIn({ saveState: true, memberNumber: Email, firstName: FirstName, lastName: LastName, email: Email });\n\n if (hotel?.memberOnlyPromoCode && !ccx.memberOnlyModalPromotion?.memberOnlyDisableDefaultPromo) {\n basketContext.currentBasketRows?.forEach((row) => {\n row.setPromoCode(hotel?.memberOnlyPromoCode as string);\n basketContext.updateBasketRow(row);\n });\n }\n }\n } catch (e) {\n ErrorHandler.add({\n title: t(Translation.MemberOnlyPopup.Errors.SignupFailed.Title),\n message: t(Translation.MemberOnlyPopup.Errors.SignupFailed.Message),\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n const modalInputs: InternalMemberSignInInputs = hotel?.memberOnlySignupInputs ?? MemberOnlyModalDefaultInputs;\n\n const loadingOnClose = () => {\n setIsLoading(false);\n if (props.onClose) {\n props.onClose();\n }\n };\n const buttonOnClickHandler = async () => {\n await methods.handleSubmit(onSubmit)();\n setShowErrors(true);\n\n return false;\n };\n\n const modalTitle =\n ccx?.memberOnlyModalPromotion?.memberOnlyModalTitle ??\n t(Translation.MemberOnlyPopup.Headline, {\n companyShort: ccx?.companyShort,\n });\n\n const modalSubtitle = ccx?.memberOnlyModalPromotion?.memberOnlyModalSubtitle ?? t(Translation.MemberOnlyPopup.Subtitle);\n const modalButtonText = ccx?.memberOnlyModalPromotion?.memberOnlyModalButtonText ?? t(Translation.MemberOnlyPopup.SubmitButtonText);\n const modalPrimaryColor = hotel?.memberOnlyModalUsePrimaryColor ? Color.Accent : Color.Success;\n\n return (\n <SimpleModal open={props.isOpen} onClose={loadingOnClose} size={SimpleModalSize.Normal} alignCenter>\n <div className=\"row\">\n <div\n className=\"col-md-6 u-mh-none\"\n style={{\n background: 'url(\"' + (memberImage && ImageProvider.resizeImage(memberImage, ImageSize.Original)) + '\")',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n }}\n />\n <div className=\"col-md-6\">\n <div className=\"u-pad u-pad-heavy\">\n <div className=\"u-marg-bottom-half\">\n <Icon\n icon={IconType.Money}\n size=\"24px\"\n color={modalPrimaryColor}\n useColorAsBackground={hotel?.memberOnlyModalUsePrimaryColor}\n backgroundColor={Color.SuccessTint}\n />\n </div>\n <div className=\"u-marg-bottom-half\">\n <Headline bold color={modalPrimaryColor}>\n <div\n style={{ color: modalPrimaryColor }}\n dangerouslySetInnerHTML={{\n __html: modalTitle as string,\n }}\n ></div>\n </Headline>\n </div>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: modalSubtitle as string }}></span>\n </Text>\n </div>\n <FormProvider {...methods}>\n <div>\n {modalInputs.Lines.map((inputLine, lineIndex) => {\n return (\n <div className=\"u-marg-bottom-xxx\" key={lineIndex}>\n <InputGroup dimensions={inputLine.Dimension}>\n {inputLine.Inputs.map((input, inputIndex) => {\n switch (input.type) {\n case 'TextBox':\n return (\n <TextBox\n key={inputIndex}\n wide\n placeholder={input.placeholder}\n required={input.isRequired}\n validationStatus={getValidationClass(input.name)}\n {...register(input.name, {\n required: input.isRequired,\n validate: input.validate,\n })}\n />\n );\n }\n })}\n </InputGroup>\n </div>\n );\n })}\n </div>\n <div className=\"u-marg-top--light\" style={{ marginBottom: '45px' }}>\n {captchaScriptLoaded && (\n <>\n {captchaError && (\n <Text type={TextType.Label} color={Color.Alert}>\n {captchaError}\n </Text>\n )}\n <div ref={captchaRef} className=\"u-marg-bottom\"></div>\n </>\n )}\n <BEButton\n size=\"normal\"\n filled\n primary={hotel?.memberOnlyModalUsePrimaryColor}\n success={!hotel?.memberOnlyModalUsePrimaryColor}\n isLoading={isLoading}\n stopIconAnimation\n icon={context.screenSize > ScreenSize.Mobile ? IconType.ArrowRight : undefined}\n onClick={buttonOnClickHandler}\n >\n {modalButtonText}\n </BEButton>\n </div>\n </FormProvider>\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.AgreeToReceiveDeals, { companyShort: ccx?.companyShort }) }}></span>\n </Text>{' '}\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.UnsubscribeAnytime) }}></span>\n </Text>\n </div>\n </div>\n </div>\n </SimpleModal>\n );\n}\n"]}
1
+ {"version":3,"file":"InternalMemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/InternalMemberSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport { MemberOnlyModalViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport * as Sentry from '@sentry/browser';\nimport { ErrorHandler } from 'contexts/ErrorContext';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport InputGroup from '@/components/generic/InputGroup/InputGroup';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport { InternalMemberSignInInputs } from '@/components/members/SignInModal/InternalMemberSignInModal.types';\nimport ImageProvider, { ImageSize } from '@/providers/ImageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\nimport { EMAIL_REGEX } from '@/util/Validation';\n\ninterface MemberSignInModalProps {\n onClose?: () => void;\n isOpen?: boolean;\n image?: string;\n}\n\nexport default function InternalMemberSignInModal(props: MemberSignInModalProps) {\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const [isLoading, setIsLoading] = useState(false);\n const [showErrors, setShowErrors] = useState(false);\n\n const [captchaScriptLoaded, setCaptchaScriptLoaded] = useState(false);\n const [captchaRendered, setCaptchaRendered] = useState(false);\n const [reCaptchaSecret, setReCaptchaSecret] = useState<string | null>(null);\n const [captchaError, setCaptchaError] = useState<string | null | undefined>(null);\n\n const captchaRef = useRef(null);\n\n const shouldLoadCaptcha = !!hotel?.googleReCaptcha?.loadForMembers && !!hotel?.googleReCaptcha?.siteKey;\n\n const MemberOnlyModalDefaultInputs: InternalMemberSignInInputs = useMemo(() => {\n return {\n Lines: [\n {\n Dimension: '2/2',\n Inputs: [\n {\n name: 'FirstName',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.FirstName),\n isRequired: true,\n },\n {\n name: 'LastName',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.LastName),\n isRequired: true,\n },\n ],\n },\n {\n Dimension: '1',\n Inputs: [\n {\n name: 'Email',\n type: 'TextBox',\n placeholder: t(Translation.MemberOnlyPopup.Fields.Email.Label),\n isRequired: true,\n validate: (input: string) => {\n if (!input.match(EMAIL_REGEX)) {\n return t(Translation.MemberOnlyPopup.Fields.Email.Validation.Invalid) as string;\n }\n return true;\n },\n },\n ],\n },\n ],\n };\n }, []);\n\n const memberImage = useMemo(() => {\n if (props.image) {\n return props.image;\n }\n\n if (hotel?.heroImage) {\n return hotel?.heroImage;\n }\n }, [hotel?.heroImage]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n if (props.isOpen) {\n const event = new MemberOnlyModalViewEvent();\n raise(event);\n }\n }, [props.isOpen]);\n\n useEffect(() => {\n let cancelled = false;\n\n if (shouldLoadCaptcha) {\n RoomstayThemeEngine.loadScript('https://www.google.com/recaptcha/api.js', 'Google ReCaptcha').then(() => {\n try {\n (window as any).grecaptcha.ready(() => {\n if (!cancelled) {\n setCaptchaScriptLoaded(true);\n }\n });\n } catch (ex) {\n console.log('Captcha loaded too quickly, will try again');\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [hotel]);\n\n useEffect(() => {\n if (shouldLoadCaptcha && captchaScriptLoaded && captchaRef?.current && !captchaRendered && props.isOpen) {\n try {\n setTimeout(() => {\n const captchaCallback = (secret: string) => {\n setReCaptchaSecret(secret);\n setCaptchaError(undefined);\n };\n\n (window as any).grecaptcha.render(captchaRef.current, {\n sitekey: hotel.googleReCaptcha?.siteKey,\n callback: captchaCallback,\n });\n\n setCaptchaRendered(true);\n }, 5);\n } catch (ex) {\n console.log(ex);\n\n Sentry.captureException(ex);\n }\n }\n }, [props.isOpen, captchaScriptLoaded, captchaRef, captchaRef?.current, captchaRendered]);\n\n useEffect(() => {\n if (!props.isOpen) {\n setReCaptchaSecret(null);\n setCaptchaError(null);\n setCaptchaRendered(false);\n }\n }, [props.isOpen]);\n\n const getValidationClass = (name: string) => {\n if (errors && (formState.touchedFields[name] || showErrors)) {\n if (errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n const methods = useForm({\n mode: 'onChange',\n });\n\n const { formState, register } = methods;\n const errors = methods.formState.errors;\n\n const onSubmit = async () => {\n if (shouldLoadCaptcha && (!reCaptchaSecret || reCaptchaSecret === '')) {\n setCaptchaError(t(Translation.MemberOnlyPopup.Errors.ReCaptcha.PleaseTick));\n return;\n }\n\n await signUpMember();\n };\n\n const signUpMember = async () => {\n setIsLoading(true);\n const { FirstName, LastName, Email, ...extra } = methods.getValues();\n\n if (!FirstName || !LastName || !Email) {\n setIsLoading(false);\n ErrorHandler.add({\n title: t(Translation.MemberOnlyPopup.Errors.RequiredFields.Title),\n message: t(Translation.MemberOnlyPopup.Errors.RequiredFields.Message),\n });\n\n return;\n }\n\n try {\n const extraFields = Object.keys(extra).map((extraFieldKey: string) => {\n return { name: extraFieldKey, value: extra[extraFieldKey] };\n });\n\n const response = await API.Member.addMember(FirstName, LastName, Email, extraFields, hotel?.hotelID as string, reCaptchaSecret as string);\n\n if (response.error) {\n setCaptchaError(t(Translation.MemberOnlyPopup.Errors.ReCaptcha.ValidationError));\n } else {\n ccx.signUserIn({ saveState: true, memberNumber: Email, firstName: FirstName, lastName: LastName, email: Email });\n }\n } catch (e) {\n ErrorHandler.add({\n title: t(Translation.MemberOnlyPopup.Errors.SignupFailed.Title),\n message: t(Translation.MemberOnlyPopup.Errors.SignupFailed.Message),\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n const modalInputs: InternalMemberSignInInputs = hotel?.memberOnlySignupInputs ?? MemberOnlyModalDefaultInputs;\n\n const loadingOnClose = () => {\n setIsLoading(false);\n if (props.onClose) {\n props.onClose();\n }\n };\n const buttonOnClickHandler = async () => {\n await methods.handleSubmit(onSubmit)();\n setShowErrors(true);\n\n return false;\n };\n\n const modalTitle =\n ccx?.memberOnlyModalPromotion?.memberOnlyModalTitle ??\n t(Translation.MemberOnlyPopup.Headline, {\n companyShort: ccx?.companyShort,\n });\n\n const modalSubtitle = ccx?.memberOnlyModalPromotion?.memberOnlyModalSubtitle ?? t(Translation.MemberOnlyPopup.Subtitle);\n const modalButtonText = ccx?.memberOnlyModalPromotion?.memberOnlyModalButtonText ?? t(Translation.MemberOnlyPopup.SubmitButtonText);\n const modalPrimaryColor = hotel?.memberOnlyModalUsePrimaryColor ? Color.Accent : Color.Success;\n\n return (\n <SimpleModal open={props.isOpen} onClose={loadingOnClose} size={SimpleModalSize.Normal} alignCenter>\n <div className=\"row\">\n <div\n className=\"col-md-6 u-mh-none\"\n style={{\n background: 'url(\"' + (memberImage && ImageProvider.resizeImage(memberImage, ImageSize.Original)) + '\")',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n }}\n />\n <div className=\"col-md-6\">\n <div className=\"u-pad u-pad-heavy\">\n <div className=\"u-marg-bottom-half\">\n <Icon\n icon={IconType.Money}\n size=\"24px\"\n color={modalPrimaryColor}\n useColorAsBackground={hotel?.memberOnlyModalUsePrimaryColor}\n backgroundColor={Color.SuccessTint}\n />\n </div>\n <div className=\"u-marg-bottom-half\">\n <Headline bold color={modalPrimaryColor}>\n <div\n style={{ color: modalPrimaryColor }}\n dangerouslySetInnerHTML={{\n __html: modalTitle as string,\n }}\n ></div>\n </Headline>\n </div>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: modalSubtitle as string }}></span>\n </Text>\n </div>\n <FormProvider {...methods}>\n <div>\n {modalInputs.Lines.map((inputLine, lineIndex) => {\n return (\n <div className=\"u-marg-bottom-xxx\" key={lineIndex}>\n <InputGroup dimensions={inputLine.Dimension}>\n {inputLine.Inputs.map((input, inputIndex) => {\n switch (input.type) {\n case 'TextBox':\n return (\n <TextBox\n key={inputIndex}\n wide\n placeholder={input.placeholder}\n required={input.isRequired}\n validationStatus={getValidationClass(input.name)}\n {...register(input.name, {\n required: input.isRequired,\n validate: input.validate,\n })}\n />\n );\n }\n })}\n </InputGroup>\n </div>\n );\n })}\n </div>\n <div className=\"u-marg-top--light\" style={{ marginBottom: '45px' }}>\n {captchaScriptLoaded && (\n <>\n {captchaError && (\n <Text type={TextType.Label} color={Color.Alert}>\n {captchaError}\n </Text>\n )}\n <div ref={captchaRef} className=\"u-marg-bottom\"></div>\n </>\n )}\n <BEButton\n size=\"normal\"\n filled\n primary={hotel?.memberOnlyModalUsePrimaryColor}\n success={!hotel?.memberOnlyModalUsePrimaryColor}\n isLoading={isLoading}\n stopIconAnimation\n icon={context.screenSize > ScreenSize.Mobile ? IconType.ArrowRight : undefined}\n onClick={buttonOnClickHandler}\n >\n {modalButtonText}\n </BEButton>\n </div>\n </FormProvider>\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.AgreeToReceiveDeals, { companyShort: ccx?.companyShort }) }}></span>\n </Text>{' '}\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.UnsubscribeAnytime) }}></span>\n </Text>\n </div>\n </div>\n </div>\n </SimpleModal>\n );\n}\n"]}
@@ -32,7 +32,7 @@ const hooks_1 = require("../../../hooks/index.js");
32
32
  const core_1 = require("@roomstay/core");
33
33
  const react_1 = __importStar(require("react"));
34
34
  const react_i18next_1 = require("react-i18next");
35
- const useExternalMember_1 = require("../../../hooks/useExternalMember");
35
+ const useSignedInMember_1 = require("../../../hooks/useSignedInMember");
36
36
  const RoomstayThemeEngine_1 = __importDefault(require("../../../providers/RoomstayThemeEngine"));
37
37
  const Translation_1 = require("../../../translations/Translation");
38
38
  const EmailAndFullnameMemberModal_1 = __importDefault(require("./EmailAndFullnameMemberModal"));
@@ -40,7 +40,7 @@ const EmailPasswordMemberModal_1 = __importDefault(require("./EmailPasswordMembe
40
40
  const FamilyNameMemberModal_1 = __importDefault(require("./FamilyNameMemberModal"));
41
41
  const InternalMemberSignInModal_1 = __importDefault(require("./InternalMemberSignInModal"));
42
42
  const MemberSignInModal = () => {
43
- const { externalMemberType, isExternalMemberHotel } = (0, useExternalMember_1.useExternalMember)();
43
+ const { externalMemberType, isExternalMemberHotel } = (0, useSignedInMember_1.useSignedInMember)();
44
44
  const { isSigningIn, closeMemberSignupModal, memberOnlyModalPromotion } = (0, react_1.useContext)(contexts_1.CompanyContext);
45
45
  const { t } = (0, react_i18next_1.useTranslation)();
46
46
  const { hotel } = (0, hooks_1.useCurrentHotel)();
@@ -1 +1 @@
1
- {"version":3,"file":"MemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/MemberSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { EIntegration } from '@roomstay/core';\nimport React, { useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useExternalMember } from '@/hooks/useExternalMember';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Translation } from '@/translations/Translation';\n\nimport EmailAndFullnameMemberModal from './EmailAndFullnameMemberModal';\nimport EmailPasswordMemberModal from './EmailPasswordMemberModal';\nimport FamilyNameMemberModal from './FamilyNameMemberModal';\nimport InternalMemberSignInModal from './InternalMemberSignInModal';\n\nexport const MemberSignInModal = () => {\n const { externalMemberType, isExternalMemberHotel } = useExternalMember();\n const { isSigningIn, closeMemberSignupModal, memberOnlyModalPromotion } = useContext(CompanyContext);\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const memberLogo = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImage) {\n return memberOnlyModalPromotion.memberOnlyModalImage;\n }\n\n if (hotel?.memberOnlyModalImage) {\n return hotel.memberOnlyModalImage;\n }\n }, [hotel?.memberOnlyModalImage, memberOnlyModalPromotion?.memberOnlyModalImage]);\n\n const imageSize = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImageSize) {\n return memberOnlyModalPromotion.memberOnlyModalImageSize;\n }\n\n if (hotel?.memberOnlyModalImageSize) {\n return hotel.memberOnlyModalImageSize;\n }\n }, [hotel?.memberOnlyModalImageSize, memberOnlyModalPromotion?.memberOnlyModalImageSize]);\n\n if (isExternalMemberHotel) {\n switch (externalMemberType) {\n case EIntegration.Big4:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Big4Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('big4-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.RmsTop10:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Top10:\n return (\n <EmailPasswordMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Gday:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.GDayTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('gday-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Salesforce:\n return (\n <EmailAndFullnameMemberModal\n title={t(Translation.ExternalMemberPopup.SalesforceTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('salesforce-login.png')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'cover'}\n />\n );\n default:\n return null;\n }\n } else {\n return <InternalMemberSignInModal image={memberLogo} isOpen={isSigningIn} onClose={closeMemberSignupModal} />;\n }\n};\n"]}
1
+ {"version":3,"file":"MemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/MemberSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { EIntegration } from '@roomstay/core';\nimport React, { useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Translation } from '@/translations/Translation';\n\nimport EmailAndFullnameMemberModal from './EmailAndFullnameMemberModal';\nimport EmailPasswordMemberModal from './EmailPasswordMemberModal';\nimport FamilyNameMemberModal from './FamilyNameMemberModal';\nimport InternalMemberSignInModal from './InternalMemberSignInModal';\n\nexport const MemberSignInModal = () => {\n const { externalMemberType, isExternalMemberHotel } = useSignedInMember();\n const { isSigningIn, closeMemberSignupModal, memberOnlyModalPromotion } = useContext(CompanyContext);\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const memberLogo = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImage) {\n return memberOnlyModalPromotion.memberOnlyModalImage;\n }\n\n if (hotel?.memberOnlyModalImage) {\n return hotel.memberOnlyModalImage;\n }\n }, [hotel?.memberOnlyModalImage, memberOnlyModalPromotion?.memberOnlyModalImage]);\n\n const imageSize = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImageSize) {\n return memberOnlyModalPromotion.memberOnlyModalImageSize;\n }\n\n if (hotel?.memberOnlyModalImageSize) {\n return hotel.memberOnlyModalImageSize;\n }\n }, [hotel?.memberOnlyModalImageSize, memberOnlyModalPromotion?.memberOnlyModalImageSize]);\n\n if (isExternalMemberHotel) {\n switch (externalMemberType) {\n case EIntegration.Big4:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Big4Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('big4-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.RmsTop10:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Top10:\n return (\n <EmailPasswordMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Gday:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.GDayTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('gday-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Salesforce:\n return (\n <EmailAndFullnameMemberModal\n title={t(Translation.ExternalMemberPopup.SalesforceTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('salesforce-login.png')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'cover'}\n />\n );\n default:\n return null;\n }\n } else {\n return <InternalMemberSignInModal image={memberLogo} isOpen={isSigningIn} onClose={closeMemberSignupModal} />;\n }\n};\n"]}
@@ -38,7 +38,7 @@ const Icon_1 = require("../generic/Icon/Icon");
38
38
  const SmallSpinner_1 = __importDefault(require("../generic/loader/SmallSpinner"));
39
39
  const Pill_1 = __importStar(require("../generic/Pill"));
40
40
  const Text_1 = __importStar(require("../generic/Text"));
41
- const useExternalMember_1 = require("../../hooks/useExternalMember");
41
+ const useSignedInMember_1 = require("../../hooks/useSignedInMember");
42
42
  const Color_1 = require("../../util/Color");
43
43
  function MinimumNightStayPill() {
44
44
  var _a;
@@ -47,7 +47,7 @@ function MinimumNightStayPill() {
47
47
  const dpContext = (0, react_1.useContext)(contexts_1.DatePickerContext);
48
48
  const { nightStayRequirements } = dpContext;
49
49
  const { t } = (0, react_i18next_1.useTranslation)();
50
- const { memberNumber } = (0, useExternalMember_1.useExternalMember)();
50
+ const { memberNumber } = (0, useSignedInMember_1.useSignedInMember)();
51
51
  const [isLoading, setIsLoading] = (0, react_1.useState)(false);
52
52
  const [minNights, setMinNights] = (0, react_1.useState)(-1);
53
53
  const [loadIndex, setLoadIndex] = (0, react_1.useState)(0);
@@ -1 +1 @@
1
- {"version":3,"file":"MinimumNightStayPill.js","sourceRoot":"/","sources":["src/components/steps/MinimumNightStayPill.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, DatePickerContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { captureException } from '@sentry/browser';\nimport { NoHotelSelectedError } from 'errors/NoHotelSelectedError';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport Pill, { PillType } from '@/components/generic/Pill';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { useExternalMember } from '@/hooks/useExternalMember';\nimport { Color } from '@/util/Color';\n\nexport default function MinimumNightStayPill() {\n const { hotel } = useCurrentHotel();\n const basketContext = useContext(BasketContext);\n const dpContext = useContext(DatePickerContext);\n const { nightStayRequirements } = dpContext;\n const { t } = useTranslation();\n const { memberNumber } = useExternalMember();\n\n const [isLoading, setIsLoading] = useState(false);\n const [minNights, setMinNights] = useState(-1);\n\n const [loadIndex, setLoadIndex] = useState(0);\n\n const selectedBasketRow = basketContext.selectedBasketRow ?? basketContext.currentBasketRows[0];\n\n const startDate = selectedBasketRow?.getStartDate();\n const endDate = selectedBasketRow?.getEndDate();\n\n useEffect(() => {\n if (!hotel) {\n return;\n }\n\n let cancelled = false;\n setLoadIndex((oldLoadIndex) => oldLoadIndex + 1);\n\n if (endDate?.isValid()) {\n setIsLoading(true);\n API.Availability.fetchMinNightStayData(selectedBasketRow, hotel.hotelID, memberNumber)\n .then((response) => {\n if (!cancelled) {\n setIsLoading(false);\n if (response.Status === 'MinStay' && endDate?.diff(startDate, 'day') < response.Quantity) {\n setMinNights(response.Quantity);\n } else {\n setMinNights(-1);\n }\n }\n })\n .catch((ex) => {\n if (!(ex instanceof NoHotelSelectedError)) {\n captureException(ex);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [selectedBasketRow, startDate, endDate, memberNumber]);\n\n if (!hotel) {\n return null;\n }\n\n if (nightStayRequirements.length) {\n return (\n <Text bold color={Color.Alert} type={TextType.Small}>\n {nightStayRequirements.join(' ')}\n </Text>\n );\n }\n\n return (\n <div>\n {isLoading ? (\n <SmallSpinner />\n ) : minNights !== -1 ? (\n <Pill type={PillType.Primary} icon={IconType.Info}>\n {t(Translation.Step.Room.NoRoomsFound.MinNightStay, { minNightStay: minNights })}\n </Pill>\n ) : (\n <></>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"MinimumNightStayPill.js","sourceRoot":"/","sources":["src/components/steps/MinimumNightStayPill.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, DatePickerContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { captureException } from '@sentry/browser';\nimport { NoHotelSelectedError } from 'errors/NoHotelSelectedError';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport Pill, { PillType } from '@/components/generic/Pill';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport { Color } from '@/util/Color';\n\nexport default function MinimumNightStayPill() {\n const { hotel } = useCurrentHotel();\n const basketContext = useContext(BasketContext);\n const dpContext = useContext(DatePickerContext);\n const { nightStayRequirements } = dpContext;\n const { t } = useTranslation();\n const { memberNumber } = useSignedInMember();\n\n const [isLoading, setIsLoading] = useState(false);\n const [minNights, setMinNights] = useState(-1);\n\n const [loadIndex, setLoadIndex] = useState(0);\n\n const selectedBasketRow = basketContext.selectedBasketRow ?? basketContext.currentBasketRows[0];\n\n const startDate = selectedBasketRow?.getStartDate();\n const endDate = selectedBasketRow?.getEndDate();\n\n useEffect(() => {\n if (!hotel) {\n return;\n }\n\n let cancelled = false;\n setLoadIndex((oldLoadIndex) => oldLoadIndex + 1);\n\n if (endDate?.isValid()) {\n setIsLoading(true);\n API.Availability.fetchMinNightStayData(selectedBasketRow, hotel.hotelID, memberNumber)\n .then((response) => {\n if (!cancelled) {\n setIsLoading(false);\n if (response.Status === 'MinStay' && endDate?.diff(startDate, 'day') < response.Quantity) {\n setMinNights(response.Quantity);\n } else {\n setMinNights(-1);\n }\n }\n })\n .catch((ex) => {\n if (!(ex instanceof NoHotelSelectedError)) {\n captureException(ex);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [selectedBasketRow, startDate, endDate, memberNumber]);\n\n if (!hotel) {\n return null;\n }\n\n if (nightStayRequirements.length) {\n return (\n <Text bold color={Color.Alert} type={TextType.Small}>\n {nightStayRequirements.join(' ')}\n </Text>\n );\n }\n\n return (\n <div>\n {isLoading ? (\n <SmallSpinner />\n ) : minNights !== -1 ? (\n <Pill type={PillType.Primary} icon={IconType.Info}>\n {t(Translation.Step.Room.NoRoomsFound.MinNightStay, { minNightStay: minNights })}\n </Pill>\n ) : (\n <></>\n )}\n </div>\n );\n}\n"]}
@@ -51,7 +51,6 @@ const EnhancedPhoneNumberField_1 = __importDefault(require("../../generic/custom
51
51
  const Headline_1 = __importDefault(require("../../generic/Headline"));
52
52
  const Icon_1 = __importStar(require("../../generic/Icon/Icon"));
53
53
  const InputGroup_1 = __importDefault(require("../../generic/InputGroup/InputGroup"));
54
- const LineBreak_1 = __importDefault(require("../../generic/LineBreak"));
55
54
  const Select_1 = require("../../generic/Select");
56
55
  const Text_1 = __importStar(require("../../generic/Text"));
57
56
  const TextBox_1 = __importDefault(require("../../generic/TextBox"));
@@ -410,8 +409,7 @@ const RoomContactDetails = () => {
410
409
  react_1.default.createElement(Select_1.InputSelect, Object.assign({ key: input.id, keyName: (0, core_1.nameof)('value'), labelName: (0, core_1.nameof)('label'), options: options, placeholder: "Please Select *", validationStatus: getValidationClass(input.id) }, rest))));
411
410
  } }));
412
411
  }))))),
413
- react_1.default.createElement(CaptureChildAges, { hotel: hotel, numberOfChildrens: Number(basketRow.getChildren()), control: control, roomIndex: index }),
414
- react_1.default.createElement(LineBreak_1.default, null)),
412
+ react_1.default.createElement(CaptureChildAges, { hotel: hotel, numberOfChildrens: Number(basketRow.getChildren()), control: control, roomIndex: index })),
415
413
  fields.length > 1 && index === 0 ? (react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
416
414
  react_1.default.createElement(Checkbox_1.default, Object.assign({ label: t(Translation_1.Translation.Step.Confirmation.ApplySameInfoToOtherRooms) }, register('copyCheckBox'))))) : null));
417
415
  })));
@@ -425,7 +423,9 @@ function chunkArray(array, chunkSize) {
425
423
  }
426
424
  const CaptureChildAges = ({ hotel, numberOfChildrens, control, roomIndex, }) => {
427
425
  var _a, _b, _c, _d;
428
- const { t } = (0, react_i18next_1.useTranslation)();
426
+ if (!(hotel === null || hotel === void 0 ? void 0 : hotel.captureChildAge) || numberOfChildrens === 0) {
427
+ return react_1.default.createElement(react_1.default.Fragment, null);
428
+ }
429
429
  const { formState: { errors }, } = (0, react_hook_form_1.useFormContext)();
430
430
  const ageOptions = [];
431
431
  const min = ((_b = (_a = hotel === null || hotel === void 0 ? void 0 : hotel.childConfiguration) === null || _a === void 0 ? void 0 : _a.childRange) === null || _b === void 0 ? void 0 : _b.min) || 0;
@@ -452,7 +452,7 @@ const CaptureChildAges = ({ hotel, numberOfChildrens, control, roomIndex, }) =>
452
452
  }
453
453
  };
454
454
  const chunkInputs = chunkArray(requiredInputs, 3);
455
- return (react_1.default.createElement("div", null, numberOfChildrens > 0 && (react_1.default.createElement("div", { className: "u-marg-top" }, chunkInputs.map((chunkInput, chunkIndex) => {
455
+ return (react_1.default.createElement("div", { className: "u-marg-top" }, chunkInputs.map((chunkInput, chunkIndex) => {
456
456
  return (react_1.default.createElement(InputGroup_1.default, { dimensions: "1/1/1", key: `InputGroup-${chunkIndex}` }, chunkInput.map(({ id, name, label, childIndex }) => {
457
457
  return (react_1.default.createElement(react_hook_form_1.Controller, { key: id, control: control, name: name, rules: { required: true }, render: ({ field }) => {
458
458
  const { ref } = field, rest = __rest(field, ["ref"]);
@@ -463,7 +463,7 @@ const CaptureChildAges = ({ hotel, numberOfChildrens, control, roomIndex, }) =>
463
463
  react_1.default.createElement(Select_1.InputSelect, Object.assign({ keyName: "value", labelName: "label", options: ageOptions, placeholder: "Please Select *" }, rest, { validationStatus: getValidationClass(childIndex) }))));
464
464
  } }));
465
465
  })));
466
- })))));
466
+ })));
467
467
  };
468
468
  exports.default = RoomContactDetails;
469
469
  //# sourceMappingURL=RoomContactDetails.js.map