@roomstay/frontend 2.6.36 → 2.6.37

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 (29) hide show
  1. package/dist/main.bundle.js +1 -1
  2. package/dist/src/components/User/Forms/SignUpForm.d.ts +1 -1
  3. package/dist/src/components/User/Forms/SignUpForm.js +1 -1
  4. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  5. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.d.ts +1 -1
  6. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js +3 -3
  7. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js.map +1 -1
  8. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +12 -8
  9. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
  10. package/dist/src/components/members/SignInModal/ExternalMemberModal.js +5 -12
  11. package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
  12. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +1 -2
  13. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
  14. package/dist/src/components/members/SignInModal/MemberSignInModal.js +8 -1
  15. package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
  16. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +13 -8
  17. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  18. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +3 -1
  19. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  20. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +12 -5
  21. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  22. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +21 -22
  23. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  24. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +9 -0
  25. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  26. package/dist/src/providers/storage/LocalStorageProvider.d.ts +1 -1
  27. package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
  28. package/dist/test.bundle.js +1 -1
  29. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Navigate, Route, Routes, useLocation, useMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\nimport { EngineBodyLayout } from './EngineBodyLayout';\nimport { EnginePageLayout } from './EnginePageLayout';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useMatch(StepManager.STEP_BASE);\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const updatedCurrentFilters = { ...beContext.currentFilters };\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n updatedCurrentFilters['RoomType'] = new RoomTypeFilter([roomCode]);\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n updatedCurrentFilters['RateType'] = new RateTypeFilter([rateCode]);\n }\n beContext.setCurrentFilters(updatedCurrentFilters);\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children, infants } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n if (infants) {\n basketRow.setInfants(infants);\n }\n\n basketContext.addBasketRow(basketRow);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate() && StepManager.getFirstStep() !== StepHotel) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) as Step);\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n useEffect(() => {\n if (hotel?.currentRoomSort) {\n beContext.setCurrentRoomSort(hotel?.currentRoomSort);\n }\n }, [hotel?.currentRoomSort]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <AuthenticationContextProvider>\n <ModalContextWrapper>\n <ScrollToTop />\n <header className=\"engine-header\">\n <Header />\n </header>\n\n {engineReady && (\n <Routes>\n <Route path=\"/\" element={<Navigate to={StepManager.getFirstStep().getStepUrl()} replace />} />\n\n <Route path=\"/step\" element={<EngineBodyLayout />}>\n {StepManager.getSteps().map((step: Step) => (\n <Route key={step.getName()} path={`${step.getStepUrl()}*`} element={<StepRoute step={step} />} />\n ))}\n </Route>\n\n {/**\n * We aren't on a /step/ path, or the root path, so it's probably one of the engine-page paths.\n * If no matching path is found, we'll redirect back to the first step.\n */}\n <Route path=\"/*\" element={<EnginePageLayout />}>\n {/* TODO: This startsWith('/') check should be temporary. We should update the Route in client config after this is merged. */}\n <Route\n path={ROUTES.HOTEL_INFO.startsWith('/') ? ROUTES.HOTEL_INFO.substring(1) : ROUTES.HOTEL_INFO}\n element={\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <HotelInfo />\n </React.Suspense>\n }\n />\n\n {Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .map((path) => (\n <Route\n key={path}\n path={path}\n element={\n <React.Suspense fallback={<div>Loading...</div>}>\n <FindReservation />\n </React.Suspense>\n }\n />\n ))}\n\n <Route\n path=\"find-reservation/:ref/:email\"\n element={\n <React.Suspense fallback={<div>Loading...</div>}>\n <FindReservationResults />\n </React.Suspense>\n }\n />\n\n <Route\n path=\"account/*\"\n element={\n <PrivateRoute>\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n }\n />\n\n {/* We haven't found a matching path, so just redirect to the first step. */}\n <Route path=\"*\" element={<Navigate to={StepManager.getFirstStep().getStepUrl()} replace />} />\n </Route>\n </Routes>\n )}\n\n <RoomstayMark />\n </ModalContextWrapper>\n </AuthenticationContextProvider>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Navigate, Route, Routes, useLocation, useMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\nimport { MemberSignInModal } from '@/components/members/SignInModal/MemberSignInModal';\nimport { EngineBodyLayout } from './EngineBodyLayout';\nimport { EnginePageLayout } from './EnginePageLayout';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useMatch(StepManager.STEP_BASE);\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const updatedCurrentFilters = { ...beContext.currentFilters };\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n updatedCurrentFilters['RoomType'] = new RoomTypeFilter([roomCode]);\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n updatedCurrentFilters['RateType'] = new RateTypeFilter([rateCode]);\n }\n beContext.setCurrentFilters(updatedCurrentFilters);\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children, infants } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n if (infants) {\n basketRow.setInfants(infants);\n }\n\n basketContext.addBasketRow(basketRow);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate() && StepManager.getFirstStep() !== StepHotel) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) as Step);\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n useEffect(() => {\n if (hotel?.currentRoomSort) {\n beContext.setCurrentRoomSort(hotel?.currentRoomSort);\n }\n }, [hotel?.currentRoomSort]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <ModalContextWrapper>\n <ScrollToTop />\n <header className=\"engine-header\">\n <Header />\n </header>\n\n {engineReady && (\n <Routes>\n <Route path=\"/\" element={<Navigate to={StepManager.getFirstStep().getStepUrl()} replace />} />\n\n <Route path=\"/step\" element={<EngineBodyLayout />}>\n {StepManager.getSteps().map((step: Step) => (\n <Route key={step.getName()} path={`${step.getStepUrl()}*`} element={<StepRoute step={step} />} />\n ))}\n </Route>\n\n {/**\n * We aren't on a /step/ path, or the root path, so it's probably one of the engine-page paths.\n * If no matching path is found, we'll redirect back to the first step.\n */}\n <Route path=\"/*\" element={<EnginePageLayout />}>\n {/* TODO: This startsWith('/') check should be temporary. We should update the Route in client config after this is merged. */}\n <Route\n path={ROUTES.HOTEL_INFO.startsWith('/') ? ROUTES.HOTEL_INFO.substring(1) : ROUTES.HOTEL_INFO}\n element={\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <HotelInfo />\n </React.Suspense>\n }\n />\n\n {Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .map((path) => (\n <Route\n key={path}\n path={path}\n element={\n <React.Suspense fallback={<div>Loading...</div>}>\n <FindReservation />\n </React.Suspense>\n }\n />\n ))}\n\n <Route\n path=\"find-reservation/:ref/:email\"\n element={\n <React.Suspense fallback={<div>Loading...</div>}>\n <FindReservationResults />\n </React.Suspense>\n }\n />\n\n <Route\n path=\"account/*\"\n element={\n <PrivateRoute>\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n }\n />\n\n {/* We haven't found a matching path, so just redirect to the first step. */}\n <Route path=\"*\" element={<Navigate to={StepManager.getFirstStep().getStepUrl()} replace />} />\n </Route>\n </Routes>\n )}\n\n <RoomstayMark />\n </ModalContextWrapper>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
@@ -54,6 +54,7 @@ const react_1 = __importStar(require("react"));
54
54
  const MembersServiceAPI_1 = require("../../../api/members-service/MembersServiceAPI");
55
55
  const useRoomstayMemberContext = () => {
56
56
  const { loading: acLoading, cognitoUser } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
57
+ const { signUserIn, signUserOut } = (0, react_1.useContext)(contexts_1.CompanyContext);
57
58
  const { hasCheckedOut } = (0, react_1.useContext)(contexts_1.BasketContext);
58
59
  const [isFetching, isFetchingSet] = (0, react_1.useState)(false);
59
60
  const [roomstayMember, roomstayMemberSet] = (0, react_1.useState)();
@@ -66,8 +67,16 @@ const useRoomstayMemberContext = () => {
66
67
  (0, react_1.useEffect)(() => {
67
68
  if (roomstayMember) {
68
69
  setAllBookings(roomstayMember.bookings);
70
+ signUserIn({
71
+ saveState: false,
72
+ memberNumber: roomstayMember.email,
73
+ firstName: roomstayMember.forename,
74
+ lastName: roomstayMember.surname,
75
+ email: roomstayMember.email,
76
+ });
69
77
  }
70
78
  else {
79
+ signUserOut();
71
80
  setAllBookings([]);
72
81
  }
73
82
  }, [roomstayMember]);
@@ -1 +1 @@
1
- {"version":3,"file":"RoomstayMemberContextProvider.js","sourceRoot":"/","sources":["src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, BasketContext, IRoomstayMemberBookingItemWithRefAndHotelDetails, IRoomstayMemberContext, RoomstayMemberContext } from '@frontend/contexts';\nimport { IBookingStatus, IRoomstayMember, IRoomstayMemberBooking, IRoomstayMemberCards } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { GetMemberDetails, UpdateMemberDetails } from '@/api/members-service/MembersServiceAPI';\n\nconst useRoomstayMemberContext = (): IRoomstayMemberContext => {\n const { loading: acLoading, cognitoUser } = useContext(AuthenticationContext);\n const { hasCheckedOut } = useContext(BasketContext);\n\n const [isFetching, isFetchingSet] = useState<boolean>(false);\n const [roomstayMember, roomstayMemberSet] = useState<IRoomstayMember | undefined>();\n const [cards, cardsSet] = useState<IRoomstayMemberCards[]>([]);\n\n const [allBookings, setAllBookings] = useState<IRoomstayMemberBooking[]>([]);\n\n const [allItineraries, setAllItineraries] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [cancelledBookings, setCancelledBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [pastBookings, setPastBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [upcomingBookings, setUpcomingBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n\n useEffect(() => {\n if (roomstayMember) {\n setAllBookings(roomstayMember.bookings);\n } else {\n setAllBookings([]);\n }\n }, [roomstayMember]);\n\n useEffect(() => {\n const itineraries = [];\n for (const booking of allBookings) {\n const itineraryKeys = Object.keys(booking.itinerary);\n\n for (const key of itineraryKeys) {\n const bookingItem: IRoomstayMemberBookingItemWithRefAndHotelDetails = {\n ...booking.itinerary[key],\n bookingId: booking.itineraryId,\n hotel: booking.hotel,\n hotelId: booking.hotelId,\n };\n\n itineraries.push(bookingItem);\n }\n }\n\n itineraries.sort((a, b) => {\n return dayjs(b.checkInDate).diff(dayjs(a.checkInDate));\n });\n\n setAllItineraries(itineraries);\n }, [allBookings]);\n\n useEffect(() => {\n const bookingBrackets: { [key in 'cancelled' | 'past' | 'upcoming']: IRoomstayMemberBookingItemWithRefAndHotelDetails[] } = {\n past: [],\n upcoming: [],\n cancelled: [],\n };\n\n const sortedAllItineraries = allItineraries.sort(\n ({ checkInDate: aCheckInDateString, checkOutDate: aCheckOutDateString }, { checkInDate: bCheckInDateString, checkOutDate: bCheckOutDateString }) => {\n const aCheckInDate = dayjs(aCheckInDateString);\n const bCheckInDate = dayjs(bCheckInDateString);\n if (aCheckInDate.isSame(bCheckInDate)) {\n const aCheckOutDate = dayjs(aCheckOutDateString);\n const bCheckOutDate = dayjs(bCheckOutDateString);\n if (aCheckOutDate.isSame(bCheckOutDate)) return 0;\n else if (aCheckOutDate.isBefore(bCheckOutDate)) return -1;\n else return 1;\n } else if (aCheckInDate.isBefore(bCheckInDate)) return -1;\n else return 1;\n }\n );\n\n for (const booking of sortedAllItineraries) {\n if (booking.status === IBookingStatus.Cancelled) {\n bookingBrackets.cancelled.push(booking);\n } else if (dayjs(booking.checkOutDate).isBefore(dayjs())) {\n bookingBrackets.past.push(booking);\n } else {\n bookingBrackets.upcoming.push(booking);\n }\n }\n\n setCancelledBookings(bookingBrackets.cancelled);\n setUpcomingBookings(bookingBrackets.upcoming);\n setPastBookings(bookingBrackets.past);\n }, [allItineraries]);\n\n const loading = useMemo(() => isFetching || acLoading, [isFetching, acLoading]);\n\n const fetchRoomstayMember = useCallback(async () => {\n if (cognitoUser) {\n isFetchingSet(true);\n try {\n const member = await GetMemberDetails();\n roomstayMemberSet(member);\n cardsSet(member.cards ?? []);\n } catch (e) {\n // TODO deal with members that we haven't been able to fetch\n console.log(e);\n }\n isFetchingSet(false);\n } else {\n roomstayMemberSet(undefined);\n }\n }, [cognitoUser]);\n\n useEffect(() => {\n fetchRoomstayMember();\n }, [fetchRoomstayMember]);\n\n useEffect(() => {\n if (hasCheckedOut) {\n fetchRoomstayMember();\n }\n }, [hasCheckedOut]);\n\n const updateCardToMemberDetail = (card: IRoomstayMemberCards): void => {\n const index = roomstayMember?.cards.findIndex((item) => item.cardId === card.cardId);\n if (index && roomstayMember?.cards[index]) {\n if (index !== -1) {\n roomstayMember.cards[index] = card;\n } else {\n roomstayMember.cards.push(card);\n }\n }\n\n if (roomstayMember?.cards) cardsSet([...roomstayMember.cards]);\n roomstayMemberSet(roomstayMember);\n };\n\n const updateMemberDetails = async (newMemberDetails: IRoomstayMember) => {\n const { ...memberDetailsToSubmit } = newMemberDetails;\n isFetchingSet(true);\n try {\n const updatedMember = await UpdateMemberDetails(memberDetailsToSubmit);\n\n if (updatedMember && updatedMember.username) {\n roomstayMemberSet(updatedMember);\n }\n if (updatedMember?.cards) cardsSet([...updatedMember.cards]);\n } catch (e) {\n // TODO\n }\n\n isFetchingSet(false);\n };\n\n return {\n loading,\n roomstayMember,\n cards,\n\n allBookings,\n\n allItineraries,\n upcomingBookings,\n pastBookings,\n cancelledBookings,\n\n updateCardToMemberDetail,\n updateMemberDetails,\n fetchRoomstayMember,\n isFetchingMember: isFetching,\n };\n};\n\nexport const RoomstayMemberContextProvider: React.FC = ({ children }) => {\n return <RoomstayMemberContext.Provider value={useRoomstayMemberContext()}>{children}</RoomstayMemberContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"RoomstayMemberContextProvider.js","sourceRoot":"/","sources":["src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContext,\n BasketContext,\n CompanyContext,\n IRoomstayMemberBookingItemWithRefAndHotelDetails,\n IRoomstayMemberContext,\n RoomstayMemberContext,\n} from '@frontend/contexts';\nimport { IBookingStatus, IRoomstayMember, IRoomstayMemberBooking, IRoomstayMemberCards } from '@roomstay/core';\nimport dayjs from 'dayjs';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport { GetMemberDetails, UpdateMemberDetails } from '@/api/members-service/MembersServiceAPI';\n\nconst useRoomstayMemberContext = (): IRoomstayMemberContext => {\n const { loading: acLoading, cognitoUser } = useContext(AuthenticationContext);\n const { signUserIn, signUserOut } = useContext(CompanyContext);\n const { hasCheckedOut } = useContext(BasketContext);\n\n const [isFetching, isFetchingSet] = useState<boolean>(false);\n const [roomstayMember, roomstayMemberSet] = useState<IRoomstayMember | undefined>();\n const [cards, cardsSet] = useState<IRoomstayMemberCards[]>([]);\n\n const [allBookings, setAllBookings] = useState<IRoomstayMemberBooking[]>([]);\n\n const [allItineraries, setAllItineraries] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [cancelledBookings, setCancelledBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [pastBookings, setPastBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n const [upcomingBookings, setUpcomingBookings] = useState<IRoomstayMemberBookingItemWithRefAndHotelDetails[]>([]);\n\n useEffect(() => {\n if (roomstayMember) {\n setAllBookings(roomstayMember.bookings);\n\n signUserIn({\n saveState: false,\n memberNumber: roomstayMember.email,\n firstName: roomstayMember.forename,\n lastName: roomstayMember.surname,\n email: roomstayMember.email,\n });\n } else {\n signUserOut();\n setAllBookings([]);\n }\n }, [roomstayMember]);\n\n useEffect(() => {\n const itineraries = [];\n for (const booking of allBookings) {\n const itineraryKeys = Object.keys(booking.itinerary);\n\n for (const key of itineraryKeys) {\n const bookingItem: IRoomstayMemberBookingItemWithRefAndHotelDetails = {\n ...booking.itinerary[key],\n bookingId: booking.itineraryId,\n hotel: booking.hotel,\n hotelId: booking.hotelId,\n };\n\n itineraries.push(bookingItem);\n }\n }\n\n itineraries.sort((a, b) => {\n return dayjs(b.checkInDate).diff(dayjs(a.checkInDate));\n });\n\n setAllItineraries(itineraries);\n }, [allBookings]);\n\n useEffect(() => {\n const bookingBrackets: { [key in 'cancelled' | 'past' | 'upcoming']: IRoomstayMemberBookingItemWithRefAndHotelDetails[] } = {\n past: [],\n upcoming: [],\n cancelled: [],\n };\n\n const sortedAllItineraries = allItineraries.sort(\n ({ checkInDate: aCheckInDateString, checkOutDate: aCheckOutDateString }, { checkInDate: bCheckInDateString, checkOutDate: bCheckOutDateString }) => {\n const aCheckInDate = dayjs(aCheckInDateString);\n const bCheckInDate = dayjs(bCheckInDateString);\n if (aCheckInDate.isSame(bCheckInDate)) {\n const aCheckOutDate = dayjs(aCheckOutDateString);\n const bCheckOutDate = dayjs(bCheckOutDateString);\n if (aCheckOutDate.isSame(bCheckOutDate)) return 0;\n else if (aCheckOutDate.isBefore(bCheckOutDate)) return -1;\n else return 1;\n } else if (aCheckInDate.isBefore(bCheckInDate)) return -1;\n else return 1;\n }\n );\n\n for (const booking of sortedAllItineraries) {\n if (booking.status === IBookingStatus.Cancelled) {\n bookingBrackets.cancelled.push(booking);\n } else if (dayjs(booking.checkOutDate).isBefore(dayjs())) {\n bookingBrackets.past.push(booking);\n } else {\n bookingBrackets.upcoming.push(booking);\n }\n }\n\n setCancelledBookings(bookingBrackets.cancelled);\n setUpcomingBookings(bookingBrackets.upcoming);\n setPastBookings(bookingBrackets.past);\n }, [allItineraries]);\n\n const loading = useMemo(() => isFetching || acLoading, [isFetching, acLoading]);\n\n const fetchRoomstayMember = useCallback(async () => {\n if (cognitoUser) {\n isFetchingSet(true);\n\n try {\n const member = await GetMemberDetails();\n roomstayMemberSet(member);\n cardsSet(member.cards ?? []);\n } catch (e) {\n // TODO deal with members that we haven't been able to fetch\n console.log(e);\n }\n\n isFetchingSet(false);\n } else {\n roomstayMemberSet(undefined);\n }\n }, [cognitoUser]);\n\n useEffect(() => {\n fetchRoomstayMember();\n }, [fetchRoomstayMember]);\n\n useEffect(() => {\n if (hasCheckedOut) {\n fetchRoomstayMember();\n }\n }, [hasCheckedOut]);\n\n const updateCardToMemberDetail = (card: IRoomstayMemberCards): void => {\n const index = roomstayMember?.cards.findIndex((item) => item.cardId === card.cardId);\n if (index && roomstayMember?.cards[index]) {\n if (index !== -1) {\n roomstayMember.cards[index] = card;\n } else {\n roomstayMember.cards.push(card);\n }\n }\n\n if (roomstayMember?.cards) cardsSet([...roomstayMember.cards]);\n roomstayMemberSet(roomstayMember);\n };\n\n const updateMemberDetails = async (newMemberDetails: IRoomstayMember) => {\n const { ...memberDetailsToSubmit } = newMemberDetails;\n isFetchingSet(true);\n try {\n const updatedMember = await UpdateMemberDetails(memberDetailsToSubmit);\n\n if (updatedMember && updatedMember.username) {\n roomstayMemberSet(updatedMember);\n }\n if (updatedMember?.cards) cardsSet([...updatedMember.cards]);\n } catch (e) {\n // TODO\n }\n\n isFetchingSet(false);\n };\n\n return {\n loading,\n roomstayMember,\n cards,\n\n allBookings,\n\n allItineraries,\n upcomingBookings,\n pastBookings,\n cancelledBookings,\n\n updateCardToMemberDetail,\n updateMemberDetails,\n fetchRoomstayMember,\n isFetchingMember: isFetching,\n };\n};\n\nexport const RoomstayMemberContextProvider: React.FC = ({ children }) => {\n return <RoomstayMemberContext.Provider value={useRoomstayMemberContext()}>{children}</RoomstayMemberContext.Provider>;\n};\n"]}
@@ -7,5 +7,5 @@ export default class LocalStorageProvider {
7
7
  private read;
8
8
  private write;
9
9
  getUser(): Promise<SignInUser | null | undefined>;
10
- setUser(value: SignInUser): Promise<void>;
10
+ setUser(value?: SignInUser): Promise<void>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LocalStorageProvider.js","sourceRoot":"/","sources":["src/providers/storage/LocalStorageProvider.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,uDAAoD;AAIpD,MAAqB,oBAAoB;IAAzC;QAEY,YAAO,GAAG,IAAI,iCAAe,EAAE,CAAC;IAyB5C,CAAC;IAvBU,UAAU,CAAC,OAAe;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,SAAS,CAAC,GAAQ;QACtB,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAEO,IAAI,CAAI,GAAQ;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,GAAQ,EAAE,KAAoC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEY,OAAO;;YAChB,OAAO,IAAI,CAAC,IAAI,CAAa,MAAM,CAAC,CAAC;QACzC,CAAC;KAAA;IAEY,OAAO,CAAC,KAAiB;;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;KAAA;CACJ;AA3BD,uCA2BC","sourcesContent":["import { SignInUser } from '@frontend/contexts';\n\nimport { LocalStorageModel } from '@/models/LocalStorageModel';\n\nimport { StorageProvider } from './StorageProvider';\n\ntype Key = keyof LocalStorageModel & string;\n\nexport default class LocalStorageProvider {\n private hotelId!: string;\n private storage = new StorageProvider();\n\n public setHotelId(hotelId: string) {\n this.hotelId = hotelId;\n }\n\n private prefixKey(key: Key) {\n return `${this.hotelId}-${key}`;\n }\n\n private read<T>(key: Key) {\n return this.storage.read<T>(this.prefixKey(key));\n }\n\n private write(key: Key, value: LocalStorageModel[typeof key]) {\n return this.storage.write(this.prefixKey(key), value);\n }\n\n public async getUser() {\n return this.read<SignInUser>('user');\n }\n\n public async setUser(value: SignInUser) {\n return this.write('user', value);\n }\n}\n"]}
1
+ {"version":3,"file":"LocalStorageProvider.js","sourceRoot":"/","sources":["src/providers/storage/LocalStorageProvider.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,uDAAoD;AAIpD,MAAqB,oBAAoB;IAAzC;QAEY,YAAO,GAAG,IAAI,iCAAe,EAAE,CAAC;IAyB5C,CAAC;IAvBU,UAAU,CAAC,OAAe;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,SAAS,CAAC,GAAQ;QACtB,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAEO,IAAI,CAAI,GAAQ;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,GAAQ,EAAE,KAAoC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEY,OAAO;;YAChB,OAAO,IAAI,CAAC,IAAI,CAAa,MAAM,CAAC,CAAC;QACzC,CAAC;KAAA;IAEY,OAAO,CAAC,KAAkB;;YACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;KAAA;CACJ;AA3BD,uCA2BC","sourcesContent":["import { SignInUser } from '@frontend/contexts';\n\nimport { LocalStorageModel } from '@/models/LocalStorageModel';\n\nimport { StorageProvider } from './StorageProvider';\n\ntype Key = keyof LocalStorageModel & string;\n\nexport default class LocalStorageProvider {\n private hotelId!: string;\n private storage = new StorageProvider();\n\n public setHotelId(hotelId: string) {\n this.hotelId = hotelId;\n }\n\n private prefixKey(key: Key) {\n return `${this.hotelId}-${key}`;\n }\n\n private read<T>(key: Key) {\n return this.storage.read<T>(this.prefixKey(key));\n }\n\n private write(key: Key, value: LocalStorageModel[typeof key]) {\n return this.storage.write(this.prefixKey(key), value);\n }\n\n public async getUser() {\n return this.read<SignInUser>('user');\n }\n\n public async setUser(value?: SignInUser) {\n return this.write('user', value);\n }\n}\n"]}