@roomstay/frontend 2.6.104-0 → 2.6.104-2

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.
@@ -383,7 +383,7 @@ const CompanyContextWrapper = ({ configCompany: company, children }) => {
383
383
  if (selectedHotel) {
384
384
  currencyHelper.loadExchangeRates((_a = selectedHotel.defaultCurrency) !== null && _a !== void 0 ? _a : 'AUD');
385
385
  StaticContextProvider_1.default.MemberOnlyRateCodes = (_b = selectedHotel.memberOnlyRates) !== null && _b !== void 0 ? _b : [];
386
- DataLayer_1.default.instance.initialiseGTM(company, selectedHotel);
386
+ initialiseGTM(company, selectedHotel);
387
387
  // Prep session based storage
388
388
  const sessionProvider = beContext.engine.getSessionProvider();
389
389
  yield sessionProvider.setHotelID(selectedHotelID);
@@ -404,7 +404,7 @@ const CompanyContextWrapper = ({ configCompany: company, children }) => {
404
404
  }
405
405
  }
406
406
  else {
407
- DataLayer_1.default.instance.initialiseGTM(company);
407
+ initialiseGTM(company);
408
408
  }
409
409
  }), [selectedHotelID]);
410
410
  (0, react_1.useEffect)(() => {
@@ -415,6 +415,12 @@ const CompanyContextWrapper = ({ configCompany: company, children }) => {
415
415
  const selectedHotel = getSelectedHotel();
416
416
  DataLayer_1.default.instance.setCurrencyCodes(currentCurrency, (_a = selectedHotel === null || selectedHotel === void 0 ? void 0 : selectedHotel.defaultCurrency) !== null && _a !== void 0 ? _a : currentCurrency);
417
417
  }, [currentCurrency, selectedHotelID]);
418
+ (0, react_1.useEffect)(() => {
419
+ initialiseGTM(company, selectedHotel);
420
+ }, [company, selectedHotel]);
421
+ const initialiseGTM = (company, hotel) => {
422
+ DataLayer_1.default.instance.initialiseGTM(company, hotel);
423
+ };
418
424
  // TODO: Add Hotel Details fetch
419
425
  // TODO: re-do fetch on language change
420
426
  const workingContext = {
@@ -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 { 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 CurrencyProvider from '@/providers/CurrencyProvider';\nimport FilterProvider from '@/providers/FilterProvider';\nimport { Language } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport AnalyticsEvents from '@/util/AnalyticsEvents/AnalyticsEvents';\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 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 // Set external ID for analytics tracking\n if (user.memberNumber) {\n AnalyticsEvents.setExternalId(user.memberNumber);\n }\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.occupancyLimits = details.occupancyLimits;\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 updatedHotel.calendarHighlights = details.calendarHighlights;\n updatedHotel.maxRoomsPerBooking = details.maxRoomsPerBooking;\n updatedHotel.bookingFlow = details.bookingFlow;\n updatedHotel.metaPixelId = details.metaPixelId;\n updatedHotel.enableAnalyticsDebug = details.enableAnalyticsDebug;\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"]}
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 CurrencyProvider from '@/providers/CurrencyProvider';\nimport FilterProvider from '@/providers/FilterProvider';\nimport { Language } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport AnalyticsEvents from '@/util/AnalyticsEvents/AnalyticsEvents';\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 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 // Set external ID for analytics tracking\n if (user.memberNumber) {\n AnalyticsEvents.setExternalId(user.memberNumber);\n }\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.occupancyLimits = details.occupancyLimits;\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 updatedHotel.calendarHighlights = details.calendarHighlights;\n updatedHotel.maxRoomsPerBooking = details.maxRoomsPerBooking;\n updatedHotel.bookingFlow = details.bookingFlow;\n updatedHotel.metaPixelId = details.metaPixelId;\n updatedHotel.enableAnalyticsDebug = details.enableAnalyticsDebug;\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 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 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 useEffect(() => {\n initialiseGTM(company, selectedHotel);\n }, [company, selectedHotel]);\n\n const initialiseGTM = (company: ConfigCompany, hotel?: Hotel) => {\n DataLayer.instance.initialiseGTM(company, hotel);\n };\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"]}