@roomstay/frontend 2.1.23 → 2.1.24

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"/","sources":["src/components/generic/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uEAAgE;AAChE,kEAA2D;AAE3D,kFAA4C;AAS5C,kBAAe,eAAK,CAAC,UAAU,CAAC,SAAS,QAAQ,CAAC,KAAoB,EAAE,GAAQ;IAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAApE,gCAA4D,CAAQ,CAAC;IAE3E,MAAM,UAAU,GAAG,CAAC,OAA4C,EAAE,EAAE;QAChE,IAAI,gBAAgB,EAAE;YAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC7B;IACL,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,CAAsC,EAAE,EAAE;QACxD,UAAU,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CACH,uCAAK,SAAS,EAAE,8BAAM,CAAC,QAAQ;QAC3B;YACI,uDAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAC,UAAU,IAAK,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;YAC9F,wCAAM,SAAS,EAAE,8BAAM,CAAC,eAAe,CAAC;gBACpC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,GAAI,CAC3B;YACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,UAC7B,KAAK,CAAC,KAAK,CACT,CACH,CACN,CACT,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\n\nimport styles from './Checkbox.module.scss';\n\nexport interface CheckboxProps {\n label: string | JSX.Element;\n checked?: boolean;\n\n onChange?: (checked: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport default React.forwardRef(function Checkbox(props: CheckboxProps, ref: any) {\n const { label, checked, onChange: onCallbackChange, ...restProps } = props;\n\n const setChecked = (checked: React.ChangeEvent<HTMLInputElement>) => {\n if (onCallbackChange) {\n onCallbackChange(checked);\n }\n };\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setChecked(e);\n };\n\n return (\n <div className={styles.checkbox}>\n <label>\n <input ref={ref} checked={props.checked} type=\"checkbox\" {...restProps} onChange={onChange} />\n <span className={styles['fake-checkbox']}>\n <Icon icon={IconType.Check} />\n </span>\n <Text type={TextType.Small} inline>\n {props.label}\n </Text>\n </label>\n </div>\n );\n});\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"/","sources":["src/components/generic/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uEAAgE;AAChE,kEAA2D;AAE3D,kFAA4C;AAS5C,kBAAe,eAAK,CAAC,UAAU,CAAC,SAAS,QAAQ,CAAC,KAAoB,EAAE,GAAQ;IAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAApE,gCAA4D,CAAQ,CAAC;IAE3E,MAAM,UAAU,GAAG,CAAC,OAA4C,EAAE,EAAE;QAChE,IAAI,gBAAgB,EAAE;YAClB,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC7B;IACL,CAAC,CAAC;IAEF,MAAM,QAAQ,GAA+C,CAAC,CAAC,EAAE,EAAE;QAC/D,UAAU,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CACH,uCAAK,SAAS,EAAE,8BAAM,CAAC,QAAQ;QAC3B;YACI,uDAAO,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAC,UAAU,IAAK,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;YAC9F,wCAAM,SAAS,EAAE,8BAAM,CAAC,eAAe,CAAC;gBACpC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,GAAI,CAC3B;YACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,UAC7B,KAAK,CAAC,KAAK,CACT,CACH,CACN,CACT,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\n\nimport styles from './Checkbox.module.scss';\n\nexport interface CheckboxProps {\n label: string | JSX.Element;\n checked?: boolean;\n\n onChange?: (checked: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport default React.forwardRef(function Checkbox(props: CheckboxProps, ref: any) {\n const { label, checked, onChange: onCallbackChange, ...restProps } = props;\n\n const setChecked = (checked: React.ChangeEvent<HTMLInputElement>) => {\n if (onCallbackChange) {\n onCallbackChange(checked);\n }\n };\n\n const onChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n setChecked(e);\n };\n\n return (\n <div className={styles.checkbox}>\n <label>\n <input ref={ref} checked={props.checked} type=\"checkbox\" {...restProps} onChange={onChange} />\n <span className={styles['fake-checkbox']}>\n <Icon icon={IconType.Check} />\n </span>\n <Text type={TextType.Small} inline>\n {props.label}\n </Text>\n </label>\n </div>\n );\n});\n"]}
@@ -159,11 +159,11 @@ function StepConfirmationForm() {
159
159
  var _a;
160
160
  return !ConfirmationVerifyFeature_1.default.isActive() || !!((_a = confirmationPolicy === null || confirmationPolicy === void 0 ? void 0 : confirmationPolicy.current) === null || _a === void 0 ? void 0 : _a.checked);
161
161
  };
162
- const validateCustomFields = () => {
163
- const adhocValid = formContext === null || formContext === void 0 ? void 0 : formContext.errorChecks.every((check) => check().validate());
162
+ const validateCustomFields = (scrollToInput) => {
163
+ const adhocValid = formContext === null || formContext === void 0 ? void 0 : formContext.errorChecks.every((check) => check().validate(scrollToInput));
164
164
  return adhocValid === undefined ? true : adhocValid;
165
165
  };
166
- const isDisabledPlanpay = !validateConfirmationPolicy() || !validateCustomFields() || !methods.formState.isValid;
166
+ const isDisabledPlanpay = !validateConfirmationPolicy() || !validateCustomFields(false) || !methods.formState.isValid;
167
167
  const handleBook = (paymentMethod, onSuccess) => __awaiter(this, void 0, void 0, function* () {
168
168
  var _b;
169
169
  yield (book === null || book === void 0 ? void 0 : book(() => __awaiter(this, void 0, void 0, function* () { return toPaymentPayload(paymentMethod); }), (_b = commentTextbox.current) === null || _b === void 0 ? void 0 : _b.value, () => __awaiter(this, void 0, void 0, function* () {
@@ -171,7 +171,7 @@ function StepConfirmationForm() {
171
171
  setConfirmationPolicyError(true);
172
172
  return false;
173
173
  }
174
- if (!validateCustomFields()) {
174
+ if (!validateCustomFields(true)) {
175
175
  return false;
176
176
  }
177
177
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfirmationForm.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport Headline from '@/components/generic/Headline';\nimport { Translation } from 'translations/Translation';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color } from '@/util/Color';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport RoomContactDetails from '@/components/steps/confirmation/RoomContactDetails';\nimport LineBreak from '@/components/generic/LineBreak';\nimport StepConfirmationPoliciesSection from '@/components/steps/confirmation/StepConfirmationPoliciesSection';\nimport NextStepButton from '@/components/generic/buttons/NextStepButton';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmationFormContext, useBasket, useBookingEngine } from '@frontend/contexts';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SSLSecureBadge from '@/components/generic/badging/SSLSecureBadge';\nimport StepConfirmationCheckoutDifferencesModal from '@/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal';\nimport { useHistory } from 'react-router-dom';\nimport ErrorModal from '@/components/generic/modal/ErrorModal';\nimport StepConfirmationPolicyBlock from '@/components/steps/confirmation/StepConfirmationPolicyBlock';\n\nimport StepConfirmationAcknowledgement from '@/components/steps/confirmation/StepConfirmationAcknowledgement';\nimport BEButton from '@/components/generic/BEButton';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport ConfirmationVerifyFeature from '@/providers/feature/ConfirmationVerifyFeature';\nimport TextBox from '@/components/generic/TextBox';\nimport ShowIATANumberOnCheckoutFeature from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\nimport { PlanpayPaymentMethod } from './PlanpayPaymentMethod';\nimport { ConfirmationFormValues, FBookSuccessCallback } from '@/models/Confirmation';\nimport { useConfirmationStep } from 'contexts/ConfirmationStepContext/ConfirmationStepContext';\nimport { useConfirmationQuery } from '@/hooks/ConfirmationQuery';\nimport BasketRowDifferences from '../../../models/BasketRowDifferences';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport StepConfirmationPaymentDetails from './PaymentDetails/StepConfirmationPaymentDetails';\nimport { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';\nimport RadioButtonGroup from '@/components/generic/RadioButtonGroup/RadioButtonGroup';\nimport AcceptablePaymentCard from '@/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport { StepConfirmationCommentsComponent } from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\n\nexport default function StepConfirmationForm() {\n const [differenceWarning, setDifferenceWarning] = useState<{\n differences: BasketRowDifferences[];\n warnings: string[];\n }>({\n differences: [],\n warnings: [],\n });\n const formContext = useContext(ConfirmationFormContext);\n const [source, setSource] = useState('');\n const [confirmationPolicyError, setConfirmationPolicyError] = useState(false);\n const confirmationPolicy = useRef<HTMLInputElement | null>(null);\n const commentTextbox = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);\n const { t } = useTranslation();\n const { queryPaymentMethod, queryRoomstayId, queryPlanpayCheckoutId } = useConfirmationQuery();\n const context = useBookingEngine();\n const methods = useFormContext<ConfirmationFormValues>();\n const { isBackFromPlanpay, isLoading, apiErrors, clearApiErrors, book, rollbackReservation, commitReservation } = useConfirmationStep();\n const basketContext = useBasket();\n const tokenizerRef = useRef<any | null>(null);\n const history = useHistory();\n const { hotel } = useCurrentHotel();\n\n const toPaymentPayload = async (paymentMethod: EBookingPaymentMethod): Promise<IBookingPayment> => {\n let payment: IBookingPayment;\n switch (paymentMethod) {\n case EBookingPaymentMethod.Planpay: {\n const params = new URLSearchParams(window.location.search);\n params.set('roomstayId', '{{rsId}}');\n params.set('session', context.sessionProvider.getCurrentSessionID().toString());\n params.set('paymentMethod', EBookingPaymentMethod.Planpay);\n const redirectURL = `${window.location.origin}${window.location.pathname}${window.location.search}#/step/confirmation/?${params}`;\n payment = {\n Method: EBookingPaymentMethod.Planpay,\n PlanpayCheckoutId: queryPlanpayCheckoutId || undefined,\n RedirectUrl: redirectURL,\n };\n break;\n }\n default:\n payment = {\n Method: EBookingPaymentMethod.Card,\n PaymentCard: await tokenizerRef.current?.getTokenizedCode(),\n };\n }\n\n return payment;\n };\n\n useEffect(() => {\n const validatedPaymentMethod = Object.values(EBookingPaymentMethod).includes(queryPaymentMethod as EBookingPaymentMethod)\n ? (queryPaymentMethod as EBookingPaymentMethod)\n : EBookingPaymentMethod.Card;\n methods.setValue('paymentMethod', validatedPaymentMethod);\n handleChangePaymentMethod(validatedPaymentMethod);\n if (isBackFromPlanpay) {\n if (queryRoomstayId === basketContext.reservationData?.roomstayId) {\n onPlaypayCallback(validatedPaymentMethod);\n } else {\n rollbackReservation?.();\n }\n }\n return () => {\n if (!isBackFromPlanpay) rollbackReservation?.();\n };\n }, []);\n\n const onPlaypayCallback = async (paymentMethod: EBookingPaymentMethod) => {\n await commitReservation?.(basketContext.reservationData);\n };\n\n const paymentMethod = methods.watch('paymentMethod');\n\n context.engine\n .getSessionProvider()\n .getSession()\n .then((session) => {\n setSource(session.source);\n });\n\n const returnToPickRooms = async () => {\n // TODO: What if StepRoom doesn't exist?\n history.push(StepRoom.getStepUrl());\n };\n\n const onNextStepClicked = async () => {\n await handleBook(paymentMethod, async (resData) => commitReservation?.(resData));\n return false;\n };\n\n const validateConfirmationPolicy = (): boolean => {\n return !ConfirmationVerifyFeature.isActive() || !!confirmationPolicy?.current?.checked;\n };\n\n const validateCustomFields = (): boolean => {\n const adhocValid = formContext?.errorChecks.every((check) => check().validate());\n return adhocValid === undefined ? true : adhocValid;\n };\n\n const isDisabledPlanpay = !validateConfirmationPolicy() || !validateCustomFields() || !methods.formState.isValid;\n\n const handleBook = async (paymentMethod: EBookingPaymentMethod, onSuccess?: FBookSuccessCallback): Promise<void> => {\n await book?.(\n async () => toPaymentPayload(paymentMethod),\n commentTextbox.current?.value,\n async (): Promise<boolean> => {\n if (!validateConfirmationPolicy()) {\n setConfirmationPolicyError(true);\n return false;\n }\n if (!validateCustomFields()) {\n return false;\n }\n try {\n if (paymentMethod === EBookingPaymentMethod.Card) await tokenizerRef.current.getTokenizedCode();\n return true;\n } catch (e) {\n return false;\n }\n },\n (validationResult) => {\n if (validationResult) {\n setDifferenceWarning(validationResult);\n }\n },\n onSuccess\n );\n };\n\n const handleChangePaymentMethod = async (paymentMethod: EBookingPaymentMethod) => {\n if (paymentMethod !== EBookingPaymentMethod.Planpay) {\n await rollbackReservation?.();\n }\n };\n\n return (\n <form>\n {isBackFromPlanpay ? (\n <LargeLoader />\n ) : (\n <>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Headline bold>{t(Translation.Step.Confirmation.GuestDetails)}</Headline>\n </div>\n <Text type={TextType.Small} color={Color.Success}>\n <strong>{t(Translation.Step.Confirmation.AlmostDone, { required: '*' })}</strong>\n </Text>\n </div>\n <RoomContactDetails />\n {source === 'inline' ? (\n <Alert type={AlertType.Accent2} heavyPadding>\n <div className=\"u-flex u-w-100 flex-wrap flex-xl-nowrap\">\n <div>\n <Text color={Color.Accent} bold>\n {t(Translation.Step.Confirmation.WantMoreRooms)}\n </Text>\n <Text color={Color.Navy}>{t(Translation.Step.Confirmation.YouCanAddAndEditRooms)}</Text>\n </div>\n <div className=\"d-flex align-items-center u-marg-top@xl-\">\n <BEButton filled primary icon={IconType.Add} iconPosition=\"left\" onClick={returnToPickRooms}>\n {t(Translation.Step.Confirmation.AddMoreRooms)}\n </BEButton>\n </div>\n </div>\n </Alert>\n ) : (\n <></>\n )}\n {ShowIATANumberOnCheckoutFeature.isActive() && (\n <>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Headline bold>Travel Agent</Headline>\n </div>\n\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.Inputs.IATANumber)}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.Inputs.IATANumberGuide)}</Text>\n </div>\n <TextBox placeholder={t(Translation.Step.Confirmation.Inputs.IATANumber)} wide {...methods.register('IATANumber')} />\n </div>\n <LineBreak />\n </>\n )}\n <StepConfirmationCommentsComponent inputRef={commentTextbox} />\n <LineBreak />\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Headline bold>{t(Translation.Step.Confirmation.PaymentInformation)}</Headline>\n </div>\n <Controller\n control={methods.control}\n name=\"paymentMethod\"\n render={({ field: { onChange, value } }) => {\n return (\n <>\n <div>\n <RadioButtonGroup<EBookingPaymentMethod>\n options={[\n {\n value: EBookingPaymentMethod.Card,\n label: (\n <div className=\"u-flex u-flex-align-center\">\n <div className=\"u-marg-right--light\">{t(Translation.Step.Confirmation.CardLabel)}</div>\n <AcceptablePaymentCard\n isDefault={(cardKey: any) => {\n return true;\n }}\n style={{\n height: 16,\n width: 24,\n borderRadius: 2.5,\n border: '0.5px solid #DFE1E5',\n marginRight: 4,\n }}\n />\n </div>\n ),\n renderContent: () => <StepConfirmationPaymentDetails ref={tokenizerRef} />,\n },\n {\n value: EBookingPaymentMethod.Planpay,\n label: (\n <div className=\"u-flex u-flex-align-center\">\n <div>{t(Translation.Step.Confirmation.PlanpayLabel)}</div>\n <div\n className=\"u-flex u-flex-align-center u-marg-left--light\"\n style={{\n borderRadius: '24px',\n overflow: 'hidden',\n }}\n >\n <img height={16} src={RoomstayThemeEngine.getImageAssetUrl('planpay-logo-small.svg')} alt=\"\" />\n </div>\n {!methods.formState.isValid && (\n <Text\n color={Color.Graphite}\n className=\"u-flex u-flex-align-center\"\n style={{\n color: '#313131',\n fontSize: 10,\n }}\n >\n <Icon color={Color.DarkGrey} icon={IconType.Info} className=\"u-marg-right--lighter u-marg-left--light\" />\n {t(Translation.Step.Confirmation.PlanpayHelperText)}\n </Text>\n )}\n </div>\n ),\n disabled: isDisabledPlanpay,\n disabledReason: isDisabledPlanpay ? 'You must fill all the above details before proceeding with Planpay' : '',\n renderContent: () => <PlanpayPaymentMethod />,\n },\n ]\n .filter(({ value }) => hotel?.paymentMethods?.includes(value))\n .filter(\n ({ value }) =>\n value !== EBookingPaymentMethod.Planpay ||\n (hotel?.planpay?.minDaysShowPlanpay &&\n dayjs(basketContext.startDate).diff(dayjs(), 'day') > hotel?.planpay?.minDaysShowPlanpay)\n )}\n value={value}\n onChange={async (code: EBookingPaymentMethod) => {\n onChange(code);\n await handleChangePaymentMethod(code);\n if (code === EBookingPaymentMethod.Planpay) {\n await handleBook(code);\n }\n }}\n />\n </div>\n </>\n );\n }}\n />\n <div className=\"u-marg-top u-flex align-items-center\">\n <div className=\"u-flex align-items-center justify-content-start\">\n <Icon icon={IconType.Lock} color={Color.Success} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small} color={Color.Success}>\n <strong>Secured</strong>\n </Text>\n </div>\n </div>\n <SSLSecureBadge />\n </div>\n </div>\n <LineBreak />\n <StepConfirmationPoliciesSection />\n <div className=\"u-pad-top--light u-marg-bottom\">\n <StepConfirmationPolicyBlock />\n </div>\n {ConfirmationVerifyFeature.isActive() && (\n <>\n <LineBreak />\n <div>\n <StepConfirmationAcknowledgement ref={confirmationPolicy} confirmationPolicyError={confirmationPolicyError} />\n </div>\n </>\n )}\n <div className=\"u-flex u-marg-top--heavy justify-content-end\">\n <NextStepButton\n disabled={paymentMethod === EBookingPaymentMethod.Planpay || isLoading}\n text={t(Translation.Step.Confirmation.ConfirmReservation)}\n history={null}\n isLoading={isLoading}\n currentStep={StepConfirmation}\n onClick={onNextStepClicked}\n />\n </div>\n </>\n )}\n\n <ErrorModal open={!!apiErrors} onClose={clearApiErrors}>\n <Text>{apiErrors}</Text>\n </ErrorModal>\n <StepConfirmationCheckoutDifferencesModal\n differences={differenceWarning.differences}\n warnings={differenceWarning.warnings}\n isLoading={isLoading}\n onClose={async () => {\n await rollbackReservation?.();\n history.push(StepRoom.getStepUrl());\n }}\n onProceed={async () => {\n if (paymentMethod === EBookingPaymentMethod.Planpay) {\n setDifferenceWarning({\n differences: [],\n warnings: [],\n });\n } else {\n await commitReservation?.(basketContext.reservationData);\n }\n }}\n />\n </form>\n );\n}\n"]}
1
+ {"version":3,"file":"StepConfirmationForm.js","sourceRoot":"/","sources":["src/components/steps/confirmation/StepConfirmationForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport Headline from '@/components/generic/Headline';\nimport { Translation } from 'translations/Translation';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color } from '@/util/Color';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport RoomContactDetails from '@/components/steps/confirmation/RoomContactDetails';\nimport LineBreak from '@/components/generic/LineBreak';\nimport StepConfirmationPoliciesSection from '@/components/steps/confirmation/StepConfirmationPoliciesSection';\nimport NextStepButton from '@/components/generic/buttons/NextStepButton';\nimport { useTranslation } from 'react-i18next';\nimport { ConfirmationFormContext, useBasket, useBookingEngine } from '@frontend/contexts';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SSLSecureBadge from '@/components/generic/badging/SSLSecureBadge';\nimport StepConfirmationCheckoutDifferencesModal from '@/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal';\nimport { useHistory } from 'react-router-dom';\nimport ErrorModal from '@/components/generic/modal/ErrorModal';\nimport StepConfirmationPolicyBlock from '@/components/steps/confirmation/StepConfirmationPolicyBlock';\n\nimport StepConfirmationAcknowledgement from '@/components/steps/confirmation/StepConfirmationAcknowledgement';\nimport BEButton from '@/components/generic/BEButton';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport ConfirmationVerifyFeature from '@/providers/feature/ConfirmationVerifyFeature';\nimport TextBox from '@/components/generic/TextBox';\nimport ShowIATANumberOnCheckoutFeature from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\nimport { PlanpayPaymentMethod } from './PlanpayPaymentMethod';\nimport { ConfirmationFormValues, FBookSuccessCallback } from '@/models/Confirmation';\nimport { useConfirmationStep } from 'contexts/ConfirmationStepContext/ConfirmationStepContext';\nimport { useConfirmationQuery } from '@/hooks/ConfirmationQuery';\nimport BasketRowDifferences from '../../../models/BasketRowDifferences';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport StepConfirmationPaymentDetails from './PaymentDetails/StepConfirmationPaymentDetails';\nimport { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';\nimport RadioButtonGroup from '@/components/generic/RadioButtonGroup/RadioButtonGroup';\nimport AcceptablePaymentCard from '@/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport { StepConfirmationCommentsComponent } from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\n\nexport default function StepConfirmationForm() {\n const [differenceWarning, setDifferenceWarning] = useState<{\n differences: BasketRowDifferences[];\n warnings: string[];\n }>({\n differences: [],\n warnings: [],\n });\n const formContext = useContext(ConfirmationFormContext);\n const [source, setSource] = useState('');\n const [confirmationPolicyError, setConfirmationPolicyError] = useState(false);\n const confirmationPolicy = useRef<HTMLInputElement | null>(null);\n const commentTextbox = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);\n const { t } = useTranslation();\n const { queryPaymentMethod, queryRoomstayId, queryPlanpayCheckoutId } = useConfirmationQuery();\n const context = useBookingEngine();\n const methods = useFormContext<ConfirmationFormValues>();\n const { isBackFromPlanpay, isLoading, apiErrors, clearApiErrors, book, rollbackReservation, commitReservation } = useConfirmationStep();\n const basketContext = useBasket();\n const tokenizerRef = useRef<any | null>(null);\n const history = useHistory();\n const { hotel } = useCurrentHotel();\n\n const toPaymentPayload = async (paymentMethod: EBookingPaymentMethod): Promise<IBookingPayment> => {\n let payment: IBookingPayment;\n switch (paymentMethod) {\n case EBookingPaymentMethod.Planpay: {\n const params = new URLSearchParams(window.location.search);\n params.set('roomstayId', '{{rsId}}');\n params.set('session', context.sessionProvider.getCurrentSessionID().toString());\n params.set('paymentMethod', EBookingPaymentMethod.Planpay);\n const redirectURL = `${window.location.origin}${window.location.pathname}${window.location.search}#/step/confirmation/?${params}`;\n payment = {\n Method: EBookingPaymentMethod.Planpay,\n PlanpayCheckoutId: queryPlanpayCheckoutId || undefined,\n RedirectUrl: redirectURL,\n };\n break;\n }\n default:\n payment = {\n Method: EBookingPaymentMethod.Card,\n PaymentCard: await tokenizerRef.current?.getTokenizedCode(),\n };\n }\n\n return payment;\n };\n\n useEffect(() => {\n const validatedPaymentMethod = Object.values(EBookingPaymentMethod).includes(queryPaymentMethod as EBookingPaymentMethod)\n ? (queryPaymentMethod as EBookingPaymentMethod)\n : EBookingPaymentMethod.Card;\n methods.setValue('paymentMethod', validatedPaymentMethod);\n handleChangePaymentMethod(validatedPaymentMethod);\n if (isBackFromPlanpay) {\n if (queryRoomstayId === basketContext.reservationData?.roomstayId) {\n onPlaypayCallback(validatedPaymentMethod);\n } else {\n rollbackReservation?.();\n }\n }\n return () => {\n if (!isBackFromPlanpay) rollbackReservation?.();\n };\n }, []);\n\n const onPlaypayCallback = async (paymentMethod: EBookingPaymentMethod) => {\n await commitReservation?.(basketContext.reservationData);\n };\n\n const paymentMethod = methods.watch('paymentMethod');\n\n context.engine\n .getSessionProvider()\n .getSession()\n .then((session) => {\n setSource(session.source);\n });\n\n const returnToPickRooms = async () => {\n // TODO: What if StepRoom doesn't exist?\n history.push(StepRoom.getStepUrl());\n };\n\n const onNextStepClicked = async () => {\n await handleBook(paymentMethod, async (resData) => commitReservation?.(resData));\n return false;\n };\n\n const validateConfirmationPolicy = (): boolean => {\n return !ConfirmationVerifyFeature.isActive() || !!confirmationPolicy?.current?.checked;\n };\n\n const validateCustomFields = (scrollToInput?: boolean): boolean => {\n const adhocValid = formContext?.errorChecks.every((check) => check().validate(scrollToInput));\n return adhocValid === undefined ? true : adhocValid;\n };\n\n const isDisabledPlanpay = !validateConfirmationPolicy() || !validateCustomFields(false) || !methods.formState.isValid;\n\n const handleBook = async (paymentMethod: EBookingPaymentMethod, onSuccess?: FBookSuccessCallback): Promise<void> => {\n await book?.(\n async () => toPaymentPayload(paymentMethod),\n commentTextbox.current?.value,\n async (): Promise<boolean> => {\n if (!validateConfirmationPolicy()) {\n setConfirmationPolicyError(true);\n return false;\n }\n if (!validateCustomFields(true)) {\n return false;\n }\n try {\n if (paymentMethod === EBookingPaymentMethod.Card) await tokenizerRef.current.getTokenizedCode();\n return true;\n } catch (e) {\n return false;\n }\n },\n (validationResult) => {\n if (validationResult) {\n setDifferenceWarning(validationResult);\n }\n },\n onSuccess\n );\n };\n\n const handleChangePaymentMethod = async (paymentMethod: EBookingPaymentMethod) => {\n if (paymentMethod !== EBookingPaymentMethod.Planpay) {\n await rollbackReservation?.();\n }\n };\n\n return (\n <form>\n {isBackFromPlanpay ? (\n <LargeLoader />\n ) : (\n <>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Headline bold>{t(Translation.Step.Confirmation.GuestDetails)}</Headline>\n </div>\n <Text type={TextType.Small} color={Color.Success}>\n <strong>{t(Translation.Step.Confirmation.AlmostDone, { required: '*' })}</strong>\n </Text>\n </div>\n <RoomContactDetails />\n {source === 'inline' ? (\n <Alert type={AlertType.Accent2} heavyPadding>\n <div className=\"u-flex u-w-100 flex-wrap flex-xl-nowrap\">\n <div>\n <Text color={Color.Accent} bold>\n {t(Translation.Step.Confirmation.WantMoreRooms)}\n </Text>\n <Text color={Color.Navy}>{t(Translation.Step.Confirmation.YouCanAddAndEditRooms)}</Text>\n </div>\n <div className=\"d-flex align-items-center u-marg-top@xl-\">\n <BEButton filled primary icon={IconType.Add} iconPosition=\"left\" onClick={returnToPickRooms}>\n {t(Translation.Step.Confirmation.AddMoreRooms)}\n </BEButton>\n </div>\n </div>\n </Alert>\n ) : (\n <></>\n )}\n {ShowIATANumberOnCheckoutFeature.isActive() && (\n <>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Headline bold>Travel Agent</Headline>\n </div>\n\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.Inputs.IATANumber)}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>{t(Translation.Step.Confirmation.Inputs.IATANumberGuide)}</Text>\n </div>\n <TextBox placeholder={t(Translation.Step.Confirmation.Inputs.IATANumber)} wide {...methods.register('IATANumber')} />\n </div>\n <LineBreak />\n </>\n )}\n <StepConfirmationCommentsComponent inputRef={commentTextbox} />\n <LineBreak />\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Headline bold>{t(Translation.Step.Confirmation.PaymentInformation)}</Headline>\n </div>\n <Controller\n control={methods.control}\n name=\"paymentMethod\"\n render={({ field: { onChange, value } }) => {\n return (\n <>\n <div>\n <RadioButtonGroup<EBookingPaymentMethod>\n options={[\n {\n value: EBookingPaymentMethod.Card,\n label: (\n <div className=\"u-flex u-flex-align-center\">\n <div className=\"u-marg-right--light\">{t(Translation.Step.Confirmation.CardLabel)}</div>\n <AcceptablePaymentCard\n isDefault={(cardKey: any) => {\n return true;\n }}\n style={{\n height: 16,\n width: 24,\n borderRadius: 2.5,\n border: '0.5px solid #DFE1E5',\n marginRight: 4,\n }}\n />\n </div>\n ),\n renderContent: () => <StepConfirmationPaymentDetails ref={tokenizerRef} />,\n },\n {\n value: EBookingPaymentMethod.Planpay,\n label: (\n <div className=\"u-flex u-flex-align-center\">\n <div>{t(Translation.Step.Confirmation.PlanpayLabel)}</div>\n <div\n className=\"u-flex u-flex-align-center u-marg-left--light\"\n style={{\n borderRadius: '24px',\n overflow: 'hidden',\n }}\n >\n <img height={16} src={RoomstayThemeEngine.getImageAssetUrl('planpay-logo-small.svg')} alt=\"\" />\n </div>\n {!methods.formState.isValid && (\n <Text\n color={Color.Graphite}\n className=\"u-flex u-flex-align-center\"\n style={{\n color: '#313131',\n fontSize: 10,\n }}\n >\n <Icon color={Color.DarkGrey} icon={IconType.Info} className=\"u-marg-right--lighter u-marg-left--light\" />\n {t(Translation.Step.Confirmation.PlanpayHelperText)}\n </Text>\n )}\n </div>\n ),\n disabled: isDisabledPlanpay,\n disabledReason: isDisabledPlanpay ? 'You must fill all the above details before proceeding with Planpay' : '',\n renderContent: () => <PlanpayPaymentMethod />,\n },\n ]\n .filter(({ value }) => hotel?.paymentMethods?.includes(value))\n .filter(\n ({ value }) =>\n value !== EBookingPaymentMethod.Planpay ||\n (hotel?.planpay?.minDaysShowPlanpay &&\n dayjs(basketContext.startDate).diff(dayjs(), 'day') > hotel?.planpay?.minDaysShowPlanpay)\n )}\n value={value}\n onChange={async (code: EBookingPaymentMethod) => {\n onChange(code);\n await handleChangePaymentMethod(code);\n if (code === EBookingPaymentMethod.Planpay) {\n await handleBook(code);\n }\n }}\n />\n </div>\n </>\n );\n }}\n />\n <div className=\"u-marg-top u-flex align-items-center\">\n <div className=\"u-flex align-items-center justify-content-start\">\n <Icon icon={IconType.Lock} color={Color.Success} />\n <div className=\"u-marg-left--light\">\n <Text type={TextType.Small} color={Color.Success}>\n <strong>Secured</strong>\n </Text>\n </div>\n </div>\n <SSLSecureBadge />\n </div>\n </div>\n <LineBreak />\n <StepConfirmationPoliciesSection />\n <div className=\"u-pad-top--light u-marg-bottom\">\n <StepConfirmationPolicyBlock />\n </div>\n {ConfirmationVerifyFeature.isActive() && (\n <>\n <LineBreak />\n <div>\n <StepConfirmationAcknowledgement ref={confirmationPolicy} confirmationPolicyError={confirmationPolicyError} />\n </div>\n </>\n )}\n <div className=\"u-flex u-marg-top--heavy justify-content-end\">\n <NextStepButton\n disabled={paymentMethod === EBookingPaymentMethod.Planpay || isLoading}\n text={t(Translation.Step.Confirmation.ConfirmReservation)}\n history={null}\n isLoading={isLoading}\n currentStep={StepConfirmation}\n onClick={onNextStepClicked}\n />\n </div>\n </>\n )}\n\n <ErrorModal open={!!apiErrors} onClose={clearApiErrors}>\n <Text>{apiErrors}</Text>\n </ErrorModal>\n <StepConfirmationCheckoutDifferencesModal\n differences={differenceWarning.differences}\n warnings={differenceWarning.warnings}\n isLoading={isLoading}\n onClose={async () => {\n await rollbackReservation?.();\n history.push(StepRoom.getStepUrl());\n }}\n onProceed={async () => {\n if (paymentMethod === EBookingPaymentMethod.Planpay) {\n setDifferenceWarning({\n differences: [],\n warnings: [],\n });\n } else {\n await commitReservation?.(basketContext.reservationData);\n }\n }}\n />\n </form>\n );\n}\n"]}
@@ -10,7 +10,7 @@ interface ConfirmationFormContextWrapperProps {
10
10
  type ConfirmationValidator = {
11
11
  message: string;
12
12
  name: string;
13
- validate: () => boolean;
13
+ validate: (scrollToInput?: boolean) => boolean;
14
14
  };
15
15
  export declare function ConfirmationFormContextWrapper(props: ConfirmationFormContextWrapperProps): JSX.Element;
16
16
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationFormContext.js","sourceRoot":"/","sources":["src/contexts/ConfirmationFormContext.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iCAAiC;AAQpB,QAAA,uBAAuB,GAAG,eAAK,CAAC,aAAa,CAAqC,IAAI,CAAC,CAAC;AAarG,SAAgB,8BAA8B,CAAC,KAA0C;IACrF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAS,CAAC,CAAC;IAE3F,MAAM,OAAO,GAAgC;QACzC,WAAW;QACX,aAAa,EAAE,CAAC,KAAkC,EAAE,EAAE;YAClD,cAAc,CAAC,CAAC,SAAS,EAAE,EAAE;gBACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE;oBAClD,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;wBACvC,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;qBAChB;oBACD,OAAO,iBAAiB,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;iBAChC;gBAED,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAEF,OAAO,CACH;QACI,8BAAC,+BAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAAG,KAAK,CAAC,QAAQ,CAAoC,CACtG,CACN,CAAC;AACN,CAAC;AA/BD,wEA+BC","sourcesContent":["import React from 'react';\nimport { useState } from 'react';\n\ninterface ConfirmationFormContextType {\n errorChecks: (() => ConfirmationValidator)[];\n\n addErrorCheck: (check: () => ConfirmationValidator) => void;\n}\n\nexport const ConfirmationFormContext = React.createContext<ConfirmationFormContextType | null>(null);\n\ninterface ConfirmationFormContextWrapperProps {\n children: React.ReactNode;\n}\n\ntype ConfirmationValidator = {\n message: string;\n name: string; // TODO re-think this to make validations unique\n\n validate: () => boolean;\n};\n\nexport function ConfirmationFormContextWrapper(props: ConfirmationFormContextWrapperProps) {\n const [errorChecks, setErrorChecks] = useState<(() => ConfirmationValidator)[]>([] as any);\n\n const context: ConfirmationFormContextType = {\n errorChecks,\n addErrorCheck: (check: () => ConfirmationValidator) => {\n setErrorChecks((oldErrors) => {\n let replaced = false;\n\n const newErrors = oldErrors.map((oldErrorValidator) => {\n if (oldErrorValidator.name === check.name) {\n replaced = true;\n return check;\n }\n return oldErrorValidator;\n });\n\n if (!replaced) {\n return [...oldErrors, check];\n }\n\n return newErrors;\n });\n },\n };\n\n return (\n <>\n <ConfirmationFormContext.Provider value={context}>{props.children}</ConfirmationFormContext.Provider>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ConfirmationFormContext.js","sourceRoot":"/","sources":["src/contexts/ConfirmationFormContext.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iCAAiC;AAQpB,QAAA,uBAAuB,GAAG,eAAK,CAAC,aAAa,CAAqC,IAAI,CAAC,CAAC;AAarG,SAAgB,8BAA8B,CAAC,KAA0C;IACrF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAS,CAAC,CAAC;IAE3F,MAAM,OAAO,GAAgC;QACzC,WAAW;QACX,aAAa,EAAE,CAAC,KAAkC,EAAE,EAAE;YAClD,cAAc,CAAC,CAAC,SAAS,EAAE,EAAE;gBACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE;oBAClD,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;wBACvC,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;qBAChB;oBACD,OAAO,iBAAiB,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;iBAChC;gBAED,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAEF,OAAO,CACH;QACI,8BAAC,+BAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAAG,KAAK,CAAC,QAAQ,CAAoC,CACtG,CACN,CAAC;AACN,CAAC;AA/BD,wEA+BC","sourcesContent":["import React from 'react';\nimport { useState } from 'react';\n\ninterface ConfirmationFormContextType {\n errorChecks: (() => ConfirmationValidator)[];\n\n addErrorCheck: (check: () => ConfirmationValidator) => void;\n}\n\nexport const ConfirmationFormContext = React.createContext<ConfirmationFormContextType | null>(null);\n\ninterface ConfirmationFormContextWrapperProps {\n children: React.ReactNode;\n}\n\ntype ConfirmationValidator = {\n message: string;\n name: string; // TODO re-think this to make validations unique\n\n validate: (scrollToInput?: boolean) => boolean;\n};\n\nexport function ConfirmationFormContextWrapper(props: ConfirmationFormContextWrapperProps) {\n const [errorChecks, setErrorChecks] = useState<(() => ConfirmationValidator)[]>([] as any);\n\n const context: ConfirmationFormContextType = {\n errorChecks,\n addErrorCheck: (check: () => ConfirmationValidator) => {\n setErrorChecks((oldErrors) => {\n let replaced = false;\n\n const newErrors = oldErrors.map((oldErrorValidator) => {\n if (oldErrorValidator.name === check.name) {\n replaced = true;\n return check;\n }\n return oldErrorValidator;\n });\n\n if (!replaced) {\n return [...oldErrors, check];\n }\n\n return newErrors;\n });\n },\n };\n\n return (\n <>\n <ConfirmationFormContext.Provider value={context}>{props.children}</ConfirmationFormContext.Provider>\n </>\n );\n}\n"]}