@mirai/core 0.4.181 → 0.4.183

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.
@@ -101,7 +101,11 @@ const Form = _ref3 => {
101
101
  });
102
102
  // eslint-disable-next-line react-hooks/exhaustive-deps
103
103
  }, [errorForm, errorPayment]);
104
- const handleChange = async next => {
104
+ const handleChange = async value => {
105
+ const next = {
106
+ ...form,
107
+ ...value
108
+ };
105
109
  if (!!schema.country && next.country && !next.phone) {
106
110
  const {
107
111
  code
@@ -1 +1 @@
1
- {"version":3,"file":"Checkout.Form.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_shared__","_helpers","_Checkout","_Checkout2","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","storage","Storage","adapter","LocalAdapter","cache","FORM_STORAGE_CACHE","dataSource","schema","concat","FORM_STORAGE_KEY","generateId","JSON","stringify","entries","filter","_ref","value","input","INPUT","HTML","map","_ref2","Form","_ref3","_payment$config","_payment$config$publi","_payment$info","_payment$info2","children","currency","repositories","countries","form","tracking","showErrors","onError","others","isDesktop","useDevice","translate","useLocale","club","payment","method","session","useStore","errorForm","setErrorForm","useState","errorPayment","setErrorPayment","setForm","fromEntries","_ref4","formTracked","setFormTracked","modal","setModal","useEffect","getSchemaProps","useLayoutEffect","keys","checkout","handleChange","next","country","phone","code","ServiceCountry","info","getCountryCode","nextFields","getFields","nextFiltered","_ref5","undefined","handleLeave","email","firstName","lastName","Event","publish","EVENT","CHECKOUT_FORM","event","response","handleFormError","errors","totalErrors","METRICS","id","METRIC","_ref6","_ref7","visible","testId","formProps","autoComplete","validateOnMount","onChange","onLeave","className","styles","box","createElement","Fragment","Text","bold","headline","wide","L10N","LABEL_PERSONAL_DETAILS","_ref8","field","required","_ref9","React","FIELD","InputText","getFieldProps","error","Payment","config","publicKey","date","parseDate","requiredText","LABEL_REQUIRED","LABEL_ADDITIONAL_INFO","_ref10","_ref11","Modal","fit","title","LABEL_CONDITIONS","onClose","ScrollView","snap","vertical","scrollview","BookingTerms","small","exports","displayName","propTypes","PropTypes","node","shape","bool","variant","string","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Form.jsx"],"sourcesContent":["import { Event, LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { ServiceCountry } from '@mirai/services';\nimport { InputText, Form as FormBase, Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { BookingTerms, Payment } from '../../__shared__';\nimport { EVENT, generateId, getCountryCode } from '../../helpers';\nimport { FIELD, FORM_STORAGE_CACHE, FORM_STORAGE_KEY, INPUT, METRIC } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getFieldProps, getSchemaProps } from '../helpers';\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: FORM_STORAGE_CACHE });\n\nconst key = (dataSource, schema) =>\n `${FORM_STORAGE_KEY}:${generateId(\n JSON.stringify({\n ...dataSource,\n schema: Object.entries(schema)\n .filter(([, value]) => value.input !== INPUT.HTML)\n .map(([key]) => key),\n }),\n )}`;\n\nconst Form = ({\n children,\n dataSource: { currency, repositories: { countries } = {}, form: schema = {}, tracking = {}, ...dataSource } = {},\n showErrors = false,\n onError = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { set, value: { club, payment: { method } = {}, session } = {} } = useStore();\n\n const [errorForm, setErrorForm] = useState({});\n const [errorPayment, setErrorPayment] = useState({});\n const [form, setForm] = useState(\n storage.get(key(dataSource, schema)) ||\n Object.fromEntries(Object.entries(schema).map(([key, { value }]) => [key, value])),\n );\n const [formTracked, setFormTracked] = useState();\n const [modal, setModal] = useState(false);\n\n useEffect(() => {\n setForm({ ...form, ...getSchemaProps({ schema, value: session }) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useLayoutEffect(() => {\n if (Object.keys(form).length) storage.set(key(dataSource, schema), form);\n set({ checkout: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError({ ...errorForm, ...errorPayment });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [errorForm, errorPayment]);\n\n const handleChange = async (next) => {\n if (!!schema.country && next.country && !next.phone) {\n const { code } = await ServiceCountry.info(getCountryCode(next.country, countries));\n if (code) next.phone = code;\n }\n\n const nextFields = getFields(next);\n const nextFiltered =\n nextFields.length < getFields(form).length\n ? Object.fromEntries(Object.entries(next).filter(([key]) => Object.fromEntries(nextFields)[key] !== undefined))\n : undefined;\n\n setForm(nextFiltered || next);\n };\n\n const handleLeave = () => {\n const { email, firstName, lastName, phone } = errorForm;\n\n if (!formTracked && !email && !firstName && !lastName && !phone) {\n Event.publish(EVENT.CHECKOUT_FORM, { event: EVENT.CHECKOUT_FORM, response: { tracking } });\n setFormTracked(true);\n }\n };\n\n const handleFormError = (errors) => {\n setErrorForm(errors);\n\n const totalErrors = Object.keys(errors).length;\n if (totalErrors === 0) Event.publish(EVENT.METRICS, { id: `${METRIC}:FORM:SUCCESS` });\n else if (totalErrors === 1) Event.publish(EVENT.METRICS, { id: `${METRIC}:FORM:ERROR` });\n };\n\n const getFields = (value) =>\n Object.entries(schema)\n .filter(([key]) => !!schema[key])\n .filter(([, { visible }]) => !visible || visible(value));\n\n const { payment } = dataSource || {};\n const { testId } = others;\n const formProps = {\n ...others,\n autoComplete: 'off',\n showErrors,\n validateOnMount: true,\n onChange: handleChange,\n onError: handleFormError,\n onLeave: handleLeave,\n className: styles(style.form, style.box),\n };\n\n return (\n <>\n <FormBase {...formProps} testId={`${testId}-required`}>\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_PERSONAL_DETAILS)}\n </Text>\n\n {getFields(form)\n .filter(([, field]) => field.required)\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(\n key,\n field,\n { value: form[key], error: errorForm[key], session, translate, ...dataSource },\n club,\n () => setModal(true),\n ),\n ),\n )}\n </FormBase>\n\n {children}\n\n {payment && (\n <Payment\n {...{\n ...payment,\n config: { ...payment.config, publicKey: payment.config?.publicKey?.[method] },\n info: { ...payment.info, date: payment.info?.date ? parseDate(payment.info?.date) : undefined },\n showErrors,\n }}\n currency={currency}\n requiredText={translate(L10N.LABEL_REQUIRED)}\n onError={setErrorPayment}\n />\n )}\n\n <FormBase {...formProps} testId={`${testId}-adittional`}>\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_ADDITIONAL_INFO)}\n </Text>\n {getFields(form)\n .filter(([, field]) => !field.required)\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(\n key,\n field,\n { value: form[key], error: errorForm[key], session, translate, ...dataSource },\n club,\n () => setModal(true),\n ),\n ),\n )}\n </FormBase>\n\n <Modal\n fit\n title={translate(L10N.LABEL_CONDITIONS)}\n visible={modal}\n onClose={() => setModal(false)}\n className={style.modal}\n >\n <ScrollView snap={false} vertical className={style.scrollview}>\n <BookingTerms dataSource={dataSource} small className={style.others} />\n </ScrollView>\n </Modal>\n </>\n );\n};\n\nForm.displayName = 'Mirai:Core:Checkout:Form';\n\nForm.propTypes = {\n children: PropTypes.node,\n dataSource: PropTypes.shape({\n form: PropTypes.shape({}),\n }),\n showErrors: PropTypes.bool,\n variant: PropTypes.string,\n onError: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AAEA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AACA,IAAAY,KAAA,GAAAL,uBAAA,CAAAP,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA;AAA2D,SAAAc,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAlB,uBAAA8B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,SAAA,IAAAA,QAAA,GAAAV,MAAA,CAAAW,MAAA,GAAAX,MAAA,CAAAW,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAO,SAAA,CAAAC,MAAA,EAAAR,CAAA,UAAAS,MAAA,GAAAF,SAAA,CAAAP,CAAA,YAAAU,GAAA,IAAAD,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAE3D,MAAMK,OAAO,GAAG,IAAIC,oBAAO,CAAC;EAAEC,OAAO,EAAEC,yBAAY;EAAEC,KAAK,EAAEC;AAAmB,CAAC,CAAC;AAEjF,MAAMP,GAAG,GAAGA,CAACQ,UAAU,EAAEC,MAAM,QAAAC,MAAA,CAC1BC,0BAAgB,OAAAD,MAAA,CAAI,IAAAE,mBAAU,EAC/BC,IAAI,CAACC,SAAS,CAAC;EACb,GAAGN,UAAU;EACbC,MAAM,EAAE1B,MAAM,CAACgC,OAAO,CAACN,MAAM,CAAC,CAC3BO,MAAM,CAACC,IAAA;IAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;IAAA,OAAKC,KAAK,CAACC,KAAK,KAAKC,eAAK,CAACC,IAAI;EAAA,EAAC,CACjDC,GAAG,CAACC,KAAA;IAAA,IAAC,CAACvB,GAAG,CAAC,GAAAuB,KAAA;IAAA,OAAKvB,GAAG;EAAA;AACvB,CAAC,CACH,CAAC,CAAE;AAEL,MAAMwB,IAAI,GAAGC,KAAA,IAMP;EAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,cAAA;EAAA,IANQ;IACZC,QAAQ;IACRtB,UAAU,EAAE;MAAEuB,QAAQ;MAAEC,YAAY,EAAE;QAAEC;MAAU,CAAC,GAAG,CAAC,CAAC;MAAEC,IAAI,EAAEzB,MAAM,GAAG,CAAC,CAAC;MAAE0B,QAAQ,GAAG,CAAC,CAAC;MAAE,GAAG3B;IAAW,CAAC,GAAG,CAAC,CAAC;IAChH4B,UAAU,GAAG,KAAK;IAClBC,OAAO,GAAGA,CAAA,KAAM,CAAC,CAAC;IAClB,GAAGC;EACL,CAAC,GAAAb,KAAA;EACC,MAAM;IAAEc;EAAU,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EACjC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IAAEnD,GAAG;IAAE2B,KAAK,EAAE;MAAEyB,IAAI;MAAEC,OAAO,EAAE;QAAEC;MAAO,CAAC,GAAG,CAAC,CAAC;MAAEC;IAAQ,CAAC,GAAG,CAAC;EAAE,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEnF,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC,CAAC;EAC9C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC,CAAC,CAAC;EACpD,MAAM,CAAChB,IAAI,EAAEmB,OAAO,CAAC,GAAG,IAAAH,eAAQ,EAC9BhD,OAAO,CAACvB,GAAG,CAACqB,GAAG,CAACQ,UAAU,EAAEC,MAAM,CAAC,CAAC,IAClC1B,MAAM,CAACuE,WAAW,CAACvE,MAAM,CAACgC,OAAO,CAACN,MAAM,CAAC,CAACa,GAAG,CAACiC,KAAA;IAAA,IAAC,CAACvD,GAAG,EAAE;MAAEkB;IAAM,CAAC,CAAC,GAAAqC,KAAA;IAAA,OAAK,CAACvD,GAAG,EAAEkB,KAAK,CAAC;EAAA,EAAC,CACrF,CAAC;EACD,MAAM,CAACsC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAP,eAAQ,EAAC,CAAC;EAChD,MAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAT,eAAQ,EAAC,KAAK,CAAC;EAEzC,IAAAU,gBAAS,EAAC,MAAM;IACdP,OAAO,CAAC;MAAE,GAAGnB,IAAI;MAAE,GAAG,IAAA2B,wBAAc,EAAC;QAAEpD,MAAM;QAAES,KAAK,EAAE4B;MAAQ,CAAC;IAAE,CAAC,CAAC;IACnE;EACF,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,IAAAgB,sBAAe,EAAC,MAAM;IACpB,IAAI/E,MAAM,CAACgF,IAAI,CAAC7B,IAAI,CAAC,CAACpC,MAAM,EAAEI,OAAO,CAACX,GAAG,CAACS,GAAG,CAACQ,UAAU,EAAEC,MAAM,CAAC,EAAEyB,IAAI,CAAC;IACxE3C,GAAG,CAAC;MAAEyE,QAAQ,EAAE9B;IAAK,CAAC,CAAC;IACvB;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAA0B,gBAAS,EAAC,MAAM;IACdvB,OAAO,CAAC;MAAE,GAAGW,SAAS;MAAE,GAAGG;IAAa,CAAC,CAAC;IAC1C;EACF,CAAC,EAAE,CAACH,SAAS,EAAEG,YAAY,CAAC,CAAC;EAE7B,MAAMc,YAAY,GAAG,MAAOC,IAAI,IAAK;IACnC,IAAI,CAAC,CAACzD,MAAM,CAAC0D,OAAO,IAAID,IAAI,CAACC,OAAO,IAAI,CAACD,IAAI,CAACE,KAAK,EAAE;MACnD,MAAM;QAAEC;MAAK,CAAC,GAAG,MAAMC,wBAAc,CAACC,IAAI,CAAC,IAAAC,uBAAc,EAACN,IAAI,CAACC,OAAO,EAAElC,SAAS,CAAC,CAAC;MACnF,IAAIoC,IAAI,EAAEH,IAAI,CAACE,KAAK,GAAGC,IAAI;IAC7B;IAEA,MAAMI,UAAU,GAAGC,SAAS,CAACR,IAAI,CAAC;IAClC,MAAMS,YAAY,GAChBF,UAAU,CAAC3E,MAAM,GAAG4E,SAAS,CAACxC,IAAI,CAAC,CAACpC,MAAM,GACtCf,MAAM,CAACuE,WAAW,CAACvE,MAAM,CAACgC,OAAO,CAACmD,IAAI,CAAC,CAAClD,MAAM,CAAC4D,KAAA;MAAA,IAAC,CAAC5E,GAAG,CAAC,GAAA4E,KAAA;MAAA,OAAK7F,MAAM,CAACuE,WAAW,CAACmB,UAAU,CAAC,CAACzE,GAAG,CAAC,KAAK6E,SAAS;IAAA,EAAC,CAAC,GAC7GA,SAAS;IAEfxB,OAAO,CAACsB,YAAY,IAAIT,IAAI,CAAC;EAC/B,CAAC;EAED,MAAMY,WAAW,GAAGA,CAAA,KAAM;IACxB,MAAM;MAAEC,KAAK;MAAEC,SAAS;MAAEC,QAAQ;MAAEb;IAAM,CAAC,GAAGpB,SAAS;IAEvD,IAAI,CAACQ,WAAW,IAAI,CAACuB,KAAK,IAAI,CAACC,SAAS,IAAI,CAACC,QAAQ,IAAI,CAACb,KAAK,EAAE;MAC/Dc,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,aAAa,EAAE;QAAEC,KAAK,EAAEF,cAAK,CAACC,aAAa;QAAEE,QAAQ,EAAE;UAAEpD;QAAS;MAAE,CAAC,CAAC;MAC1FsB,cAAc,CAAC,IAAI,CAAC;IACtB;EACF,CAAC;EAED,MAAM+B,eAAe,GAAIC,MAAM,IAAK;IAClCxC,YAAY,CAACwC,MAAM,CAAC;IAEpB,MAAMC,WAAW,GAAG3G,MAAM,CAACgF,IAAI,CAAC0B,MAAM,CAAC,CAAC3F,MAAM;IAC9C,IAAI4F,WAAW,KAAK,CAAC,EAAER,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACO,OAAO,EAAE;MAAEC,EAAE,KAAAlF,MAAA,CAAKmF,gBAAM;IAAgB,CAAC,CAAC,CAAC,KACjF,IAAIH,WAAW,KAAK,CAAC,EAAER,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACO,OAAO,EAAE;MAAEC,EAAE,KAAAlF,MAAA,CAAKmF,gBAAM;IAAc,CAAC,CAAC;EAC1F,CAAC;EAED,MAAMnB,SAAS,GAAIxD,KAAK,IACtBnC,MAAM,CAACgC,OAAO,CAACN,MAAM,CAAC,CACnBO,MAAM,CAAC8E,KAAA;IAAA,IAAC,CAAC9F,GAAG,CAAC,GAAA8F,KAAA;IAAA,OAAK,CAAC,CAACrF,MAAM,CAACT,GAAG,CAAC;EAAA,EAAC,CAChCgB,MAAM,CAAC+E,KAAA;IAAA,IAAC,GAAG;MAAEC;IAAQ,CAAC,CAAC,GAAAD,KAAA;IAAA,OAAK,CAACC,OAAO,IAAIA,OAAO,CAAC9E,KAAK,CAAC;EAAA,EAAC;EAE5D,MAAM;IAAE0B;EAAQ,CAAC,GAAGpC,UAAU,IAAI,CAAC,CAAC;EACpC,MAAM;IAAEyF;EAAO,CAAC,GAAG3D,MAAM;EACzB,MAAM4D,SAAS,GAAG;IAChB,GAAG5D,MAAM;IACT6D,YAAY,EAAE,KAAK;IACnB/D,UAAU;IACVgE,eAAe,EAAE,IAAI;IACrBC,QAAQ,EAAEpC,YAAY;IACtB5B,OAAO,EAAEmD,eAAe;IACxBc,OAAO,EAAExB,WAAW;IACpByB,SAAS,EAAE,IAAAC,UAAM,EAACvI,KAAK,CAACiE,IAAI,EAAEjE,KAAK,CAACwI,GAAG;EACzC,CAAC;EAED,oBACE9I,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAA/I,MAAA,CAAAc,OAAA,CAAAkI,QAAA,qBACEhJ,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAAgE,IAAQ,EAAA/B,QAAA,KAAKyG,SAAS;IAAED,MAAM,KAAAvF,MAAA,CAAKuF,MAAM;EAAY,iBACpDtI,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI;IAACC,IAAI;IAACC,QAAQ,EAAEvE,SAAU;IAACwE,IAAI;EAAA,GACjCtE,SAAS,CAACuE,eAAI,CAACC,sBAAsB,CAClC,CAAC,EAENvC,SAAS,CAACxC,IAAI,CAAC,CACblB,MAAM,CAACkG,KAAA;IAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,KAAA;IAAA,OAAKC,KAAK,CAACC,QAAQ;EAAA,EAAC,CACrC9F,GAAG,CAAC+F,KAAA;IAAA,IAAC,CAACrH,GAAG,EAAEmH,KAAK,GAAG,CAAC,CAAC,CAAC,GAAAE,KAAA;IAAA,oBACrBC,cAAK,CAACZ,aAAa,CACjBa,eAAK,CAACJ,KAAK,CAAChG,KAAK,CAAC,IAAIqG,aAAS,EAC/B,IAAAC,uBAAa,EACXzH,GAAG,EACHmH,KAAK,EACL;MAAEjG,KAAK,EAAEgB,IAAI,CAAClC,GAAG,CAAC;MAAE0H,KAAK,EAAE1E,SAAS,CAAChD,GAAG,CAAC;MAAE8C,OAAO;MAAEL,SAAS;MAAE,GAAGjC;IAAW,CAAC,EAC9EmC,IAAI,EACJ,MAAMgB,QAAQ,CAAC,IAAI,CACrB,CACF,CAAC;EAAA,CACH,CACM,CAAC,EAEV7B,QAAQ,EAERc,OAAO,iBACNjF,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAC7I,SAAA,CAAA8J,OAAO,EAAAlI,QAAA,KAEDmD,OAAO;IACVgF,MAAM,EAAE;MAAE,GAAGhF,OAAO,CAACgF,MAAM;MAAEC,SAAS,GAAAnG,eAAA,GAAEkB,OAAO,CAACgF,MAAM,cAAAlG,eAAA,wBAAAC,qBAAA,GAAdD,eAAA,CAAgBmG,SAAS,cAAAlG,qBAAA,uBAAzBA,qBAAA,CAA4BkB,MAAM;IAAE,CAAC;IAC7E0B,IAAI,EAAE;MAAE,GAAG3B,OAAO,CAAC2B,IAAI;MAAEuD,IAAI,EAAE,CAAAlG,aAAA,GAAAgB,OAAO,CAAC2B,IAAI,cAAA3C,aAAA,eAAZA,aAAA,CAAckG,IAAI,GAAG,IAAAC,iBAAS,GAAAlG,cAAA,GAACe,OAAO,CAAC2B,IAAI,cAAA1C,cAAA,uBAAZA,cAAA,CAAciG,IAAI,CAAC,GAAGjD;IAAU,CAAC;IAC/FzC,UAAU;IAEZL,QAAQ,EAAEA,QAAS;IACnBiG,YAAY,EAAEvF,SAAS,CAACuE,eAAI,CAACiB,cAAc,CAAE;IAC7C5F,OAAO,EAAEe;EAAgB,EAC1B,CACF,eAEDzF,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAAgE,IAAQ,EAAA/B,QAAA,KAAKyG,SAAS;IAAED,MAAM,KAAAvF,MAAA,CAAKuF,MAAM;EAAc,iBACtDtI,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAAoJ,IAAI;IAACC,IAAI;IAACC,QAAQ,EAAEvE,SAAU;IAACwE,IAAI;EAAA,GACjCtE,SAAS,CAACuE,eAAI,CAACkB,qBAAqB,CACjC,CAAC,EACNxD,SAAS,CAACxC,IAAI,CAAC,CACblB,MAAM,CAACmH,MAAA;IAAA,IAAC,GAAGhB,KAAK,CAAC,GAAAgB,MAAA;IAAA,OAAK,CAAChB,KAAK,CAACC,QAAQ;EAAA,EAAC,CACtC9F,GAAG,CAAC8G,MAAA;IAAA,IAAC,CAACpI,GAAG,EAAEmH,KAAK,GAAG,CAAC,CAAC,CAAC,GAAAiB,MAAA;IAAA,oBACrBd,cAAK,CAACZ,aAAa,CACjBa,eAAK,CAACJ,KAAK,CAAChG,KAAK,CAAC,IAAIqG,aAAS,EAC/B,IAAAC,uBAAa,EACXzH,GAAG,EACHmH,KAAK,EACL;MAAEjG,KAAK,EAAEgB,IAAI,CAAClC,GAAG,CAAC;MAAE0H,KAAK,EAAE1E,SAAS,CAAChD,GAAG,CAAC;MAAE8C,OAAO;MAAEL,SAAS;MAAE,GAAGjC;IAAW,CAAC,EAC9EmC,IAAI,EACJ,MAAMgB,QAAQ,CAAC,IAAI,CACrB,CACF,CAAC;EAAA,CACH,CACM,CAAC,eAEXhG,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAA6K,KAAK;IACJC,GAAG;IACHC,KAAK,EAAE9F,SAAS,CAACuE,eAAI,CAACwB,gBAAgB,CAAE;IACxCxC,OAAO,EAAEtC,KAAM;IACf+E,OAAO,EAAEA,CAAA,KAAM9E,QAAQ,CAAC,KAAK,CAAE;IAC/B4C,SAAS,EAAEtI,KAAK,CAACyF;EAAM,gBAEvB/F,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAClJ,GAAA,CAAAkL,UAAU;IAACC,IAAI,EAAE,KAAM;IAACC,QAAQ;IAACrC,SAAS,EAAEtI,KAAK,CAAC4K;EAAW,gBAC5DlL,MAAA,CAAAc,OAAA,CAAAiI,aAAA,CAAC7I,SAAA,CAAAiL,YAAY;IAACtI,UAAU,EAAEA,UAAW;IAACuI,KAAK;IAACxC,SAAS,EAAEtI,KAAK,CAACqE;EAAO,CAAE,CAC5D,CACP,CACP,CAAC;AAEP,CAAC;AAAC0G,OAAA,CAAAxH,IAAA,GAAAA,IAAA;AAEFA,IAAI,CAACyH,WAAW,GAAG,0BAA0B;AAE7CzH,IAAI,CAAC0H,SAAS,GAAG;EACfpH,QAAQ,EAAEqH,kBAAS,CAACC,IAAI;EACxB5I,UAAU,EAAE2I,kBAAS,CAACE,KAAK,CAAC;IAC1BnH,IAAI,EAAEiH,kBAAS,CAACE,KAAK,CAAC,CAAC,CAAC;EAC1B,CAAC,CAAC;EACFjH,UAAU,EAAE+G,kBAAS,CAACG,IAAI;EAC1BC,OAAO,EAAEJ,kBAAS,CAACK,MAAM;EACzBnH,OAAO,EAAE8G,kBAAS,CAACM;AACrB,CAAC"}
1
+ {"version":3,"file":"Checkout.Form.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_shared__","_helpers","_Checkout","_Checkout2","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","storage","Storage","adapter","LocalAdapter","cache","FORM_STORAGE_CACHE","dataSource","schema","concat","FORM_STORAGE_KEY","generateId","JSON","stringify","entries","filter","_ref","value","input","INPUT","HTML","map","_ref2","Form","_ref3","_payment$config","_payment$config$publi","_payment$info","_payment$info2","children","currency","repositories","countries","form","tracking","showErrors","onError","others","isDesktop","useDevice","translate","useLocale","club","payment","method","session","useStore","errorForm","setErrorForm","useState","errorPayment","setErrorPayment","setForm","fromEntries","_ref4","formTracked","setFormTracked","modal","setModal","useEffect","getSchemaProps","useLayoutEffect","keys","checkout","handleChange","next","country","phone","code","ServiceCountry","info","getCountryCode","nextFields","getFields","nextFiltered","_ref5","undefined","handleLeave","email","firstName","lastName","Event","publish","EVENT","CHECKOUT_FORM","event","response","handleFormError","errors","totalErrors","METRICS","id","METRIC","_ref6","_ref7","visible","testId","formProps","autoComplete","validateOnMount","onChange","onLeave","className","styles","box","createElement","Fragment","Text","bold","headline","wide","L10N","LABEL_PERSONAL_DETAILS","_ref8","field","required","_ref9","React","FIELD","InputText","getFieldProps","error","Payment","config","publicKey","date","parseDate","requiredText","LABEL_REQUIRED","LABEL_ADDITIONAL_INFO","_ref10","_ref11","Modal","fit","title","LABEL_CONDITIONS","onClose","ScrollView","snap","vertical","scrollview","BookingTerms","small","exports","displayName","propTypes","PropTypes","node","shape","bool","variant","string","func"],"sources":["../../../../src/components/Checkout/partials/Checkout.Form.jsx"],"sourcesContent":["import { Event, LocalAdapter, Storage, useStore } from '@mirai/data-sources';\nimport { parseDate, useLocale } from '@mirai/locale';\nimport { ServiceCountry } from '@mirai/services';\nimport { InputText, Form as FormBase, Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { BookingTerms, Payment } from '../../__shared__';\nimport { EVENT, generateId, getCountryCode } from '../../helpers';\nimport { FIELD, FORM_STORAGE_CACHE, FORM_STORAGE_KEY, INPUT, METRIC } from '../Checkout.constants';\nimport { L10N } from '../Checkout.l10n';\nimport * as style from '../Checkout.module.css';\nimport { getFieldProps, getSchemaProps } from '../helpers';\n\nconst storage = new Storage({ adapter: LocalAdapter, cache: FORM_STORAGE_CACHE });\n\nconst key = (dataSource, schema) =>\n `${FORM_STORAGE_KEY}:${generateId(\n JSON.stringify({\n ...dataSource,\n schema: Object.entries(schema)\n .filter(([, value]) => value.input !== INPUT.HTML)\n .map(([key]) => key),\n }),\n )}`;\n\nconst Form = ({\n children,\n dataSource: { currency, repositories: { countries } = {}, form: schema = {}, tracking = {}, ...dataSource } = {},\n showErrors = false,\n onError = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const { translate } = useLocale();\n const { set, value: { club, payment: { method } = {}, session } = {} } = useStore();\n\n const [errorForm, setErrorForm] = useState({});\n const [errorPayment, setErrorPayment] = useState({});\n const [form, setForm] = useState(\n storage.get(key(dataSource, schema)) ||\n Object.fromEntries(Object.entries(schema).map(([key, { value }]) => [key, value])),\n );\n const [formTracked, setFormTracked] = useState();\n const [modal, setModal] = useState(false);\n\n useEffect(() => {\n setForm({ ...form, ...getSchemaProps({ schema, value: session }) });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [session]);\n\n useLayoutEffect(() => {\n if (Object.keys(form).length) storage.set(key(dataSource, schema), form);\n set({ checkout: form });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [form]);\n\n useEffect(() => {\n onError({ ...errorForm, ...errorPayment });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [errorForm, errorPayment]);\n\n const handleChange = async (value) => {\n const next = { ...form, ...value };\n\n if (!!schema.country && next.country && !next.phone) {\n const { code } = await ServiceCountry.info(getCountryCode(next.country, countries));\n if (code) next.phone = code;\n }\n\n const nextFields = getFields(next);\n const nextFiltered =\n nextFields.length < getFields(form).length\n ? Object.fromEntries(Object.entries(next).filter(([key]) => Object.fromEntries(nextFields)[key] !== undefined))\n : undefined;\n\n setForm(nextFiltered || next);\n };\n\n const handleLeave = () => {\n const { email, firstName, lastName, phone } = errorForm;\n\n if (!formTracked && !email && !firstName && !lastName && !phone) {\n Event.publish(EVENT.CHECKOUT_FORM, { event: EVENT.CHECKOUT_FORM, response: { tracking } });\n setFormTracked(true);\n }\n };\n\n const handleFormError = (errors) => {\n setErrorForm(errors);\n\n const totalErrors = Object.keys(errors).length;\n if (totalErrors === 0) Event.publish(EVENT.METRICS, { id: `${METRIC}:FORM:SUCCESS` });\n else if (totalErrors === 1) Event.publish(EVENT.METRICS, { id: `${METRIC}:FORM:ERROR` });\n };\n\n const getFields = (value) =>\n Object.entries(schema)\n .filter(([key]) => !!schema[key])\n .filter(([, { visible }]) => !visible || visible(value));\n\n const { payment } = dataSource || {};\n const { testId } = others;\n const formProps = {\n ...others,\n autoComplete: 'off',\n showErrors,\n validateOnMount: true,\n onChange: handleChange,\n onError: handleFormError,\n onLeave: handleLeave,\n className: styles(style.form, style.box),\n };\n\n return (\n <>\n <FormBase {...formProps} testId={`${testId}-required`}>\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_PERSONAL_DETAILS)}\n </Text>\n\n {getFields(form)\n .filter(([, field]) => field.required)\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(\n key,\n field,\n { value: form[key], error: errorForm[key], session, translate, ...dataSource },\n club,\n () => setModal(true),\n ),\n ),\n )}\n </FormBase>\n\n {children}\n\n {payment && (\n <Payment\n {...{\n ...payment,\n config: { ...payment.config, publicKey: payment.config?.publicKey?.[method] },\n info: { ...payment.info, date: payment.info?.date ? parseDate(payment.info?.date) : undefined },\n showErrors,\n }}\n currency={currency}\n requiredText={translate(L10N.LABEL_REQUIRED)}\n onError={setErrorPayment}\n />\n )}\n\n <FormBase {...formProps} testId={`${testId}-adittional`}>\n <Text bold headline={isDesktop} wide>\n {translate(L10N.LABEL_ADDITIONAL_INFO)}\n </Text>\n {getFields(form)\n .filter(([, field]) => !field.required)\n .map(([key, field = {}]) =>\n React.createElement(\n FIELD[field.input] || InputText,\n getFieldProps(\n key,\n field,\n { value: form[key], error: errorForm[key], session, translate, ...dataSource },\n club,\n () => setModal(true),\n ),\n ),\n )}\n </FormBase>\n\n <Modal\n fit\n title={translate(L10N.LABEL_CONDITIONS)}\n visible={modal}\n onClose={() => setModal(false)}\n className={style.modal}\n >\n <ScrollView snap={false} vertical className={style.scrollview}>\n <BookingTerms dataSource={dataSource} small className={style.others} />\n </ScrollView>\n </Modal>\n </>\n );\n};\n\nForm.displayName = 'Mirai:Core:Checkout:Form';\n\nForm.propTypes = {\n children: PropTypes.node,\n dataSource: PropTypes.shape({\n form: PropTypes.shape({}),\n }),\n showErrors: PropTypes.bool,\n variant: PropTypes.string,\n onError: PropTypes.func,\n};\n\nexport { Form };\n"],"mappings":"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"}
@@ -81,7 +81,7 @@ const useRates = () => {
81
81
  }
82
82
  setDataSource();
83
83
  }
84
- room !== undefined && fetch({
84
+ room !== undefined && debounceFetch({
85
85
  nextRoom: room
86
86
  });
87
87
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -140,12 +140,12 @@ const useRates = () => {
140
140
  if (!clubDiscount && !currency && !session && strictSearch === undefined) return;
141
141
  !clubRate && setCart([]);
142
142
  setRoom(undefined);
143
- fetch();
143
+ debounceFetch();
144
144
  // eslint-disable-next-line react-hooks/exhaustive-deps
145
145
  }, [clubDiscount, currency, session, strictSearch]);
146
146
  (0, _react.useEffect)(() => {
147
147
  if (!locale) return;
148
- fetch({
148
+ debounceFetch({
149
149
  nextRoom: room
150
150
  });
151
151
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -252,6 +252,7 @@ const useRates = () => {
252
252
  id: 'HOTELS:RENDER'
253
253
  });
254
254
  };
255
+ const debounceFetch = (0, _helpers.debounce)(fetch, 60);
255
256
  return {
256
257
  actions: {
257
258
  setCart,
@@ -263,7 +264,7 @@ const useRates = () => {
263
264
  },
264
265
  device,
265
266
  multiRoom,
266
- fetch: (0, _helpers.debounce)(fetch, 60),
267
+ fetch: debounceFetch,
267
268
  refRoomSelector,
268
269
  responseError,
269
270
  state: {
@@ -1 +1 @@
1
- {"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","fetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","actions","debounce","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n fetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n fetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounce(fetch, 60),\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AAEA,IAAIU,SAAS,GAAG,CAAC;AAEV,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAM;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EACxC,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,iBAAS,EAAC,CAAC;EACjC,MAAM;IACJC,GAAG;IACHC,KAAK,EAAE;MACLC,IAAI,GAAG,CAAC,CAAC;MACTC,QAAQ;MACRC,MAAM,GAAG,CAAC,CAAC;MACXC,KAAK,GAAG,CAAC,CAAC;MACVC,EAAE;MACFC,QAAQ;MACRC,MAAM;MACNC,KAAK,EAAE;QAAEC,IAAI,EAAEC,SAAS,GAAG,EAAE;QAAEC;MAAK,CAAC,GAAG,CAAC,CAAC;MAC1CC,UAAU,EAAE;QAAEC;MAAS,CAAC,GAAG,CAAC,CAAC;MAC7BC,SAAS;MACTC,OAAO;MACPC,QAAQ,GAAG;IACb;EACF,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EACd,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,CAAC;EAEhC,MAAM,CAACV,IAAI,EAAEW,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAF,eAAQ,EAACpB,IAAI,CAACuB,QAAQ,CAAC;EAC/D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAL,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAM,CAACM,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAP,eAAQ,EAAC,CAAC;EAC9C,MAAM,CAACQ,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAT,eAAQ,EAAC,KAAK,CAAC;EAC/C,MAAM,CAACU,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAX,eAAQ,EAAC,CAAC;EAC5C,MAAM,CAACY,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAb,eAAQ,EAAC,CAAC;EACpD,MAAM,CAACc,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAf,eAAQ,EAAC,CAAC;EAClC,MAAM,CAACgB,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAjB,eAAQ,EAAC,CAAC;EAElD,MAAM;IAAEkB,QAAQ,GAAG,EAAE;IAAE3B,UAAU,GAAG,EAAE;IAAE4B;EAAM,CAAC,GAAGrC,MAAM;EACxD,MAAMsC,MAAM,GAAG9C,MAAM,GAAG,QAAQ,GAAG,gBAAgB;EACnD,MAAM+C,SAAS,GAAG,CAAA9B,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE+B,MAAM,IAAG,CAAC;;EAExC;EACA,IAAAC,gBAAS,EAAC,MAAM5B,QAAQ,IAAIc,WAAW,CAAC,IAAI,CAAC,EAAE,CAACd,QAAQ,CAAC,CAAC;EAE1D,IAAA4B,gBAAS,EAAC,MAAM;IACd,IAAIF,SAAS,EAAE;MACb,IAAIP,IAAI,GAAG,CAAC,EAAE;QACZ,MAAM;UAAEU,OAAO,EAAE;YAAEC,YAAY,GAAG,CAAC;YAAEC,SAAS,GAAG;UAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG7B,eAAe,IAAI,CAAC,CAAC;QACnF8B,MAAM,CAACC,QAAQ,CAAC;UAAEC,GAAG,EAAEH,SAAS,IAAIrD,QAAQ,GAAGoD,YAAY,GAAG,CAAC,CAAC;UAAEK,QAAQ,EAAE;QAAS,CAAC,CAAC;MACzF;MACAvB,aAAa,CAAC,CAAC;IACjB;IAEAO,IAAI,KAAKiB,SAAS,IAAIC,KAAK,CAAC;MAAEC,QAAQ,EAAEnB;IAAK,CAAC,CAAC;IAC/C;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMW,QAAQ,GAAG,MAAOC,IAAI,IAAK;MAC/BjC,eAAe,CAAC,OAAOiC,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGJ,SAAS,CAAC;MAC5D3B,QAAQ,IAAIC,WAAW,CAAC,KAAK,CAAC;IAChC,CAAC;IACD+B,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;IAElD,OAAO,MAAME,kBAAK,CAACI,WAAW,CAACF,eAAK,CAACC,iBAAiB,EAAEL,QAAQ,CAAC;IACjE;EACF,CAAC,EAAE,CAAC9B,QAAQ,CAAC,CAAC;EAEd,IAAAmB,gBAAS,EAAC,MAAM;IACd,IAAK,CAACjB,UAAU,KAAK,CAACM,aAAa,IAAI,CAACA,aAAa,CAAC6B,QAAQ,CAAC,IAAK3B,IAAI,EAAE;IAE1EsB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACK,cAAc,EAAE;MAClCC,KAAK,EAAE,CAAC,CAAChC,aAAa;MACtBiC,KAAK,EAAEP,eAAK,CAACK,cAAc;MAC3BG,QAAQ,EAAExC,UAAU,IAAIM;IAC1B,CAAC,CAAC;;IAEF;EACF,CAAC,EAAE,CAACN,UAAU,EAAEM,aAAa,CAAC,CAAC;EAE/B,IAAAW,gBAAS,EAAC,MAAM;IACd,IAAI,CAACjB,UAAU,IAAI,CAACjB,SAAS,CAACiC,MAAM,EAAE;IAEtC,IAAAyB,kBAAQ,EAAC;MAAE3D,IAAI;MAAEkB,UAAU;MAAEjB;IAAU,CAAC,CAAC,CACtC2D,IAAI,CAAEC,KAAK,IAAK;MACf,IAAI,CAACA,KAAK,EAAE,OAAOb,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;QAAElE,EAAE,EAAE;MAAmB,CAAC,CAAC;MAE3E,IAAIM,IAAI,EAAE;QACR8C,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;UAChCC,QAAQ,EAAE,IAAI;UACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACC,4BAA4B,EAAE;YAC3DC,UAAU,EAAEC,sBAAe,CAAChE,SAAS,CAAC+D,UAAU,CAAC,IAAI/D,SAAS,CAAC+D;UACjE,CAAC;QACH,CAAC,CAAC;QACFpB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;UAAElE,EAAE,EAAE;QAAqB,CAAC,CAAC;MAC5D;MAEA2B,YAAY,CAACsC,KAAK,CAAC;MACnBvE,GAAG,CAAC;QAAES,KAAK,EAAE4C;MAAU,CAAC,CAAC;IAC3B,CAAC,CAAC,CACD2B,KAAK,CAAC,MAAMhF,GAAG,CAAC;MAAES,KAAK,EAAE4C;IAAU,CAAC,CAAC,CAAC;;IAEzC;EACF,CAAC,EAAE,CAACzB,UAAU,EAAEjB,SAAS,CAAC,CAAC;EAE3B,IAAAkC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACtB,YAAY,IAAI,CAACpB,QAAQ,IAAI,CAACa,OAAO,IAAIsB,YAAY,KAAKe,SAAS,EAAE;IAE1E,CAAC3B,QAAQ,IAAIL,OAAO,CAAC,EAAE,CAAC;IACxBgB,OAAO,CAACgB,SAAS,CAAC;IAClBC,KAAK,CAAC,CAAC;IACP;EACF,CAAC,EAAE,CAAC/B,YAAY,EAAEpB,QAAQ,EAAEa,OAAO,EAAEsB,YAAY,CAAC,CAAC;EAEnD,IAAAO,gBAAS,EAAC,MAAM;IACd,IAAI,CAACrC,MAAM,EAAE;IACb8C,KAAK,CAAC;MAAEC,QAAQ,EAAEnB;IAAK,CAAC,CAAC;IACzB;EACF,CAAC,EAAE,CAAC5B,MAAM,CAAC,CAAC;EAEZ,MAAMyE,kBAAkB,GAAGA,CAACC,cAAc,EAAEC,aAAa,KAAK;IAC5D,MAAM;MAAEC,aAAa,GAAG;IAAG,CAAC,GAAGF,cAAc;IAE7C,IAAIE,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACa,mBAAmB,CAAC,IAAIH,aAAa,EAAE;MAC7EzB,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACW,gCAAgC,EAAE;UAAEC,SAAS,EAAEL;QAAc,CAAC;MAC/F,CAAC,CAAC;MACFnF,GAAG,CAAC;QAAEI,MAAM,EAAE;UAAEoC,QAAQ;UAAE3B,UAAU;UAAE4B,KAAK;UAAE+C,SAAS,EAAE;QAAG;MAAE,CAAC,CAAC;MAC/D9B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAAC6B,sBAAsB,EAAE;QAAED,SAAS,EAAEnC;MAAU,CAAC,CAAC;IACvE,CAAC,MAAM,IAAI8B,aAAa,KAAK/E,MAAM,CAACoF,SAAS,EAAE;MAC7C9B,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAAC6B,sBAAsB,EAAE;QAAED,SAAS,EAAEL;MAAc,CAAC,CAAC;IAC3E;IACA,IAAIC,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACiB,cAAc,CAAC,IAAI3E,SAAS,CAAC4E,UAAU,EAAE;MAC/EjC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACgB,2BAA2B;MAC5D,CAAC,CAAC;IACJ;IACA,IAAIR,aAAa,CAACC,QAAQ,CAACZ,mBAAY,CAACoB,eAAe,CAAC,IAAI9E,SAAS,CAAC+E,QAAQ,EAAE;MAC9EpC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACa,YAAY,EAAE;QAChCC,QAAQ,EAAE,IAAI;QACdC,cAAc,EAAE7E,SAAS,CAAC8E,YAAI,CAACmB,4BAA4B;MAC7D,CAAC,CAAC;IACJ;EACF,CAAC;EAED,MAAMzC,KAAK,GAAG,eAAAA,CAAA,EAA4F;IAAA,IAArF;MAAEC,QAAQ;MAAEyC,cAAc,GAAGnF,UAAU;MAAEsE,aAAa,GAAG/E,MAAM,CAACoF;IAAU,CAAC,GAAAS,SAAA,CAAArD,MAAA,QAAAqD,SAAA,QAAA5C,SAAA,GAAA4C,SAAA,MAAG,CAAC,CAAC;IACnG,IAAIhF,QAAQ,EAAE;IAEdyC,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACsC,MAAM,EAAE;MAAE1D,QAAQ,EAAEa;IAAU,CAAC,CAAC;IAEpDtB,WAAW,CAAC,IAAI,CAAC;IACjBI,gBAAgB,CAAC,CAAC;IAElB,IAAIpB,SAAS,GAAG,IAAAoF,uBAAc,EAACC,QAAQ,CAACC,MAAM,CAAC;IAC/C,IAAI,CAACtF,SAAS,CAACuF,OAAO,IAAI,CAACvF,SAAS,CAACwF,MAAM,IAAI,CAACxF,SAAS,CAACyF,OAAO,EAAE;MACjEzF,SAAS,GAAG;QAAE,GAAGA,SAAS;QAAE,GAAG,IAAA0F,yBAAe,EAAC;UAAE,GAAGrG,MAAM;UAAEC;QAAM,CAAC;MAAE,CAAC;MACtE,IAAAqG,0BAAgB,EAAC3F,SAAS,CAAC;IAC7B;IAEA,MAAM4F,MAAM,GAAG;MACb,GAAG5F,SAAS;MACZ,IAAIb,IAAI,CAAC0G,MAAM,GAAG;QAAE1G,IAAI;QAAEqB;MAAa,CAAC,GAAG8B,SAAS,CAAC;MACrD/C,EAAE;MACFE,MAAM;MACNM,QAAQ;MACR4B,MAAM;MACN7B,UAAU,EAAEmF,cAAc;MAC1BvD,KAAK;MACLoE,WAAW,EAAEnG,IAAI,CAACoG,GAAG,CAAC;QAAA,IAAC;UAAEC;QAAO,CAAC,GAAAd,SAAA,CAAArD,MAAA,QAAAqD,SAAA,QAAA5C,SAAA,GAAA4C,SAAA,MAAG,CAAC,CAAC;QAAA,OAAKc,MAAM;MAAA,EAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAC5DhG,OAAO;MACPsB;IACF,CAAC;IACD,IAAIiB,QAAQ,KAAKF,SAAS,EAAEsD,MAAM,CAACH,OAAO,GAAG,IAAAS,wBAAc,EAAC,CAACjB,cAAc,CAACzC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5F,MAAM2D,aAAa,GAAG,EAAEzH,SAAS;IACjC,MAAMyF,cAAc,GAAG,MAAMiC,sBAAY,CAACC,GAAG,CAACT,MAAM,CAAC,CAAC3B,KAAK,CAAC7C,gBAAgB,CAAC;IAC7E,IAAI+E,aAAa,KAAKzH,SAAS,EAAE;IAEjC,IAAIyF,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEmC,eAAe,EAAE,OAAO,IAAAC,iBAAO,EAAC;MAAEpH,IAAI;MAAEK;IAAS,CAAC,CAAC;IAEvE,IAAI2E,cAAc,EAAE;MAClBD,kBAAkB,CAACC,cAAc,EAAEC,aAAa,CAAC;MAEjD,IAAI,CAAAa,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEpD,MAAM,IAAG,CAAC,IAAIW,QAAQ,KAAKF,SAAS,EAAEhB,OAAO,CAAC,CAAC,CAAC;IACtE;IAEAR,aAAa,CAACqD,cAAc,CAAC;IAC7BnD,WAAW,CAAC,KAAK,CAAC;IAElB,IAAImD,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEqC,MAAM,EAAE7D,kBAAK,CAACM,OAAO,CAACJ,eAAK,CAACY,OAAO,EAAE;MAAElE,EAAE,EAAE;IAAgB,CAAC,CAAC;EACnF,CAAC;EAED,OAAO;IACLkH,OAAO,EAAE;MAAEnG,OAAO;MAAEM,WAAW;MAAEE,aAAa;MAAEI,YAAY;MAAEI,OAAO;MAAEE;IAAgB,CAAC;IACxFG,MAAM;IACNC,SAAS;IACTW,KAAK,EAAE,IAAAmE,iBAAQ,EAACnE,KAAK,EAAE,EAAE,CAAC;IAC1BnC,eAAe;IACfe,aAAa;IACbwF,KAAK,EAAE;MAAEhH,IAAI;MAAEa,YAAY;MAAEG,QAAQ;MAAEE,UAAU;MAAEE,QAAQ;MAAEE,SAAS;MAAEI,IAAI;MAAEE;IAAa;EAC7F,CAAC;AACH,CAAC;AAACqF,OAAA,CAAAjI,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"file":"useRates.js","names":["_dataSources","require","_locale","_services","_ui","_react","_helpers","_helpers2","_helpers3","_Rates","_Rates2","fetchCall","useRates","isMobile","mobile","useDevice","translate","useLocale","set","value","club","currency","finder","hotel","id","language","locale","rates","cart","storeCart","meta","occupation","maxRooms","urlParams","session","skeleton","useStore","refRoomSelector","useRef","setCart","useState","clubDiscount","setClubDiscount","discount","clubRate","setClubRate","dataSource","setDataSource","fetching","setFetching","metaBoard","setMetaBoard","responseError","setResponseError","room","setRoom","strictSearch","setStrictSearch","calendar","place","device","multiRoom","length","useEffect","current","offsetHeight","offsetTop","window","scrollTo","top","behavior","undefined","debounceFetch","nextRoom","callback","next","Event","subscribe","EVENT","RATES_FILTER_CLUB","unsubscribe","tracking","publish","RATES_RESPONSE","error","event","response","getBoard","then","board","METRICS","NOTIFICATION","contrast","defaultMessage","L10N","NOTIFICATION_META_RATE_FOUND","utm_source","UTM_SOURCE_NAME","catch","checkNotifications","nextDataSource","nextPromocode","notifications","includes","PROMOCODE_NOT_FOUND","NOTIFICATION_PROMOCODE_NOT_FOUND","promocode","RATES_FILTER_PROMOCODE","ROOM_NOT_FOUNT","roomTypeId","NOTIFICATION_ROOM_NOT_FOUND","OFFER_NOT_FOUND","idoffers","NOTIFICATION_OFFER_NOT_FOUND","fetch","nextOccupation","arguments","FINDER","fetchUrlParams","location","search","checkin","nights","parties","getFinderParams","replaceUrlParams","params","active","selectedIds","map","roomId","join","parseToParties","lastFetchCall","ServiceRates","get","externalSignout","signout","hotels","debounce","actions","state","exports"],"sources":["../../../../src/components/Rates/hooks/useRates.js"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceRates } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { debounce, fetchUrlParams } from '../../../helpers';\nimport { EVENT, parseToParties, replaceUrlParams } from '../../helpers';\nimport { getBoard, getFinderParams, signout } from '../helpers';\nimport { NOTIFICATION, UTM_SOURCE_NAME } from '../Rates.constants';\nimport { L10N } from '../Rates.l10n';\n\nlet fetchCall = 0;\n\nexport const useRates = () => {\n const { isMobile, mobile } = useDevice();\n const { translate } = useLocale();\n const {\n set,\n value: {\n club = {},\n currency,\n finder = {},\n hotel = {},\n id,\n language,\n locale,\n rates: { cart: storeCart = [], meta } = {},\n occupation: { maxRooms } = {},\n urlParams,\n session,\n skeleton = false,\n },\n } = useStore();\n const refRoomSelector = useRef();\n\n const [cart, setCart] = useState([]);\n const [clubDiscount, setClubDiscount] = useState(club.discount);\n const [clubRate, setClubRate] = useState(false);\n const [dataSource, setDataSource] = useState();\n const [fetching, setFetching] = useState(false);\n const [metaBoard, setMetaBoard] = useState();\n const [responseError, setResponseError] = useState();\n const [room, setRoom] = useState();\n const [strictSearch, setStrictSearch] = useState();\n\n const { calendar = [], occupation = [], place } = finder;\n const device = mobile ? 'MOBILE' : 'DESKTOP_TABLET';\n const multiRoom = occupation?.length > 1;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => skeleton && setFetching(true), [skeleton]);\n\n useEffect(() => {\n if (multiRoom) {\n if (room > 0) {\n const { current: { offsetHeight = 0, offsetTop = 0 } = {} } = refRoomSelector || {};\n window.scrollTo({ top: offsetTop + (isMobile ? offsetHeight : 0), behavior: 'smooth' });\n }\n setDataSource();\n }\n\n room !== undefined && debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [room]);\n\n useEffect(() => {\n const callback = async (next) => {\n setClubDiscount(typeof next !== 'object' ? next : undefined);\n clubRate && setClubRate(false);\n };\n Event.subscribe(EVENT.RATES_FILTER_CLUB, callback);\n\n return () => Event.unsubscribe(EVENT.RATES_FILTER_CLUB, callback);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubRate]);\n\n useEffect(() => {\n if ((!dataSource && (!responseError || !responseError.tracking)) || room) return;\n\n Event.publish(EVENT.RATES_RESPONSE, {\n error: !!responseError,\n event: EVENT.RATES_RESPONSE,\n response: dataSource || responseError,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, responseError]);\n\n useEffect(() => {\n if (!dataSource || !storeCart.length) return;\n\n getBoard({ cart, dataSource, storeCart })\n .then((board) => {\n if (!board) return Event.publish(EVENT.METRICS, { id: 'RATES:META:ERROR' });\n\n if (meta) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_META_RATE_FOUND, {\n utm_source: UTM_SOURCE_NAME[urlParams.utm_source] || urlParams.utm_source,\n }),\n });\n Event.publish(EVENT.METRICS, { id: 'RATES:META:SUCCESS' });\n }\n\n setMetaBoard(board);\n set({ rates: undefined });\n })\n .catch(() => set({ rates: undefined }));\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dataSource, storeCart]);\n\n useEffect(() => {\n if (!clubDiscount && !currency && !session && strictSearch === undefined) return;\n\n !clubRate && setCart([]);\n setRoom(undefined);\n debounceFetch();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clubDiscount, currency, session, strictSearch]);\n\n useEffect(() => {\n if (!locale) return;\n debounceFetch({ nextRoom: room });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const checkNotifications = (nextDataSource, nextPromocode) => {\n const { notifications = [] } = nextDataSource;\n\n if (notifications.includes(NOTIFICATION.PROMOCODE_NOT_FOUND) && nextPromocode) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_PROMOCODE_NOT_FOUND, { promocode: nextPromocode }),\n });\n set({ finder: { calendar, occupation, place, promocode: '' } });\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: undefined });\n } else if (nextPromocode !== finder.promocode) {\n Event.publish(EVENT.RATES_FILTER_PROMOCODE, { promocode: nextPromocode });\n }\n if (notifications.includes(NOTIFICATION.ROOM_NOT_FOUNT) && urlParams.roomTypeId) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_ROOM_NOT_FOUND),\n });\n }\n if (notifications.includes(NOTIFICATION.OFFER_NOT_FOUND) && urlParams.idoffers) {\n Event.publish(EVENT.NOTIFICATION, {\n contrast: true,\n defaultMessage: translate(L10N.NOTIFICATION_OFFER_NOT_FOUND),\n });\n }\n };\n\n const fetch = async ({ nextRoom, nextOccupation = occupation, nextPromocode = finder.promocode } = {}) => {\n if (skeleton) return;\n\n Event.publish(EVENT.FINDER, { calendar: undefined });\n\n setFetching(true);\n setResponseError();\n\n let urlParams = fetchUrlParams(location.search);\n if (!urlParams.checkin || !urlParams.nights || !urlParams.parties) {\n urlParams = { ...urlParams, ...getFinderParams({ ...finder, hotel }) };\n replaceUrlParams(urlParams);\n }\n\n const params = {\n ...urlParams,\n ...(club.active ? { club, clubDiscount } : undefined),\n id,\n locale,\n maxRooms,\n device,\n occupation: nextOccupation,\n place,\n selectedIds: cart.map(({ roomId } = {}) => roomId).join(','),\n session,\n strictSearch,\n };\n if (nextRoom !== undefined) params.parties = parseToParties([nextOccupation[nextRoom || 0]]);\n\n const lastFetchCall = ++fetchCall;\n const nextDataSource = await ServiceRates.get(params).catch(setResponseError);\n if (lastFetchCall !== fetchCall) return;\n\n if (nextDataSource?.externalSignout) return signout({ club, language });\n\n if (nextDataSource) {\n checkNotifications(nextDataSource, nextPromocode);\n\n if (nextOccupation?.length > 1 && nextRoom === undefined) setRoom(0);\n }\n\n setDataSource(nextDataSource);\n setFetching(false);\n\n if (nextDataSource?.hotels) Event.publish(EVENT.METRICS, { id: 'HOTELS:RENDER' });\n };\n\n const debounceFetch = debounce(fetch, 60);\n\n return {\n actions: { setCart, setClubRate, setDataSource, setMetaBoard, setRoom, setStrictSearch },\n device,\n multiRoom,\n fetch: debounceFetch,\n refRoomSelector,\n responseError,\n state: { cart, clubDiscount, clubRate, dataSource, fetching, metaBoard, room, strictSearch },\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.4.181",
3
+ "version": "0.4.183",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",