@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.
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/User/Forms/SignUpForm.d.ts +1 -1
- package/dist/src/components/User/Forms/SignUpForm.js +1 -1
- package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.d.ts +1 -1
- package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js +3 -3
- package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +12 -8
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
- package/dist/src/components/members/SignInModal/ExternalMemberModal.js +5 -12
- package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
- package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +1 -2
- package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
- package/dist/src/components/members/SignInModal/MemberSignInModal.js +8 -1
- package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +13 -8
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +3 -1
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +12 -5
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +21 -22
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +9 -0
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.d.ts +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- 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]);
|
package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map
CHANGED
|
@@ -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"]}
|
|
@@ -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,
|
|
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"]}
|