@roomstay/frontend 2.6.64 → 2.6.65
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/279.bundle.js +1 -1
- package/dist/288.bundle.js +1 -1
- package/dist/370.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/537.bundle.js +1 -1
- package/dist/839.bundle.js +1 -1
- package/dist/873.bundle.js +1 -1
- package/dist/903.bundle.js +1 -1
- package/dist/950.bundle.js +1 -1
- package/dist/972.bundle.js +1 -1
- package/dist/978.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/User/Forms/SignUpForm.d.ts +2 -0
- package/dist/src/components/User/Forms/SignUpForm.js +14 -6
- package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.d.ts +1 -0
- package/dist/src/components/generic/InputGroup/InputGroup.js +1 -0
- package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js.map +1 -1
- package/dist/src/components/members/SignInModal/MemberPortalSignInModal.d.ts +8 -0
- package/dist/src/components/members/SignInModal/MemberPortalSignInModal.js +150 -0
- package/dist/src/components/members/SignInModal/MemberPortalSignInModal.js.map +1 -0
- package/dist/src/components/members/SignInModal/MemberSignInModal.js +2 -2
- package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
- package/dist/src/components/summary/BEMapWidget.js +1 -1
- package/dist/src/components/summary/BEMapWidget.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +1 -0
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +2 -2
|
@@ -55,10 +55,12 @@ const VerifyEmailForm_1 = require("./VerifyEmailForm");
|
|
|
55
55
|
const Color_1 = require("../../../util/Color");
|
|
56
56
|
const Validation_1 = require("../../../util/Validation");
|
|
57
57
|
const PasswordBox_1 = require("../../generic/PasswordBox/PasswordBox");
|
|
58
|
+
const SignUpForm_module_scss_1 = __importDefault(require("./SignUpForm.module.scss"));
|
|
58
59
|
const SignUpForm = (props) => {
|
|
59
60
|
var _a, _b, _c;
|
|
60
61
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
61
62
|
const { hotel } = (0, hooks_1.useCurrentHotel)();
|
|
63
|
+
const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
|
|
62
64
|
const { loading, error, cognitoLoginState, register: cognitoRegister, reset: cognitoReset, setPendingCredentials } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
|
|
63
65
|
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
64
66
|
const [, setApiErrorMessages] = (0, react_1.useState)('');
|
|
@@ -117,9 +119,9 @@ const SignUpForm = (props) => {
|
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
};
|
|
120
|
-
return (react_1.default.createElement("div",
|
|
121
|
-
react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
|
|
122
|
-
react_1.default.createElement(Headline_1.default, { color: Color_1.Color.Navy, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Navigation.SignUp.Title))),
|
|
122
|
+
return (react_1.default.createElement("div", { className: `${props.reduceMargins ? SignUpForm_module_scss_1.default['signup-form--reduced-margins'] : ''}` },
|
|
123
|
+
!props.hideTitle && (react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
|
|
124
|
+
react_1.default.createElement(Headline_1.default, { color: Color_1.Color.Navy, bold: true, className: "u-marg-bottom--light" }, t(Translation_1.Translation.Navigation.SignUp.Title)))),
|
|
123
125
|
react_1.default.createElement(AutoAutoHeight_1.default, { open: !!accountExists },
|
|
124
126
|
react_1.default.createElement("div", { className: "u-flex" },
|
|
125
127
|
react_1.default.createElement(Alert_1.default, { type: Alert_1.AlertType.Danger, icon: Icon_1.IconType.Error }, onErrorContent()))),
|
|
@@ -136,7 +138,7 @@ const SignUpForm = (props) => {
|
|
|
136
138
|
react_1.default.createElement(AutoAutoHeight_1.default, { open: !isVerifyingEmail, startOpen: true },
|
|
137
139
|
react_1.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "u-marg-bottom" },
|
|
138
140
|
react_1.default.createElement("div", { className: "u-marg-bottom" },
|
|
139
|
-
react_1.default.createElement(InputGroup_1.default, { dimensions: "2/2" },
|
|
141
|
+
react_1.default.createElement(InputGroup_1.default, { dimensions: "2/2", noMargin: props.reduceMargins },
|
|
140
142
|
react_1.default.createElement(react_1.default.Fragment, null,
|
|
141
143
|
react_1.default.createElement("div", { className: "u-marg-bottom--light" },
|
|
142
144
|
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.Navigation.SignUp.Inputs.FirstName))),
|
|
@@ -167,7 +169,7 @@ const SignUpForm = (props) => {
|
|
|
167
169
|
required: (0, Validation_1.makeRequiredRule)(t)(true, t(Translation_1.Translation.Navigation.SignUp.Inputs.Password.Label)),
|
|
168
170
|
pattern: (0, Validation_1.makePasswordPatternRule)(t),
|
|
169
171
|
})))),
|
|
170
|
-
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, className: "u-marg-bottom" }, t(Translation_1.Translation.Navigation.SignUp.Inputs.Password.Hint)),
|
|
172
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, className: "u-marg-bottom password-hint" }, t(Translation_1.Translation.Navigation.SignUp.Inputs.Password.Hint)),
|
|
171
173
|
react_1.default.createElement(Checkbox_1.default, Object.assign({ label: react_1.default.createElement("div", null,
|
|
172
174
|
t(Translation_1.Translation.Navigation.SignUp.Inputs.Terms.BaseText),
|
|
173
175
|
' ',
|
|
@@ -179,7 +181,13 @@ const SignUpForm = (props) => {
|
|
|
179
181
|
})))),
|
|
180
182
|
react_1.default.createElement(BEButton_1.default, { wide: true, icon: Icon_1.IconType.ArrowRight, iconPosition: "right", filled: true, primary: true, name: "SignUpButton", htmlType: "submit", isLoading: loading || isLoading, disabled: isLoading || loading }, t(Translation_1.Translation.Navigation.SignUp.Inputs.SignUpButton)))),
|
|
181
183
|
react_1.default.createElement(AutoAutoHeight_1.default, { open: isVerifyingEmail },
|
|
182
|
-
react_1.default.createElement(VerifyEmailForm_1.VerifyEmailForm, { onDone: props.onDone, onSignIn: props.onSignIn }))
|
|
184
|
+
react_1.default.createElement(VerifyEmailForm_1.VerifyEmailForm, { onDone: props.onDone, onSignIn: props.onSignIn })),
|
|
185
|
+
react_1.default.createElement("div", { className: "u-marg-top--light" },
|
|
186
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.DarkGrey },
|
|
187
|
+
react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: t(Translation_1.Translation.MemberOnlyPopup.AgreeToReceiveDeals, { companyShort: ccx === null || ccx === void 0 ? void 0 : ccx.companyShort }) } })),
|
|
188
|
+
' ',
|
|
189
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.DarkGrey },
|
|
190
|
+
react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: t(Translation_1.Translation.MemberOnlyPopup.UnsubscribeAnytime) } })))));
|
|
183
191
|
};
|
|
184
192
|
exports.SignUpForm = SignUpForm;
|
|
185
193
|
//# sourceMappingURL=SignUpForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUpForm.js","sourceRoot":"/","sources":["src/components/User/Forms/SignUpForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, CognitoLoginState } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport Checkbox from '@/components/generic/Checkbox/Checkbox';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport InputGroup from '@/components/generic/InputGroup/InputGroup';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport { VerifyEmailForm } from '@/components/User/Forms/VerifyEmailForm';\nimport { Color } from '@/util/Color';\nimport { makePasswordPatternRule, makeRequiredRule } from '@/util/Validation';\n\nimport { PasswordBox } from '../../generic/PasswordBox/PasswordBox';\n\ntype SignUpFormProps = {\n onForgotPassword?: () => void;\n onSignIn?: () => void;\n onDone?: () => void;\n defaultValues?: {\n email?: string;\n firstName?: string;\n lastName?: string;\n };\n};\n\nexport const SignUpForm = (props: SignUpFormProps) => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const { loading, error, cognitoLoginState, register: cognitoRegister, reset: cognitoReset, setPendingCredentials } = useContext(AuthenticationContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [, setApiErrorMessages] = useState('');\n const [isVerifyingEmail, setIsVerifyingEmail] = useState(cognitoLoginState === CognitoLoginState.RequiresConfirmation);\n\n const { register, formState, handleSubmit } = useForm({\n mode: 'onSubmit',\n defaultValues: {\n email: props.defaultValues?.email || '',\n forename: props.defaultValues?.firstName || '',\n surname: props.defaultValues?.lastName || '',\n password: '',\n termsAndConditions: false,\n },\n });\n\n const signUpStates: CognitoLoginState[] = [CognitoLoginState.UsernameExists];\n\n const errors = formState.errors;\n const accountExists = signUpStates.includes(cognitoLoginState as CognitoLoginState);\n\n const getValidationClass = (name: string) => {\n if (errors && formState.touchedFields[name as keyof typeof formState.touchedFields]) {\n if (errors[name as keyof typeof errors]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n const onSubmit = async (values: any) => {\n setIsLoading(true);\n setApiErrorMessages('');\n\n try {\n const state = await cognitoRegister(\n values.email,\n values.password,\n {\n ['custom:forename']: values.forename,\n ['custom:surname']: values.surname,\n },\n { hotel }\n );\n\n if (state === CognitoLoginState.RequiresConfirmation) {\n setPendingCredentials({ email: values.email, password: values.password });\n setIsVerifyingEmail(true);\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n const onSignInClicked = (): void => {\n cognitoReset();\n props.onSignIn?.();\n };\n\n const onErrorContent = () => {\n switch (cognitoLoginState) {\n case CognitoLoginState.UsernameExists: {\n return (\n <>\n <Text type={TextType.Small}>\n <Trans i18nKey={Translation.Navigation.SignUp.EmailIsInUse} components={[<BEButton key={0} isText size=\"small\" primary onClick={onSignInClicked} />]} />\n </Text>\n </>\n );\n }\n }\n };\n\n return (\n <div>\n <div className=\"u-marg-bottom--heavy\">\n <Headline color={Color.Navy} bold className=\"u-marg-bottom--light\">\n {t(Translation.Navigation.SignUp.Title)}\n </Headline>\n </div>\n <AutoAutoHeight open={!!accountExists}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n {onErrorContent()}\n </Alert>\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!!error}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n <Text type={TextType.Small}>{error?.message}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!!formState.errors}>\n <div className=\"u-flex flex-column\">\n {Object.keys(formState.errors).map((errorName, index) => {\n return (\n <Alert type={AlertType.Danger} icon={IconType.Error} key={index}>\n <Text type={TextType.Small}>{formState.errors[errorName as keyof typeof formState.errors]?.message}</Text>\n </Alert>\n );\n })}\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!isVerifyingEmail} startOpen>\n <form onSubmit={handleSubmit(onSubmit)} className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom\">\n <InputGroup dimensions=\"2/2\">\n <>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.FirstName)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"Sam\"\n validationStatus={getValidationClass('forename')}\n {...register('forename', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.FirstName)),\n })}\n />\n </>\n <>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.LastName)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"Smith\"\n validationStatus={getValidationClass('surname')}\n {...register('surname', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.LastName)),\n })}\n />\n </>\n </InputGroup>\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignIn.EmailAddress)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"example@mail.com\"\n validationStatus={getValidationClass('email')}\n {...register('email', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignIn.EmailAddress)),\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.Password.Label)}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <PasswordBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder={t(Translation.Navigation.SignUp.Inputs.Password.Label)}\n validationStatus={getValidationClass('password')}\n {...register('password', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.Password.Label)),\n pattern: makePasswordPatternRule(t),\n })}\n />\n </div>\n <Text type={TextType.Label} color={Color.Navy} className=\"u-marg-bottom\">\n {t(Translation.Navigation.SignUp.Inputs.Password.Hint)}\n </Text>\n\n <Checkbox\n label={\n <div>\n {t(Translation.Navigation.SignUp.Inputs.Terms.BaseText)}{' '}\n <a href={hotel?.privacyPolicyUrl} target=\"_blank\" style={{ color: Color.Accent }} rel=\"noreferrer\">\n {t(Translation.Navigation.SignUp.Inputs.Terms.LinkText)}\n </a>\n </div>\n }\n {...register('termsAndConditions', {\n required: {\n value: true,\n message: t(Translation.Navigation.SignUp.Inputs.Terms.Error),\n },\n })}\n />\n </div>\n <BEButton\n wide\n icon={IconType.ArrowRight}\n iconPosition=\"right\"\n filled\n primary\n name=\"SignUpButton\"\n htmlType=\"submit\"\n isLoading={loading || isLoading}\n disabled={isLoading || loading}\n >\n {t(Translation.Navigation.SignUp.Inputs.SignUpButton)}\n </BEButton>\n </form>\n </AutoAutoHeight>\n <AutoAutoHeight open={isVerifyingEmail}>\n <VerifyEmailForm onDone={props.onDone} onSignIn={props.onSignIn}></VerifyEmailForm>\n </AutoAutoHeight>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SignUpForm.js","sourceRoot":"/","sources":["src/components/User/Forms/SignUpForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, CognitoLoginState, CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport Alert, { AlertType } from '@/components/generic/Alert';\nimport BEButton from '@/components/generic/BEButton';\nimport Checkbox from '@/components/generic/Checkbox/Checkbox';\nimport Headline from '@/components/generic/Headline';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport InputGroup from '@/components/generic/InputGroup/InputGroup';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport { VerifyEmailForm } from '@/components/User/Forms/VerifyEmailForm';\nimport { Color } from '@/util/Color';\nimport { makePasswordPatternRule, makeRequiredRule } from '@/util/Validation';\n\nimport { PasswordBox } from '../../generic/PasswordBox/PasswordBox';\nimport styles from './SignUpForm.module.scss';\n\ntype SignUpFormProps = {\n onForgotPassword?: () => void;\n onSignIn?: () => void;\n onDone?: () => void;\n defaultValues?: {\n email?: string;\n firstName?: string;\n lastName?: string;\n };\n hideTitle?: boolean;\n reduceMargins?: boolean;\n};\n\nexport const SignUpForm = (props: SignUpFormProps) => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n\n const { loading, error, cognitoLoginState, register: cognitoRegister, reset: cognitoReset, setPendingCredentials } = useContext(AuthenticationContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [, setApiErrorMessages] = useState('');\n const [isVerifyingEmail, setIsVerifyingEmail] = useState(cognitoLoginState === CognitoLoginState.RequiresConfirmation);\n\n const { register, formState, handleSubmit } = useForm({\n mode: 'onSubmit',\n defaultValues: {\n email: props.defaultValues?.email || '',\n forename: props.defaultValues?.firstName || '',\n surname: props.defaultValues?.lastName || '',\n password: '',\n termsAndConditions: false,\n },\n });\n\n const signUpStates: CognitoLoginState[] = [CognitoLoginState.UsernameExists];\n\n const errors = formState.errors;\n const accountExists = signUpStates.includes(cognitoLoginState as CognitoLoginState);\n\n const getValidationClass = (name: string) => {\n if (errors && formState.touchedFields[name as keyof typeof formState.touchedFields]) {\n if (errors[name as keyof typeof errors]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n const onSubmit = async (values: any) => {\n setIsLoading(true);\n setApiErrorMessages('');\n\n try {\n const state = await cognitoRegister(\n values.email,\n values.password,\n {\n ['custom:forename']: values.forename,\n ['custom:surname']: values.surname,\n },\n { hotel }\n );\n\n if (state === CognitoLoginState.RequiresConfirmation) {\n setPendingCredentials({ email: values.email, password: values.password });\n setIsVerifyingEmail(true);\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n const onSignInClicked = (): void => {\n cognitoReset();\n props.onSignIn?.();\n };\n\n const onErrorContent = () => {\n switch (cognitoLoginState) {\n case CognitoLoginState.UsernameExists: {\n return (\n <>\n <Text type={TextType.Small}>\n <Trans i18nKey={Translation.Navigation.SignUp.EmailIsInUse} components={[<BEButton key={0} isText size=\"small\" primary onClick={onSignInClicked} />]} />\n </Text>\n </>\n );\n }\n }\n };\n\n return (\n <div className={`${props.reduceMargins ? styles['signup-form--reduced-margins'] : ''}`}>\n {!props.hideTitle && (\n <div className=\"u-marg-bottom--heavy\">\n <Headline color={Color.Navy} bold className=\"u-marg-bottom--light\">\n {t(Translation.Navigation.SignUp.Title)}\n </Headline>\n </div>\n )}\n <AutoAutoHeight open={!!accountExists}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n {onErrorContent()}\n </Alert>\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!!error}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n <Text type={TextType.Small}>{error?.message}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!!formState.errors}>\n <div className=\"u-flex flex-column\">\n {Object.keys(formState.errors).map((errorName, index) => {\n return (\n <Alert type={AlertType.Danger} icon={IconType.Error} key={index}>\n <Text type={TextType.Small}>{formState.errors[errorName as keyof typeof formState.errors]?.message}</Text>\n </Alert>\n );\n })}\n </div>\n </AutoAutoHeight>\n <AutoAutoHeight open={!isVerifyingEmail} startOpen>\n <form onSubmit={handleSubmit(onSubmit)} className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom\">\n <InputGroup dimensions=\"2/2\" noMargin={props.reduceMargins}>\n <>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.FirstName)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"Sam\"\n validationStatus={getValidationClass('forename')}\n {...register('forename', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.FirstName)),\n })}\n />\n </>\n <>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.LastName)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"Smith\"\n validationStatus={getValidationClass('surname')}\n {...register('surname', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.LastName)),\n })}\n />\n </>\n </InputGroup>\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignIn.EmailAddress)}\n </Text>\n </div>\n <TextBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder=\"example@mail.com\"\n validationStatus={getValidationClass('email')}\n {...register('email', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignIn.EmailAddress)),\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.SignUp.Inputs.Password.Label)}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <PasswordBox\n inputProps={{ disabled: loading || isLoading }}\n placeholder={t(Translation.Navigation.SignUp.Inputs.Password.Label)}\n validationStatus={getValidationClass('password')}\n {...register('password', {\n required: makeRequiredRule(t)(true, t(Translation.Navigation.SignUp.Inputs.Password.Label)),\n pattern: makePasswordPatternRule(t),\n })}\n />\n </div>\n <Text type={TextType.Label} color={Color.Navy} className=\"u-marg-bottom password-hint\">\n {t(Translation.Navigation.SignUp.Inputs.Password.Hint)}\n </Text>\n\n <Checkbox\n label={\n <div>\n {t(Translation.Navigation.SignUp.Inputs.Terms.BaseText)}{' '}\n <a href={hotel?.privacyPolicyUrl} target=\"_blank\" style={{ color: Color.Accent }} rel=\"noreferrer\">\n {t(Translation.Navigation.SignUp.Inputs.Terms.LinkText)}\n </a>\n </div>\n }\n {...register('termsAndConditions', {\n required: {\n value: true,\n message: t(Translation.Navigation.SignUp.Inputs.Terms.Error),\n },\n })}\n />\n </div>\n <BEButton\n wide\n icon={IconType.ArrowRight}\n iconPosition=\"right\"\n filled\n primary\n name=\"SignUpButton\"\n htmlType=\"submit\"\n isLoading={loading || isLoading}\n disabled={isLoading || loading}\n >\n {t(Translation.Navigation.SignUp.Inputs.SignUpButton)}\n </BEButton>\n </form>\n </AutoAutoHeight>\n <AutoAutoHeight open={isVerifyingEmail}>\n <VerifyEmailForm onDone={props.onDone} onSignIn={props.onSignIn}></VerifyEmailForm>\n </AutoAutoHeight>\n\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.AgreeToReceiveDeals, { companyShort: ccx?.companyShort }) }}></span>\n </Text>{' '}\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.MemberOnlyPopup.UnsubscribeAnytime) }}></span>\n </Text>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -9,6 +9,7 @@ function InputGroup(props) {
|
|
|
9
9
|
var _a, _b;
|
|
10
10
|
const classes = (0, classnames_1.default)('be-form-group', {
|
|
11
11
|
[`s-${props.dimensions}`]: !!props.dimensions,
|
|
12
|
+
'be-form-group--no-marg': props.noMargin,
|
|
12
13
|
});
|
|
13
14
|
let innerLayout;
|
|
14
15
|
const childrenArray = react_1.default.Children.toArray(props.children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroup.js","sourceRoot":"/","sources":["src/components/generic/InputGroup/InputGroup.tsx"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AACpC,kDAAyC;
|
|
1
|
+
{"version":3,"file":"InputGroup.js","sourceRoot":"/","sources":["src/components/generic/InputGroup/InputGroup.tsx"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AACpC,kDAAyC;AAWzC,SAAwB,UAAU,CAAC,KAAsB;;IACrD,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,eAAe,EAAE;QACxC,CAAC,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;QAC7C,wBAAwB,EAAE,KAAK,CAAC,QAAQ;KAC3C,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC;IAEhB,MAAM,aAAa,GAAU,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpE,QAAQ,KAAK,CAAC,UAAU,EAAE;QACtB,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACN,WAAW,GAAG,CACV;gBACK,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,KAAI,2CAAM,aAAa,CAAC,CAAC,CAAC,CAAO;gBACnD,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,KAAI,uCAAK,SAAS,EAAE,CAAA,MAAA,MAAA,aAAa,CAAC,CAAC,CAAC,0CAAE,IAAI,0CAAE,IAAI,MAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAG,aAAa,CAAC,CAAC,CAAC,CAAO,CACnI,CACN,CAAC;YAEF,MAAM;QAEV,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACR,WAAW,GAAG,CACV;gBACK,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,KAAI,2CAAM,aAAa,CAAC,CAAC,CAAC,CAAO;gBACnD,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,KAAI,2CAAM,aAAa,CAAC,CAAC,CAAC,CAAO;gBACnD,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,CAAC,CAAC,KAAI,2CAAM,aAAa,CAAC,CAAC,CAAC,CAAO,CACrD,CACN,CAAC;YAEF,MAAM;QACV,KAAK,GAAG,CAAC;QACT;YACI,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC7B,MAAM;KACb;IAED,OAAO,uCAAK,SAAS,EAAE,OAAO,IAAG,WAAW,CAAO,CAAC;AACxD,CAAC;AAxCD,6BAwCC","sourcesContent":["import classNames from 'classnames';\nimport React, { ReactNode } from 'react';\n\nimport { InputGroupDimensions } from '@/components/generic/InputGroup/InputGroup.types';\n\nexport interface InputGroupProps {\n children: ReactNode | ReactNode[];\n\n dimensions?: InputGroupDimensions;\n noMargin?: boolean;\n}\n\nexport default function InputGroup(props: InputGroupProps) {\n const classes = classNames('be-form-group', {\n [`s-${props.dimensions}`]: !!props.dimensions,\n 'be-form-group--no-marg': props.noMargin,\n });\n\n let innerLayout;\n\n const childrenArray: any[] = React.Children.toArray(props.children);\n switch (props.dimensions) {\n case '1/3':\n case '3/1':\n case '2/2':\n innerLayout = (\n <>\n {childrenArray?.[0] && <div>{childrenArray[0]}</div>}\n {childrenArray?.[1] && <div className={childrenArray[1]?.type?.name === InputGroup.name ? 'no-marg' : ''}>{childrenArray[1]}</div>}\n </>\n );\n\n break;\n\n case '1/2/2':\n case '1/1/1':\n innerLayout = (\n <>\n {childrenArray?.[0] && <div>{childrenArray[0]}</div>}\n {childrenArray?.[1] && <div>{childrenArray[1]}</div>}\n {childrenArray?.[2] && <div>{childrenArray[2]}</div>}\n </>\n );\n\n break;\n case '1':\n default:\n innerLayout = props.children;\n break;\n }\n\n return <div className={classes}>{innerLayout}</div>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUpFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAkC;AAClC,iDAAsD;AAEtD,6EAAqD;AACrD,+EAAuD;AACvD,kEAA2D;AAC3D,mEAAgE;AAChE,4DAAyD;AAOlD,MAAM,iBAAiB,GAA+B,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH;QACI,8BAAC,uBAAU,IAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAI;QACvD,8BAAC,mBAAS,OAAG;
|
|
1
|
+
{"version":3,"file":"SignUpFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAkC;AAClC,iDAAsD;AAEtD,6EAAqD;AACrD,+EAAuD;AACvD,kEAA2D;AAC3D,mEAAgE;AAChE,4DAAyD;AAOlD,MAAM,iBAAiB,GAA+B,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH;QACI,8BAAC,uBAAU,IAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAI;QACvD,8BAAC,mBAAS,OAAG;QAEb,uCAAK,SAAS,EAAC,sBAAsB;YACjC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,IAAI,UAC3B,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CACjD,CACL;QACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;YACtB,8BAAC,qBAAK,IAAC,OAAO,EAAE,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,8BAAC,kBAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,MAAM,QAAC,IAAI,EAAC,OAAO,EAAC,OAAO,QAAC,OAAO,EAAE,aAAa,GAAI,CAAC,GAAI,CAC7I,CACR,CACN,CAAC;AACN,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B","sourcesContent":["import React, { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { SignUpForm } from '@/components/User/Forms/SignUpForm';\nimport { Translation } from '@/translations/Translation';\n\ninterface SignUpFormContentProps {\n onSignInClick?: () => void;\n onDone?: () => void;\n}\n\nexport const SignUpFormContent: FC<SignUpFormContentProps> = (props) => {\n const { onSignInClick, onDone } = props;\n const { t } = useTranslation();\n\n return (\n <>\n <SignUpForm onSignIn={onSignInClick} onDone={onDone} />\n <LineBreak />\n\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} bold>\n {t(Translation.Step.Confirmation.AlreadyHaveAccount)}\n </Text>\n </div>\n <Text type={TextType.Small}>\n <Trans i18nKey={Translation.Navigation.SignUp.SignIn} components={[<BEButton key={0} isText size=\"small\" primary onClick={onSignInClick} />]} />\n </Text>\n </>\n );\n};\n"]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const contexts_1 = require("../../../contexts/index.js");
|
|
30
|
+
const events_1 = require("../../../events/index.js");
|
|
31
|
+
const hooks_1 = require("../../../hooks/index.js");
|
|
32
|
+
const react_1 = __importStar(require("react"));
|
|
33
|
+
const react_i18next_1 = require("react-i18next");
|
|
34
|
+
const Translation_1 = require("translations/Translation");
|
|
35
|
+
const BEButton_1 = __importDefault(require("../../generic/BEButton"));
|
|
36
|
+
const Headline_1 = __importDefault(require("../../generic/Headline"));
|
|
37
|
+
const Icon_1 = __importStar(require("../../generic/Icon/Icon"));
|
|
38
|
+
const SimpleModal_1 = __importStar(require("../../generic/modal/SimpleModal"));
|
|
39
|
+
const Text_1 = __importStar(require("../../generic/Text"));
|
|
40
|
+
const ForgotPasswordForm_1 = require("../../User/Forms/ForgotPasswordForm");
|
|
41
|
+
const SignInForm_1 = require("../../User/Forms/SignInForm");
|
|
42
|
+
const SignUpForm_1 = require("../../User/Forms/SignUpForm");
|
|
43
|
+
const ImageProvider_1 = __importStar(require("../../../providers/ImageProvider"));
|
|
44
|
+
const Color_1 = require("../../../util/Color");
|
|
45
|
+
var EViewingScreen;
|
|
46
|
+
(function (EViewingScreen) {
|
|
47
|
+
EViewingScreen["SignUp"] = "SignUp";
|
|
48
|
+
EViewingScreen["SignIn"] = "SignIn";
|
|
49
|
+
EViewingScreen["ForgotPassword"] = "ForgotPassword";
|
|
50
|
+
})(EViewingScreen || (EViewingScreen = {}));
|
|
51
|
+
function MemberPortalSignInModal(props) {
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
|
+
const { t } = (0, react_i18next_1.useTranslation)();
|
|
54
|
+
const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
|
|
55
|
+
const { hotel } = (0, hooks_1.useCurrentHotel)();
|
|
56
|
+
const { cognitoLoginState, reset: cognitoReset } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
|
|
57
|
+
const [viewingScreen, setViewingScreen] = (0, react_1.useState)(EViewingScreen.SignUp);
|
|
58
|
+
const memberImage = (0, react_1.useMemo)(() => {
|
|
59
|
+
if (props.image) {
|
|
60
|
+
return props.image;
|
|
61
|
+
}
|
|
62
|
+
if (hotel === null || hotel === void 0 ? void 0 : hotel.heroImage) {
|
|
63
|
+
return hotel === null || hotel === void 0 ? void 0 : hotel.heroImage;
|
|
64
|
+
}
|
|
65
|
+
}, [props.image, hotel === null || hotel === void 0 ? void 0 : hotel.heroImage]);
|
|
66
|
+
const { raise } = (0, hooks_1.useEvent)();
|
|
67
|
+
(0, react_1.useEffect)(() => {
|
|
68
|
+
if (props.isOpen) {
|
|
69
|
+
const event = new events_1.MemberOnlyModalViewEvent();
|
|
70
|
+
raise(event);
|
|
71
|
+
}
|
|
72
|
+
}, [props.isOpen, raise]);
|
|
73
|
+
(0, react_1.useEffect)(() => {
|
|
74
|
+
if (!props.isOpen)
|
|
75
|
+
return;
|
|
76
|
+
if (cognitoLoginState === contexts_1.CognitoLoginState.RequiresConfirmation) {
|
|
77
|
+
setViewingScreen(EViewingScreen.SignUp);
|
|
78
|
+
}
|
|
79
|
+
}, [props.isOpen, cognitoLoginState]);
|
|
80
|
+
const handleSignInClick = () => {
|
|
81
|
+
cognitoReset();
|
|
82
|
+
setViewingScreen(EViewingScreen.SignIn);
|
|
83
|
+
};
|
|
84
|
+
const handleBackToSignUp = () => {
|
|
85
|
+
cognitoReset();
|
|
86
|
+
setViewingScreen(EViewingScreen.SignUp);
|
|
87
|
+
};
|
|
88
|
+
const handleSignInSuccess = () => {
|
|
89
|
+
var _a;
|
|
90
|
+
(_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
91
|
+
};
|
|
92
|
+
const handleSignUpSuccess = () => {
|
|
93
|
+
var _a;
|
|
94
|
+
(_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
95
|
+
};
|
|
96
|
+
const handleForgotPasswordClick = () => {
|
|
97
|
+
cognitoReset();
|
|
98
|
+
setViewingScreen(EViewingScreen.ForgotPassword);
|
|
99
|
+
};
|
|
100
|
+
const handleBackToSignIn = () => {
|
|
101
|
+
cognitoReset();
|
|
102
|
+
setViewingScreen(EViewingScreen.SignIn);
|
|
103
|
+
};
|
|
104
|
+
const handlePasswordResetSuccess = () => {
|
|
105
|
+
var _a;
|
|
106
|
+
(_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
107
|
+
};
|
|
108
|
+
const modalTitle = (_b = (_a = ccx === null || ccx === void 0 ? void 0 : ccx.memberOnlyModalPromotion) === null || _a === void 0 ? void 0 : _a.memberOnlyModalTitle) !== null && _b !== void 0 ? _b : t(Translation_1.Translation.MemberOnlyPopup.Headline, {
|
|
109
|
+
companyShort: ccx === null || ccx === void 0 ? void 0 : ccx.companyShort,
|
|
110
|
+
});
|
|
111
|
+
const modalSubtitle = (_d = (_c = ccx === null || ccx === void 0 ? void 0 : ccx.memberOnlyModalPromotion) === null || _c === void 0 ? void 0 : _c.memberOnlyModalSubtitle) !== null && _d !== void 0 ? _d : t(Translation_1.Translation.MemberOnlyPopup.Subtitle);
|
|
112
|
+
const modalPrimaryColor = (hotel === null || hotel === void 0 ? void 0 : hotel.memberOnlyModalUsePrimaryColor) ? Color_1.Color.Accent : Color_1.Color.Success;
|
|
113
|
+
return (react_1.default.createElement(SimpleModal_1.default, { open: props.isOpen, onClose: props.onClose, size: SimpleModal_1.SimpleModalSize.Large, alignCenter: true },
|
|
114
|
+
react_1.default.createElement("div", { className: "row" },
|
|
115
|
+
react_1.default.createElement("div", { className: "col-md-6 u-mh-none", style: {
|
|
116
|
+
background: 'url("' + (memberImage && ImageProvider_1.default.resizeImage(memberImage, ImageProvider_1.ImageSize.Original)) + '")',
|
|
117
|
+
backgroundRepeat: 'no-repeat',
|
|
118
|
+
backgroundPosition: 'center',
|
|
119
|
+
backgroundSize: 'cover',
|
|
120
|
+
} }),
|
|
121
|
+
react_1.default.createElement("div", { className: "col-md-6" },
|
|
122
|
+
react_1.default.createElement("div", { className: "u-pad u-pad-heavy" },
|
|
123
|
+
viewingScreen === EViewingScreen.SignUp && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
124
|
+
react_1.default.createElement("div", { className: "u-marg-bottom-half" },
|
|
125
|
+
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Money, size: "24px", color: modalPrimaryColor, useColorAsBackground: hotel === null || hotel === void 0 ? void 0 : hotel.memberOnlyModalUsePrimaryColor })),
|
|
126
|
+
react_1.default.createElement("div", { className: "u-marg-bottom-half" },
|
|
127
|
+
react_1.default.createElement(Headline_1.default, { bold: true, color: modalPrimaryColor },
|
|
128
|
+
react_1.default.createElement("div", { style: { color: modalPrimaryColor }, dangerouslySetInnerHTML: {
|
|
129
|
+
__html: modalTitle,
|
|
130
|
+
} }))),
|
|
131
|
+
react_1.default.createElement("div", { className: "u-marg-bottom" },
|
|
132
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: Color_1.Color.DarkGrey },
|
|
133
|
+
react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: modalSubtitle } }))),
|
|
134
|
+
react_1.default.createElement(SignUpForm_1.SignUpForm, { onSignIn: handleSignInClick, onDone: handleSignUpSuccess, hideTitle: true, reduceMargins: true }),
|
|
135
|
+
react_1.default.createElement("div", { className: "u-marg-top--light" },
|
|
136
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.DarkGrey }, t(Translation_1.Translation.Step.Confirmation.AlreadyHaveAccount)),
|
|
137
|
+
' ',
|
|
138
|
+
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.DarkGrey },
|
|
139
|
+
react_1.default.createElement(BEButton_1.default, { isText: true, size: "tiny", textColor: modalPrimaryColor, onClick: handleSignInClick }, t(Translation_1.Translation.Navigation.SignIn.SignIn)))))),
|
|
140
|
+
viewingScreen === EViewingScreen.SignIn && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
141
|
+
react_1.default.createElement("div", { className: "u-marg-bottom" },
|
|
142
|
+
react_1.default.createElement(BEButton_1.default, { isText: true, size: "small", icon: Icon_1.IconType.ArrowLeft, iconPosition: "left", onClick: handleBackToSignUp }, "Back to sign up")),
|
|
143
|
+
react_1.default.createElement(SignInForm_1.SignInForm, { onSignedIn: handleSignInSuccess, onForgotPassword: handleForgotPasswordClick, onNotVerified: handleBackToSignUp }))),
|
|
144
|
+
viewingScreen === EViewingScreen.ForgotPassword && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
145
|
+
react_1.default.createElement("div", { className: "u-marg-bottom" },
|
|
146
|
+
react_1.default.createElement(BEButton_1.default, { isText: true, size: "small", icon: Icon_1.IconType.ArrowLeft, iconPosition: "left", onClick: handleBackToSignIn }, "Back to sign in")),
|
|
147
|
+
react_1.default.createElement(ForgotPasswordForm_1.ForgotPasswordForm, { onPasswordReset: handlePasswordResetSuccess, onCancelled: handleBackToSignIn, onDone: handlePasswordResetSuccess }))))))));
|
|
148
|
+
}
|
|
149
|
+
exports.default = MemberPortalSignInModal;
|
|
150
|
+
//# sourceMappingURL=MemberPortalSignInModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberPortalSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/MemberPortalSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, CognitoLoginState, CompanyContext } from '@frontend/contexts';\nimport { MemberOnlyModalViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Headline from '@/components/generic/Headline';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { ForgotPasswordForm } from '@/components/User/Forms/ForgotPasswordForm';\nimport { SignInForm } from '@/components/User/Forms/SignInForm';\nimport { SignUpForm } from '@/components/User/Forms/SignUpForm';\nimport ImageProvider, { ImageSize } from '@/providers/ImageProvider';\nimport { Color } from '@/util/Color';\n\ninterface MemberPortalSignInModalProps {\n onClose?: () => void;\n isOpen?: boolean;\n image?: string;\n imageSize?: string;\n}\n\nenum EViewingScreen {\n SignUp = 'SignUp',\n SignIn = 'SignIn',\n ForgotPassword = 'ForgotPassword',\n}\n\nexport default function MemberPortalSignInModal(props: MemberPortalSignInModalProps) {\n const { t } = useTranslation();\n const ccx = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n const { cognitoLoginState, reset: cognitoReset } = useContext(AuthenticationContext);\n const [viewingScreen, setViewingScreen] = useState<EViewingScreen>(EViewingScreen.SignUp);\n\n const memberImage = useMemo(() => {\n if (props.image) {\n return props.image;\n }\n\n if (hotel?.heroImage) {\n return hotel?.heroImage;\n }\n }, [props.image, hotel?.heroImage]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n if (props.isOpen) {\n const event = new MemberOnlyModalViewEvent();\n raise(event);\n }\n }, [props.isOpen, raise]);\n\n useEffect(() => {\n if (!props.isOpen) return;\n\n if (cognitoLoginState === CognitoLoginState.RequiresConfirmation) {\n setViewingScreen(EViewingScreen.SignUp);\n }\n }, [props.isOpen, cognitoLoginState]);\n\n const handleSignInClick = () => {\n cognitoReset();\n setViewingScreen(EViewingScreen.SignIn);\n };\n\n const handleBackToSignUp = () => {\n cognitoReset();\n setViewingScreen(EViewingScreen.SignUp);\n };\n\n const handleSignInSuccess = () => {\n props.onClose?.();\n };\n\n const handleSignUpSuccess = () => {\n props.onClose?.();\n };\n\n const handleForgotPasswordClick = () => {\n cognitoReset();\n setViewingScreen(EViewingScreen.ForgotPassword);\n };\n\n const handleBackToSignIn = () => {\n cognitoReset();\n setViewingScreen(EViewingScreen.SignIn);\n };\n\n const handlePasswordResetSuccess = () => {\n props.onClose?.();\n };\n\n const modalTitle =\n ccx?.memberOnlyModalPromotion?.memberOnlyModalTitle ??\n t(Translation.MemberOnlyPopup.Headline, {\n companyShort: ccx?.companyShort,\n });\n\n const modalSubtitle = ccx?.memberOnlyModalPromotion?.memberOnlyModalSubtitle ?? t(Translation.MemberOnlyPopup.Subtitle);\n const modalPrimaryColor = hotel?.memberOnlyModalUsePrimaryColor ? Color.Accent : Color.Success;\n\n return (\n <SimpleModal open={props.isOpen} onClose={props.onClose} size={SimpleModalSize.Large} alignCenter>\n <div className=\"row\">\n <div\n className=\"col-md-6 u-mh-none\"\n style={{\n background: 'url(\"' + (memberImage && ImageProvider.resizeImage(memberImage, ImageSize.Original)) + '\")',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n }}\n />\n <div className=\"col-md-6\">\n <div className=\"u-pad u-pad-heavy\">\n {viewingScreen === EViewingScreen.SignUp && (\n <>\n <div className=\"u-marg-bottom-half\">\n <Icon icon={IconType.Money} size=\"24px\" color={modalPrimaryColor} useColorAsBackground={hotel?.memberOnlyModalUsePrimaryColor} />\n </div>\n\n <div className=\"u-marg-bottom-half\">\n <Headline bold color={modalPrimaryColor}>\n <div\n style={{ color: modalPrimaryColor }}\n dangerouslySetInnerHTML={{\n __html: modalTitle as string,\n }}\n ></div>\n </Headline>\n </div>\n\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} color={Color.DarkGrey}>\n <span dangerouslySetInnerHTML={{ __html: modalSubtitle as string }}></span>\n </Text>\n </div>\n\n <SignUpForm onSignIn={handleSignInClick} onDone={handleSignUpSuccess} hideTitle reduceMargins />\n\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n {t(Translation.Step.Confirmation.AlreadyHaveAccount)}\n </Text>{' '}\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <BEButton isText size=\"tiny\" textColor={modalPrimaryColor} onClick={handleSignInClick}>\n {t(Translation.Navigation.SignIn.SignIn)}\n </BEButton>\n </Text>\n </div>\n </>\n )}\n\n {viewingScreen === EViewingScreen.SignIn && (\n <>\n <div className=\"u-marg-bottom\">\n <BEButton isText size=\"small\" icon={IconType.ArrowLeft} iconPosition=\"left\" onClick={handleBackToSignUp}>\n Back to sign up\n </BEButton>\n </div>\n <SignInForm onSignedIn={handleSignInSuccess} onForgotPassword={handleForgotPasswordClick} onNotVerified={handleBackToSignUp} />\n </>\n )}\n\n {viewingScreen === EViewingScreen.ForgotPassword && (\n <>\n <div className=\"u-marg-bottom\">\n <BEButton isText size=\"small\" icon={IconType.ArrowLeft} iconPosition=\"left\" onClick={handleBackToSignIn}>\n Back to sign in\n </BEButton>\n </div>\n <ForgotPasswordForm onPasswordReset={handlePasswordResetSuccess} onCancelled={handleBackToSignIn} onDone={handlePasswordResetSuccess} />\n </>\n )}\n </div>\n </div>\n </div>\n </SimpleModal>\n );\n}\n"]}
|
|
@@ -32,7 +32,6 @@ const hooks_1 = require("../../../hooks/index.js");
|
|
|
32
32
|
const core_1 = require("@roomstay/core");
|
|
33
33
|
const react_1 = __importStar(require("react"));
|
|
34
34
|
const react_i18next_1 = require("react-i18next");
|
|
35
|
-
const UnauthenticatedUserModal_1 = require("../../generic/modal/SigninModal/UnauthenticatedUserModal");
|
|
36
35
|
const useSignedInMember_1 = require("../../../hooks/useSignedInMember");
|
|
37
36
|
const MemberPortalFeature_1 = __importDefault(require("../../../providers/feature/MemberPortalFeature"));
|
|
38
37
|
const RoomstayThemeEngine_1 = __importDefault(require("../../../providers/RoomstayThemeEngine"));
|
|
@@ -41,6 +40,7 @@ const EmailAndFullnameMemberModal_1 = __importDefault(require("./EmailAndFullnam
|
|
|
41
40
|
const EmailPasswordMemberModal_1 = __importDefault(require("./EmailPasswordMemberModal"));
|
|
42
41
|
const FamilyNameMemberModal_1 = __importDefault(require("./FamilyNameMemberModal"));
|
|
43
42
|
const InternalMemberSignInModal_1 = __importDefault(require("./InternalMemberSignInModal"));
|
|
43
|
+
const MemberPortalSignInModal_1 = __importDefault(require("./MemberPortalSignInModal"));
|
|
44
44
|
const MemberSignInModal = () => {
|
|
45
45
|
const { externalMemberType, isExternalMemberHotel } = (0, useSignedInMember_1.useSignedInMember)();
|
|
46
46
|
const { isSigningIn, closeMemberSignupModal, memberOnlyModalPromotion } = (0, react_1.useContext)(contexts_1.CompanyContext);
|
|
@@ -85,7 +85,7 @@ const MemberSignInModal = () => {
|
|
|
85
85
|
if (MemberPortalFeature_1.default.shouldUseMemberPortalForMemberPricing()) {
|
|
86
86
|
// Users will need to create a full member portal account (with password and email verification) to
|
|
87
87
|
// access member pricing.
|
|
88
|
-
return react_1.default.createElement(
|
|
88
|
+
return react_1.default.createElement(MemberPortalSignInModal_1.default, { image: memberLogo, imageSize: imageSize !== null && imageSize !== void 0 ? imageSize : 'none', isOpen: isSigningIn, onClose: closeMemberSignupModal });
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
91
91
|
// Because Member Portal is enabled, the internal member signin modal will show the option to sign
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/MemberSignInModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,2CAAkD;AAClD,yCAA8C;AAC9C,+CAAmD;AACnD,iDAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"MemberSignInModal.js","sourceRoot":"/","sources":["src/components/members/SignInModal/MemberSignInModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { EIntegration } from '@roomstay/core';\nimport React, { useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Translation } from '@/translations/Translation';\n\nimport EmailAndFullnameMemberModal from './EmailAndFullnameMemberModal';\nimport EmailPasswordMemberModal from './EmailPasswordMemberModal';\nimport FamilyNameMemberModal from './FamilyNameMemberModal';\nimport InternalMemberSignInModal from './InternalMemberSignInModal';\nimport MemberPortalSignInModal from './MemberPortalSignInModal';\n\nexport const MemberSignInModal = () => {\n const { externalMemberType, isExternalMemberHotel } = useSignedInMember();\n const { isSigningIn, closeMemberSignupModal, memberOnlyModalPromotion } = useContext(CompanyContext);\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const memberLogo = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImage) {\n return memberOnlyModalPromotion.memberOnlyModalImage;\n }\n\n if (hotel?.memberOnlyModalImage) {\n return hotel.memberOnlyModalImage;\n }\n }, [hotel?.memberOnlyModalImage, memberOnlyModalPromotion?.memberOnlyModalImage]);\n\n const imageSize = useMemo(() => {\n // Preference promotion first\n if (memberOnlyModalPromotion?.memberOnlyModalImageSize) {\n return memberOnlyModalPromotion.memberOnlyModalImageSize;\n }\n\n if (hotel?.memberOnlyModalImageSize) {\n return hotel.memberOnlyModalImageSize;\n }\n }, [hotel?.memberOnlyModalImageSize, memberOnlyModalPromotion?.memberOnlyModalImageSize]);\n\n if (isExternalMemberHotel) {\n switch (externalMemberType) {\n case EIntegration.Big4:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Big4Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('big4-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.RmsTop10:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Top10:\n return (\n <EmailPasswordMemberModal\n title={t(Translation.ExternalMemberPopup.Top10Title)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('top10-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Gday:\n return (\n <FamilyNameMemberModal\n title={t(Translation.ExternalMemberPopup.GDayTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('gday-login.svg')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'none'}\n />\n );\n case EIntegration.Salesforce:\n return (\n <EmailAndFullnameMemberModal\n title={t(Translation.ExternalMemberPopup.SalesforceTitle)}\n image={memberLogo ?? RoomstayThemeEngine.getImageAssetUrl('salesforce-login.png')}\n isOpen={isSigningIn}\n imageSize={imageSize ?? 'cover'}\n />\n );\n default:\n return null;\n }\n } else {\n if (MemberPortalFeature.isActive()) {\n if (MemberPortalFeature.shouldUseMemberPortalForMemberPricing()) {\n // Users will need to create a full member portal account (with password and email verification) to\n // access member pricing.\n return <MemberPortalSignInModal image={memberLogo} imageSize={imageSize ?? 'none'} isOpen={isSigningIn} onClose={closeMemberSignupModal} />;\n } else {\n // Because Member Portal is enabled, the internal member signin modal will show the option to sign\n // in with an exististing account. But they won't be forced to set a password and verify their email\n // to access the member prices.\n return <InternalMemberSignInModal image={memberLogo} isOpen={isSigningIn} onClose={closeMemberSignupModal} />;\n }\n } else {\n return <InternalMemberSignInModal image={memberLogo} isOpen={isSigningIn} onClose={closeMemberSignupModal} />;\n }\n }\n};\n"]}
|
|
@@ -92,7 +92,7 @@ exports.default = (0, react_1.forwardRef)(function BEMap(props, ref) {
|
|
|
92
92
|
react_1.default.createElement("span", { className: "room-gallery-slider__icon-lightbox-map", onClick: togglerOn },
|
|
93
93
|
react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Fullscreen, size: "24px" })),
|
|
94
94
|
mapObject),
|
|
95
|
-
react_1.default.createElement(SimpleModal_1.default, { open: toggler, size: SimpleModal_1.SimpleModalSize.
|
|
95
|
+
react_1.default.createElement(SimpleModal_1.default, { open: toggler, size: SimpleModal_1.SimpleModalSize.Normal, alignCenter: true, onClose: togglerOff },
|
|
96
96
|
react_1.default.createElement("div", { style: { height: 500, maxHeight: '80vh' } },
|
|
97
97
|
react_1.default.createElement(WrappedBEMapWidget, Object.assign({}, props, { isFullScreen: true }))))));
|
|
98
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BEMapWidget.js","sourceRoot":"/","sources":["src/components/summary/BEMapWidget.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BEMapWidget.js","sourceRoot":"/","sources":["src/components/summary/BEMapWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,6DAA4D;AAC5D,+CAAqF;AAErF,uEAAgE;AAChE,4FAAoE;AACpE,sFAAsF;AACtF,0FAAkE;AAQlE,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,EAAY;IACtD,MAAM,GAAG,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,GAAmB,CAAC;IAClD,MAAM,QAAQ,GAA+B;QACzC;YACI,WAAW,EAAE,cAAc;YAC3B,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;SACnC;KACJ,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;gBAChD,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC;SACf;IACL,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACnB,QAAQ,EAAE,SAAS;YACnB,GAAG;SACN,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAErB,OAAO,CACH,uCACI,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,KAAK,EACR,KAAK,EACD,YAAY;YACR,CAAC,CAAC;gBACI,MAAM,EAAE,MAAM;aACjB;YACH,CAAC,CAAC,SAAS,GAErB,CACL,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe;IACvC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAgB,EAAE;QAC5C,QAAQ,MAAM,EAAE;YACZ,KAAK,sBAAM,CAAC,OAAO;gBACf,OAAO,8BAAC,sBAAY,OAAG,CAAC;YAC5B,KAAK,sBAAM,CAAC,OAAO;gBACf,OAAO,6DAAK,CAAC;YACjB,KAAK,sBAAM,CAAC,OAAO;gBACf,OAAO,8BAAC,WAAW,oBAAK,KAAK,EAAI,CAAC;SACzC;IACL,CAAC,CAAC;IAEF,OAAO,8BAAC,uBAAO,IAAC,MAAM,EAAC,yCAAyC,EAAC,MAAM,EAAE,MAAM,GAAI,CAAC;AACxF,CAAC;AAED,kBAAe,IAAA,kBAAU,EAAC,SAAS,KAAK,CAAC,KAAe,EAAE,GAAG;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,EAAC,CAAC,CAAC,uCAAK,SAAS,EAAC,cAAc,EAAC,GAAG,EAAE,6BAAmB,CAAC,YAAY,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC,GAAI,CAAC,CAAC,CAAC,8BAAC,kBAAkB,oBAAK,KAAK,EAAI,CAAC;IAE/K,OAAO,CACH;QACI,uCAAK,SAAS,EAAC,eAAe;YAC1B,wCAAM,SAAS,EAAC,wCAAwC,EAAC,OAAO,EAAE,SAAS;gBACvE,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,EAAE,IAAI,EAAC,MAAM,GAAG,CAC5C;YACN,SAAS,CACR;QACN,8BAAC,qBAAW,IAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,6BAAe,CAAC,MAAM,EAAE,WAAW,QAAC,OAAO,EAAE,UAAU;YACrF,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE;gBAC1C,8BAAC,kBAAkB,oBAAK,KAAK,IAAE,YAAY,UAAG,CAC5C,CACI,CACf,CACN,CAAC;AACN,CAAC,CAAC,CAAC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { Status, Wrapper } from '@googlemaps/react-wrapper';\nimport React, { forwardRef, ReactElement, useEffect, useRef, useState } from 'react';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface MapProps {\n mapLatLng?: google.maps.LatLng | google.maps.LatLngLiteral;\n isFullScreen?: boolean;\n imageOverride?: string;\n}\n\nfunction BEMapWidget({ mapLatLng, isFullScreen }: MapProps): ReactElement {\n const ref = useRef<HTMLDivElement | null>(null);\n const [map, setMap] = useState<google.maps.Map>();\n const mapStyle: google.maps.MapTypeStyle[] = [\n {\n featureType: 'poi.business',\n stylers: [{ visibility: 'off' }],\n },\n ];\n\n useEffect(() => {\n if (ref.current) {\n const map = new window.google.maps.Map(ref.current, {\n center: mapLatLng,\n zoom: 15,\n styles: mapStyle,\n });\n setMap(map);\n }\n }, [mapLatLng]);\n\n useEffect(() => {\n new google.maps.Marker({\n position: mapLatLng,\n map,\n });\n }, [map, mapLatLng]);\n\n return (\n <div\n ref={ref}\n id=\"map\"\n style={\n isFullScreen\n ? {\n height: '100%',\n }\n : undefined\n }\n />\n );\n}\n\nfunction WrappedBEMapWidget(props: MapProps) {\n const render = (status: Status): ReactElement => {\n switch (status) {\n case Status.LOADING:\n return <SmallSpinner />;\n case Status.FAILURE:\n return <></>;\n case Status.SUCCESS:\n return <BEMapWidget {...props} />;\n }\n };\n\n return <Wrapper apiKey=\"AIzaSyBFoDziXY56EWFYGsREjZtK9fOdav2adcY\" render={render} />;\n}\n\nexport default forwardRef(function BEMap(props: MapProps, ref) {\n const { hotel } = useCurrentHotel();\n const [toggler, setToggler] = useState(false);\n\n const togglerOn = () => {\n return setToggler(true);\n };\n\n const togglerOff = () => {\n return setToggler(false);\n };\n\n const mapObject = hotel?.googleMapsImage ? <img className=\"static-image\" src={RoomstayThemeEngine.wrapAssetUrl(hotel?.googleMapsImage)} /> : <WrappedBEMapWidget {...props} />;\n\n return (\n <>\n <div className=\"be-map-widget\">\n <span className=\"room-gallery-slider__icon-lightbox-map\" onClick={togglerOn}>\n <Icon icon={IconType.Fullscreen} size=\"24px\" />\n </span>\n {mapObject}\n </div>\n <SimpleModal open={toggler} size={SimpleModalSize.Normal} alignCenter onClose={togglerOff}>\n <div style={{ height: 500, maxHeight: '80vh' }}>\n <WrappedBEMapWidget {...props} isFullScreen />\n </div>\n </SimpleModal>\n </>\n );\n});\n"]}
|
|
@@ -305,6 +305,7 @@ const useAuthenticationContext = () => {
|
|
|
305
305
|
instagramUrl: (hotel === null || hotel === void 0 ? void 0 : hotel.instagramUrl) || '',
|
|
306
306
|
facebookUrl: (hotel === null || hotel === void 0 ? void 0 : hotel.facebookUrl) || '',
|
|
307
307
|
linkedinUrl: (hotel === null || hotel === void 0 ? void 0 : hotel.linkedinUrl) || '',
|
|
308
|
+
hotelFrontendID: selectedHotelID || '',
|
|
308
309
|
};
|
|
309
310
|
};
|
|
310
311
|
return {
|