@roomstay/frontend 2.6.94 → 2.6.96

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 (61) hide show
  1. package/dist/{984.bundle.js → 180.bundle.js} +1 -1
  2. package/dist/625.bundle.js +1 -1
  3. package/dist/870.bundle.js +1 -0
  4. package/dist/main.bundle.js +1 -1
  5. package/dist/src/api/AvailabilityAPI.d.ts +1 -1
  6. package/dist/src/api/AvailabilityAPI.js +14 -6
  7. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  8. package/dist/src/api/ErrorAPI.d.ts +3 -0
  9. package/dist/src/api/ErrorAPI.js +27 -0
  10. package/dist/src/api/ErrorAPI.js.map +1 -1
  11. package/dist/src/api/HotelAPI.js +27 -19
  12. package/dist/src/api/HotelAPI.js.map +1 -1
  13. package/dist/src/components/generic/modal/ErrorModal.d.ts +2 -0
  14. package/dist/src/components/generic/modal/ErrorModal.js +31 -8
  15. package/dist/src/components/generic/modal/ErrorModal.js.map +1 -1
  16. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +20 -9
  17. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
  18. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentForm.d.ts +3 -0
  19. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentForm.js +80 -0
  20. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentForm.js.map +1 -0
  21. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentOption.d.ts +3 -0
  22. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentOption.js +84 -0
  23. package/dist/src/components/steps/confirmation/StripePaymentOption/StripePaymentOption.js.map +1 -0
  24. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js +6 -9
  25. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js.map +1 -1
  26. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +4 -0
  27. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  28. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +22 -3
  29. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  30. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +3 -1
  31. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  32. package/dist/src/contexts/ErrorContext.d.ts +3 -0
  33. package/dist/src/contexts/ErrorContext.js +3 -1
  34. package/dist/src/contexts/ErrorContext.js.map +1 -1
  35. package/dist/src/contexts/HotelOverridesContext.js +8 -3
  36. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  37. package/dist/src/errors/APIError.d.ts +5 -0
  38. package/dist/src/errors/APIError.js +32 -0
  39. package/dist/src/errors/APIError.js.map +1 -0
  40. package/dist/src/errors/GetAvailabilityError.d.ts +2 -4
  41. package/dist/src/errors/GetAvailabilityError.js +2 -16
  42. package/dist/src/errors/GetAvailabilityError.js.map +1 -1
  43. package/dist/src/handlers/payment/PaymentHandler.d.ts +1 -1
  44. package/dist/src/handlers/payment/PaymentHandler.js.map +1 -1
  45. package/dist/src/handlers/payment/StripePaymentHandler.d.ts +2 -0
  46. package/dist/src/handlers/payment/StripePaymentHandler.js +74 -0
  47. package/dist/src/handlers/payment/StripePaymentHandler.js.map +1 -0
  48. package/dist/src/models/Api/HotelDTO.d.ts +1 -1
  49. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  50. package/dist/src/providers/RoomstayThemeEngine.d.ts +2 -0
  51. package/dist/src/providers/RoomstayThemeEngine.js +2 -1
  52. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  53. package/dist/src/translations/Translation.d.ts +1 -0
  54. package/dist/src/translations/Translation.js +1 -0
  55. package/dist/src/translations/Translation.js.map +1 -1
  56. package/dist/src/translations/languages/en-gb.js +1 -0
  57. package/dist/src/translations/languages/en-gb.js.map +1 -1
  58. package/dist/test.bundle.js +1 -1
  59. package/dist/vendors.bundle.js +1 -1
  60. package/package.json +4 -2
  61. package/dist/4.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BookingEngineContext, CompanyContext, CompanyContextType, SignInUser } from '@frontend/contexts';\nimport { InitialHotelDetailsEvent, SelectedHotelChangeEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { EIntegration, IHotelColorScheme } from '@roomstay/core';\nimport React, { ReactChild, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport API from '@/api/BookingAPI';\nimport { MemberPortalWidget } from '@/engines/MemberPortalWidget/MemberPortalWidget';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { HotelDTO } from '@/models/Api/HotelDTO';\nimport BasketRow from '@/models/BasketRow';\nimport type { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from '@/models/Client/Hotel/Hotel';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport Filter from '@/models/Room/Filters/Filter';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport FilterProvider from '@/providers/FilterProvider';\nimport { Language } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport StepManager from '@/util/StepManager';\nimport TimeHelper from '@/util/TimeHelper';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [companyId, setCompanyId] = useState(company.companyId);\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [privacyPolicyUrl, setPrivacyPolicyUrl] = useState(company.privacyPolicyUrl);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const selectedHotel = useMemo(() => {\n for (const companyHotel of hotels) {\n if (selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n }, [hotels, selectedHotelID]);\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion | null>(null);\n\n const [signedInUser, setSignedInUser] = useState<SignInUser | null>(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const [memberNumber, setMemberNumber] = useState<string>();\n const [isExternalMemberHotel, setIsExternalMemberHotel] = useState<boolean>(false);\n\n const externalMemberType = useMemo(() => {\n const integrations = selectedHotel?.integrations;\n\n // Because integrations is an array of strings technically both Big4 and Top10 theoretically come down, so we'll choose one\n if (integrations?.includes(EIntegration.Big4)) {\n return EIntegration.Big4;\n } else if (integrations?.includes(EIntegration.Top10)) {\n return EIntegration.Top10;\n } else if (integrations?.includes(EIntegration.RmsTop10)) {\n return EIntegration.RmsTop10;\n } else if (integrations?.includes(EIntegration.Gday)) {\n return EIntegration.Gday;\n } else if (integrations?.includes(EIntegration.Salesforce)) {\n return EIntegration.Salesforce;\n } else if (integrations?.includes(EIntegration.RAC)) {\n return EIntegration.RAC;\n }\n }, [selectedHotel]);\n\n useEffect(() => {\n const isExternalProvider =\n selectedHotel?.integrations?.some(\n (provider) =>\n provider === EIntegration.Big4 ||\n provider === EIntegration.Top10 ||\n provider === EIntegration.RmsTop10 ||\n provider === EIntegration.Gday ||\n provider === EIntegration.Salesforce ||\n provider === EIntegration.RAC\n ) || false;\n setIsExternalMemberHotel(isExternalProvider);\n\n raise(new SelectedHotelChangeEvent(selectedHotel));\n }, [selectedHotel]);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return { ...callback(mappingHotel) };\n }\n\n return { ...newHotel };\n }\n\n return { ...mappingHotel };\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n if (callback) {\n // Fixed: Ensure the callback returns the hotel; otherwise, the UI may receive undefined.\n callback(newHotel);\n }\n }\n\n return newHotelArray;\n });\n };\n\n const signUserIn = async (user: SignInUser) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion as IPromotion, user));\n\n workingContext.closeMemberSignupModal();\n\n await beContext.sessionProvider.updateSession({ user: user, memberId: user.memberNumber });\n\n setSignedInUser(user);\n setMemberNumber(user.memberNumber);\n\n if (user.saveState) {\n await beContext.storageProvider.setUser(user);\n }\n };\n\n const signUserOut = async () => {\n await beContext.sessionProvider.updateSession({ user: undefined, memberId: undefined });\n await beContext.storageProvider.setUser(undefined);\n setSignedInUser(null);\n setMemberNumber(undefined);\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve, reject) => {\n const currentHotelVersion: Hotel | undefined = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n // Fixed: Specified Hotel not found\n // Ensure hotelID is set explicitly in case currentHotelVersion is undefined or missing it.\n hotelID: hotelId,\n };\n let details: HotelDTO;\n\n try {\n details = await API.Hotel.fetchData(currentLanguage, newHotel);\n } catch (ex) {\n reject(ex);\n }\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.cardProcessor = details.cardProcessor;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n updatedHotel.hotelUrl = details.hotelUrl || updatedHotel.hotelUrl || '';\n updatedHotel.heroImage = details.heroImage || updatedHotel.heroImage || '';\n updatedHotel.images = details.images || [];\n\n updatedHotel.email = details.email;\n updatedHotel.roomGroups = details.roomGroups;\n updatedHotel.rmsUseDepositQuote = details.rmsUseDepositQuote;\n updatedHotel.checkAreaAvailabilityOnRoomStep = details.checkAreaAvailabilityOnRoomStep;\n updatedHotel.enableCreditCardSurcharge = details.enableCreditCardSurcharge;\n updatedHotel.integrations = details.integrations;\n updatedHotel.availableCountries = details.availableCountries;\n updatedHotel.preventCancellation = details.preventCancellation;\n updatedHotel.enableRoomUpsells = details.enableRoomUpsells;\n updatedHotel.enableRateUpsells = details.enableRateUpsells;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as IHotelColorScheme;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n\n if (details.stateFieldConfiguration) {\n updatedHotel.stateFieldConfiguration = details.stateFieldConfiguration;\n }\n }\n\n if (currentHotelVersion?.maxAdults) {\n //using HotelSpec maxAdults from frontend\n updatedHotel.maxAdults = currentHotelVersion.maxAdults;\n }\n\n if (details.maxAdults !== undefined) {\n updatedHotel.maxAdults = details.maxAdults;\n }\n\n if (details.maxChildren !== undefined) {\n updatedHotel.maxChildren = details.maxChildren;\n }\n\n if (details.maxInfants !== undefined) {\n updatedHotel.maxInfants = details.maxInfants;\n }\n\n if (details.rooms) {\n //dymanic maxOccupancy from rooms database\n const roomArray = Object.values(details.rooms);\n\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n updatedHotel.childConfiguration = details.childConfiguration;\n\n /**\n * Prioritized perks from roomstay-clients than roomstay-admin\n */\n updatedHotel.perks = updatedHotel.perks?.length ? updatedHotel.perks : details.perks;\n updatedHotel.perkTitle = updatedHotel.perkTitle ?? details.perkTitle;\n\n updatedHotel.countryPrefix = details.countryPrefix ?? updatedHotel.countryPrefix ?? '';\n updatedHotel.quoteImageDesktop = details.quoteImageDesktop ?? updatedHotel.quoteImageDesktop ?? '';\n updatedHotel.quoteImageMobile = details.quoteImageMobile ?? updatedHotel.quoteImageMobile ?? '';\n updatedHotel.memberOnlyImage = details.memberOnlyImage ?? updatedHotel.memberOnlyImage ?? '';\n if (details.memberOnlyRenderRateLast !== undefined) {\n updatedHotel.memberOnlyRenderRateLast = details.memberOnlyRenderRateLast;\n }\n updatedHotel.captureChildAge = details.captureChildAge;\n\n updatedHotel.fees = details.fees;\n updatedHotel.addDepositFeeToBookingTotal = details.addDepositFeeToBookingTotal;\n\n updatedHotel.company = details.company;\n\n updatedHotel.itineraryNote = details.itineraryNote;\n\n updatedHotel.minAdultAge = details.minAdultAge;\n updatedHotel.maxAdultAge = details.maxAdultAge;\n updatedHotel.countInfantsInOccupancy = details.countInfantsInOccupancy;\n updatedHotel.preferProviderBookingId = details.preferProviderBookingId;\n updatedHotel.disableSavedPayments = details.disableSavedPayments;\n updatedHotel.showUnavailableRooms = details.showUnavailableRooms;\n updatedHotel.isRACMemberNoRequired = details.isRACMemberNoRequired;\n\n resolve(updatedHotel);\n\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setCompanyId(company.companyId);\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setPrivacyPolicyUrl(company.privacyPolicyUrl);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel | undefined = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n // Don't select hotel for MemberPortalWidget with groupWidgetConfig\n const isMemberPortalWithGroup = beContext.engine instanceof MemberPortalWidget && beContext.engine.getConfig().groupWidgetConfig;\n\n if (StepManager.getFirstStep() !== StepHotel && !isMemberPortalWithGroup) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n } else {\n RoomstayThemeEngine.registerStyles(company.colors);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n currencyHelper.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.initialiseGTM(company, selectedHotel);\n\n // Prep session based storage\n const sessionProvider = beContext.engine.getSessionProvider();\n await sessionProvider.setHotelID(selectedHotelID);\n\n // Prep local storage (non-session based)\n beContext.storageProvider.setHotelId(selectedHotelID);\n\n // Reload current user?\n const user = await beContext.storageProvider.getUser();\n\n if (user) {\n await signUserIn(user);\n }\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.initialiseGTM(company);\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n companyId,\n name,\n companyShort,\n logo,\n logoLink,\n privacyPolicyUrl,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID: selectedHotelID as string,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const updatePrice = (value: number, isLoading: boolean) => {\n updateHotel(targetHotel, (hotel) => ({\n ...hotel,\n lowestPrice: { value, isLoading },\n }));\n };\n\n const filters: Filter[] = Object.values(beContext.currentFilters).filter(Boolean) as Filter[];\n\n // Start loading with price = 0\n updatePrice(0, true);\n\n FilterProvider.getRoomList(row, filters, targetHotel.hotelID as string, memberNumber)\n .then((availableRooms) => {\n const lowest =\n availableRooms?.reduce((min, room) => {\n const price = room.getLowestPrice();\n // Skip null, undefined, and 0 prices. Return the lowest positive price.\n return price != null && price > 0 ? Math.min(min, price) : min;\n }, Infinity) ?? Infinity;\n\n const finalLowest = isFinite(lowest) ? lowest : 0;\n updatePrice(finalLowest, false);\n })\n .catch(() => {\n updatePrice(0, false);\n });\n }\n },\n\n changeHotel: (hotel: string | Hotel | null) => {\n if (hotel === null) {\n setSelectedHotelID(undefined);\n return true;\n }\n\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n\n signUserIn,\n signUserOut,\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n externalMemberType,\n isExternalMemberHotel,\n memberNumber: memberNumber,\n selectedHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BookingEngineContext, CompanyContext, CompanyContextType, SignInUser } from '@frontend/contexts';\nimport { InitialHotelDetailsEvent, SelectedHotelChangeEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { EIntegration, IHotelColorScheme } from '@roomstay/core';\nimport React, { ReactChild, useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport API from '@/api/BookingAPI';\nimport { MemberPortalWidget } from '@/engines/MemberPortalWidget/MemberPortalWidget';\nimport { APIError } from '@/errors/APIError';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { HotelDTO } from '@/models/Api/HotelDTO';\nimport BasketRow from '@/models/BasketRow';\nimport type { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from '@/models/Client/Hotel/Hotel';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport Filter from '@/models/Room/Filters/Filter';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport FilterProvider from '@/providers/FilterProvider';\nimport { Language } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport StepManager from '@/util/StepManager';\nimport TimeHelper from '@/util/TimeHelper';\nimport CurrencyProvider from '@/providers/CurrencyProvider';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [companyId, setCompanyId] = useState(company.companyId);\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [privacyPolicyUrl, setPrivacyPolicyUrl] = useState(company.privacyPolicyUrl);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const selectedHotel = useMemo(() => {\n for (const companyHotel of hotels) {\n if (selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n }, [hotels, selectedHotelID]);\n\n const searchParams = new URLSearchParams(window.location.search);\n const currencyParam = searchParams.get('currency');\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(currencyParam ?? getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion | null>(null);\n\n const [signedInUser, setSignedInUser] = useState<SignInUser | null>(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const [memberNumber, setMemberNumber] = useState<string>();\n const [isExternalMemberHotel, setIsExternalMemberHotel] = useState<boolean>(false);\n\n const externalMemberType = useMemo(() => {\n const integrations = selectedHotel?.integrations;\n\n // Because integrations is an array of strings technically both Big4 and Top10 theoretically come down, so we'll choose one\n if (integrations?.includes(EIntegration.Big4)) {\n return EIntegration.Big4;\n } else if (integrations?.includes(EIntegration.Top10)) {\n return EIntegration.Top10;\n } else if (integrations?.includes(EIntegration.RmsTop10)) {\n return EIntegration.RmsTop10;\n } else if (integrations?.includes(EIntegration.Gday)) {\n return EIntegration.Gday;\n } else if (integrations?.includes(EIntegration.Salesforce)) {\n return EIntegration.Salesforce;\n } else if (integrations?.includes(EIntegration.RAC)) {\n return EIntegration.RAC;\n }\n }, [selectedHotel]);\n\n useEffect(() => {\n const isExternalProvider =\n selectedHotel?.integrations?.some(\n (provider) =>\n provider === EIntegration.Big4 ||\n provider === EIntegration.Top10 ||\n provider === EIntegration.RmsTop10 ||\n provider === EIntegration.Gday ||\n provider === EIntegration.Salesforce ||\n provider === EIntegration.RAC\n ) || false;\n setIsExternalMemberHotel(isExternalProvider);\n\n raise(new SelectedHotelChangeEvent(selectedHotel));\n }, [selectedHotel]);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return { ...callback(mappingHotel) };\n }\n\n return { ...newHotel };\n }\n\n return { ...mappingHotel };\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n if (callback) {\n // Fixed: Ensure the callback returns the hotel; otherwise, the UI may receive undefined.\n callback(newHotel);\n }\n }\n\n return newHotelArray;\n });\n };\n\n const signUserIn = async (user: SignInUser) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion as IPromotion, user));\n\n workingContext.closeMemberSignupModal();\n\n await beContext.sessionProvider.updateSession({ user: user, memberId: user.memberNumber });\n\n setSignedInUser(user);\n setMemberNumber(user.memberNumber);\n\n if (user.saveState) {\n await beContext.storageProvider.setUser(user);\n }\n };\n\n const signUserOut = async () => {\n await beContext.sessionProvider.updateSession({ user: undefined, memberId: undefined });\n await beContext.storageProvider.setUser(undefined);\n setSignedInUser(null);\n setMemberNumber(undefined);\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve, reject) => {\n const currentHotelVersion: Hotel | undefined = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n // Fixed: Specified Hotel not found\n // Ensure hotelID is set explicitly in case currentHotelVersion is undefined or missing it.\n hotelID: hotelId,\n };\n let details: HotelDTO | undefined;\n\n try {\n details = await API.Hotel.fetchData(currentLanguage, newHotel);\n } catch (ex) {\n if (ex instanceof APIError) {\n console.error(ex);\n return;\n } else {\n return reject(ex);\n }\n }\n\n if (!details) {\n return;\n }\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.cardProcessor = details.cardProcessor;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n updatedHotel.hotelUrl = details.hotelUrl || updatedHotel.hotelUrl || '';\n updatedHotel.heroImage = details.heroImage || updatedHotel.heroImage || '';\n updatedHotel.images = details.images || [];\n\n updatedHotel.email = details.email;\n updatedHotel.roomGroups = details.roomGroups;\n updatedHotel.rmsUseDepositQuote = details.rmsUseDepositQuote;\n updatedHotel.checkAreaAvailabilityOnRoomStep = details.checkAreaAvailabilityOnRoomStep;\n updatedHotel.enableCreditCardSurcharge = details.enableCreditCardSurcharge;\n updatedHotel.integrations = details.integrations;\n updatedHotel.availableCountries = details.availableCountries;\n updatedHotel.preventCancellation = details.preventCancellation;\n updatedHotel.enableRoomUpsells = details.enableRoomUpsells;\n updatedHotel.enableRateUpsells = details.enableRateUpsells;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as IHotelColorScheme;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n\n if (details.stateFieldConfiguration) {\n updatedHotel.stateFieldConfiguration = details.stateFieldConfiguration;\n }\n }\n\n if (currentHotelVersion?.maxAdults) {\n //using HotelSpec maxAdults from frontend\n updatedHotel.maxAdults = currentHotelVersion.maxAdults;\n }\n\n if (details.maxAdults !== undefined) {\n updatedHotel.maxAdults = details.maxAdults;\n }\n\n if (details.maxChildren !== undefined) {\n updatedHotel.maxChildren = details.maxChildren;\n }\n\n if (details.maxInfants !== undefined) {\n updatedHotel.maxInfants = details.maxInfants;\n }\n\n if (details.rooms) {\n //dymanic maxOccupancy from rooms database\n const roomArray = Object.values(details.rooms);\n\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n updatedHotel.childConfiguration = details.childConfiguration;\n\n /**\n * Prioritized perks from roomstay-clients than roomstay-admin\n */\n updatedHotel.perks = updatedHotel.perks?.length ? updatedHotel.perks : details.perks;\n updatedHotel.perkTitle = updatedHotel.perkTitle ?? details.perkTitle;\n\n updatedHotel.countryPrefix = details.countryPrefix ?? updatedHotel.countryPrefix ?? '';\n updatedHotel.quoteImageDesktop = details.quoteImageDesktop ?? updatedHotel.quoteImageDesktop ?? '';\n updatedHotel.quoteImageMobile = details.quoteImageMobile ?? updatedHotel.quoteImageMobile ?? '';\n updatedHotel.memberOnlyImage = details.memberOnlyImage ?? updatedHotel.memberOnlyImage ?? '';\n if (details.memberOnlyRenderRateLast !== undefined) {\n updatedHotel.memberOnlyRenderRateLast = details.memberOnlyRenderRateLast;\n }\n updatedHotel.captureChildAge = details.captureChildAge;\n\n updatedHotel.fees = details.fees;\n updatedHotel.addDepositFeeToBookingTotal = details.addDepositFeeToBookingTotal;\n\n updatedHotel.company = details.company;\n\n updatedHotel.itineraryNote = details.itineraryNote;\n\n updatedHotel.minAdultAge = details.minAdultAge;\n updatedHotel.maxAdultAge = details.maxAdultAge;\n updatedHotel.countInfantsInOccupancy = details.countInfantsInOccupancy;\n updatedHotel.preferProviderBookingId = details.preferProviderBookingId;\n updatedHotel.disableSavedPayments = details.disableSavedPayments;\n updatedHotel.showUnavailableRooms = details.showUnavailableRooms;\n updatedHotel.isRACMemberNoRequired = details.isRACMemberNoRequired;\n updatedHotel.countryCode = details.countryCode;\n\n resolve(updatedHotel);\n\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setCompanyId(company.companyId);\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setPrivacyPolicyUrl(company.privacyPolicyUrl);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel | undefined = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n // Don't select hotel for MemberPortalWidget with groupWidgetConfig\n const isMemberPortalWithGroup = beContext.engine instanceof MemberPortalWidget && beContext.engine.getConfig().groupWidgetConfig;\n\n if (StepManager.getFirstStep() !== StepHotel && !isMemberPortalWithGroup) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n } else {\n RoomstayThemeEngine.registerStyles(company.colors);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n currencyHelper.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.initialiseGTM(company, selectedHotel);\n\n // Prep session based storage\n const sessionProvider = beContext.engine.getSessionProvider();\n await sessionProvider.setHotelID(selectedHotelID);\n\n // Prep local storage (non-session based)\n beContext.storageProvider.setHotelId(selectedHotelID);\n\n // Reload current user?\n const user = await beContext.storageProvider.getUser();\n\n if (user) {\n await signUserIn(user);\n }\n\n if (currencyParam && CurrencyProvider.getSymbol(currencyParam)) {\n setCurrentCurrency(currencyParam);\n } else {\n setCurrentCurrency(selectedHotel.defaultCurrency);\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.initialiseGTM(company);\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n companyId,\n name,\n companyShort,\n logo,\n logoLink,\n privacyPolicyUrl,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID: selectedHotelID as string,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const updatePrice = (value: number, isLoading: boolean) => {\n updateHotel(targetHotel, (hotel) => ({\n ...hotel,\n lowestPrice: { value, isLoading },\n }));\n };\n\n const filters: Filter[] = Object.values(beContext.currentFilters).filter(Boolean) as Filter[];\n\n // Start loading with price = 0\n updatePrice(0, true);\n\n FilterProvider.getRoomList(row, filters, targetHotel.hotelID as string, memberNumber)\n .then((availableRooms) => {\n const lowest =\n availableRooms?.reduce((min, room) => {\n const price = room.getLowestPrice();\n // Skip null, undefined, and 0 prices. Return the lowest positive price.\n return price != null && price > 0 ? Math.min(min, price) : min;\n }, Infinity) ?? Infinity;\n\n const finalLowest = isFinite(lowest) ? lowest : 0;\n updatePrice(finalLowest, false);\n })\n .catch(() => {\n updatePrice(0, false);\n });\n }\n },\n\n changeHotel: (hotel: string | Hotel | null) => {\n if (hotel === null) {\n setSelectedHotelID(undefined);\n return true;\n }\n\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n\n signUserIn,\n signUserOut,\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n externalMemberType,\n isExternalMemberHotel,\n memberNumber: memberNumber,\n selectedHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
@@ -73,6 +73,7 @@ const AfterpayPaymentHandler_1 = require("../../handlers/payment/AfterpayPayment
73
73
  const MastercardPaymentHandler_1 = require("../../handlers/payment/MastercardPaymentHandler");
74
74
  const PlanpayPaymentHandler_1 = require("../../handlers/payment/PlanpayPaymentHandler");
75
75
  const RedirectPaymentHandler_1 = require("../../handlers/payment/RedirectPaymentHandler");
76
+ const StripePaymentHandler_1 = require("../../handlers/payment/StripePaymentHandler");
76
77
  const TrueRewardsPaymentHandler_1 = require("../../handlers/payment/TrueRewardsPaymentHandler");
77
78
  const VGSMemberPaymentHandler_1 = require("../../handlers/payment/VGSMemberPaymentHandler");
78
79
  const VGSPaymentHandler_1 = require("../../handlers/payment/VGSPaymentHandler");
@@ -127,6 +128,7 @@ const ConfirmationStepContextWrapper = ({ children }) => {
127
128
  (0, AfterpayPaymentHandler_1.afterpayPaymentHandler)(),
128
129
  (0, MastercardPaymentHandler_1.mastercardPaymentHandler)(),
129
130
  (0, TrueRewardsPaymentHandler_1.trueRewardsPaymentHandler)(),
131
+ (0, StripePaymentHandler_1.stripePaymentHandler)(),
130
132
  ];
131
133
  const historyConsistentPush = (0, HistoryConsistentPush_1.useHistoryConsistentPush)();
132
134
  const paymentMethod = methods.watch('paymentMethod');
@@ -549,7 +551,7 @@ const ConfirmationStepContextWrapper = ({ children }) => {
549
551
  react_1.default.createElement("div", { className: "u-flex u-marg-top--heavy justify-content-end" },
550
552
  exclusivePayment && isInPaymentMode && (react_1.default.createElement("div", { className: "u-marg-right d-flex" },
551
553
  react_1.default.createElement(BEButton_1.default, { icon: ui_1.IconType.ArrowLeft, isText: true, onClick: onBackFromPaymentDetails }, t(Translation_1.Translation.Step.Confirmation.EditDetails)))),
552
- isPaymentFailed && (react_1.default.createElement("div", { className: "u-marg-right d-flex" },
554
+ isPaymentFailed && (exclusivePayment === null || exclusivePayment === void 0 ? void 0 : exclusivePayment.name) !== 'Stripe' && (react_1.default.createElement("div", { className: "u-marg-right d-flex" },
553
555
  react_1.default.createElement(BEButton_1.default, { icon: ui_1.IconType.Edit, stopIconAnimation: true, primary: true, filled: true, onClick: onRetryBooking, isLoading: isLoading }, t(Translation_1.Translation.Step.Confirmation.RetryPayment)))),
554
556
  (!(exclusivePayment === null || exclusivePayment === void 0 ? void 0 : exclusivePayment.hasCustomConfirmButton) || !isInPaymentMode) && (react_1.default.createElement(NextStepButton_1.default, { disabled: paymentMethod === core_1.EBookingPaymentMethod.Planpay || isLoading || isPaymentLoading, text: exclusivePayment && !isInPaymentMode ? t(Translation_1.Translation.Step.Confirmation.ContinueToPayment) : t(Translation_1.Translation.Step.Confirmation.ConfirmReservation), isLoading: isLoading, onClick: onContinueClick }))))));
555
557
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationStepContextWrapper.js","sourceRoot":"/","sources":["src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, ErrorHandler, useMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport {\n EBookingFlow,\n EBookingPaymentMethod,\n EHotelCardProcessor,\n IBookingCreateErrorResponse,\n IBookingExtraFields,\n IBookingPayment,\n ReservationDTO,\n ReservationsDTO,\n} from '@roomstay/core';\nimport { IconType } from '@roomstay/ui';\nimport * as Sentry from '@sentry/browser';\nimport { Severity } from '@sentry/types';\nimport { unionBy } from 'lodash';\nimport React, { FC, PropsWithChildren, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport NextStepButton from '@/components/generic/buttons/NextStepButton';\nimport { OverlayLoader } from '@/components/generic/loader/OverlayLoader';\nimport Text, { TextType } from '@/components/generic/Text';\nimport StepConfirmationCheckoutDifferencesModal from '@/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal';\nimport { ConfirmationStepContext } from '@/contexts/ConfirmationStepContext/ConfirmationStepContext';\nimport { PlacedBookingEvent } from '@/events/actions/PlacedBookingEvent';\nimport { CommittedBookingEvent } from '@/events/views/CommittedBookingEvent';\nimport { RolledBackBookingEvent } from '@/events/views/RolledBackBookingEvent';\nimport { adyenPaymentHandler } from '@/handlers/payment/AdyenPaymentHandler';\nimport { afterpayPaymentHandler } from '@/handlers/payment/AfterpayPaymentHandler';\nimport { mastercardPaymentHandler } from '@/handlers/payment/MastercardPaymentHandler';\nimport { PaymentHandler } from '@/handlers/payment/PaymentHandler';\nimport { planpayPaymentHandler } from '@/handlers/payment/PlanpayPaymentHandler';\nimport { redirectPaymentHandler } from '@/handlers/payment/RedirectPaymentHandler';\nimport { trueRewardsPaymentHandler } from '@/handlers/payment/TrueRewardsPaymentHandler';\nimport { vgsMemberPaymentHandler } from '@/handlers/payment/VGSMemberPaymentHandler';\nimport { vgsPaymentHandler } from '@/handlers/payment/VGSPaymentHandler';\nimport { useConfirmationQuery } from '@/hooks/ConfirmationQuery';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRowDifferences from '@/models/BasketRowDifferences';\nimport { ConfirmationFormValues, IBookValidationResult, TUserProfileFormValues } from '@/models/Confirmation';\nimport { ListOfCountriesAndCodes } from '@/models/CountryCodesAndNumbers';\nimport UserProfile from '@/models/UserProfile';\nimport { Translation } from '@/translations/Translation';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport getStepRoom from '@/util/GetStepRoom';\n\nimport { ConfirmationValidator } from './ConfirmationStepContextTypes';\nimport { ConfirmationStepErrorModal } from './ConfirmationStepErrorModal';\n\nconst ConfirmationStepContextProvider = ConfirmationStepContext.Provider;\n\nexport const ConfirmationStepContextWrapper: FC<PropsWithChildren<any>> = ({ children }) => {\n const [differenceWarning, setDifferenceWarning] = useState<{\n differences: BasketRowDifferences[];\n warnings: string[];\n }>({\n differences: [],\n warnings: [],\n });\n\n const { queryRoomstayId: queryReservationId, queryPlanpayCheckoutId, paymentId, isBackFromPlanpay, isBackFromExternalPayment, isInitialCheckout } = useConfirmationQuery();\n // load the engine context\n const engineContext = useContext(BookingEngineContext);\n const { roomstayMember } = useMemberContext();\n\n const [bookingSource, setBookingSource] = useState<string>();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [isPaymentLoading, setIsPaymentLoading] = useState(false);\n const [loadingStatus, setLoadingStatus] = useState('');\n const [isPaymentFailed, setIsPaymentFailed] = useState(false);\n const [customFieldsHaveErrors, setCustomFieldsHaveErrors] = useState(false);\n const { isExternalMemberHotel, memberNumber } = useSignedInMember();\n\n const [apiErrorResponse, setApiErrorResponse] = useState<IBookingCreateErrorResponse>();\n const [errorModalLoading, setErrorModalLoading] = useState(false);\n const [isInPaymentMode, setIsInPaymentMode] = useState(false);\n const methods = useForm<ConfirmationFormValues>({\n mode: 'onSubmit',\n });\n const [errorChecks, setErrorChecks] = useState<(() => ConfirmationValidator)[]>([] as any);\n\n const [availablePaymentHandlers, setAvailablePaymentHandlers] = useState<PaymentHandler[]>([]);\n\n const basketContext = useContext(BasketContext);\n const basketRows = basketContext.getAllValidRows();\n const basketAddonRows = basketContext.basketAddonRows;\n\n const currentSession = useMemo(() => {\n return engineContext.sessionProvider.getSession();\n }, [basketContext.reservationData]);\n\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n const { raise } = useEvent();\n\n const allPaymentHandlers = [\n redirectPaymentHandler(),\n adyenPaymentHandler(),\n vgsPaymentHandler(),\n vgsMemberPaymentHandler(),\n planpayPaymentHandler(),\n afterpayPaymentHandler(),\n mastercardPaymentHandler(),\n trueRewardsPaymentHandler(),\n ];\n\n const historyConsistentPush = useHistoryConsistentPush();\n\n const paymentMethod = methods.watch('paymentMethod');\n /**\n * We need to make sure that if the user navigates away from this step, we don't try to update the basket\n * with deposit data, as it can cause an unwanted redirect back to this step.\n */\n const confirmationStepIsActiveRef = useRef(true);\n useEffect(() => {\n return () => {\n confirmationStepIsActiveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n setBookingSource(engineContext.engine.getSessionProvider().getSession()?.source);\n\n const reservationRoomstayId: string | undefined = basketContext.reservationData?.roomstayId;\n const isMatchingRoomstayId: boolean = !!queryReservationId && (!reservationRoomstayId || queryReservationId === reservationRoomstayId);\n\n if (isBackFromExternalPayment && isMatchingRoomstayId) {\n if (basketContext.reservationData.payment?.isSplitPayment) {\n commitReservation?.(basketContext.reservationData);\n } else {\n commitReservation?.(basketContext.reservationData, 'Please wait... Finalising your reservation');\n }\n }\n\n if (isBackFromPlanpay && queryReservationId === reservationRoomstayId) {\n commitReservation?.(basketContext.reservationData, 'Please wait... Finalising your reservation');\n }\n\n if (isInitialCheckout) {\n DataLayer.instance.sendCheckoutView(basketRows, basketAddonRows);\n }\n }, []);\n\n useEffect(() => {\n const requireCall = hotel?.rmsUseDepositQuote || hotel?.bookingFlow !== EBookingFlow.Default;\n\n // Listen for Basket Row Changes to fetch new deposit quotes on checkout\n if (requireCall && basketContext.quoteQueryID !== '') {\n basketContext.quoteOrPencilReservation(() => confirmationStepIsActiveRef.current);\n }\n }, [hotel?.rmsUseDepositQuote, hotel?.bookingFlow, basketContext.quoteQueryID]);\n\n useEffect(() => {\n const currentlyAvailablePaymentHandlers = allPaymentHandlers.filter((handler) => handler.isAvailable);\n let defaultPaymentHandler = '';\n\n if (roomstayMember?.cards && currentlyAvailablePaymentHandlers.some((handler) => handler.name === 'VGSMember')) {\n defaultPaymentHandler = 'VGSMember';\n }\n\n if (!defaultPaymentHandler && currentlyAvailablePaymentHandlers.length > 0) {\n defaultPaymentHandler = currentlyAvailablePaymentHandlers[0].name;\n }\n\n methods.setValue('paymentMethod', defaultPaymentHandler);\n\n setAvailablePaymentHandlers(currentlyAvailablePaymentHandlers);\n }, [hotel]);\n\n useEffect(() => {\n const selectedPayment = availablePaymentHandlers.find((handler) => handler.name === paymentMethod);\n\n if (!selectedPayment) {\n return;\n }\n\n if (selectedPayment.requireBookingPlaced && !selectedPayment.isExclusive) {\n onContinueClick();\n }\n }, [paymentMethod]);\n\n const exclusivePayment = useMemo(() => {\n return availablePaymentHandlers.find((handler) => handler.isExclusive);\n }, [availablePaymentHandlers]);\n\n const toUserProfiles = (formValues: ConfirmationFormValues): UserProfile[] => {\n return formValues.userProfiles.map((values) => {\n let shortCountryCode: string | undefined = values.CountryCode;\n\n if (!shortCountryCode) {\n const country = ListOfCountriesAndCodes.find((country) => country.label === values.Country);\n shortCountryCode = country?.code;\n }\n\n return {\n title: values.Title,\n firstName: values.Forename,\n lastName: values.Surname,\n phone: values.Phone.replace(' ', ''),\n email: values.Email,\n address: {\n line1: values.Address,\n city: values.City,\n postalCode: values.PostCode,\n state: values.State,\n country: values.Country,\n countryId: values.CountryId,\n countryCode: shortCountryCode,\n },\n marketingOptIn: formValues.marketingOptIn,\n auxInputs: values.AuxInputs,\n };\n });\n };\n\n const validateCustomFields = (scrollToInput?: boolean): boolean => {\n const adhocValid = errorChecks.every((check) => check().validate(scrollToInput));\n return adhocValid === undefined ? true : adhocValid;\n };\n\n const validateReservation = async (data: ReservationsDTO): Promise<IBookValidationResult | undefined> => {\n const apiDifferences: BasketRowDifferences[] = [];\n if (data.reservations) {\n data.reservations.forEach((reservation: ReservationDTO, index) => {\n const diff = basketContext.currentBasketRows[index].checkDiffFromReservation(reservation);\n\n if (diff) {\n apiDifferences.push(diff);\n }\n });\n } else {\n Sentry.addBreadcrumb({\n level: Severity.Error,\n message: 'No reservation data: ' + JSON.stringify(data),\n });\n throw new Error('The reservation could not be completed due to an unexpected issue, please try again');\n }\n\n // If there are differences, we want to display them to make sure the booking still needs to proceed\n if (apiDifferences.length || (data.warnings && data.warnings.length)) {\n return {\n differences: apiDifferences,\n warnings: data.warnings as string[],\n };\n }\n };\n\n const onSubmitSuccess = async (data: ReservationsDTO, paymentMethod: EBookingPaymentMethod) => {\n raise(new PlacedBookingEvent(data, basketContext.currentBasketRows, hotel));\n\n // If this is a planpay booking, we don't need to do anything else.\n if (paymentMethod === EBookingPaymentMethod.Planpay || paymentMethod === EBookingPaymentMethod.TrueRewards) {\n return;\n }\n\n if (hotel?.cardProcessor === EHotelCardProcessor.Passthrough) {\n await commitReservation?.(data);\n } else {\n if (data.payment?.external?.redirectUrl) {\n redirectOut(data.payment?.external?.redirectUrl);\n }\n }\n };\n\n const placeBooking = async (formPayload: ConfirmationFormValues, payment: IBookingPayment): Promise<ReservationsDTO | null> => {\n DataLayer.instance.sendInteraction('Complete Booking', InteractionType.BUTTON, InteractionStep.GUEST_DETAILS);\n setIsLoading(true);\n let data: ReservationsDTO | undefined;\n\n const userProfiles = toUserProfiles(formPayload);\n const perRowExtraFields: IBookingExtraFields['perRow'] = formPayload.userProfiles.map((formValue: TUserProfileFormValues) => {\n return {\n childAges: formValue.CaptureChildAge?.map((age) => parseInt(age, 10)),\n };\n });\n\n try {\n const captureChildAgeComments: string[] = hotel?.captureChildAge\n ? formPayload.userProfiles.flatMap(\n (formValue: TUserProfileFormValues, roomIndex: number) =>\n formValue?.CaptureChildAge?.map((age: string, childIndex: number) => `Room ${roomIndex + 1} - Child: ${childIndex + 1} Age: ${age}`) || []\n )\n : [];\n\n const comments = formPayload.comments;\n\n const bookingComment = captureChildAgeComments.length > 0 ? `${comments}\\n${captureChildAgeComments.join('\\n')}` : comments;\n\n data = await API.Reservation.bookNow(\n basketRows,\n userProfiles,\n payment,\n basketAddonRows,\n bookingComment || '',\n hotel?.hotelID as string,\n engineContext.sessionProvider.getCurrentSessionID().toString(),\n basketContext.pencilId,\n undefined,\n undefined,\n undefined,\n isExternalMemberHotel ? memberNumber : undefined,\n {\n perRow: perRowExtraFields,\n }\n );\n\n await basketContext.booked(data, {\n userProfiles,\n payment,\n comments: bookingComment || '',\n });\n\n const validationResult = await validateReservation(data);\n if (validationResult) {\n setIsLoading(false);\n setDifferenceWarning(validationResult);\n\n return null;\n } else {\n await onSubmitSuccess(data, payment.Method);\n\n return data;\n }\n } catch (error: any) {\n setApiErrorResponse(error as IBookingCreateErrorResponse);\n } finally {\n setIsLoading(false);\n }\n\n return null;\n };\n\n const parseReservationIdsFromData = (data: ReservationsDTO) => {\n return data?.reservations?.map((reservation) => reservation.reservationNumber);\n };\n\n const commitReservation = async (resData: ReservationsDTO, statusUpdate?: string) => {\n try {\n if (statusUpdate) {\n setLoadingStatus(statusUpdate);\n }\n\n setIsLoading(true);\n\n if (resData) {\n const reservationIds = parseReservationIdsFromData(resData);\n if (reservationIds.length) {\n try {\n const response = await API.Reservation.commit(\n reservationIds,\n resData.itineraryNumber,\n hotel?.hotelID as string,\n queryPlanpayCheckoutId || undefined,\n paymentId || undefined\n );\n try {\n DataLayer.instance.sendReservationConfirmed(basketContext.getAllValidRows(), basketContext.basketAddonRows, response);\n } catch (ex) {\n Sentry.captureException('Failed to read reservations from GTM code: ' + JSON.stringify(ex));\n }\n basketContext.checkedOut(response);\n raise(new CommittedBookingEvent(resData, basketContext.currentBasketRows, hotel));\n } catch (error: any) {\n if (error.paymentRequired) {\n basketContext.additionalPaymentRequired(error.paymentRequired);\n } else {\n setApiErrorResponse(error);\n }\n }\n } else {\n ErrorHandler.add({ message: t(Translation.Step.Confirmation.UnexpectedErrorOnCommittingReservation) });\n Sentry.captureException('No reservation IDs found when attempting to commit: ' + JSON.stringify(resData));\n }\n }\n } catch (ex) {\n console.error(ex);\n Sentry.captureException(ex);\n }\n\n setIsLoading(false);\n };\n\n const rollbackReservation = async () => {\n if (!basketContext.reservationData) return;\n\n try {\n const reservationIds = parseReservationIdsFromData(basketContext.reservationData);\n if (reservationIds.length) {\n setIsLoading(true);\n await API.Reservation.rollback(reservationIds, basketContext.reservationData.itineraryNumber, hotel?.hotelID as string);\n raise(new RolledBackBookingEvent(basketContext.reservationData));\n } else {\n Sentry.captureException('No reservation IDs found when attempting to rollback: ' + JSON.stringify(basketContext.reservationData));\n }\n } catch (ex) {\n console.log('Failed to rollback reservations');\n Sentry.captureException(ex);\n } finally {\n basketContext.rollback();\n setIsLoading(false);\n }\n };\n\n const redirectOut = (targetUrl: string, stateUpdate?: string) => {\n setIsLoading(true);\n if (stateUpdate) {\n setLoadingStatus(stateUpdate);\n }\n\n window.location.href = targetUrl;\n };\n\n const onRetryBooking = async () => {\n setErrorModalLoading(true);\n setIsLoading(true);\n\n const resRequest = currentSession?.reservationRequest;\n const roomstayId = currentSession?.reservation?.roomstayId;\n\n if (!resRequest || !roomstayId) {\n console.error('No reservation request or roomstay ID found in session', { resRequest, roomstayId });\n return null;\n }\n\n try {\n const data = await API.Reservation.bookNow(\n basketRows,\n resRequest.userProfiles,\n resRequest.payment,\n basketAddonRows,\n '',\n hotel?.hotelID as string,\n engineContext.sessionProvider.getCurrentSessionID().toString(),\n basketContext.pencilId,\n undefined,\n true,\n roomstayId,\n isExternalMemberHotel ? memberNumber : undefined\n );\n await basketContext.booked(data);\n const validationResult = await validateReservation(data);\n\n if (validationResult) {\n setIsLoading(false);\n } else {\n await onSubmitSuccess(data, resRequest.payment?.Method);\n }\n } catch (error: any) {\n setApiErrorResponse(error as IBookingCreateErrorResponse);\n } finally {\n setIsLoading(false);\n setErrorModalLoading(false);\n setIsPaymentFailed(false);\n setApiErrorResponse(undefined);\n }\n };\n\n const onErrorModalClose = async () => {\n setErrorModalLoading(true);\n // We were previously rolling back reservations here, but deciding against it.\n const params = new URLSearchParams(window.location.search);\n window.history.replaceState({}, '', `${window.location.pathname}?${params}`);\n\n window.location.reload();\n };\n\n const attemptFormSubmit = (): Promise<ConfirmationFormValues | null> =>\n new Promise(async (resolve) => {\n const customFieldValidation = await validateCustomFields();\n\n setCustomFieldsHaveErrors(!customFieldValidation);\n\n const onSuccess = (values: ConfirmationFormValues) => {\n if (customFieldValidation) {\n resolve(values);\n } else {\n resolve(null);\n }\n };\n const onFailure = () => {\n // We can just return because custom fields will handle their own validation\n resolve(null);\n };\n\n methods.handleSubmit(onSuccess, onFailure)();\n });\n\n const onContinueClick = async () => {\n // Regardless if we're checking out or getting ready to pay, we need to make sure the details entered are valid\n // so first step will be to validate the inputs.\n\n const values = await attemptFormSubmit();\n\n if (!values) {\n // Error state will be handled within `attemptFormSubmit`\n return;\n }\n\n if (exclusivePayment) {\n // Since we're in exclusive payment mode we need to decide are we submitting, or enabling the payment stage\n if (isInPaymentMode) {\n setIsPaymentLoading(true);\n\n const paymentResponse = await exclusivePayment.onConfirm?.();\n setIsPaymentLoading(false);\n\n if (paymentResponse.success) {\n await commitReservation(basketContext.reservationData, 'Please wait... Finalising your reservation');\n } else {\n // Payment failed. Need to see if user want's to re-try.\n setIsPaymentFailed(true);\n }\n } else {\n if (exclusivePayment.requireBookingPlaced) {\n await placeBooking(values, await exclusivePayment?.getBookingPaymentRequestObject());\n }\n setIsInPaymentMode(true);\n await exclusivePayment.onSelect?.();\n }\n } else {\n // We're not in exclusive payment mode, so we can just submit the form\n // First we need to find the pamynet object from the selected value\n const paymentMode = availablePaymentHandlers.find((handler) => handler.name === values.paymentMethod);\n if (!paymentMode) {\n console.error('No payment mode found for selected payment method', { paymentMethod: values.paymentMethod, availablePaymentHandlers });\n return;\n }\n\n try {\n setIsPaymentLoading(true);\n const response = await paymentMode.onConfirm();\n setIsPaymentLoading(false);\n\n if (response.success) {\n await placeBooking(values, { ...(await paymentMode?.getBookingPaymentRequestObject()), ...response.data });\n } else {\n // The error will be handled in the payment mode.\n }\n } catch (error) {\n console.error(error);\n } finally {\n setIsPaymentLoading(false);\n }\n }\n };\n\n const onBackFromPaymentDetails = () => {\n setIsInPaymentMode(false);\n };\n\n return (\n <FormProvider {...methods}>\n <ConfirmationStepContextProvider\n value={{\n onContinueClick,\n bookingSource,\n\n commitReservation,\n rollbackReservation,\n redirectOut,\n setLoadingStatus,\n\n errorChecks,\n addErrorChecks: (...checks: (() => ConfirmationValidator)[]) => {\n setErrorChecks((oldErrors) => unionBy(checks, oldErrors, (check) => check().name));\n },\n\n isLoading,\n isBackFromPlanpay,\n isBackFromExternalPayment,\n isInPaymentMode,\n apiErrorResponse,\n\n availablePaymentHandlers,\n }}\n >\n {isLoading && <OverlayLoader isFullscreen label={loadingStatus} />}\n <ConfirmationStepErrorModal onRetry={onRetryBooking} onClose={onErrorModalClose} errorData={apiErrorResponse} isLoading={errorModalLoading} />\n <AutoAutoHeight open={customFieldsHaveErrors}>\n <div className=\"u-pad-bottom\">\n <Alert icon={IconType.Error} type={AlertType.Danger}>\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.CustomInputFieldError)}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n\n {children}\n <StepConfirmationCheckoutDifferencesModal\n differences={differenceWarning.differences}\n warnings={differenceWarning.warnings}\n isLoading={isLoading}\n onClose={async () => {\n await rollbackReservation?.();\n historyConsistentPush(getStepRoom().getStepUrl());\n }}\n onProceed={async () => {\n const resRequest = currentSession?.reservationRequest;\n const resResponse = basketContext.reservationData;\n\n try {\n if (resRequest && resResponse) {\n await onSubmitSuccess(resResponse, resRequest?.payment?.Method);\n setDifferenceWarning({ differences: [], warnings: [] });\n } else {\n ErrorHandler.add({ message: t(Translation.Step.Confirmation.UnexpectedErrorOnCommittingReservation) });\n Sentry.captureException('No reservation request or response found when attempting to commit: ' + JSON.stringify({ resRequest, resResponse }));\n }\n } catch (ex) {\n console.error('Failed to commit reservation', ex);\n Sentry.captureException(ex);\n }\n }}\n />\n\n <div className=\"u-flex u-marg-top--heavy justify-content-end\">\n {exclusivePayment && isInPaymentMode && (\n <div className=\"u-marg-right d-flex\">\n <BEButton icon={IconType.ArrowLeft} isText onClick={onBackFromPaymentDetails}>\n {t(Translation.Step.Confirmation.EditDetails)}\n </BEButton>\n </div>\n )}\n {isPaymentFailed && (\n <div className=\"u-marg-right d-flex\">\n <BEButton icon={IconType.Edit} stopIconAnimation primary filled onClick={onRetryBooking} isLoading={isLoading}>\n {t(Translation.Step.Confirmation.RetryPayment)}\n </BEButton>\n </div>\n )}\n {(!exclusivePayment?.hasCustomConfirmButton || !isInPaymentMode) && (\n <NextStepButton\n disabled={paymentMethod === EBookingPaymentMethod.Planpay || isLoading || isPaymentLoading}\n text={exclusivePayment && !isInPaymentMode ? t(Translation.Step.Confirmation.ContinueToPayment) : t(Translation.Step.Confirmation.ConfirmReservation)}\n isLoading={isLoading}\n onClick={onContinueClick}\n />\n )}\n </div>\n </ConfirmationStepContextProvider>\n </FormProvider>\n );\n};\n"]}
1
+ {"version":3,"file":"ConfirmationStepContextWrapper.js","sourceRoot":"/","sources":["src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, ErrorHandler, useMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport {\n EBookingFlow,\n EBookingPaymentMethod,\n EHotelCardProcessor,\n IBookingCreateErrorResponse,\n IBookingExtraFields,\n IBookingPayment,\n ReservationDTO,\n ReservationsDTO,\n} from '@roomstay/core';\nimport { IconType } from '@roomstay/ui';\nimport * as Sentry from '@sentry/browser';\nimport { Severity } from '@sentry/types';\nimport { unionBy } from 'lodash';\nimport React, { FC, PropsWithChildren, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport NextStepButton from '@/components/generic/buttons/NextStepButton';\nimport { OverlayLoader } from '@/components/generic/loader/OverlayLoader';\nimport Text, { TextType } from '@/components/generic/Text';\nimport StepConfirmationCheckoutDifferencesModal from '@/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal';\nimport { ConfirmationStepContext } from '@/contexts/ConfirmationStepContext/ConfirmationStepContext';\nimport { PlacedBookingEvent } from '@/events/actions/PlacedBookingEvent';\nimport { CommittedBookingEvent } from '@/events/views/CommittedBookingEvent';\nimport { RolledBackBookingEvent } from '@/events/views/RolledBackBookingEvent';\nimport { adyenPaymentHandler } from '@/handlers/payment/AdyenPaymentHandler';\nimport { afterpayPaymentHandler } from '@/handlers/payment/AfterpayPaymentHandler';\nimport { mastercardPaymentHandler } from '@/handlers/payment/MastercardPaymentHandler';\nimport { PaymentHandler } from '@/handlers/payment/PaymentHandler';\nimport { planpayPaymentHandler } from '@/handlers/payment/PlanpayPaymentHandler';\nimport { redirectPaymentHandler } from '@/handlers/payment/RedirectPaymentHandler';\nimport { stripePaymentHandler } from '@/handlers/payment/StripePaymentHandler';\nimport { trueRewardsPaymentHandler } from '@/handlers/payment/TrueRewardsPaymentHandler';\nimport { vgsMemberPaymentHandler } from '@/handlers/payment/VGSMemberPaymentHandler';\nimport { vgsPaymentHandler } from '@/handlers/payment/VGSPaymentHandler';\nimport { useConfirmationQuery } from '@/hooks/ConfirmationQuery';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRowDifferences from '@/models/BasketRowDifferences';\nimport { ConfirmationFormValues, IBookValidationResult, TUserProfileFormValues } from '@/models/Confirmation';\nimport { ListOfCountriesAndCodes } from '@/models/CountryCodesAndNumbers';\nimport UserProfile from '@/models/UserProfile';\nimport { Translation } from '@/translations/Translation';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport getStepRoom from '@/util/GetStepRoom';\n\nimport { ConfirmationValidator } from './ConfirmationStepContextTypes';\nimport { ConfirmationStepErrorModal } from './ConfirmationStepErrorModal';\n\nconst ConfirmationStepContextProvider = ConfirmationStepContext.Provider;\n\nexport const ConfirmationStepContextWrapper: FC<PropsWithChildren<any>> = ({ children }) => {\n const [differenceWarning, setDifferenceWarning] = useState<{\n differences: BasketRowDifferences[];\n warnings: string[];\n }>({\n differences: [],\n warnings: [],\n });\n\n const { queryRoomstayId: queryReservationId, queryPlanpayCheckoutId, paymentId, isBackFromPlanpay, isBackFromExternalPayment, isInitialCheckout } = useConfirmationQuery();\n // load the engine context\n const engineContext = useContext(BookingEngineContext);\n const { roomstayMember } = useMemberContext();\n\n const [bookingSource, setBookingSource] = useState<string>();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [isPaymentLoading, setIsPaymentLoading] = useState(false);\n const [loadingStatus, setLoadingStatus] = useState('');\n const [isPaymentFailed, setIsPaymentFailed] = useState(false);\n const [customFieldsHaveErrors, setCustomFieldsHaveErrors] = useState(false);\n const { isExternalMemberHotel, memberNumber } = useSignedInMember();\n\n const [apiErrorResponse, setApiErrorResponse] = useState<IBookingCreateErrorResponse>();\n const [errorModalLoading, setErrorModalLoading] = useState(false);\n const [isInPaymentMode, setIsInPaymentMode] = useState(false);\n const methods = useForm<ConfirmationFormValues>({\n mode: 'onSubmit',\n });\n const [errorChecks, setErrorChecks] = useState<(() => ConfirmationValidator)[]>([] as any);\n\n const [availablePaymentHandlers, setAvailablePaymentHandlers] = useState<PaymentHandler[]>([]);\n\n const basketContext = useContext(BasketContext);\n const basketRows = basketContext.getAllValidRows();\n const basketAddonRows = basketContext.basketAddonRows;\n\n const currentSession = useMemo(() => {\n return engineContext.sessionProvider.getSession();\n }, [basketContext.reservationData]);\n\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n const { raise } = useEvent();\n\n const allPaymentHandlers = [\n redirectPaymentHandler(),\n adyenPaymentHandler(),\n vgsPaymentHandler(),\n vgsMemberPaymentHandler(),\n planpayPaymentHandler(),\n afterpayPaymentHandler(),\n mastercardPaymentHandler(),\n trueRewardsPaymentHandler(),\n stripePaymentHandler(),\n ];\n\n const historyConsistentPush = useHistoryConsistentPush();\n\n const paymentMethod = methods.watch('paymentMethod');\n /**\n * We need to make sure that if the user navigates away from this step, we don't try to update the basket\n * with deposit data, as it can cause an unwanted redirect back to this step.\n */\n const confirmationStepIsActiveRef = useRef(true);\n useEffect(() => {\n return () => {\n confirmationStepIsActiveRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n setBookingSource(engineContext.engine.getSessionProvider().getSession()?.source);\n\n const reservationRoomstayId: string | undefined = basketContext.reservationData?.roomstayId;\n const isMatchingRoomstayId: boolean = !!queryReservationId && (!reservationRoomstayId || queryReservationId === reservationRoomstayId);\n\n if (isBackFromExternalPayment && isMatchingRoomstayId) {\n if (basketContext.reservationData.payment?.isSplitPayment) {\n commitReservation?.(basketContext.reservationData);\n } else {\n commitReservation?.(basketContext.reservationData, 'Please wait... Finalising your reservation');\n }\n }\n\n if (isBackFromPlanpay && queryReservationId === reservationRoomstayId) {\n commitReservation?.(basketContext.reservationData, 'Please wait... Finalising your reservation');\n }\n\n if (isInitialCheckout) {\n DataLayer.instance.sendCheckoutView(basketRows, basketAddonRows);\n }\n }, []);\n\n useEffect(() => {\n const requireCall = hotel?.rmsUseDepositQuote || hotel?.bookingFlow !== EBookingFlow.Default;\n\n // Listen for Basket Row Changes to fetch new deposit quotes on checkout\n if (requireCall && basketContext.quoteQueryID !== '') {\n basketContext.quoteOrPencilReservation(() => confirmationStepIsActiveRef.current);\n }\n }, [hotel?.rmsUseDepositQuote, hotel?.bookingFlow, basketContext.quoteQueryID]);\n\n useEffect(() => {\n const currentlyAvailablePaymentHandlers = allPaymentHandlers.filter((handler) => handler.isAvailable);\n let defaultPaymentHandler = '';\n\n if (roomstayMember?.cards && currentlyAvailablePaymentHandlers.some((handler) => handler.name === 'VGSMember')) {\n defaultPaymentHandler = 'VGSMember';\n }\n\n if (!defaultPaymentHandler && currentlyAvailablePaymentHandlers.length > 0) {\n defaultPaymentHandler = currentlyAvailablePaymentHandlers[0].name;\n }\n\n methods.setValue('paymentMethod', defaultPaymentHandler);\n\n setAvailablePaymentHandlers(currentlyAvailablePaymentHandlers);\n }, [hotel]);\n\n useEffect(() => {\n const selectedPayment = availablePaymentHandlers.find((handler) => handler.name === paymentMethod);\n\n if (!selectedPayment) {\n return;\n }\n\n if (selectedPayment.requireBookingPlaced && !selectedPayment.isExclusive) {\n onContinueClick();\n }\n }, [paymentMethod]);\n\n const exclusivePayment = useMemo(() => {\n return availablePaymentHandlers.find((handler) => handler.isExclusive);\n }, [availablePaymentHandlers]);\n\n const toUserProfiles = (formValues: ConfirmationFormValues): UserProfile[] => {\n return formValues.userProfiles.map((values) => {\n let shortCountryCode: string | undefined = values.CountryCode;\n\n if (!shortCountryCode) {\n const country = ListOfCountriesAndCodes.find((country) => country.label === values.Country);\n shortCountryCode = country?.code;\n }\n\n return {\n title: values.Title,\n firstName: values.Forename,\n lastName: values.Surname,\n phone: values.Phone.replace(' ', ''),\n email: values.Email,\n address: {\n line1: values.Address,\n city: values.City,\n postalCode: values.PostCode,\n state: values.State,\n country: values.Country,\n countryId: values.CountryId,\n countryCode: shortCountryCode,\n },\n marketingOptIn: formValues.marketingOptIn,\n auxInputs: values.AuxInputs,\n };\n });\n };\n\n const validateCustomFields = (scrollToInput?: boolean): boolean => {\n const adhocValid = errorChecks.every((check) => check().validate(scrollToInput));\n return adhocValid === undefined ? true : adhocValid;\n };\n\n const validateReservation = async (data: ReservationsDTO): Promise<IBookValidationResult | undefined> => {\n const apiDifferences: BasketRowDifferences[] = [];\n if (data.reservations) {\n data.reservations.forEach((reservation: ReservationDTO, index) => {\n const diff = basketContext.currentBasketRows[index].checkDiffFromReservation(reservation);\n\n if (diff) {\n apiDifferences.push(diff);\n }\n });\n } else {\n Sentry.addBreadcrumb({\n level: Severity.Error,\n message: 'No reservation data: ' + JSON.stringify(data),\n });\n throw new Error('The reservation could not be completed due to an unexpected issue, please try again');\n }\n\n // If there are differences, we want to display them to make sure the booking still needs to proceed\n if (apiDifferences.length || (data.warnings && data.warnings.length)) {\n return {\n differences: apiDifferences,\n warnings: data.warnings as string[],\n };\n }\n };\n\n const onSubmitSuccess = async (data: ReservationsDTO, paymentMethod: EBookingPaymentMethod) => {\n raise(new PlacedBookingEvent(data, basketContext.currentBasketRows, hotel));\n\n // If this is a planpay booking, we don't need to do anything else.\n if (paymentMethod === EBookingPaymentMethod.Planpay || paymentMethod === EBookingPaymentMethod.TrueRewards) {\n return;\n }\n\n if (hotel?.cardProcessor === EHotelCardProcessor.Passthrough) {\n await commitReservation?.(data);\n } else {\n if (data.payment?.external?.redirectUrl) {\n redirectOut(data.payment?.external?.redirectUrl);\n }\n }\n };\n\n const placeBooking = async (formPayload: ConfirmationFormValues, payment: IBookingPayment): Promise<ReservationsDTO | null> => {\n DataLayer.instance.sendInteraction('Complete Booking', InteractionType.BUTTON, InteractionStep.GUEST_DETAILS);\n setIsLoading(true);\n let data: ReservationsDTO | undefined;\n\n const userProfiles = toUserProfiles(formPayload);\n const perRowExtraFields: IBookingExtraFields['perRow'] = formPayload.userProfiles.map((formValue: TUserProfileFormValues) => {\n return {\n childAges: formValue.CaptureChildAge?.map((age) => parseInt(age, 10)),\n };\n });\n\n try {\n const captureChildAgeComments: string[] = hotel?.captureChildAge\n ? formPayload.userProfiles.flatMap(\n (formValue: TUserProfileFormValues, roomIndex: number) =>\n formValue?.CaptureChildAge?.map((age: string, childIndex: number) => `Room ${roomIndex + 1} - Child: ${childIndex + 1} Age: ${age}`) || []\n )\n : [];\n\n const comments = formPayload.comments;\n\n const bookingComment = captureChildAgeComments.length > 0 ? `${comments}\\n${captureChildAgeComments.join('\\n')}` : comments;\n\n data = await API.Reservation.bookNow(\n basketRows,\n userProfiles,\n payment,\n basketAddonRows,\n bookingComment || '',\n hotel?.hotelID as string,\n engineContext.sessionProvider.getCurrentSessionID().toString(),\n basketContext.pencilId,\n undefined,\n undefined,\n undefined,\n isExternalMemberHotel ? memberNumber : undefined,\n {\n perRow: perRowExtraFields,\n }\n );\n\n await basketContext.booked(data, {\n userProfiles,\n payment,\n comments: bookingComment || '',\n });\n\n const validationResult = await validateReservation(data);\n if (validationResult) {\n setIsLoading(false);\n setDifferenceWarning(validationResult);\n\n return null;\n } else {\n await onSubmitSuccess(data, payment.Method);\n\n return data;\n }\n } catch (error: any) {\n setApiErrorResponse(error as IBookingCreateErrorResponse);\n } finally {\n setIsLoading(false);\n }\n\n return null;\n };\n\n const parseReservationIdsFromData = (data: ReservationsDTO) => {\n return data?.reservations?.map((reservation) => reservation.reservationNumber);\n };\n\n const commitReservation = async (resData: ReservationsDTO, statusUpdate?: string) => {\n try {\n if (statusUpdate) {\n setLoadingStatus(statusUpdate);\n }\n\n setIsLoading(true);\n\n if (resData) {\n const reservationIds = parseReservationIdsFromData(resData);\n if (reservationIds.length) {\n try {\n const response = await API.Reservation.commit(\n reservationIds,\n resData.itineraryNumber,\n hotel?.hotelID as string,\n queryPlanpayCheckoutId || undefined,\n paymentId || undefined\n );\n try {\n DataLayer.instance.sendReservationConfirmed(basketContext.getAllValidRows(), basketContext.basketAddonRows, response);\n } catch (ex) {\n Sentry.captureException('Failed to read reservations from GTM code: ' + JSON.stringify(ex));\n }\n basketContext.checkedOut(response);\n raise(new CommittedBookingEvent(resData, basketContext.currentBasketRows, hotel));\n } catch (error: any) {\n if (error.paymentRequired) {\n basketContext.additionalPaymentRequired(error.paymentRequired);\n } else {\n setApiErrorResponse(error);\n }\n }\n } else {\n ErrorHandler.add({ message: t(Translation.Step.Confirmation.UnexpectedErrorOnCommittingReservation) });\n Sentry.captureException('No reservation IDs found when attempting to commit: ' + JSON.stringify(resData));\n }\n }\n } catch (ex) {\n console.error(ex);\n Sentry.captureException(ex);\n }\n\n setIsLoading(false);\n };\n\n const rollbackReservation = async () => {\n if (!basketContext.reservationData) return;\n\n try {\n const reservationIds = parseReservationIdsFromData(basketContext.reservationData);\n if (reservationIds.length) {\n setIsLoading(true);\n await API.Reservation.rollback(reservationIds, basketContext.reservationData.itineraryNumber, hotel?.hotelID as string);\n raise(new RolledBackBookingEvent(basketContext.reservationData));\n } else {\n Sentry.captureException('No reservation IDs found when attempting to rollback: ' + JSON.stringify(basketContext.reservationData));\n }\n } catch (ex) {\n console.log('Failed to rollback reservations');\n Sentry.captureException(ex);\n } finally {\n basketContext.rollback();\n setIsLoading(false);\n }\n };\n\n const redirectOut = (targetUrl: string, stateUpdate?: string) => {\n setIsLoading(true);\n if (stateUpdate) {\n setLoadingStatus(stateUpdate);\n }\n\n window.location.href = targetUrl;\n };\n\n const onRetryBooking = async () => {\n setErrorModalLoading(true);\n setIsLoading(true);\n\n const resRequest = currentSession?.reservationRequest;\n const roomstayId = currentSession?.reservation?.roomstayId;\n\n if (!resRequest || !roomstayId) {\n console.error('No reservation request or roomstay ID found in session', { resRequest, roomstayId });\n return null;\n }\n\n try {\n const data = await API.Reservation.bookNow(\n basketRows,\n resRequest.userProfiles,\n resRequest.payment,\n basketAddonRows,\n '',\n hotel?.hotelID as string,\n engineContext.sessionProvider.getCurrentSessionID().toString(),\n basketContext.pencilId,\n undefined,\n true,\n roomstayId,\n isExternalMemberHotel ? memberNumber : undefined\n );\n await basketContext.booked(data);\n const validationResult = await validateReservation(data);\n\n if (validationResult) {\n setIsLoading(false);\n } else {\n await onSubmitSuccess(data, resRequest.payment?.Method);\n }\n } catch (error: any) {\n setApiErrorResponse(error as IBookingCreateErrorResponse);\n } finally {\n setIsLoading(false);\n setErrorModalLoading(false);\n setIsPaymentFailed(false);\n setApiErrorResponse(undefined);\n }\n };\n\n const onErrorModalClose = async () => {\n setErrorModalLoading(true);\n // We were previously rolling back reservations here, but deciding against it.\n const params = new URLSearchParams(window.location.search);\n window.history.replaceState({}, '', `${window.location.pathname}?${params}`);\n\n window.location.reload();\n };\n\n const attemptFormSubmit = (): Promise<ConfirmationFormValues | null> =>\n new Promise(async (resolve) => {\n const customFieldValidation = await validateCustomFields();\n\n setCustomFieldsHaveErrors(!customFieldValidation);\n\n const onSuccess = (values: ConfirmationFormValues) => {\n if (customFieldValidation) {\n resolve(values);\n } else {\n resolve(null);\n }\n };\n const onFailure = () => {\n // We can just return because custom fields will handle their own validation\n resolve(null);\n };\n\n methods.handleSubmit(onSuccess, onFailure)();\n });\n\n const onContinueClick = async () => {\n // Regardless if we're checking out or getting ready to pay, we need to make sure the details entered are valid\n // so first step will be to validate the inputs.\n\n const values = await attemptFormSubmit();\n\n if (!values) {\n // Error state will be handled within `attemptFormSubmit`\n return;\n }\n\n if (exclusivePayment) {\n // Since we're in exclusive payment mode we need to decide are we submitting, or enabling the payment stage\n if (isInPaymentMode) {\n setIsPaymentLoading(true);\n\n const paymentResponse = await exclusivePayment.onConfirm?.();\n setIsPaymentLoading(false);\n\n if (paymentResponse.success) {\n await commitReservation(basketContext.reservationData, 'Please wait... Finalising your reservation');\n } else {\n // Payment failed. Need to see if user want's to re-try.\n setIsPaymentFailed(true);\n }\n } else {\n if (exclusivePayment.requireBookingPlaced) {\n await placeBooking(values, await exclusivePayment?.getBookingPaymentRequestObject());\n }\n setIsInPaymentMode(true);\n await exclusivePayment.onSelect?.();\n }\n } else {\n // We're not in exclusive payment mode, so we can just submit the form\n // First we need to find the pamynet object from the selected value\n const paymentMode = availablePaymentHandlers.find((handler) => handler.name === values.paymentMethod);\n if (!paymentMode) {\n console.error('No payment mode found for selected payment method', { paymentMethod: values.paymentMethod, availablePaymentHandlers });\n return;\n }\n\n try {\n setIsPaymentLoading(true);\n const response = await paymentMode.onConfirm();\n setIsPaymentLoading(false);\n\n if (response.success) {\n await placeBooking(values, { ...(await paymentMode?.getBookingPaymentRequestObject()), ...response.data });\n } else {\n // The error will be handled in the payment mode.\n }\n } catch (error) {\n console.error(error);\n } finally {\n setIsPaymentLoading(false);\n }\n }\n };\n\n const onBackFromPaymentDetails = () => {\n setIsInPaymentMode(false);\n };\n\n return (\n <FormProvider {...methods}>\n <ConfirmationStepContextProvider\n value={{\n onContinueClick,\n bookingSource,\n\n commitReservation,\n rollbackReservation,\n redirectOut,\n setLoadingStatus,\n\n errorChecks,\n addErrorChecks: (...checks: (() => ConfirmationValidator)[]) => {\n setErrorChecks((oldErrors) => unionBy(checks, oldErrors, (check) => check().name));\n },\n\n isLoading,\n isBackFromPlanpay,\n isBackFromExternalPayment,\n isInPaymentMode,\n apiErrorResponse,\n\n availablePaymentHandlers,\n }}\n >\n {isLoading && <OverlayLoader isFullscreen label={loadingStatus} />}\n <ConfirmationStepErrorModal onRetry={onRetryBooking} onClose={onErrorModalClose} errorData={apiErrorResponse} isLoading={errorModalLoading} />\n <AutoAutoHeight open={customFieldsHaveErrors}>\n <div className=\"u-pad-bottom\">\n <Alert icon={IconType.Error} type={AlertType.Danger}>\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.CustomInputFieldError)}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n\n {children}\n <StepConfirmationCheckoutDifferencesModal\n differences={differenceWarning.differences}\n warnings={differenceWarning.warnings}\n isLoading={isLoading}\n onClose={async () => {\n await rollbackReservation?.();\n historyConsistentPush(getStepRoom().getStepUrl());\n }}\n onProceed={async () => {\n const resRequest = currentSession?.reservationRequest;\n const resResponse = basketContext.reservationData;\n\n try {\n if (resRequest && resResponse) {\n await onSubmitSuccess(resResponse, resRequest?.payment?.Method);\n setDifferenceWarning({ differences: [], warnings: [] });\n } else {\n ErrorHandler.add({ message: t(Translation.Step.Confirmation.UnexpectedErrorOnCommittingReservation) });\n Sentry.captureException('No reservation request or response found when attempting to commit: ' + JSON.stringify({ resRequest, resResponse }));\n }\n } catch (ex) {\n console.error('Failed to commit reservation', ex);\n Sentry.captureException(ex);\n }\n }}\n />\n\n <div className=\"u-flex u-marg-top--heavy justify-content-end\">\n {exclusivePayment && isInPaymentMode && (\n <div className=\"u-marg-right d-flex\">\n <BEButton icon={IconType.ArrowLeft} isText onClick={onBackFromPaymentDetails}>\n {t(Translation.Step.Confirmation.EditDetails)}\n </BEButton>\n </div>\n )}\n {isPaymentFailed && exclusivePayment?.name !== 'Stripe' && (\n <div className=\"u-marg-right d-flex\">\n <BEButton icon={IconType.Edit} stopIconAnimation primary filled onClick={onRetryBooking} isLoading={isLoading}>\n {t(Translation.Step.Confirmation.RetryPayment)}\n </BEButton>\n </div>\n )}\n {(!exclusivePayment?.hasCustomConfirmButton || !isInPaymentMode) && (\n <NextStepButton\n disabled={paymentMethod === EBookingPaymentMethod.Planpay || isLoading || isPaymentLoading}\n text={exclusivePayment && !isInPaymentMode ? t(Translation.Step.Confirmation.ContinueToPayment) : t(Translation.Step.Confirmation.ConfirmReservation)}\n isLoading={isLoading}\n onClick={onContinueClick}\n />\n )}\n </div>\n </ConfirmationStepContextProvider>\n </FormProvider>\n );\n};\n"]}
@@ -1,3 +1,4 @@
1
+ import { IconType } from '@roomstay/ui';
1
2
  import React from 'react';
2
3
  interface ErrorContextType {
3
4
  addError: (error: ErrorType) => void;
@@ -7,6 +8,8 @@ interface ErrorType {
7
8
  retry?: () => void;
8
9
  message: string;
9
10
  title?: string;
11
+ icon?: IconType;
12
+ buttonText?: string;
10
13
  }
11
14
  declare const ErrorContext: React.Context<ErrorContextType | null>;
12
15
  export default ErrorContext;
@@ -45,6 +45,7 @@ const ErrorContext = react_1.default.createContext(null);
45
45
  exports.default = ErrorContext;
46
46
  exports.ErrorHandler = {};
47
47
  function ErrorContextWrapper(props) {
48
+ var _a, _b, _c;
48
49
  const [errors, setErrors] = (0, react_1.useState)([]);
49
50
  const context = {
50
51
  addError: (error) => {
@@ -68,10 +69,11 @@ function ErrorContextWrapper(props) {
68
69
  errors.shift();
69
70
  setErrors(() => [...errors]);
70
71
  };
72
+ const buttonText = ((_b = (_a = errors === null || errors === void 0 ? void 0 : errors[0]) === null || _a === void 0 ? void 0 : _a.buttonText) !== null && _b !== void 0 ? _b : (_c = errors === null || errors === void 0 ? void 0 : errors[0]) === null || _c === void 0 ? void 0 : _c.retry) ? 'Retry' : 'Close';
71
73
  return (react_1.default.createElement(react_1.default.Fragment, null,
72
74
  react_1.default.createElement(ErrorContext.Provider, { value: context },
73
75
  !!errors.length && (react_1.default.createElement(react_1.Suspense, { fallback: "" },
74
- react_1.default.createElement(ErrorModal, { title: errors[0].title, closeButtonText: errors[0].retry ? 'Retry' : 'Close', open: true, onClose: onCloseModalHandler },
76
+ react_1.default.createElement(ErrorModal, { title: errors[0].title, closeButtonText: buttonText, open: true, onClose: onCloseModalHandler, icon: errors[0].icon },
75
77
  react_1.default.createElement(Text_1.default, null, errors[0].message)))),
76
78
  props.children)));
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorContext.js","sourceRoot":"/","sources":["src/contexts/ErrorContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,kDAyCC;AAnED,+CAAwD;AAExD,qEAA6C;AAE7C,MAAM,UAAU,GAAG,IAAA,YAAI,EAAC,GAAG,EAAE,mDAAQ,uCAAuC,GAAC,CAAC,CAAC;AAa/E,MAAM,YAAY,GAAG,eAAK,CAAC,aAAa,CAA0B,IAAI,CAAC,CAAC;AACxE,kBAAe,YAAY,CAAC;AAMf,QAAA,YAAY,GAA8C,EAAE,CAAC;AAE1E,SAAgB,mBAAmB,CAAC,KAA+B;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAc,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAqB;QAC9B,QAAQ,EAAE,CAAC,KAAgB,EAAE,EAAE;YAC3B,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;KACJ,CAAC;IAEF,oBAAY,CAAC,GAAG,GAAG,CAAC,KAAgB,EAAE,EAAE;QACpC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxF,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,aAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,OAAO,CACH;QACI,8BAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO;YAChC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAChB,8BAAC,gBAAQ,IAAC,QAAQ,EAAC,EAAE;gBACjB,8BAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,QAAC,OAAO,EAAE,mBAAmB;oBACvH,8BAAC,cAAI,QAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAQ,CACvB,CACN,CACd;YACA,KAAK,CAAC,QAAQ,CACK,CACzB,CACN,CAAC;AACN,CAAC","sourcesContent":["import React, { lazy, Suspense, useState } from 'react';\n\nimport Text from '@/components/generic/Text';\n\nconst ErrorModal = lazy(() => import('@/components/generic/modal/ErrorModal'));\n\ninterface ErrorContextType {\n addError: (error: ErrorType) => void;\n}\n\ninterface ErrorType {\n id?: number;\n retry?: () => void;\n message: string;\n title?: string;\n}\n\nconst ErrorContext = React.createContext<ErrorContextType | null>(null);\nexport default ErrorContext;\n\ninterface ErrorContextWrapperProps {\n children: React.ReactNode;\n}\n\nexport const ErrorHandler: { add: (error: ErrorType) => void } | any = {};\n\nexport function ErrorContextWrapper(props: ErrorContextWrapperProps) {\n const [errors, setErrors] = useState<ErrorType[]>([]);\n\n const context: ErrorContextType = {\n addError: (error: ErrorType) => {\n error.id = Math.random();\n setErrors((oldErrors) => [...oldErrors, error]);\n },\n };\n\n ErrorHandler.add = (error: ErrorType) => {\n setErrors((currentErrors) => {\n if (!currentErrors.some((it) => it.title === error.title && it.message === error.message)) {\n error.id = Math.random();\n return [...currentErrors, error];\n }\n\n return currentErrors;\n });\n };\n const onCloseModalHandler = () => {\n if (errors[0].retry) {\n errors[0].retry();\n }\n errors.shift();\n setErrors(() => [...errors]);\n };\n return (\n <>\n <ErrorContext.Provider value={context}>\n {!!errors.length && (\n <Suspense fallback=\"\">\n <ErrorModal title={errors[0].title} closeButtonText={errors[0].retry ? 'Retry' : 'Close'} open onClose={onCloseModalHandler}>\n <Text>{errors[0].message}</Text>\n </ErrorModal>\n </Suspense>\n )}\n {props.children}\n </ErrorContext.Provider>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ErrorContext.js","sourceRoot":"/","sources":["src/contexts/ErrorContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,kDA4CC;AAzED,+CAAwD;AAExD,qEAA6C;AAE7C,MAAM,UAAU,GAAG,IAAA,YAAI,EAAC,GAAG,EAAE,mDAAQ,uCAAuC,GAAC,CAAC,CAAC;AAgB/E,MAAM,YAAY,GAAG,eAAK,CAAC,aAAa,CAA0B,IAAI,CAAC,CAAC;AACxE,kBAAe,YAAY,CAAC;AAMf,QAAA,YAAY,GAA8C,EAAE,CAAC;AAE1E,SAAgB,mBAAmB,CAAC,KAA+B;;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAc,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAqB;QAC9B,QAAQ,EAAE,CAAC,KAAgB,EAAE,EAAE;YAC3B,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;KACJ,CAAC;IAEF,oBAAY,CAAC,GAAG,GAAG,CAAC,KAAgB,EAAE,EAAE;QACpC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxF,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,aAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,0CAAE,UAAU,mCAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,0CAAE,KAAK,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAErF,OAAO,CACH;QACI,8BAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO;YAChC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAChB,8BAAC,gBAAQ,IAAC,QAAQ,EAAC,EAAE;gBACjB,8BAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,QAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBACpH,8BAAC,cAAI,QAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAQ,CACvB,CACN,CACd;YACA,KAAK,CAAC,QAAQ,CACK,CACzB,CACN,CAAC;AACN,CAAC","sourcesContent":["import { IconType } from '@roomstay/ui';\nimport React, { lazy, Suspense, useState } from 'react';\n\nimport Text from '@/components/generic/Text';\n\nconst ErrorModal = lazy(() => import('@/components/generic/modal/ErrorModal'));\n\ninterface ErrorContextType {\n addError: (error: ErrorType) => void;\n}\n\ninterface ErrorType {\n id?: number;\n retry?: () => void;\n message: string;\n title?: string;\n icon?: IconType;\n\n buttonText?: string;\n}\n\nconst ErrorContext = React.createContext<ErrorContextType | null>(null);\nexport default ErrorContext;\n\ninterface ErrorContextWrapperProps {\n children: React.ReactNode;\n}\n\nexport const ErrorHandler: { add: (error: ErrorType) => void } | any = {};\n\nexport function ErrorContextWrapper(props: ErrorContextWrapperProps) {\n const [errors, setErrors] = useState<ErrorType[]>([]);\n\n const context: ErrorContextType = {\n addError: (error: ErrorType) => {\n error.id = Math.random();\n setErrors((oldErrors) => [...oldErrors, error]);\n },\n };\n\n ErrorHandler.add = (error: ErrorType) => {\n setErrors((currentErrors) => {\n if (!currentErrors.some((it) => it.title === error.title && it.message === error.message)) {\n error.id = Math.random();\n return [...currentErrors, error];\n }\n\n return currentErrors;\n });\n };\n const onCloseModalHandler = () => {\n if (errors[0].retry) {\n errors[0].retry();\n }\n errors.shift();\n setErrors(() => [...errors]);\n };\n\n const buttonText = errors?.[0]?.buttonText ?? errors?.[0]?.retry ? 'Retry' : 'Close';\n\n return (\n <>\n <ErrorContext.Provider value={context}>\n {!!errors.length && (\n <Suspense fallback=\"\">\n <ErrorModal title={errors[0].title} closeButtonText={buttonText} open onClose={onCloseModalHandler} icon={errors[0].icon}>\n <Text>{errors[0].message}</Text>\n </ErrorModal>\n </Suspense>\n )}\n {props.children}\n </ErrorContext.Provider>\n </>\n );\n}\n"]}
@@ -63,9 +63,14 @@ const useHotelOverrides = () => {
63
63
  const fetchApiData = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
64
64
  if (companyContext.selectedHotelID) {
65
65
  loadingSet(true);
66
- const apiData = yield BookingAPI_1.default.Hotel.fetchOverrides(companyContext.selectedHotelID);
67
- loadingSet(false);
68
- overridesSet(apiData);
66
+ try {
67
+ const apiData = yield BookingAPI_1.default.Hotel.fetchOverrides(companyContext.selectedHotelID);
68
+ loadingSet(false);
69
+ overridesSet(apiData);
70
+ }
71
+ catch (error) {
72
+ console.error('Failed to fetch hotel overrides', error);
73
+ }
69
74
  }
70
75
  }), [companyContext.selectedHotelID]);
71
76
  const hideByLine = (0, react_1.useMemo)(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n loadingSet(false);\n overridesSet(apiData);\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n try {\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n\n loadingSet(false);\n overridesSet(apiData);\n } catch (error) {\n console.error('Failed to fetch hotel overrides', error);\n }\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n"]}
@@ -0,0 +1,5 @@
1
+ import { RoomstayError } from './RoomstayError';
2
+ export declare class APIError extends RoomstayError {
3
+ constructor(message?: string);
4
+ toString(): void;
5
+ }