@roomstay/frontend 2.6.61 → 2.6.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/537.bundle.js +1 -1
  2. package/dist/950.bundle.js +1 -0
  3. package/dist/main.bundle.js +1 -1
  4. package/dist/src/components/User/Forms/ForgotPasswordForm.d.ts +1 -0
  5. package/dist/src/components/User/Forms/ForgotPasswordForm.js +6 -2
  6. package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
  7. package/dist/src/components/User/Forms/SignInForm.d.ts +1 -0
  8. package/dist/src/components/User/Forms/SignInForm.js +10 -4
  9. package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
  10. package/dist/src/components/User/Forms/SignUpForm.js +59 -79
  11. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  12. package/dist/src/components/User/Forms/VerifyEmailForm.d.ts +7 -0
  13. package/dist/src/components/User/Forms/VerifyEmailForm.js +92 -0
  14. package/dist/src/components/User/Forms/VerifyEmailForm.js.map +1 -0
  15. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.d.ts +1 -0
  16. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.js +2 -2
  17. package/dist/src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.js.map +1 -1
  18. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.d.ts +1 -0
  19. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.js +2 -2
  20. package/dist/src/components/generic/modal/SigninModal/FormContent/SignInFormContent.js.map +1 -1
  21. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +12 -4
  22. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
  23. package/dist/src/components/navigation/Header.js +3 -2
  24. package/dist/src/components/navigation/Header.js.map +1 -1
  25. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +7 -6
  26. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  27. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +2 -2
  28. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  29. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.d.ts +7 -1
  30. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js.map +1 -1
  31. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +32 -6
  32. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  33. package/dist/src/events/index.d.ts +1 -0
  34. package/dist/src/events/index.js +1 -0
  35. package/dist/src/events/index.js.map +1 -1
  36. package/dist/src/events/views/CommittedBookingEvent.d.ts +3 -1
  37. package/dist/src/events/views/CommittedBookingEvent.js +2 -1
  38. package/dist/src/events/views/CommittedBookingEvent.js.map +1 -1
  39. package/dist/src/hooks/useSignedInMember.d.ts +1 -1
  40. package/dist/src/index.d.ts +1 -0
  41. package/dist/src/index.js +4 -2
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/models/Api/HotelOverrideDTO.d.ts +2 -0
  44. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  45. package/dist/src/providers/FeatureProvider.js +2 -0
  46. package/dist/src/providers/FeatureProvider.js.map +1 -1
  47. package/dist/src/providers/feature/DerbysoftClickTrackingFeature.js +2 -2
  48. package/dist/src/providers/feature/DerbysoftClickTrackingFeature.js.map +1 -1
  49. package/dist/src/providers/feature/HotelGroupFeature.d.ts +6 -0
  50. package/dist/src/providers/feature/HotelGroupFeature.js +10 -0
  51. package/dist/src/providers/feature/HotelGroupFeature.js.map +1 -0
  52. package/dist/src/translations/Translation.d.ts +1 -0
  53. package/dist/src/translations/Translation.js +1 -0
  54. package/dist/src/translations/Translation.js.map +1 -1
  55. package/dist/src/translations/languages/en-gb.js +1 -0
  56. package/dist/src/translations/languages/en-gb.js.map +1 -1
  57. package/dist/src/util/Analytics/GoogleAnalytics4.d.ts +1 -1
  58. package/dist/src/util/Analytics/UniversalAnalytics.d.ts +1 -1
  59. package/dist/test.bundle.js +1 -1
  60. package/dist/tests/offline/entry/config/hotelSpecDefault.js +1 -0
  61. package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
  62. package/dist/vendors.bundle.js +1 -1
  63. package/package.json +1 -1
  64. package/dist/493.bundle.js +0 -1
@@ -0,0 +1,92 @@
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
+ exports.VerifyEmailForm = void 0;
30
+ const contexts_1 = require("../../../contexts/index.js");
31
+ const hooks_1 = require("../../../hooks/index.js");
32
+ const react_1 = __importStar(require("react"));
33
+ const react_hook_form_1 = require("react-hook-form");
34
+ const react_i18next_1 = require("react-i18next");
35
+ const Translation_1 = require("translations/Translation");
36
+ const BEButton_1 = __importDefault(require("../../generic/BEButton"));
37
+ const Icon_1 = require("../../generic/Icon/Icon");
38
+ const Text_1 = __importStar(require("../../generic/Text"));
39
+ const TextBox_1 = __importDefault(require("../../generic/TextBox"));
40
+ const Color_1 = require("../../../util/Color");
41
+ const Validation_1 = require("../../../util/Validation");
42
+ const VerifyEmailForm = (props) => {
43
+ const { t } = (0, react_i18next_1.useTranslation)();
44
+ const { hotel } = (0, hooks_1.useCurrentHotel)();
45
+ const { loading, confirmAccount } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
46
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
47
+ const [, setApiErrorMessages] = (0, react_1.useState)('');
48
+ const { register, formState, handleSubmit } = (0, react_hook_form_1.useForm)({
49
+ mode: 'onSubmit',
50
+ });
51
+ const errors = formState.errors;
52
+ const getValidationClass = (name) => {
53
+ if (errors && formState.touchedFields[name]) {
54
+ if (errors[name]) {
55
+ return 'error';
56
+ }
57
+ else {
58
+ return 'success';
59
+ }
60
+ }
61
+ };
62
+ const onSubmit = (values) => {
63
+ setIsLoading(true);
64
+ setApiErrorMessages('');
65
+ confirmAccount(values.code, { hotel })
66
+ .then((state) => {
67
+ var _a, _b;
68
+ if (state === contexts_1.CognitoLoginState.Login) {
69
+ (_a = props.onSignIn) === null || _a === void 0 ? void 0 : _a.call(props);
70
+ }
71
+ else {
72
+ (_b = props.onDone) === null || _b === void 0 ? void 0 : _b.call(props);
73
+ }
74
+ })
75
+ .finally(() => {
76
+ setIsLoading(false);
77
+ });
78
+ };
79
+ return (react_1.default.createElement("form", { onSubmit: handleSubmit(onSubmit), className: "u-marg-bottom" },
80
+ react_1.default.createElement("div", { className: "u-marg-bottom" },
81
+ react_1.default.createElement(Text_1.default, { color: Color_1.Color.Success, className: "u-marg-bottom--light", bold: true }, t(Translation_1.Translation.Navigation.SignUp.VerifyingEmail.Title)),
82
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, t(Translation_1.Translation.Navigation.SignUp.VerifyingEmail.Detail))),
83
+ react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
84
+ react_1.default.createElement("div", { className: "u-marg-bottom--light" },
85
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Label, color: Color_1.Color.Navy, bold: true }, t(Translation_1.Translation.Navigation.ForgotPassword.Inputs.Code.Label))),
86
+ react_1.default.createElement(TextBox_1.default, Object.assign({ placeholder: "12345", validationStatus: getValidationClass('code') }, register('code', {
87
+ required: (0, Validation_1.makeRequiredRule)(t)(true, 'Code'),
88
+ })))),
89
+ 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))));
90
+ };
91
+ exports.VerifyEmailForm = VerifyEmailForm;
92
+ //# sourceMappingURL=VerifyEmailForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyEmailForm.js","sourceRoot":"/","sources":["src/components/User/Forms/VerifyEmailForm.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 { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport TextBox from '@/components/generic/TextBox';\nimport { Color } from '@/util/Color';\nimport { makeRequiredRule } from '@/util/Validation';\n\ntype VerifyEmailFormProps = {\n onForgotPassword?: () => void;\n onSignIn?: () => void;\n onDone?: () => void;\n};\n\nexport const VerifyEmailForm = (props: VerifyEmailFormProps) => {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const { loading, confirmAccount } = useContext(AuthenticationContext);\n\n const [isLoading, setIsLoading] = useState(false);\n const [, setApiErrorMessages] = useState('');\n\n const { register, formState, handleSubmit } = useForm({\n mode: 'onSubmit',\n });\n\n const errors = formState.errors;\n\n const getValidationClass = (name: string) => {\n if (errors && formState.touchedFields[name]) {\n if (errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n }\n };\n\n const onSubmit = (values: any) => {\n setIsLoading(true);\n setApiErrorMessages('');\n\n confirmAccount(values.code, { hotel })\n .then((state) => {\n if (state === CognitoLoginState.Login) {\n props.onSignIn?.();\n } else {\n props.onDone?.();\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n return (\n <form onSubmit={handleSubmit(onSubmit)} className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom\">\n <Text color={Color.Success} className=\"u-marg-bottom--light\" bold>\n {t(Translation.Navigation.SignUp.VerifyingEmail.Title)}\n </Text>\n <Text type={TextType.Small}>{t(Translation.Navigation.SignUp.VerifyingEmail.Detail)}</Text>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.Navy} bold>\n {t(Translation.Navigation.ForgotPassword.Inputs.Code.Label)}\n </Text>\n </div>\n <TextBox\n placeholder=\"12345\"\n validationStatus={getValidationClass('code')}\n {...register('code', {\n required: makeRequiredRule(t)(true, 'Code'),\n })}\n />\n </div>\n\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 );\n};\n"]}
@@ -2,6 +2,7 @@ import { FC } from 'react';
2
2
  interface ForgotPasswordFormContentProps {
3
3
  onCancelled?: () => void;
4
4
  onDone?: () => void;
5
+ onNotVerified?: () => void;
5
6
  }
6
7
  export declare const ForgotPasswordFormContent: FC<ForgotPasswordFormContentProps>;
7
8
  export {};
@@ -7,8 +7,8 @@ exports.ForgotPasswordFormContent = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const ForgotPasswordForm_1 = require("../../../../User/Forms/ForgotPasswordForm");
9
9
  const ForgotPasswordFormContent = (props) => {
10
- const { onCancelled, onDone } = props;
11
- return react_1.default.createElement(ForgotPasswordForm_1.ForgotPasswordForm, { onCancelled: onCancelled, onDone: onDone });
10
+ const { onCancelled, onDone, onNotVerified } = props;
11
+ return react_1.default.createElement(ForgotPasswordForm_1.ForgotPasswordForm, { onCancelled: onCancelled, onDone: onDone, onNotVerified: onNotVerified });
12
12
  };
13
13
  exports.ForgotPasswordFormContent = ForgotPasswordFormContent;
14
14
  //# sourceMappingURL=ForgotPasswordFormContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPasswordFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAkC;AAElC,mFAAgF;AAOzE,MAAM,yBAAyB,GAAuC,CAAC,KAAK,EAAE,EAAE;IACnF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEtC,OAAO,8BAAC,uCAAkB,IAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;AAC5E,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC","sourcesContent":["import React, { FC } from 'react';\n\nimport { ForgotPasswordForm } from '@/components/User/Forms/ForgotPasswordForm';\n\ninterface ForgotPasswordFormContentProps {\n onCancelled?: () => void;\n onDone?: () => void;\n}\n\nexport const ForgotPasswordFormContent: FC<ForgotPasswordFormContentProps> = (props) => {\n const { onCancelled, onDone } = props;\n\n return <ForgotPasswordForm onCancelled={onCancelled} onDone={onDone} />;\n};\n"]}
1
+ {"version":3,"file":"ForgotPasswordFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/ForgotPasswordFormContent.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAkC;AAElC,mFAAgF;AAQzE,MAAM,yBAAyB,GAAuC,CAAC,KAAK,EAAE,EAAE;IACnF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAErD,OAAO,8BAAC,uCAAkB,IAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAI,CAAC;AAC1G,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC","sourcesContent":["import React, { FC } from 'react';\n\nimport { ForgotPasswordForm } from '@/components/User/Forms/ForgotPasswordForm';\n\ninterface ForgotPasswordFormContentProps {\n onCancelled?: () => void;\n onDone?: () => void;\n onNotVerified?: () => void;\n}\n\nexport const ForgotPasswordFormContent: FC<ForgotPasswordFormContentProps> = (props) => {\n const { onCancelled, onDone, onNotVerified } = props;\n\n return <ForgotPasswordForm onCancelled={onCancelled} onDone={onDone} onNotVerified={onNotVerified} />;\n};\n"]}
@@ -2,6 +2,7 @@ import { FC } from 'react';
2
2
  interface SignInFormContentProps {
3
3
  onForgotPasswordClick?: () => void;
4
4
  onSignUpClick?: () => void;
5
+ onNotVerified?: () => void;
5
6
  onDone?: () => void;
6
7
  }
7
8
  export declare const SignInFormContent: FC<SignInFormContentProps>;
@@ -12,10 +12,10 @@ const SignInForm_1 = require("../../../../User/Forms/SignInForm");
12
12
  const Translation_1 = require("../../../../../translations/Translation");
13
13
  const Color_1 = require("../../../../../util/Color");
14
14
  const SignInFormContent = (props) => {
15
- const { onForgotPasswordClick, onSignUpClick, onDone } = props;
15
+ const { onForgotPasswordClick, onSignUpClick, onDone, onNotVerified } = props;
16
16
  const { t } = (0, react_i18next_1.useTranslation)();
17
17
  return (react_1.default.createElement(react_1.default.Fragment, null,
18
- react_1.default.createElement(SignInForm_1.SignInForm, { onForgotPassword: onForgotPasswordClick, onDone: onDone }),
18
+ react_1.default.createElement(SignInForm_1.SignInForm, { onForgotPassword: onForgotPasswordClick, onDone: onDone, onNotVerified: onNotVerified }),
19
19
  react_1.default.createElement(LineBreak_1.default, null),
20
20
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
21
21
  react_1.default.createElement(BEButton_1.default, { isText: true, wide: true, size: "small", textColor: Color_1.Color.Navy, onClick: onSignUpClick }, t(Translation_1.Translation.Navigation.SignIn.DontHaveAnAccount))),
@@ -1 +1 @@
1
- {"version":3,"file":"SignInFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/SignInFormContent.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAkC;AAClC,iDAA+C;AAE/C,6EAAqD;AACrD,+EAAuD;AACvD,mEAAgE;AAChE,4DAAyD;AACzD,wCAAqC;AAQ9B,MAAM,iBAAiB,GAA+B,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH;QACI,8BAAC,uBAAU,IAAC,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAI;QACvE,8BAAC,mBAAS,OAAG;QACb,uCAAK,SAAS,EAAC,sBAAsB;YACjC,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,QAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,IAC3E,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAC5C,CACT;QACN,8BAAC,kBAAQ,IAAC,OAAO,EAAE,aAAa,EAAE,IAAI,QAAC,OAAO,UACzC,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CACjC,CACZ,CACN,CAAC;AACN,CAAC,CAAC;AAlBW,QAAA,iBAAiB,qBAkB5B","sourcesContent":["import React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { SignInForm } from '@/components/User/Forms/SignInForm';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface SignInFormContentProps {\n onForgotPasswordClick?: () => void;\n onSignUpClick?: () => void;\n onDone?: () => void;\n}\n\nexport const SignInFormContent: FC<SignInFormContentProps> = (props) => {\n const { onForgotPasswordClick, onSignUpClick, onDone } = props;\n const { t } = useTranslation();\n\n return (\n <>\n <SignInForm onForgotPassword={onForgotPasswordClick} onDone={onDone} />\n <LineBreak />\n <div className=\"u-marg-bottom--light\">\n <BEButton isText wide size=\"small\" textColor={Color.Navy} onClick={onSignUpClick}>\n {t(Translation.Navigation.SignIn.DontHaveAnAccount)}\n </BEButton>\n </div>\n <BEButton onClick={onSignUpClick} wide primary>\n {t(Translation.Navigation.SignIn.SignUp)}\n </BEButton>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SignInFormContent.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/FormContent/SignInFormContent.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAkC;AAClC,iDAA+C;AAE/C,6EAAqD;AACrD,+EAAuD;AACvD,mEAAgE;AAChE,4DAAyD;AACzD,wCAAqC;AAS9B,MAAM,iBAAiB,GAA+B,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9E,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,OAAO,CACH;QACI,8BAAC,uBAAU,IAAC,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAI;QACrG,8BAAC,mBAAS,OAAG;QACb,uCAAK,SAAS,EAAC,sBAAsB;YACjC,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,QAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,aAAK,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,IAC3E,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAC5C,CACT;QACN,8BAAC,kBAAQ,IAAC,OAAO,EAAE,aAAa,EAAE,IAAI,QAAC,OAAO,UACzC,CAAC,CAAC,yBAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CACjC,CACZ,CACN,CAAC;AACN,CAAC,CAAC;AAlBW,QAAA,iBAAiB,qBAkB5B","sourcesContent":["import React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport LineBreak from '@/components/generic/LineBreak';\nimport { SignInForm } from '@/components/User/Forms/SignInForm';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface SignInFormContentProps {\n onForgotPasswordClick?: () => void;\n onSignUpClick?: () => void;\n onNotVerified?: () => void;\n onDone?: () => void;\n}\n\nexport const SignInFormContent: FC<SignInFormContentProps> = (props) => {\n const { onForgotPasswordClick, onSignUpClick, onDone, onNotVerified } = props;\n const { t } = useTranslation();\n\n return (\n <>\n <SignInForm onForgotPassword={onForgotPasswordClick} onDone={onDone} onNotVerified={onNotVerified} />\n <LineBreak />\n <div className=\"u-marg-bottom--light\">\n <BEButton isText wide size=\"small\" textColor={Color.Navy} onClick={onSignUpClick}>\n {t(Translation.Navigation.SignIn.DontHaveAnAccount)}\n </BEButton>\n </div>\n <BEButton onClick={onSignUpClick} wide primary>\n {t(Translation.Navigation.SignIn.SignUp)}\n </BEButton>\n </>\n );\n};\n"]}
@@ -46,7 +46,7 @@ var EViewingScreen;
46
46
  })(EViewingScreen = exports.EViewingScreen || (exports.EViewingScreen = {}));
47
47
  const UnauthenticatedUserModal = (props) => {
48
48
  const { open, anchorEl, placement, fallbackPlacements, containerEl, onClose, onOpenOnMobile, onConfirm } = props;
49
- const { reset: cognitoReset } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
49
+ const { cognitoLoginState, reset: cognitoReset } = (0, react_1.useContext)(contexts_1.AuthenticationContext);
50
50
  const [viewingScreen, setViewingScreen] = (0, react_1.useState)(EViewingScreen.SignIn);
51
51
  const nextViewingScreen = (0, react_1.useRef)(null);
52
52
  const { screenSize } = (0, react_1.useContext)(contexts_1.BookingEngineContext);
@@ -60,7 +60,12 @@ const UnauthenticatedUserModal = (props) => {
60
60
  onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm();
61
61
  };
62
62
  (0, react_1.useEffect)(() => {
63
- if (open) {
63
+ if (!open)
64
+ return;
65
+ if (cognitoLoginState === contexts_1.CognitoLoginState.RequiresConfirmation) {
66
+ setViewingScreen(EViewingScreen.SignUp);
67
+ }
68
+ else {
64
69
  setViewingScreen(EViewingScreen.SignIn);
65
70
  }
66
71
  }, [open]);
@@ -87,10 +92,13 @@ const UnauthenticatedUserModal = (props) => {
87
92
  react_1.default.createElement(AutoAutoHeight_1.default, { open: true, startOpen: true }, [
88
93
  [
89
94
  EViewingScreen.SignIn,
90
- react_1.default.createElement(SignInFormContent_1.SignInFormContent, { key: EViewingScreen.SignIn, onForgotPasswordClick: showForgotPassword, onSignUpClick: showSignUpFormContent, onDone: onDone }),
95
+ react_1.default.createElement(SignInFormContent_1.SignInFormContent, { key: EViewingScreen.SignIn, onForgotPasswordClick: showForgotPassword, onSignUpClick: showSignUpFormContent, onDone: onDone, onNotVerified: showSignUpFormContent }),
91
96
  ],
92
97
  [EViewingScreen.SignUp, react_1.default.createElement(SignUpFormContent_1.SignUpFormContent, { key: EViewingScreen.SignUp, onSignInClick: showSignInFormContent, onDone: onDone })],
93
- [EViewingScreen.ForgotPassword, react_1.default.createElement(ForgotPasswordFormContent_1.ForgotPasswordFormContent, { key: EViewingScreen.ForgotPassword, onCancelled: showSignInFormContent, onDone: onDone })],
98
+ [
99
+ EViewingScreen.ForgotPassword,
100
+ react_1.default.createElement(ForgotPasswordFormContent_1.ForgotPasswordFormContent, { key: EViewingScreen.ForgotPassword, onCancelled: showSignInFormContent, onDone: onDone, onNotVerified: showSignUpFormContent }),
101
+ ],
94
102
  ].map(([forScreen, content], index) => (react_1.default.createElement(Fade_1.default, { open: viewingScreen === forScreen, onExitCompletely: onAnimationExit, key: index }, content))))));
95
103
  if (shouldBreakpoint) {
96
104
  return (react_1.default.createElement(SimpleModal_1.default, { open: open, onClose: onClose, size: SimpleModal_1.SimpleModalSize.Small }, innerContent));
@@ -1 +1 @@
1
- {"version":3,"file":"UnauthenticatedUserModal.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/UnauthenticatedUserModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, BookingEngineContext } from '@frontend/contexts';\nimport { Placement } from '@popperjs/core';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport FadeAnimation from '@/animations/Fade';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport SimpleModal, { SimpleModalSize } from '../SimpleModal';\nimport { ForgotPasswordFormContent } from './FormContent/ForgotPasswordFormContent';\nimport { SignInFormContent } from './FormContent/SignInFormContent';\nimport { SignUpFormContent } from './FormContent/SignUpFormContent';\n\n// TODO: Move file to not be in a generic location\n\nexport interface UnauthenticatedUserModalProps {\n open: boolean;\n anchorEl?: HTMLElement | null;\n placement?: Placement;\n fallbackPlacements?: Placement;\n containerEl?: HTMLElement;\n onClose?: () => void;\n onOpenOnMobile?: () => void;\n onConfirm?: () => void;\n}\n\nexport enum EViewingScreen {\n Default = 'Default',\n SignIn = 'SignIn',\n SignUp = 'SignUp',\n ForgotPassword = 'ForgotPassword',\n}\n\nexport const UnauthenticatedUserModal = (props: UnauthenticatedUserModalProps) => {\n const { open, anchorEl, placement, fallbackPlacements, containerEl, onClose, onOpenOnMobile, onConfirm } = props;\n const { reset: cognitoReset } = useContext(AuthenticationContext);\n\n const [viewingScreen, setViewingScreen] = useState<EViewingScreen | null>(EViewingScreen.SignIn);\n\n const nextViewingScreen = useRef<EViewingScreen | null>(null);\n\n const { screenSize } = useContext(BookingEngineContext);\n const shouldBreakpoint = screenSize <= ScreenSize.Large || !anchorEl;\n\n const _onOpen = () => {\n if (shouldBreakpoint) onOpenOnMobile?.();\n };\n\n const onDone = () => {\n _onOpen(); // It is unclear why onOpen is being called, but it is kept to avoid introducing regressions.\n onConfirm?.();\n };\n\n useEffect(() => {\n if (open) {\n setViewingScreen(EViewingScreen.SignIn);\n }\n }, [open]);\n\n const reset = () => {\n cognitoReset();\n setViewingScreen(null);\n };\n\n const showForgotPassword = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.ForgotPassword;\n };\n\n const showSignInFormContent = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.SignIn;\n };\n\n const showSignUpFormContent = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.SignUp;\n };\n\n const onAnimationExit = () => {\n setViewingScreen(nextViewingScreen.current);\n };\n\n const innerContent = (\n <div className=\"u-w-100 u-pad--heavy@m u-pad@m-\">\n <AutoAutoHeight open startOpen>\n {[\n [\n EViewingScreen.SignIn,\n <SignInFormContent key={EViewingScreen.SignIn} onForgotPasswordClick={showForgotPassword} onSignUpClick={showSignUpFormContent} onDone={onDone} />,\n ],\n [EViewingScreen.SignUp, <SignUpFormContent key={EViewingScreen.SignUp} onSignInClick={showSignInFormContent} onDone={onDone} />],\n [EViewingScreen.ForgotPassword, <ForgotPasswordFormContent key={EViewingScreen.ForgotPassword} onCancelled={showSignInFormContent} onDone={onDone} />],\n ].map(([forScreen, content], index) => (\n <FadeAnimation open={viewingScreen === forScreen} onExitCompletely={onAnimationExit} key={index}>\n {content as React.ReactElement}\n </FadeAnimation>\n ))}\n </AutoAutoHeight>\n </div>\n );\n\n if (shouldBreakpoint) {\n return (\n <SimpleModal open={open} onClose={onClose} size={SimpleModalSize.Small}>\n {innerContent}\n </SimpleModal>\n );\n } else {\n return (\n <Overlay\n usePortal\n followElement={shouldBreakpoint ? null : anchorEl}\n placement={placement || 'auto-end'}\n fallbackPlacements={fallbackPlacements}\n container={containerEl}\n open={open}\n onClose={onClose}\n strategy=\"fixed\"\n className=\"c-login-overlay\"\n >\n {innerContent}\n </Overlay>\n );\n }\n};\n"]}
1
+ {"version":3,"file":"UnauthenticatedUserModal.js","sourceRoot":"/","sources":["src/components/generic/modal/SigninModal/UnauthenticatedUserModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, BookingEngineContext, CognitoLoginState } from '@frontend/contexts';\nimport { Placement } from '@popperjs/core';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport FadeAnimation from '@/animations/Fade';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport SimpleModal, { SimpleModalSize } from '../SimpleModal';\nimport { ForgotPasswordFormContent } from './FormContent/ForgotPasswordFormContent';\nimport { SignInFormContent } from './FormContent/SignInFormContent';\nimport { SignUpFormContent } from './FormContent/SignUpFormContent';\n\n// TODO: Move file to not be in a generic location\n\nexport interface UnauthenticatedUserModalProps {\n open: boolean;\n anchorEl?: HTMLElement | null;\n placement?: Placement;\n fallbackPlacements?: Placement;\n containerEl?: HTMLElement;\n onClose?: () => void;\n onOpenOnMobile?: () => void;\n onConfirm?: () => void;\n}\n\nexport enum EViewingScreen {\n Default = 'Default',\n SignIn = 'SignIn',\n SignUp = 'SignUp',\n ForgotPassword = 'ForgotPassword',\n}\n\nexport const UnauthenticatedUserModal = (props: UnauthenticatedUserModalProps) => {\n const { open, anchorEl, placement, fallbackPlacements, containerEl, onClose, onOpenOnMobile, onConfirm } = props;\n const { cognitoLoginState, reset: cognitoReset } = useContext(AuthenticationContext);\n\n const [viewingScreen, setViewingScreen] = useState<EViewingScreen | null>(EViewingScreen.SignIn);\n\n const nextViewingScreen = useRef<EViewingScreen | null>(null);\n\n const { screenSize } = useContext(BookingEngineContext);\n const shouldBreakpoint = screenSize <= ScreenSize.Large || !anchorEl;\n\n const _onOpen = () => {\n if (shouldBreakpoint) onOpenOnMobile?.();\n };\n\n const onDone = () => {\n _onOpen(); // It is unclear why onOpen is being called, but it is kept to avoid introducing regressions.\n onConfirm?.();\n };\n\n useEffect(() => {\n if (!open) return;\n\n if (cognitoLoginState === CognitoLoginState.RequiresConfirmation) {\n setViewingScreen(EViewingScreen.SignUp);\n } else {\n setViewingScreen(EViewingScreen.SignIn);\n }\n }, [open]);\n\n const reset = () => {\n cognitoReset();\n setViewingScreen(null);\n };\n\n const showForgotPassword = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.ForgotPassword;\n };\n\n const showSignInFormContent = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.SignIn;\n };\n\n const showSignUpFormContent = () => {\n reset();\n nextViewingScreen.current = EViewingScreen.SignUp;\n };\n\n const onAnimationExit = () => {\n setViewingScreen(nextViewingScreen.current);\n };\n\n const innerContent = (\n <div className=\"u-w-100 u-pad--heavy@m u-pad@m-\">\n <AutoAutoHeight open startOpen>\n {[\n [\n EViewingScreen.SignIn,\n <SignInFormContent\n key={EViewingScreen.SignIn}\n onForgotPasswordClick={showForgotPassword}\n onSignUpClick={showSignUpFormContent}\n onDone={onDone}\n onNotVerified={showSignUpFormContent}\n />,\n ],\n [EViewingScreen.SignUp, <SignUpFormContent key={EViewingScreen.SignUp} onSignInClick={showSignInFormContent} onDone={onDone} />],\n [\n EViewingScreen.ForgotPassword,\n <ForgotPasswordFormContent key={EViewingScreen.ForgotPassword} onCancelled={showSignInFormContent} onDone={onDone} onNotVerified={showSignUpFormContent} />,\n ],\n ].map(([forScreen, content], index) => (\n <FadeAnimation open={viewingScreen === forScreen} onExitCompletely={onAnimationExit} key={index}>\n {content as React.ReactElement}\n </FadeAnimation>\n ))}\n </AutoAutoHeight>\n </div>\n );\n\n if (shouldBreakpoint) {\n return (\n <SimpleModal open={open} onClose={onClose} size={SimpleModalSize.Small}>\n {innerContent}\n </SimpleModal>\n );\n } else {\n return (\n <Overlay\n usePortal\n followElement={shouldBreakpoint ? null : anchorEl}\n placement={placement || 'auto-end'}\n fallbackPlacements={fallbackPlacements}\n container={containerEl}\n open={open}\n onClose={onClose}\n strategy=\"fixed\"\n className=\"c-login-overlay\"\n >\n {innerContent}\n </Overlay>\n );\n }\n};\n"]}
@@ -40,6 +40,7 @@ const Portal_1 = require("../generic/Portal/Portal");
40
40
  const Select_1 = require("../generic/Select/Select");
41
41
  const Text_1 = __importStar(require("../generic/Text"));
42
42
  const StepHotel_1 = __importDefault(require("../../pages/steps/StepHotel/StepHotel"));
43
+ const HotelGroupFeature_1 = __importDefault(require("../../providers/feature/HotelGroupFeature"));
43
44
  const MemberPortalFeature_1 = __importDefault(require("../../providers/feature/MemberPortalFeature"));
44
45
  const LanguageProvider_1 = require("../../providers/LanguageProvider");
45
46
  const RoomstayThemeEngine_1 = __importDefault(require("../../providers/RoomstayThemeEngine"));
@@ -209,7 +210,7 @@ function Header() {
209
210
  react_1.default.createElement("div", { className: "container" },
210
211
  react_1.default.createElement("div", { className: "u-flex" },
211
212
  react_1.default.createElement("div", { className: "u-flex u-flex-flex-start u-flex__item" },
212
- react_1.default.createElement(CompanyLogo, null),
213
+ HotelGroupFeature_1.default.isActive() && react_1.default.createElement(CompanyLogo, null),
213
214
  react_1.default.createElement(HotelLogo, null),
214
215
  !!showHotelLinks && links),
215
216
  react_1.default.createElement("div", { className: "u-flex mx-100" },
@@ -222,7 +223,7 @@ function Header() {
222
223
  react_1.default.createElement("div", { className: `mobile-header-menu ${mobileMenuFaderStatus ? '' : '--closing'}` },
223
224
  react_1.default.createElement("div", { className: "mobile-header-menu--replica u-flex" },
224
225
  react_1.default.createElement("div", { className: "u-flex" },
225
- react_1.default.createElement(CompanyLogo, { mobileMenuOpen: true }),
226
+ HotelGroupFeature_1.default.isActive() && react_1.default.createElement(CompanyLogo, { mobileMenuOpen: true }),
226
227
  react_1.default.createElement(HotelLogo, { mobileMenuOpen: true })),
227
228
  react_1.default.createElement("div", { className: "c-header__mobile-menu" },
228
229
  react_1.default.createElement("span", { className: "u-white u-pad-left" },
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"/","sources":["src/components/navigation/Header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext, FullPageEngineContext, RoomstayMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { Suspense, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, NavLink, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport FadeAnimation from '@/animations/Fade';\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport { RoomstayPortal } from '@/components/generic/Portal/Portal';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextTransform, TextType } from '@/components/generic/Text';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport { Language, LanguageProvider } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport { ROUTES } from '@/util/RouteManager';\n\nconst UnauthenticatedUserModal = React.lazy(() =>\n import('@/components/generic/modal/SigninModal/UnauthenticatedUserModal').then(({ UnauthenticatedUserModal }) => ({\n default: UnauthenticatedUserModal,\n }))\n);\nconst AuthenticatedUserModal = React.lazy(() =>\n import('@/components/generic/modal/SigninModal/AuthenticatedUserModal').then(({ AuthenticatedUserModal }) => ({\n default: AuthenticatedUserModal,\n }))\n);\n\ninterface ILanguageSelectOption {\n value: Language;\n text: string;\n}\n\ntype LogoLinkProps = {\n url: string;\n mobileMenuOpen?: boolean;\n children: React.ReactNode;\n onClick?: () => void;\n className?: string;\n};\n\nconst LogoLink = ({ url, mobileMenuOpen, children, onClick, className }: LogoLinkProps) => {\n return mobileMenuOpen ? (\n <Link to={url} onClick={onClick} className={className}>\n {children}\n </Link>\n ) : (\n <a href={url} onClick={onClick} className={className}>\n {children}\n </a>\n );\n};\n\ntype LogoProps = { mobileMenuOpen?: boolean };\n\nexport default function Header() {\n const { hotel } = useCurrentHotel();\n const location = useLocation();\n const ccx = useContext(CompanyContext);\n const { currentStep } = useContext(FullPageEngineContext);\n\n const { roomstayMember, isFetchingMember } = useContext(RoomstayMemberContext);\n\n const [loginAnchorEl, setLoginAnchorEl] = React.useState<HTMLLIElement | null>(null);\n\n const [hotelLogo, setHotelLogo] = useState('');\n const [showHotelLinks, setShowHotelLinks] = useState(true);\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [mobileMenuFaderStatus, setMobileMenuFaderStatus] = useState(false);\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const availableLanguages = LanguageProvider.getLanguages();\n\n const langKeys: Language[] = Object.keys(availableLanguages) as Language[];\n\n const onLanguageChangeHandler = (selected: Language) => {\n ccx.setCurrentLanguage(selected);\n LanguageProvider.changeLanguage(selected);\n };\n\n const onCurrencyChangeHandler = (selected: string) => {\n ccx.setCurrentCurrency(selected);\n DataLayer.instance.setCurrencyCodes(selected);\n };\n\n const closeMobileMenuClickHandler = () => {\n setMobileMenuFaderStatus(false);\n };\n const openMobileMenuClickHandler = () => {\n setMobileMenuFaderStatus(true);\n };\n const closeLoginClickHandler = () => {\n setLoginModalOpen(false);\n };\n const onLoginClickHandler = () => {\n setLoginModalOpen(true);\n };\n useEffect(() => {\n let timeout: NodeJS.Timeout;\n\n if (mobileMenuFaderStatus) {\n setMobileMenuOpen(true);\n if (location.pathname.startsWith('/account')) {\n setLoginModalOpen(true);\n }\n } else {\n timeout = setTimeout(() => {\n setMobileMenuOpen(false);\n }, 500);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, [mobileMenuFaderStatus]);\n\n useEffect(() => {\n let cancelled = false;\n\n const loadImage = (src: string) => {\n const image = new Image();\n image.onload = () => {\n if (!cancelled) {\n setHotelLogo(src);\n }\n };\n\n image.src = src;\n };\n\n // Check the Logo per step\n if (hotel && !(currentStep === StepHotel)) {\n if (typeof hotel?.logo === 'string') {\n loadImage(hotel?.logo);\n }\n } else {\n loadImage(ccx.logo);\n }\n\n // Check wether we should display the hotel related links or not\n setShowHotelLinks(currentStep !== StepHotel && !!hotel);\n\n return () => {\n cancelled = true;\n };\n }, [hotel, hotel?.logo, ccx.logo, currentStep]);\n\n useEffect(() => {\n if (mobileMenuOpen) {\n document.body.style.setProperty('overflow', 'hidden');\n }\n return () => {\n document.body.style.removeProperty('overflow');\n };\n }, [mobileMenuOpen]);\n\n let hotelImageElement = hotelLogo ? <img src={hotelLogo} alt=\"Hotel Logo\" className=\"u-block\" /> : hotel?.logo;\n\n if (typeof hotelImageElement === 'string' && !hotelImageElement.startsWith('<')) {\n hotelImageElement = <img src={hotelImageElement} alt=\"Hotel Logo\" />;\n }\n\n const CompanyLogo = ({ mobileMenuOpen }: LogoProps): JSX.Element => {\n if (!hotel?.company?.logo) return <></>;\n const url = hotel?.company?.url || '#';\n return (\n <div className=\"c-header__logo-company\">\n <LogoLink url={url} mobileMenuOpen={mobileMenuOpen} onClick={closeMobileMenuClickHandler}>\n <img src={hotel?.company?.logo} alt=\"Company Logo\" />\n </LogoLink>\n </div>\n );\n };\n\n const HotelLogo = ({ mobileMenuOpen }: LogoProps): JSX.Element => {\n const url = showHotelLinks ? hotel?.hotelUrl || '#' : ccx?.logoLink || '#';\n return (\n <div className=\"c-header__logo\">\n <LogoLink url={url} mobileMenuOpen={mobileMenuOpen} onClick={closeMobileMenuClickHandler}>\n {hotelImageElement}\n </LogoLink>\n </div>\n );\n };\n\n const links = (\n <ul className=\"c-header__list\">\n <li>\n <NavLink\n to={{\n ...location,\n pathname: ROUTES.HOTEL_INFO,\n }}\n className={({ isActive }) => (isActive ? 'is-active' : '')}\n onClick={closeMobileMenuClickHandler}\n >\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.HotelInfo)}\n </Text>\n </NavLink>\n </li>\n <li>\n {hotel?.forwardFindReservationToSynxis ? (\n <a href={`https://be.synxis.com/signin?hotel=${hotel?.hotelID}`} target=\"_blank\" rel=\"noreferrer\">\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.FindReservation)}\n </Text>\n </a>\n ) : (\n <NavLink to=\"/find-reservation\" className={({ isActive }) => (isActive ? 'is-active' : '')} onClick={closeMobileMenuClickHandler}>\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.FindReservation)}\n </Text>\n </NavLink>\n )}\n </li>\n <li className=\"phone\">\n <a href={`tel:${hotel?.phone}`} onClick={closeMobileMenuClickHandler}>\n <Text type={TextType.Small} transforms={[TextTransform.Uppercase]} color={Color.White} bold>\n <Icon icon={IconType.Phone} size=\"16px\" color={Color.White} />\n <span className=\"u-marg-left--light\">{hotel?.phone}</span>\n </Text>\n </a>\n </li>\n </ul>\n );\n\n const AuthButton = useMemo(() => {\n if (roomstayMember) {\n return (\n <BEButton size=\"small\" isText onClick={onLoginClickHandler} stopIconAnimation>\n {roomstayMember.forename} {roomstayMember.surname}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n );\n }\n\n if (isFetchingMember) {\n return <SmallSpinner />;\n }\n\n return (\n <BEButton\n size=\"small\"\n isText\n onClick={() => {\n onLoginClickHandler();\n closeMobileMenuClickHandler();\n }}\n stopIconAnimation\n >\n {t(Translation.Navigation.SignIn.SignIn)}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n );\n }, [roomstayMember, isFetchingMember]);\n\n const configs = (\n <>\n <ul className=\"c-header__list\">\n {langKeys.length > 1 && (\n <li>\n <Select<ILanguageSelectOption, 'value'>\n nativeOnMobile\n options={langKeys.map((lang: Language) => {\n return {\n value: lang,\n text: LanguageProvider.getPrettyLanguageName(lang),\n };\n })}\n value={ccx.currentLanguage}\n onChange={onLanguageChangeHandler}\n keyName=\"value\"\n labelName=\"text\"\n />\n </li>\n )}\n <li>\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={currencyHelper.getCurrencyItems()}\n value={ccx.currentCurrency}\n onChange={onCurrencyChangeHandler}\n keyName=\"value\"\n labelName=\"text\"\n />\n </li>\n\n {MemberPortalFeature.isActive() && <li ref={(el) => setLoginAnchorEl(el)}>{AuthButton}</li>}\n </ul>\n </>\n );\n\n return (\n <>\n <div className=\"c-header u-print-none\">\n <div className=\"container\">\n <div className=\"u-flex\">\n <div className=\"u-flex u-flex-flex-start u-flex__item\">\n <CompanyLogo />\n <HotelLogo />\n {!!showHotelLinks && links}\n </div>\n <div className=\"u-flex mx-100\">\n {configs}\n <div className=\"c-header__mobile-menu\">\n <span className=\"u-white u-pad-left\">\n <Icon icon={IconType.Menu} size=\"26px\" color={Color.White} onClick={openMobileMenuClickHandler} />\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n {mobileMenuOpen && (\n <RoomstayPortal target={RoomstayThemeEngine.EngineContainer}>\n <FadeAnimation open={mobileMenuFaderStatus}>\n <div className={`mobile-header-menu ${mobileMenuFaderStatus ? '' : '--closing'}`}>\n <div className=\"mobile-header-menu--replica u-flex\">\n <div className=\"u-flex\">\n <CompanyLogo mobileMenuOpen />\n <HotelLogo mobileMenuOpen />\n </div>\n <div className=\"c-header__mobile-menu\">\n <span className=\"u-white u-pad-left\">\n <Icon icon={IconType.Close} size=\"26px\" color={Color.White} onClick={closeMobileMenuClickHandler} />\n </span>\n </div>\n </div>\n <div className=\"mobile-header-menu--content\">\n {!!hotel && links}\n\n {configs}\n </div>\n </div>\n </FadeAnimation>\n </RoomstayPortal>\n )}\n {MemberPortalFeature.isActive() && (\n <Suspense fallback={<SmallSpinner />}>\n {roomstayMember || isFetchingMember ? (\n <AuthenticatedUserModal open={loginModalOpen} onClose={closeLoginClickHandler} onCloseMenu={closeMobileMenuClickHandler} anchorEl={loginAnchorEl} />\n ) : (\n <UnauthenticatedUserModal\n open={loginModalOpen}\n onClose={() => {\n closeLoginClickHandler();\n closeMobileMenuClickHandler();\n }}\n onOpenOnMobile={() => {\n onLoginClickHandler();\n openMobileMenuClickHandler();\n }}\n anchorEl={loginAnchorEl}\n />\n )}\n </Suspense>\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"Header.js","sourceRoot":"/","sources":["src/components/navigation/Header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext, FullPageEngineContext, RoomstayMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { Suspense, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, NavLink, useLocation } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport FadeAnimation from '@/animations/Fade';\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport { RoomstayPortal } from '@/components/generic/Portal/Portal';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextTransform, TextType } from '@/components/generic/Text';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport HotelGroupFeature from '@/providers/feature/HotelGroupFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport { Language, LanguageProvider } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport { ROUTES } from '@/util/RouteManager';\n\nconst UnauthenticatedUserModal = React.lazy(() =>\n import('@/components/generic/modal/SigninModal/UnauthenticatedUserModal').then(({ UnauthenticatedUserModal }) => ({\n default: UnauthenticatedUserModal,\n }))\n);\nconst AuthenticatedUserModal = React.lazy(() =>\n import('@/components/generic/modal/SigninModal/AuthenticatedUserModal').then(({ AuthenticatedUserModal }) => ({\n default: AuthenticatedUserModal,\n }))\n);\n\ninterface ILanguageSelectOption {\n value: Language;\n text: string;\n}\n\ntype LogoLinkProps = {\n url: string;\n mobileMenuOpen?: boolean;\n children: React.ReactNode;\n onClick?: () => void;\n className?: string;\n};\n\nconst LogoLink = ({ url, mobileMenuOpen, children, onClick, className }: LogoLinkProps) => {\n return mobileMenuOpen ? (\n <Link to={url} onClick={onClick} className={className}>\n {children}\n </Link>\n ) : (\n <a href={url} onClick={onClick} className={className}>\n {children}\n </a>\n );\n};\n\ntype LogoProps = { mobileMenuOpen?: boolean };\n\nexport default function Header() {\n const { hotel } = useCurrentHotel();\n const location = useLocation();\n const ccx = useContext(CompanyContext);\n const { currentStep } = useContext(FullPageEngineContext);\n\n const { roomstayMember, isFetchingMember } = useContext(RoomstayMemberContext);\n\n const [loginAnchorEl, setLoginAnchorEl] = React.useState<HTMLLIElement | null>(null);\n\n const [hotelLogo, setHotelLogo] = useState('');\n const [showHotelLinks, setShowHotelLinks] = useState(true);\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [mobileMenuFaderStatus, setMobileMenuFaderStatus] = useState(false);\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const availableLanguages = LanguageProvider.getLanguages();\n\n const langKeys: Language[] = Object.keys(availableLanguages) as Language[];\n\n const onLanguageChangeHandler = (selected: Language) => {\n ccx.setCurrentLanguage(selected);\n LanguageProvider.changeLanguage(selected);\n };\n\n const onCurrencyChangeHandler = (selected: string) => {\n ccx.setCurrentCurrency(selected);\n DataLayer.instance.setCurrencyCodes(selected);\n };\n\n const closeMobileMenuClickHandler = () => {\n setMobileMenuFaderStatus(false);\n };\n const openMobileMenuClickHandler = () => {\n setMobileMenuFaderStatus(true);\n };\n const closeLoginClickHandler = () => {\n setLoginModalOpen(false);\n };\n const onLoginClickHandler = () => {\n setLoginModalOpen(true);\n };\n useEffect(() => {\n let timeout: NodeJS.Timeout;\n\n if (mobileMenuFaderStatus) {\n setMobileMenuOpen(true);\n if (location.pathname.startsWith('/account')) {\n setLoginModalOpen(true);\n }\n } else {\n timeout = setTimeout(() => {\n setMobileMenuOpen(false);\n }, 500);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, [mobileMenuFaderStatus]);\n\n useEffect(() => {\n let cancelled = false;\n\n const loadImage = (src: string) => {\n const image = new Image();\n image.onload = () => {\n if (!cancelled) {\n setHotelLogo(src);\n }\n };\n\n image.src = src;\n };\n\n // Check the Logo per step\n if (hotel && !(currentStep === StepHotel)) {\n if (typeof hotel?.logo === 'string') {\n loadImage(hotel?.logo);\n }\n } else {\n loadImage(ccx.logo);\n }\n\n // Check wether we should display the hotel related links or not\n setShowHotelLinks(currentStep !== StepHotel && !!hotel);\n\n return () => {\n cancelled = true;\n };\n }, [hotel, hotel?.logo, ccx.logo, currentStep]);\n\n useEffect(() => {\n if (mobileMenuOpen) {\n document.body.style.setProperty('overflow', 'hidden');\n }\n return () => {\n document.body.style.removeProperty('overflow');\n };\n }, [mobileMenuOpen]);\n\n let hotelImageElement = hotelLogo ? <img src={hotelLogo} alt=\"Hotel Logo\" className=\"u-block\" /> : hotel?.logo;\n\n if (typeof hotelImageElement === 'string' && !hotelImageElement.startsWith('<')) {\n hotelImageElement = <img src={hotelImageElement} alt=\"Hotel Logo\" />;\n }\n\n const CompanyLogo = ({ mobileMenuOpen }: LogoProps): JSX.Element => {\n if (!hotel?.company?.logo) return <></>;\n const url = hotel?.company?.url || '#';\n return (\n <div className=\"c-header__logo-company\">\n <LogoLink url={url} mobileMenuOpen={mobileMenuOpen} onClick={closeMobileMenuClickHandler}>\n <img src={hotel?.company?.logo} alt=\"Company Logo\" />\n </LogoLink>\n </div>\n );\n };\n\n const HotelLogo = ({ mobileMenuOpen }: LogoProps): JSX.Element => {\n const url = showHotelLinks ? hotel?.hotelUrl || '#' : ccx?.logoLink || '#';\n return (\n <div className=\"c-header__logo\">\n <LogoLink url={url} mobileMenuOpen={mobileMenuOpen} onClick={closeMobileMenuClickHandler}>\n {hotelImageElement}\n </LogoLink>\n </div>\n );\n };\n\n const links = (\n <ul className=\"c-header__list\">\n <li>\n <NavLink\n to={{\n ...location,\n pathname: ROUTES.HOTEL_INFO,\n }}\n className={({ isActive }) => (isActive ? 'is-active' : '')}\n onClick={closeMobileMenuClickHandler}\n >\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.HotelInfo)}\n </Text>\n </NavLink>\n </li>\n <li>\n {hotel?.forwardFindReservationToSynxis ? (\n <a href={`https://be.synxis.com/signin?hotel=${hotel?.hotelID}`} target=\"_blank\" rel=\"noreferrer\">\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.FindReservation)}\n </Text>\n </a>\n ) : (\n <NavLink to=\"/find-reservation\" className={({ isActive }) => (isActive ? 'is-active' : '')} onClick={closeMobileMenuClickHandler}>\n <Text type={TextType.Small} color={Color.White} bold>\n {t(Translation.Navigation.FindReservation)}\n </Text>\n </NavLink>\n )}\n </li>\n <li className=\"phone\">\n <a href={`tel:${hotel?.phone}`} onClick={closeMobileMenuClickHandler}>\n <Text type={TextType.Small} transforms={[TextTransform.Uppercase]} color={Color.White} bold>\n <Icon icon={IconType.Phone} size=\"16px\" color={Color.White} />\n <span className=\"u-marg-left--light\">{hotel?.phone}</span>\n </Text>\n </a>\n </li>\n </ul>\n );\n\n const AuthButton = useMemo(() => {\n if (roomstayMember) {\n return (\n <BEButton size=\"small\" isText onClick={onLoginClickHandler} stopIconAnimation>\n {roomstayMember.forename} {roomstayMember.surname}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n );\n }\n\n if (isFetchingMember) {\n return <SmallSpinner />;\n }\n\n return (\n <BEButton\n size=\"small\"\n isText\n onClick={() => {\n onLoginClickHandler();\n closeMobileMenuClickHandler();\n }}\n stopIconAnimation\n >\n {t(Translation.Navigation.SignIn.SignIn)}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n );\n }, [roomstayMember, isFetchingMember]);\n\n const configs = (\n <>\n <ul className=\"c-header__list\">\n {langKeys.length > 1 && (\n <li>\n <Select<ILanguageSelectOption, 'value'>\n nativeOnMobile\n options={langKeys.map((lang: Language) => {\n return {\n value: lang,\n text: LanguageProvider.getPrettyLanguageName(lang),\n };\n })}\n value={ccx.currentLanguage}\n onChange={onLanguageChangeHandler}\n keyName=\"value\"\n labelName=\"text\"\n />\n </li>\n )}\n <li>\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={currencyHelper.getCurrencyItems()}\n value={ccx.currentCurrency}\n onChange={onCurrencyChangeHandler}\n keyName=\"value\"\n labelName=\"text\"\n />\n </li>\n\n {MemberPortalFeature.isActive() && <li ref={(el) => setLoginAnchorEl(el)}>{AuthButton}</li>}\n </ul>\n </>\n );\n\n return (\n <>\n <div className=\"c-header u-print-none\">\n <div className=\"container\">\n <div className=\"u-flex\">\n <div className=\"u-flex u-flex-flex-start u-flex__item\">\n {HotelGroupFeature.isActive() && <CompanyLogo />}\n <HotelLogo />\n {!!showHotelLinks && links}\n </div>\n <div className=\"u-flex mx-100\">\n {configs}\n <div className=\"c-header__mobile-menu\">\n <span className=\"u-white u-pad-left\">\n <Icon icon={IconType.Menu} size=\"26px\" color={Color.White} onClick={openMobileMenuClickHandler} />\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n {mobileMenuOpen && (\n <RoomstayPortal target={RoomstayThemeEngine.EngineContainer}>\n <FadeAnimation open={mobileMenuFaderStatus}>\n <div className={`mobile-header-menu ${mobileMenuFaderStatus ? '' : '--closing'}`}>\n <div className=\"mobile-header-menu--replica u-flex\">\n <div className=\"u-flex\">\n {HotelGroupFeature.isActive() && <CompanyLogo mobileMenuOpen />}\n <HotelLogo mobileMenuOpen />\n </div>\n <div className=\"c-header__mobile-menu\">\n <span className=\"u-white u-pad-left\">\n <Icon icon={IconType.Close} size=\"26px\" color={Color.White} onClick={closeMobileMenuClickHandler} />\n </span>\n </div>\n </div>\n <div className=\"mobile-header-menu--content\">\n {!!hotel && links}\n\n {configs}\n </div>\n </div>\n </FadeAnimation>\n </RoomstayPortal>\n )}\n {MemberPortalFeature.isActive() && (\n <Suspense fallback={<SmallSpinner />}>\n {roomstayMember || isFetchingMember ? (\n <AuthenticatedUserModal open={loginModalOpen} onClose={closeLoginClickHandler} onCloseMenu={closeMobileMenuClickHandler} anchorEl={loginAnchorEl} />\n ) : (\n <UnauthenticatedUserModal\n open={loginModalOpen}\n onClose={() => {\n closeLoginClickHandler();\n closeMobileMenuClickHandler();\n }}\n onOpenOnMobile={() => {\n onLoginClickHandler();\n openMobileMenuClickHandler();\n }}\n anchorEl={loginAnchorEl}\n />\n )}\n </Suspense>\n )}\n </>\n );\n}\n"]}
@@ -38,7 +38,7 @@ const Color_1 = require("../../util/Color");
38
38
  const TextAlignment_1 = require("../../util/TextAlignment");
39
39
  const TransportDistanceFromHotelBlock_module_scss_1 = __importDefault(require("./TransportDistanceFromHotelBlock.module.scss"));
40
40
  function TransportDistanceFromHotelBlock(props) {
41
- var _a, _b, _c, _d, _e, _f, _g;
41
+ var _a, _b, _c, _d, _e, _f, _g, _h;
42
42
  const { transportDistances } = (0, react_1.useContext)(contexts_1.HotelOverridesContext);
43
43
  const { vertical, tightMargins } = props;
44
44
  const { t } = (0, react_i18next_1.useTranslation)();
@@ -50,25 +50,26 @@ function TransportDistanceFromHotelBlock(props) {
50
50
  configuration: ((_a = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _a === void 0 ? void 0 : _a.plane) || {},
51
51
  },
52
52
  { icon: Icon_1.IconType.Train, name: t(Translation_1.Translation.TransportDistances.Train), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.train, configuration: ((_b = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _b === void 0 ? void 0 : _b.train) || {} },
53
- { icon: Icon_1.IconType.Bus, name: t(Translation_1.Translation.TransportDistances.Bus), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.bus, configuration: ((_c = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _c === void 0 ? void 0 : _c.bus) || {} },
54
- { icon: Icon_1.IconType.Taxi, name: t(Translation_1.Translation.TransportDistances.Taxi), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.taxi, configuration: ((_d = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _d === void 0 ? void 0 : _d.taxi) || {} },
53
+ { icon: Icon_1.IconType.Train, name: t(Translation_1.Translation.TransportDistances.Tram), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.tram, configuration: ((_c = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _c === void 0 ? void 0 : _c.tram) || {} },
54
+ { icon: Icon_1.IconType.Bus, name: t(Translation_1.Translation.TransportDistances.Bus), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.bus, configuration: ((_d = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _d === void 0 ? void 0 : _d.bus) || {} },
55
+ { icon: Icon_1.IconType.Taxi, name: t(Translation_1.Translation.TransportDistances.Taxi), distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.taxi, configuration: ((_e = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _e === void 0 ? void 0 : _e.taxi) || {} },
55
56
  {
56
57
  icon: Icon_1.IconType.Ferry,
57
58
  name: t(Translation_1.Translation.TransportDistances.Ferry),
58
59
  distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.ferry,
59
- configuration: ((_e = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _e === void 0 ? void 0 : _e.ferry) || {},
60
+ configuration: ((_f = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _f === void 0 ? void 0 : _f.ferry) || {},
60
61
  },
61
62
  {
62
63
  icon: Icon_1.IconType.Location,
63
64
  name: t(Translation_1.Translation.TransportDistances.Location),
64
65
  distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.location,
65
- configuration: ((_f = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _f === void 0 ? void 0 : _f.location) || {},
66
+ configuration: ((_g = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _g === void 0 ? void 0 : _g.location) || {},
66
67
  },
67
68
  {
68
69
  icon: Icon_1.IconType.Car,
69
70
  name: t(Translation_1.Translation.TransportDistances.Car),
70
71
  distance: transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.car,
71
- configuration: ((_g = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _g === void 0 ? void 0 : _g.car) || {},
72
+ configuration: ((_h = transportDistances === null || transportDistances === void 0 ? void 0 : transportDistances.configuration) === null || _h === void 0 ? void 0 : _h.car) || {},
72
73
  },
73
74
  ].filter(({ distance }) => !!distance);
74
75
  const tightMarginClass = tightMargins ? 'u-marg-left-right' : 'u-marg-left-right--heavy';
@@ -1 +1 @@
1
- {"version":3,"file":"TransportDistanceFromHotelBlock.js","sourceRoot":"/","sources":["src/components/summary/TransportDistanceFromHotelBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { HotelOverridesContext } from '@frontend/contexts';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Distance from '@/components/generic/Distance';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { TransportDistancesConfig } from '@/models/Api/HotelOverrideDTO';\nimport type { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\n\nimport styles from './TransportDistanceFromHotelBlock.module.scss';\ninterface TransportDistanceFromHotelBlockProps {\n vertical?: boolean;\n\n tightMargins?: boolean;\n distanceOverrides?: any;\n\n hotel?: Hotel;\n}\ninterface IDistanceValue {\n icon: IconType;\n name: string;\n distance: string | number;\n configuration: TransportDistancesConfig;\n}\nexport default function TransportDistanceFromHotelBlock(props: TransportDistanceFromHotelBlockProps) {\n const { transportDistances } = useContext(HotelOverridesContext);\n const { vertical, tightMargins } = props;\n const { t } = useTranslation();\n\n const distanceValues = [\n {\n icon: IconType.Airplane,\n name: t(Translation.TransportDistances.Airport),\n distance: transportDistances?.plane,\n configuration: transportDistances?.configuration?.plane || {},\n },\n { icon: IconType.Train, name: t(Translation.TransportDistances.Train), distance: transportDistances?.train, configuration: transportDistances?.configuration?.train || {} },\n { icon: IconType.Bus, name: t(Translation.TransportDistances.Bus), distance: transportDistances?.bus, configuration: transportDistances?.configuration?.bus || {} },\n { icon: IconType.Taxi, name: t(Translation.TransportDistances.Taxi), distance: transportDistances?.taxi, configuration: transportDistances?.configuration?.taxi || {} },\n {\n icon: IconType.Ferry,\n name: t(Translation.TransportDistances.Ferry),\n distance: transportDistances?.ferry,\n configuration: transportDistances?.configuration?.ferry || {},\n },\n {\n icon: IconType.Location,\n name: t(Translation.TransportDistances.Location),\n distance: transportDistances?.location,\n configuration: transportDistances?.configuration?.location || {},\n },\n {\n icon: IconType.Car,\n name: t(Translation.TransportDistances.Car),\n distance: transportDistances?.car,\n configuration: transportDistances?.configuration?.car || {},\n },\n ].filter(({ distance }) => !!distance) as IDistanceValue[];\n\n const tightMarginClass = tightMargins ? 'u-marg-left-right' : 'u-marg-left-right--heavy';\n\n return transportDistances?.displayCard ? (\n <div className={classNames(styles['rs-transport-distances'], 'rs-transport-distances d-flex flex-wrap justify-content-between u-w-100')}>\n {distanceValues.map((distanceValue, index) => (\n <DistanceDisplayCard key={index} {...distanceValue} vertical={vertical} totalValues={distanceValues.length} />\n ))}\n </div>\n ) : (\n <>\n {distanceValues.map((distanceValue, index) => (\n <DistanceDisplay key={index} {...distanceValue} vertical={vertical} tightMarginClass={tightMarginClass} />\n ))}\n </>\n );\n}\n\nconst DistanceDisplayCard = ({\n icon,\n distance,\n configuration: { suffix, subTitle, unit },\n totalValues,\n vertical,\n}: IDistanceValue & { totalValues: number; vertical?: boolean }) => (\n <div\n style={{\n ...(!vertical && {\n minWidth: `${100 / totalValues}%`,\n }),\n }}\n className=\"d-flex flex-row transport-card\"\n >\n <div className={classNames(styles['transport-card-icon'], 'transport-card-icon')}>\n <Icon icon={icon} size=\"1.3em\" color={Color.Accent} />\n </div>\n <div className=\"d-flex flex-column transport-card-details\">\n <Text bold align={TextAlign.Left} type={vertical ? TextType.Small : TextType.Body} color={Color.Accent} className=\"transport-card-title\">\n <Distance distance={distance} unit={unit} /> {suffix ?? ''}\n </Text>\n <Text align={TextAlign.Left} type={vertical ? TextType.Label : TextType.Small} color={Color.Graphite} className=\"transport-card-subtitle\">\n {subTitle}\n </Text>\n </div>\n </div>\n);\n\nconst DistanceDisplay = ({ name, icon, distance, configuration: { unit }, vertical, tightMarginClass }: IDistanceValue & { vertical?: boolean; tightMarginClass: string }) => (\n <div className={vertical ? 'u-flex flex-column u-marg-top-bottom' : `${tightMarginClass} u-marg-left-right@l-`}>\n <Text align={vertical ? TextAlign.Center : undefined} type={TextType.Small} color={Color.DarkGrey}>\n <strong>{name}</strong>\n </Text>\n <div\n className={classNames('u-flex u-marg-top--light', {\n 'justify-content-start flex-column align-items-center': vertical,\n 'align-items-end': !vertical,\n })}\n >\n <Icon icon={icon} size=\"1.3em\" />\n <span className={vertical ? 'u-marg-top--light' : 'u-marg-left--light'}>\n <Text type={TextType.Small}>\n <span className=\"u-nowrap\">\n <Distance unit={unit} distance={distance} />\n </span>\n </Text>\n </span>\n </div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"TransportDistanceFromHotelBlock.js","sourceRoot":"/","sources":["src/components/summary/TransportDistanceFromHotelBlock.tsx"],"names":[],"mappings":"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","sourcesContent":["import { HotelOverridesContext } from '@frontend/contexts';\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Distance from '@/components/generic/Distance';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { TransportDistancesConfig } from '@/models/Api/HotelOverrideDTO';\nimport type { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\nimport { TextAlign } from '@/util/TextAlignment';\n\nimport styles from './TransportDistanceFromHotelBlock.module.scss';\ninterface TransportDistanceFromHotelBlockProps {\n vertical?: boolean;\n\n tightMargins?: boolean;\n distanceOverrides?: any;\n\n hotel?: Hotel;\n}\ninterface IDistanceValue {\n icon: IconType;\n name: string;\n distance: string | number;\n configuration: TransportDistancesConfig;\n}\nexport default function TransportDistanceFromHotelBlock(props: TransportDistanceFromHotelBlockProps) {\n const { transportDistances } = useContext(HotelOverridesContext);\n const { vertical, tightMargins } = props;\n const { t } = useTranslation();\n\n const distanceValues = [\n {\n icon: IconType.Airplane,\n name: t(Translation.TransportDistances.Airport),\n distance: transportDistances?.plane,\n configuration: transportDistances?.configuration?.plane || {},\n },\n { icon: IconType.Train, name: t(Translation.TransportDistances.Train), distance: transportDistances?.train, configuration: transportDistances?.configuration?.train || {} },\n { icon: IconType.Train, name: t(Translation.TransportDistances.Tram), distance: transportDistances?.tram, configuration: transportDistances?.configuration?.tram || {} },\n { icon: IconType.Bus, name: t(Translation.TransportDistances.Bus), distance: transportDistances?.bus, configuration: transportDistances?.configuration?.bus || {} },\n { icon: IconType.Taxi, name: t(Translation.TransportDistances.Taxi), distance: transportDistances?.taxi, configuration: transportDistances?.configuration?.taxi || {} },\n {\n icon: IconType.Ferry,\n name: t(Translation.TransportDistances.Ferry),\n distance: transportDistances?.ferry,\n configuration: transportDistances?.configuration?.ferry || {},\n },\n {\n icon: IconType.Location,\n name: t(Translation.TransportDistances.Location),\n distance: transportDistances?.location,\n configuration: transportDistances?.configuration?.location || {},\n },\n {\n icon: IconType.Car,\n name: t(Translation.TransportDistances.Car),\n distance: transportDistances?.car,\n configuration: transportDistances?.configuration?.car || {},\n },\n ].filter(({ distance }) => !!distance) as IDistanceValue[];\n\n const tightMarginClass = tightMargins ? 'u-marg-left-right' : 'u-marg-left-right--heavy';\n\n return transportDistances?.displayCard ? (\n <div className={classNames(styles['rs-transport-distances'], 'rs-transport-distances d-flex flex-wrap justify-content-between u-w-100')}>\n {distanceValues.map((distanceValue, index) => (\n <DistanceDisplayCard key={index} {...distanceValue} vertical={vertical} totalValues={distanceValues.length} />\n ))}\n </div>\n ) : (\n <>\n {distanceValues.map((distanceValue, index) => (\n <DistanceDisplay key={index} {...distanceValue} vertical={vertical} tightMarginClass={tightMarginClass} />\n ))}\n </>\n );\n}\n\nconst DistanceDisplayCard = ({\n icon,\n distance,\n configuration: { suffix, subTitle, unit },\n totalValues,\n vertical,\n}: IDistanceValue & { totalValues: number; vertical?: boolean }) => (\n <div\n style={{\n ...(!vertical && {\n minWidth: `${100 / totalValues}%`,\n }),\n }}\n className=\"d-flex flex-row transport-card\"\n >\n <div className={classNames(styles['transport-card-icon'], 'transport-card-icon')}>\n <Icon icon={icon} size=\"1.3em\" color={Color.Accent} />\n </div>\n <div className=\"d-flex flex-column transport-card-details\">\n <Text bold align={TextAlign.Left} type={vertical ? TextType.Small : TextType.Body} color={Color.Accent} className=\"transport-card-title\">\n <Distance distance={distance} unit={unit} /> {suffix ?? ''}\n </Text>\n <Text align={TextAlign.Left} type={vertical ? TextType.Label : TextType.Small} color={Color.Graphite} className=\"transport-card-subtitle\">\n {subTitle}\n </Text>\n </div>\n </div>\n);\n\nconst DistanceDisplay = ({ name, icon, distance, configuration: { unit }, vertical, tightMarginClass }: IDistanceValue & { vertical?: boolean; tightMarginClass: string }) => (\n <div className={vertical ? 'u-flex flex-column u-marg-top-bottom' : `${tightMarginClass} u-marg-left-right@l-`}>\n <Text align={vertical ? TextAlign.Center : undefined} type={TextType.Small} color={Color.DarkGrey}>\n <strong>{name}</strong>\n </Text>\n <div\n className={classNames('u-flex u-marg-top--light', {\n 'justify-content-start flex-column align-items-center': vertical,\n 'align-items-end': !vertical,\n })}\n >\n <Icon icon={icon} size=\"1.3em\" />\n <span className={vertical ? 'u-marg-top--light' : 'u-marg-left--light'}>\n <Text type={TextType.Small}>\n <span className=\"u-nowrap\">\n <Distance unit={unit} distance={distance} />\n </span>\n </Text>\n </span>\n </div>\n </div>\n);\n"]}
@@ -220,7 +220,7 @@ const ConfirmationStepContextWrapper = ({ children }) => {
220
220
  });
221
221
  const onSubmitSuccess = (data, paymentMethod) => __awaiter(void 0, void 0, void 0, function* () {
222
222
  var _a, _b, _c, _d;
223
- yield raise(new PlacedBookingEvent_1.PlacedBookingEvent(data, basketContext.currentBasketRows, hotel));
223
+ raise(new PlacedBookingEvent_1.PlacedBookingEvent(data, basketContext.currentBasketRows, hotel));
224
224
  // If this is a planpay booking, we don't need to do anything else.
225
225
  if (paymentMethod === core_1.EBookingPaymentMethod.Planpay) {
226
226
  return;
@@ -292,7 +292,7 @@ const ConfirmationStepContextWrapper = ({ children }) => {
292
292
  Sentry.captureException('Failed to read reservations from GTM code: ' + JSON.stringify(ex));
293
293
  }
294
294
  basketContext.checkedOut(response);
295
- raise(new CommittedBookingEvent_1.CommittedBookingEvent(resData, basketContext.currentBasketRows));
295
+ raise(new CommittedBookingEvent_1.CommittedBookingEvent(resData, basketContext.currentBasketRows, hotel));
296
296
  }
297
297
  catch (error) {
298
298
  setApiErrorResponse(error);