@mirai/core 0.3.59 → 0.3.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Core.js +1 -1
- package/build/Core.js.map +1 -1
- package/build/components/Finder/helpers/getForwarderUrl.js +4 -2
- package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
- package/build/components/Rates/Rates.Footer.js +65 -77
- package/build/components/Rates/Rates.Footer.js.map +1 -1
- package/build/components/Rates/{Rates.Filter.js → Rates.Header.js} +53 -80
- package/build/components/Rates/Rates.Header.js.map +1 -0
- package/build/components/Rates/Rates.RoomSelector.js +96 -0
- package/build/components/Rates/Rates.RoomSelector.js.map +1 -0
- package/build/components/Rates/Rates.Skeleton.js +116 -40
- package/build/components/Rates/Rates.Skeleton.js.map +1 -1
- package/build/components/Rates/Rates.constants.js +7 -1
- package/build/components/Rates/Rates.constants.js.map +1 -1
- package/build/components/Rates/Rates.js +90 -47
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +16 -7
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/Rates.module.css +149 -67
- package/build/components/Rates/components/Item/Item.Preview.js +46 -29
- package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Rates.js +112 -143
- package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
- package/build/components/Rates/components/Item/Item.Summary.js +141 -0
- package/build/components/Rates/components/Item/Item.Summary.js.map +1 -0
- package/build/components/Rates/components/Item/Item.js +67 -64
- package/build/components/Rates/components/Item/Item.js.map +1 -1
- package/build/components/Rates/components/Item/Item.l10n.js +22 -0
- package/build/components/Rates/components/Item/Item.l10n.js.map +1 -1
- package/build/components/Rates/components/Item/Item.module.css +80 -104
- package/build/components/Rates/components/Item/components/Amenities/Amenities.js +15 -9
- package/build/components/Rates/components/Item/components/Amenities/Amenities.js.map +1 -1
- package/build/components/Rates/components/Item/components/Amenities/Amenities.module.css +11 -3
- package/build/components/Rates/components/Item/components/Discount/Discount.js +14 -13
- package/build/components/Rates/components/Item/components/Discount/Discount.js.map +1 -1
- package/build/components/Rates/components/Item/components/Discount/Discount.module.css +4 -3
- package/build/components/Rates/components/Item/components/Features/Features.js +4 -10
- package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
- package/build/components/Rates/components/Item/components/Features/Features.module.css +0 -5
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +34 -6
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.module.css +7 -0
- package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js +18 -9
- package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.js.map +1 -1
- package/build/components/Rates/components/Item/components/ModalRateInfo/ModalRateInfo.module.css +17 -1
- package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.module.css +1 -1
- package/build/components/Rates/components/Item/components/Option/Option.js +72 -0
- package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -0
- package/build/components/Rates/components/Item/components/Option/Option.module.css +24 -0
- package/build/components/Rates/components/Item/components/Option/index.js +17 -0
- package/build/components/Rates/components/Item/components/Option/index.js.map +1 -0
- package/build/components/Rates/components/Item/components/index.js +11 -0
- package/build/components/Rates/components/Item/components/index.js.map +1 -1
- package/build/components/Rates/helpers/getForwarderUrl.js +23 -12
- package/build/components/Rates/helpers/getForwarderUrl.js.map +1 -1
- package/build/components/helpers/ICON.js +10 -2
- package/build/components/helpers/ICON.js.map +1 -1
- package/build/components/helpers/index.js +11 -0
- package/build/components/helpers/index.js.map +1 -1
- package/build/components/helpers/opacity.js +17 -0
- package/build/components/helpers/opacity.js.map +1 -0
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/services/Rates/__tests__/__mocks__/rates-response-cancel-types.json +1662 -0
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes-no-local.json +296 -510
- package/build/services/Rates/__tests__/__mocks__/rates-response-no-taxes.json +895 -1795
- package/build/services/Rates/__tests__/__mocks__/rates-response.json +197 -369
- package/build/services/Rates/__tests__/__mocks__/rates-success-cancel-types.json +32481 -0
- package/build/services/Rates/constants.js +18 -1
- package/build/services/Rates/constants.js.map +1 -1
- package/build/services/Rates/get.js +41 -112
- package/build/services/Rates/get.js.map +1 -1
- package/build/services/Rates/helpers/getIncrements.js +69 -0
- package/build/services/Rates/helpers/getIncrements.js.map +1 -0
- package/build/services/Rates/helpers/index.js +22 -0
- package/build/services/Rates/helpers/index.js.map +1 -1
- package/build/services/Rates/helpers/parseBoards.js +156 -0
- package/build/services/Rates/helpers/parseBoards.js.map +1 -0
- package/build/services/Rates/helpers/parseExternalToken.js +24 -0
- package/build/services/Rates/helpers/parseExternalToken.js.map +1 -0
- package/package.json +1 -1
- package/public/App.module.css +5 -0
- package/public/themes/monalisa.theme.css +3 -0
- package/build/components/Rates/Rates.Filter.js.map +0 -1
package/build/Core.js
CHANGED
|
@@ -58,7 +58,7 @@ const Core = _ref => {
|
|
|
58
58
|
const fetchDictionary = async locale => {
|
|
59
59
|
const cached = _services.ServiceDictionary.cache(locale);
|
|
60
60
|
if (cached) setDictionary(cached);
|
|
61
|
-
const next = await _services.ServiceDictionary.get(locale);
|
|
61
|
+
const next = await _services.ServiceDictionary.get(locale, false);
|
|
62
62
|
if (next) setDictionary(next);
|
|
63
63
|
return next;
|
|
64
64
|
};
|
package/build/Core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_Core","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","EVENT_INTENT_LOCALE","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","handleIntentLocale","_ref2","fetchDictionary","Event","subscribe","unsubscribe","cached","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref3","desktop","mobile","map","_ref4","index","el","component","props","getGhost","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost } from './helpers';\n\nconst ghosts = {};\n\nconst EVENT_INTENT_LOCALE = 'intentLocale';\n\nconst Core = ({ children, components = [], skeleton = false }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n const handleIntentLocale = async ({ locale }) => {\n const dictionary = await fetchDictionary(locale);\n if (dictionary) set({ locale });\n };\n\n Event.subscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n return () => Event.unsubscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!skeleton) fetchDictionary(locale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n <Notifications />\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\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;AACA,IAAAQ,SAAA,GAAAH,sBAAA,CAAAL,OAAA;AAEA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAAqC,SAAAY,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,SAAAN,wBAAAM,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,SAAAhB,uBAAA4B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAErC,MAAMC,MAAM,GAAG,CAAC,CAAC;AAEjB,MAAMC,mBAAmB,GAAG,cAAc;AAE1C,MAAMC,IAAI,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,QAAQ;IAAEC,UAAU,GAAG,EAAE;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAAH,IAAA;EAC3D,MAAM;IAAEI,QAAQ;IAAEC;EAAU,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAC3C,MAAM;IACJX,GAAG;IACHY,KAAK,EAAE;MAAEC,QAAQ;MAAEC,MAAM,GAAGC;IAAe;EAC7C,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAACX,QAAQ,GAAGY,2BAAiB,CAACC,KAAK,CAACP,MAAM,CAAC,GAAGQ,SAAS,CAAC;EAErG,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,kBAAkB,GAAG,MAAAC,KAAA,IAAsB;MAAA,IAAf;QAAEX;MAAO,CAAC,GAAAW,KAAA;MAC1C,MAAMR,UAAU,GAAG,MAAMS,eAAe,CAACZ,MAAM,CAAC;MAChD,IAAIG,UAAU,EAAEjB,GAAG,CAAC;QAAEc;MAAO,CAAC,CAAC;IACjC,CAAC;IAEDa,kBAAK,CAACC,SAAS,CAACzB,mBAAmB,EAAEqB,kBAAkB,CAAC;IACxD,OAAO,MAAMG,kBAAK,CAACE,WAAW,CAAC1B,mBAAmB,EAAEqB,kBAAkB,CAAC;IACvE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACf,QAAQ,EAAEkB,eAAe,CAACZ,MAAM,CAAC;IACtC;EACF,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAMY,eAAe,GAAG,MAAOZ,MAAM,IAAK;IACxC,MAAMgB,MAAM,GAAGV,2BAAiB,CAACC,KAAK,CAACP,MAAM,CAAC;IAC9C,IAAIgB,MAAM,EAAEZ,aAAa,CAACY,MAAM,CAAC;IAEjC,MAAMC,IAAI,GAAG,MAAMX,2BAAiB,CAAChC,GAAG,CAAC0B,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Core.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_reactDom","_components","_Core","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ghosts","EVENT_INTENT_LOCALE","Core","_ref","children","components","skeleton","isMobile","isDesktop","useDevice","value","currency","locale","DEFAULT_LOCALE","useStore","dictionary","setDictionary","useState","ServiceDictionary","cache","undefined","useEffect","handleIntentLocale","_ref2","fetchDictionary","Event","subscribe","unsubscribe","cached","next","createElement","LocaleProvider","Fragment","Notifications","filter","_ref3","desktop","mobile","map","_ref4","index","el","component","props","getGhost","ReactDOM","createPortal","React","COMPONENTS","ghost","process","env","NODE_ENV","exports","propTypes","PropTypes","node","arrayOf","shape","oneOf","keys","any","bool"],"sources":["../src/Core.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { DEFAULT_LOCALE, LocaleProvider } from '@mirai/locale';\nimport { ServiceDictionary } from '@mirai/services';\nimport { useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { COMPONENTS } from './components';\nimport { Notifications } from './Core.Notifications';\nimport { getGhost } from './helpers';\n\nconst ghosts = {};\n\nconst EVENT_INTENT_LOCALE = 'intentLocale';\n\nconst Core = ({ children, components = [], skeleton = false }) => {\n const { isMobile, isDesktop } = useDevice();\n const {\n set,\n value: { currency, locale = DEFAULT_LOCALE },\n } = useStore();\n\n const [dictionary, setDictionary] = useState(!skeleton ? ServiceDictionary.cache(locale) : undefined);\n\n useEffect(() => {\n const handleIntentLocale = async ({ locale }) => {\n const dictionary = await fetchDictionary(locale);\n if (dictionary) set({ locale });\n };\n\n Event.subscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n return () => Event.unsubscribe(EVENT_INTENT_LOCALE, handleIntentLocale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (!skeleton) fetchDictionary(locale);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale]);\n\n const fetchDictionary = async (locale) => {\n const cached = ServiceDictionary.cache(locale);\n if (cached) setDictionary(cached);\n\n const next = await ServiceDictionary.get(locale, false);\n if (next) setDictionary(next);\n\n return next;\n };\n\n return (\n <LocaleProvider {...{ currency, dictionary, locale }}>\n <>\n <Notifications />\n\n {components\n .filter(({ desktop, mobile }) => !(isMobile && mobile === 'false') && !(isDesktop && desktop === 'false'))\n .map(({ el, component, ...props }, index) => {\n if (!ghosts[index]) ghosts[index] = getGhost(el);\n\n return ReactDOM.createPortal(\n React.createElement(COMPONENTS[component], {\n ...props,\n el,\n ghost: ghosts[index],\n skeleton,\n ['data-testid']: process.env.NODE_ENV === 'production' ? component : undefined,\n }),\n el,\n );\n })}\n </>\n {children}\n </LocaleProvider>\n );\n};\n\nCore.propTypes = {\n children: PropTypes.node,\n components: PropTypes.arrayOf(\n PropTypes.shape({\n component: PropTypes.oneOf(Object.keys(COMPONENTS)),\n el: PropTypes.any,\n }),\n ),\n skeleton: PropTypes.bool,\n};\n\nexport { Core };\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;AACA,IAAAQ,SAAA,GAAAH,sBAAA,CAAAL,OAAA;AAEA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAAqC,SAAAY,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,SAAAN,wBAAAM,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,SAAAhB,uBAAA4B,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAErC,MAAMC,MAAM,GAAG,CAAC,CAAC;AAEjB,MAAMC,mBAAmB,GAAG,cAAc;AAE1C,MAAMC,IAAI,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,QAAQ;IAAEC,UAAU,GAAG,EAAE;IAAEC,QAAQ,GAAG;EAAM,CAAC,GAAAH,IAAA;EAC3D,MAAM;IAAEI,QAAQ;IAAEC;EAAU,CAAC,GAAG,IAAAC,aAAS,EAAC,CAAC;EAC3C,MAAM;IACJX,GAAG;IACHY,KAAK,EAAE;MAAEC,QAAQ;MAAEC,MAAM,GAAGC;IAAe;EAC7C,CAAC,GAAG,IAAAC,qBAAQ,EAAC,CAAC;EAEd,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAACX,QAAQ,GAAGY,2BAAiB,CAACC,KAAK,CAACP,MAAM,CAAC,GAAGQ,SAAS,CAAC;EAErG,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,kBAAkB,GAAG,MAAAC,KAAA,IAAsB;MAAA,IAAf;QAAEX;MAAO,CAAC,GAAAW,KAAA;MAC1C,MAAMR,UAAU,GAAG,MAAMS,eAAe,CAACZ,MAAM,CAAC;MAChD,IAAIG,UAAU,EAAEjB,GAAG,CAAC;QAAEc;MAAO,CAAC,CAAC;IACjC,CAAC;IAEDa,kBAAK,CAACC,SAAS,CAACzB,mBAAmB,EAAEqB,kBAAkB,CAAC;IACxD,OAAO,MAAMG,kBAAK,CAACE,WAAW,CAAC1B,mBAAmB,EAAEqB,kBAAkB,CAAC;IACvE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACf,QAAQ,EAAEkB,eAAe,CAACZ,MAAM,CAAC;IACtC;EACF,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAMY,eAAe,GAAG,MAAOZ,MAAM,IAAK;IACxC,MAAMgB,MAAM,GAAGV,2BAAiB,CAACC,KAAK,CAACP,MAAM,CAAC;IAC9C,IAAIgB,MAAM,EAAEZ,aAAa,CAACY,MAAM,CAAC;IAEjC,MAAMC,IAAI,GAAG,MAAMX,2BAAiB,CAAChC,GAAG,CAAC0B,MAAM,EAAE,KAAK,CAAC;IACvD,IAAIiB,IAAI,EAAEb,aAAa,CAACa,IAAI,CAAC;IAE7B,OAAOA,IAAI;EACb,CAAC;EAED,oBACEzD,MAAA,CAAAY,OAAA,CAAA8C,aAAA,CAAC/D,OAAA,CAAAgE,cAAc;IAAOpB,QAAQ;IAAEI,UAAU;IAAEH;EAAM,gBAChDxC,MAAA,CAAAY,OAAA,CAAA8C,aAAA,CAAA1D,MAAA,CAAAY,OAAA,CAAAgD,QAAA,qBACE5D,MAAA,CAAAY,OAAA,CAAA8C,aAAA,CAACtD,KAAA,CAAAyD,aAAa,MAAE,CAAC,EAEhB5B,UAAU,CACR6B,MAAM,CAACC,KAAA;IAAA,IAAC;MAAEC,OAAO;MAAEC;IAAO,CAAC,GAAAF,KAAA;IAAA,OAAK,EAAE5B,QAAQ,IAAI8B,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE7B,SAAS,IAAI4B,OAAO,KAAK,OAAO,CAAC;EAAA,EAAC,CACzGE,GAAG,CAAC,CAAAC,KAAA,EAA8BC,KAAK,KAAK;IAAA,IAAvC;MAAEC,EAAE;MAAEC,SAAS;MAAE,GAAGC;IAAM,CAAC,GAAAJ,KAAA;IAC/B,IAAI,CAACvC,MAAM,CAACwC,KAAK,CAAC,EAAExC,MAAM,CAACwC,KAAK,CAAC,GAAG,IAAAI,iBAAQ,EAACH,EAAE,CAAC;IAEhD,oBAAOI,iBAAQ,CAACC,YAAY,eAC1BC,cAAK,CAACjB,aAAa,CAACkB,sBAAU,CAACN,SAAS,CAAC,EAAE;MACzC,GAAGC,KAAK;MACRF,EAAE;MACFQ,KAAK,EAAEjD,MAAM,CAACwC,KAAK,CAAC;MACpBlC,QAAQ;MACR,CAAC,aAAa,GAAG4C,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAGV,SAAS,GAAGtB;IACvE,CAAC,CAAC,EACFqB,EACF,CAAC;EACH,CAAC,CACH,CAAC,EACFrC,QACa,CAAC;AAErB,CAAC;AAACiD,OAAA,CAAAnD,IAAA,GAAAA,IAAA;AAEFA,IAAI,CAACoD,SAAS,GAAG;EACflD,QAAQ,EAAEmD,kBAAS,CAACC,IAAI;EACxBnD,UAAU,EAAEkD,kBAAS,CAACE,OAAO,CAC3BF,kBAAS,CAACG,KAAK,CAAC;IACdhB,SAAS,EAAEa,kBAAS,CAACI,KAAK,CAACrE,MAAM,CAACsE,IAAI,CAACZ,sBAAU,CAAC,CAAC;IACnDP,EAAE,EAAEc,kBAAS,CAACM;EAChB,CAAC,CACH,CAAC;EACDvD,QAAQ,EAAEiD,kBAAS,CAACO;AACtB,CAAC"}
|
|
@@ -29,7 +29,8 @@ const getForwarderUrl = function () {
|
|
|
29
29
|
} = {},
|
|
30
30
|
urlParams: {
|
|
31
31
|
miraiId,
|
|
32
|
-
type
|
|
32
|
+
type,
|
|
33
|
+
uid
|
|
33
34
|
}
|
|
34
35
|
} = {}
|
|
35
36
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -49,7 +50,8 @@ const getForwarderUrl = function () {
|
|
|
49
50
|
miraiId,
|
|
50
51
|
nights: (0, _locale.dateDiff)(dateCheckIn, dateCheckOut).days,
|
|
51
52
|
parties: (0, _helpers.parseToParties)(occupation),
|
|
52
|
-
type
|
|
53
|
+
type,
|
|
54
|
+
uid
|
|
53
55
|
// ? TODO: Is this mandatory?
|
|
54
56
|
// clientCodeStrictSearch: true
|
|
55
57
|
// deviceType: "DESKTOP_TABLET"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","origin","commissionCode","hsri","urlParams","miraiId","type","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","checkin","dateFormat","format","chainSelectorValue","idtokenprovider","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: { hotel: { id } = {}, origin: { commissionCode: hsri = '' } = {}, urlParams: { miraiId, type } } = {},\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n\n const params = {\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n chainSelectorValue: value,\n clientCode,\n currency,\n hsri,\n idtokenprovider: hotelId,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAG,SAAAA,CAAA,EASpB;EAAA,IATqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IACnCC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MAAEC,KAAK,EAAE;QAAEb;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEc,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEC,SAAS,EAAE;QAAEC,OAAO;QAAEC;
|
|
1
|
+
{"version":3,"file":"getForwarderUrl.js","names":["_locale","require","_helpers","getForwarderUrl","calendar","checkIn","checkOut","occupation","place","id","ids","value","promocode","clientCode","locale","DEFAULT_LOCALE","currency","DEFAULT_CURRENCY","forwarder","rates","url","store","hotel","origin","commissionCode","hsri","urlParams","miraiId","type","uid","arguments","length","undefined","dateCheckIn","Date","parseDate","dateCheckOut","hotelId","params","checkin","dateFormat","format","chainSelectorValue","idtokenprovider","lang","split","nights","dateDiff","days","parties","parseToParties","concat","toUrlParams","exports"],"sources":["../../../../src/components/Finder/helpers/getForwarderUrl.js"],"sourcesContent":["import { dateDiff, dateFormat, DEFAULT_CURRENCY, DEFAULT_LOCALE, parseDate } from '@mirai/locale';\n\nimport { parseToParties, toUrlParams } from '../../helpers';\n\nexport const getForwarderUrl = ({\n calendar: [checkIn, checkOut] = [],\n occupation = [],\n place: { id: ids = [], value } = {},\n promocode: clientCode = '',\n locale = DEFAULT_LOCALE,\n currency = DEFAULT_CURRENCY,\n forwarder: { rates: url } = {},\n store: { hotel: { id } = {}, origin: { commissionCode: hsri = '' } = {}, urlParams: { miraiId, type, uid } } = {},\n} = {}) => {\n const dateCheckIn = checkIn instanceof Date ? checkIn : parseDate(checkIn);\n const dateCheckOut = checkOut instanceof Date ? checkOut : parseDate(checkOut);\n const hotelId = ids.length === 1 ? ids[0] : id;\n\n const params = {\n checkin: dateFormat(dateCheckIn, { format: 'DD/MM/YYYY' }),\n chainSelectorValue: value,\n clientCode,\n currency,\n hsri,\n idtokenprovider: hotelId,\n lang: locale.split('-')[0],\n miraiId,\n nights: dateDiff(dateCheckIn, dateCheckOut).days,\n parties: parseToParties(occupation),\n type,\n uid,\n // ? TODO: Is this mandatory?\n // clientCodeStrictSearch: true\n // deviceType: \"DESKTOP_TABLET\"\n // env: \"mario\"\n // home: \"https://www.hotel-moderno.com/\"\n };\n\n return `${url}${toUrlParams(params)}`;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAEO,MAAME,eAAe,GAAG,SAAAA,CAAA,EASpB;EAAA,IATqB;IAC9BC,QAAQ,EAAE,CAACC,OAAO,EAAEC,QAAQ,CAAC,GAAG,EAAE;IAClCC,UAAU,GAAG,EAAE;IACfC,KAAK,EAAE;MAAEC,EAAE,EAAEC,GAAG,GAAG,EAAE;MAAEC;IAAM,CAAC,GAAG,CAAC,CAAC;IACnCC,SAAS,EAAEC,UAAU,GAAG,EAAE;IAC1BC,MAAM,GAAGC,sBAAc;IACvBC,QAAQ,GAAGC,wBAAgB;IAC3BC,SAAS,EAAE;MAAEC,KAAK,EAAEC;IAAI,CAAC,GAAG,CAAC,CAAC;IAC9BC,KAAK,EAAE;MAAEC,KAAK,EAAE;QAAEb;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEc,MAAM,EAAE;QAAEC,cAAc,EAAEC,IAAI,GAAG;MAAG,CAAC,GAAG,CAAC,CAAC;MAAEC,SAAS,EAAE;QAAEC,OAAO;QAAEC,IAAI;QAAEC;MAAI;IAAE,CAAC,GAAG,CAAC;EAClH,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,MAAMG,WAAW,GAAG5B,OAAO,YAAY6B,IAAI,GAAG7B,OAAO,GAAG,IAAA8B,iBAAS,EAAC9B,OAAO,CAAC;EAC1E,MAAM+B,YAAY,GAAG9B,QAAQ,YAAY4B,IAAI,GAAG5B,QAAQ,GAAG,IAAA6B,iBAAS,EAAC7B,QAAQ,CAAC;EAC9E,MAAM+B,OAAO,GAAG3B,GAAG,CAACqB,MAAM,KAAK,CAAC,GAAGrB,GAAG,CAAC,CAAC,CAAC,GAAGD,EAAE;EAE9C,MAAM6B,MAAM,GAAG;IACbC,OAAO,EAAE,IAAAC,kBAAU,EAACP,WAAW,EAAE;MAAEQ,MAAM,EAAE;IAAa,CAAC,CAAC;IAC1DC,kBAAkB,EAAE/B,KAAK;IACzBE,UAAU;IACVG,QAAQ;IACRS,IAAI;IACJkB,eAAe,EAAEN,OAAO;IACxBO,IAAI,EAAE9B,MAAM,CAAC+B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1BlB,OAAO;IACPmB,MAAM,EAAE,IAAAC,gBAAQ,EAACd,WAAW,EAAEG,YAAY,CAAC,CAACY,IAAI;IAChDC,OAAO,EAAE,IAAAC,uBAAc,EAAC3C,UAAU,CAAC;IACnCqB,IAAI;IACJC;IACA;IACA;IACA;IACA;IACA;EACF,CAAC;EAED,UAAAsB,MAAA,CAAU/B,GAAG,EAAA+B,MAAA,CAAG,IAAAC,oBAAW,EAACd,MAAM,CAAC;AACrC,CAAC;AAACe,OAAA,CAAAlD,eAAA,GAAAA,eAAA"}
|
|
@@ -8,7 +8,7 @@ var _dataSources = require("@mirai/data-sources");
|
|
|
8
8
|
var _locale = require("@mirai/locale");
|
|
9
9
|
var _ui = require("@mirai/ui");
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _react =
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
var _helpers = require("./helpers");
|
|
13
13
|
var _Rates = require("./Rates.l10n");
|
|
14
14
|
var style = _interopRequireWildcard(require("./Rates.module.css"));
|
|
@@ -18,15 +18,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
19
|
const Footer = _ref => {
|
|
20
20
|
let {
|
|
21
|
+
cart = [],
|
|
21
22
|
dataSource: {
|
|
22
|
-
|
|
23
|
+
taxes
|
|
23
24
|
} = {},
|
|
24
25
|
filter: {
|
|
25
26
|
clubDiscount = false
|
|
26
27
|
} = {},
|
|
28
|
+
multiRoom = false,
|
|
27
29
|
occupation = [],
|
|
28
|
-
selected = {},
|
|
29
|
-
taxes,
|
|
30
30
|
onChange = () => {}
|
|
31
31
|
} = _ref;
|
|
32
32
|
const {
|
|
@@ -42,124 +42,112 @@ const Footer = _ref => {
|
|
|
42
42
|
urlParams
|
|
43
43
|
} = {}
|
|
44
44
|
} = (0, _dataSources.useStore)();
|
|
45
|
-
const [expanded, setExpanded] = (0, _react.useState)(false);
|
|
46
|
-
(0, _react.useEffect)(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);
|
|
47
45
|
const handlePress = () => {
|
|
48
46
|
document.location.href = (0, _helpers.getForwarderUrl)({
|
|
47
|
+
cart,
|
|
49
48
|
clubDiscount,
|
|
50
49
|
currency,
|
|
51
50
|
forwarder,
|
|
52
|
-
selected,
|
|
53
51
|
urlParams
|
|
54
52
|
});
|
|
55
53
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const {
|
|
59
|
-
length: options
|
|
60
|
-
} = Object.keys(selected);
|
|
61
|
-
const value = Object.values(selected).reduce((value, _ref2) => {
|
|
54
|
+
const items = cart.filter(item => item !== undefined);
|
|
55
|
+
const totalPrice = cart.reduce(function (value) {
|
|
62
56
|
let {
|
|
63
|
-
amount,
|
|
64
57
|
price
|
|
65
|
-
} =
|
|
66
|
-
return value +
|
|
58
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
59
|
+
return value + price;
|
|
67
60
|
}, 0);
|
|
68
|
-
const
|
|
69
|
-
let {
|
|
70
|
-
rates = [],
|
|
71
|
-
name: title
|
|
72
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
73
|
-
return rates.map(function () {
|
|
74
|
-
let rate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
-
return {
|
|
76
|
-
...rate,
|
|
77
|
-
title
|
|
78
|
-
};
|
|
79
|
-
});
|
|
80
|
-
}).flat();
|
|
81
|
-
const ViewCart = () => !soloRoom ? /*#__PURE__*/_react.default.createElement(_ui.Action, {
|
|
82
|
-
inline: true,
|
|
83
|
-
small: isMobile,
|
|
84
|
-
onPress: () => setExpanded(!expanded)
|
|
85
|
-
}, translate(expanded ? _Rates.L10N.ACTION_HIDE_CART : _Rates.L10N.ACTION_VIEW_CART, {
|
|
86
|
-
amount: options
|
|
87
|
-
})) : null;
|
|
88
|
-
const soloRoom = occupation.length === 1;
|
|
61
|
+
const valid = !multiRoom || items.length === occupation.length;
|
|
89
62
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
90
|
-
className: (0, _ui.styles)(style.footer,
|
|
91
|
-
|
|
92
|
-
|
|
63
|
+
className: (0, _ui.styles)(style.footer,
|
|
64
|
+
// ((!multiRoom && items.length) || (multiRoom && items.length === occupation.length)) && style.visible,
|
|
65
|
+
items.length && style.visible)
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
67
|
+
className: style.wrapper,
|
|
93
68
|
wide: true
|
|
94
|
-
},
|
|
95
|
-
let
|
|
96
|
-
amount,
|
|
97
|
-
|
|
98
|
-
}] = _ref3;
|
|
99
|
-
const {
|
|
69
|
+
}, items.map(function () {
|
|
70
|
+
let {
|
|
71
|
+
amount = 1,
|
|
72
|
+
id,
|
|
100
73
|
name,
|
|
101
|
-
|
|
102
|
-
|
|
74
|
+
price,
|
|
75
|
+
roomName
|
|
76
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
77
|
+
let index = arguments.length > 1 ? arguments[1] : undefined;
|
|
103
78
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
104
79
|
row: true,
|
|
105
80
|
key: id,
|
|
106
|
-
className: style.
|
|
107
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
81
|
+
className: style.cartItem
|
|
82
|
+
}, multiRoom && /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
108
83
|
bold: true,
|
|
109
|
-
small:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}, "".concat(title, " (").concat(name, ")")), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
84
|
+
small: !isMobile,
|
|
85
|
+
tiny: isMobile,
|
|
86
|
+
upperCase: true,
|
|
87
|
+
className: style.room
|
|
88
|
+
}, "Room ".concat(index + 1)), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
115
89
|
bold: true,
|
|
90
|
+
action: !isMobile,
|
|
91
|
+
small: isMobile,
|
|
92
|
+
className: style.description
|
|
93
|
+
}, "".concat(roomName, " "), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
94
|
+
lighten: true,
|
|
116
95
|
small: true
|
|
96
|
+
}, "| ".concat(name))), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
97
|
+
bold: true,
|
|
98
|
+
action: !isMobile,
|
|
99
|
+
small: isMobile
|
|
117
100
|
}, (0, _locale.currencyFormat)({
|
|
118
101
|
currency,
|
|
119
102
|
value: amount * price
|
|
120
|
-
})), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
121
|
-
transparent: true,
|
|
103
|
+
})), !multiRoom && /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
122
104
|
small: true,
|
|
123
105
|
squared: true,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
})
|
|
106
|
+
transparent: true,
|
|
107
|
+
onPress: () => onChange(undefined, index),
|
|
108
|
+
className: style.buttonClose
|
|
128
109
|
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
129
110
|
value: _helpers2.ICON.CLOSE
|
|
130
111
|
})));
|
|
131
|
-
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
112
|
+
}))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
132
113
|
row: true,
|
|
133
|
-
className: style.wrapper
|
|
114
|
+
className: [style.wrapper, style.summary]
|
|
134
115
|
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
135
|
-
className: style.
|
|
136
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
137
|
-
row: true,
|
|
138
|
-
wide: true,
|
|
139
|
-
className: style.line
|
|
116
|
+
className: style.totalPrice
|
|
140
117
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
141
118
|
bold: true,
|
|
142
119
|
headline: true,
|
|
143
|
-
level: 2
|
|
120
|
+
level: isMobile ? 3 : 2
|
|
144
121
|
}, (0, _locale.currencyFormat)({
|
|
145
122
|
currency,
|
|
146
|
-
value
|
|
147
|
-
})),
|
|
123
|
+
value: totalPrice
|
|
124
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
148
125
|
lighten: true,
|
|
149
126
|
small: !isMobile || !taxes,
|
|
150
127
|
tiny: isMobile
|
|
151
|
-
}, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))),
|
|
128
|
+
}, taxes || translate(_Rates.L10N.LABEL_INCLUDES_TAXES_FEES))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
129
|
+
row: !isMobile,
|
|
130
|
+
className: style.buttons
|
|
131
|
+
}, !isMobile && valid && /*#__PURE__*/_react.default.createElement(_ui.Action, null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
132
|
+
value: _helpers2.ICON.ADD_EXTRAS
|
|
133
|
+
}), "!Add Extras"), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
134
|
+
disabled: !valid,
|
|
152
135
|
large: !isMobile,
|
|
136
|
+
wide: isMobile,
|
|
153
137
|
onPress: handlePress
|
|
154
|
-
}, translate(_Rates.L10N.
|
|
138
|
+
}, translate(_Rates.L10N.ACTION_RESERVE)))));
|
|
155
139
|
};
|
|
156
140
|
exports.Footer = Footer;
|
|
157
141
|
Footer.propTypes = {
|
|
142
|
+
cart: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
158
143
|
dataSource: _propTypes.default.shape({}),
|
|
159
144
|
filter: _propTypes.default.shape({}),
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
145
|
+
multiRoom: _propTypes.default.bool,
|
|
146
|
+
occupation: _propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.shape({
|
|
147
|
+
ages: _propTypes.default.arrayOf(_propTypes.default.number),
|
|
148
|
+
amount: _propTypes.default.number,
|
|
149
|
+
type: _propTypes.default.number
|
|
150
|
+
}))),
|
|
163
151
|
onChange: _propTypes.default.func
|
|
164
152
|
};
|
|
165
153
|
//# sourceMappingURL=Rates.Footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_Rates","style","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","dataSource","items","filter","clubDiscount","occupation","selected","taxes","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","expanded","setExpanded","useState","useEffect","keys","length","handlePress","document","location","href","getForwarderUrl","options","values","reduce","_ref2","amount","price","rates","map","name","title","arguments","undefined","rate","flat","ViewCart","soloRoom","createElement","Action","inline","small","onPress","L10N","ACTION_HIDE_CART","ACTION_VIEW_CART","View","className","styles","footer","visible","wrapper","wide","entries","_ref3","id","find","row","key","item","Text","bold","concat","description","currencyFormat","Button","transparent","squared","Icon","ICON","CLOSE","line","headline","level","lighten","tiny","LABEL_INCLUDES_TAXES_FEES","large","ACTION_NEXT","exports","propTypes","PropTypes","shape","arrayOf","array","string","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n dataSource: { items = [] } = {},\n filter: { clubDiscount = false } = {},\n occupation = [],\n selected = {},\n taxes,\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => Object.keys(selected).length === 0 && setExpanded(false), [selected]);\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ clubDiscount, currency, forwarder, selected, urlParams });\n };\n\n // ! Should know if didnt expire the storage\n const { length: options } = Object.keys(selected);\n const value = Object.values(selected).reduce((value, { amount, price }) => value + amount * price, 0);\n const rates = items.map(({ rates = [], name: title } = {}) => rates.map((rate = {}) => ({ ...rate, title }))).flat();\n\n const ViewCart = () =>\n !soloRoom ? (\n <Action inline small={isMobile} onPress={() => setExpanded(!expanded)}>\n {translate(expanded ? L10N.ACTION_HIDE_CART : L10N.ACTION_VIEW_CART, { amount: options })}\n </Action>\n ) : null;\n\n const soloRoom = occupation.length === 1;\n\n return (\n <View className={styles(style.footer, options && style.visible)}>\n {(expanded || soloRoom) && (\n <View className={[style.wrapper, style.expanded]} wide>\n {Object.entries(selected).map(([id, { amount, price }]) => {\n const { name, title } = rates.find((rate) => rate.id === id);\n\n return (\n <View row key={id} className={style.item}>\n <Text bold small className={style.amount}>{`${amount}x`}</Text>\n <Text small className={style.description}>{`${title} (${name})`}</Text>\n <Text bold small>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n <Button transparent small squared onPress={() => onChange({ id, amount: 0 })}>\n <Icon value={ICON.CLOSE} />\n </Button>\n </View>\n );\n })}\n </View>\n )}\n\n <View row className={style.wrapper}>\n <View className={style.price}>\n <View row wide className={style.line}>\n <Text bold headline level={2}>\n {currencyFormat({ currency, value })}\n </Text>\n {isMobile && <ViewCart />}\n </View>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n {!isMobile && <ViewCart />}\n\n <Button large={!isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_NEXT)}\n </Button>\n </View>\n </View>\n );\n};\n\nFooter.propTypes = {\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n occupation: PropTypes.arrayOf(PropTypes.array),\n selected: PropTypes.shape({}),\n taxes: PropTypes.string,\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rates.Footer.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_helpers","_Rates","style","_interopRequireWildcard","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Footer","_ref","cart","dataSource","taxes","filter","clubDiscount","multiRoom","occupation","onChange","isMobile","useDevice","translate","useLocale","value","currency","forwarder","urlParams","useStore","handlePress","document","location","href","getForwarderUrl","items","item","undefined","totalPrice","reduce","price","arguments","length","valid","createElement","View","className","styles","footer","visible","wrapper","wide","map","amount","id","name","roomName","index","row","key","cartItem","Text","bold","small","tiny","upperCase","room","concat","action","description","lighten","currencyFormat","Button","squared","transparent","onPress","buttonClose","Icon","ICON","CLOSE","summary","headline","level","L10N","LABEL_INCLUDES_TAXES_FEES","buttons","Action","ADD_EXTRAS","disabled","large","ACTION_RESERVE","exports","propTypes","PropTypes","arrayOf","shape","bool","ages","number","type","func"],"sources":["../../../src/components/Rates/Rates.Footer.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { getForwarderUrl } from './helpers';\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON } from '../helpers';\n\nconst Footer = ({\n cart = [],\n dataSource: { taxes } = {},\n filter: { clubDiscount = false } = {},\n multiRoom = false,\n occupation = [],\n onChange = () => {},\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { currency, forwarder, urlParams } = {} } = useStore();\n\n const handlePress = () => {\n document.location.href = getForwarderUrl({ cart, clubDiscount, currency, forwarder, urlParams });\n };\n\n const items = cart.filter((item) => item !== undefined);\n const totalPrice = cart.reduce((value, { price } = {}) => value + price, 0);\n const valid = !multiRoom || items.length === occupation.length;\n\n return (\n <View\n className={styles(\n style.footer,\n // ((!multiRoom && items.length) || (multiRoom && items.length === occupation.length)) && style.visible,\n items.length && style.visible,\n )}\n >\n <View>\n <View className={style.wrapper} wide>\n {items.map(({ amount = 1, id, name, price, roomName } = {}, index) => {\n return (\n <View row key={id} className={style.cartItem}>\n {multiRoom && (\n <Text bold small={!isMobile} tiny={isMobile} upperCase className={style.room}>\n {`Room ${index + 1}`}\n </Text>\n )}\n\n <Text bold action={!isMobile} small={isMobile} className={style.description}>\n {`${roomName} `}\n <Text lighten small>{`| ${name}`}</Text>\n </Text>\n\n <Text bold action={!isMobile} small={isMobile}>\n {currencyFormat({ currency, value: amount * price })}\n </Text>\n\n {!multiRoom && (\n <Button\n small\n squared\n transparent\n onPress={() => onChange(undefined, index)}\n className={style.buttonClose}\n >\n <Icon value={ICON.CLOSE} />\n </Button>\n )}\n </View>\n );\n })}\n </View>\n </View>\n\n <View row className={[style.wrapper, style.summary]}>\n <View className={style.totalPrice}>\n <Text bold headline level={isMobile ? 3 : 2}>\n {currencyFormat({ currency, value: totalPrice })}\n </Text>\n\n <Text lighten small={!isMobile || !taxes} tiny={isMobile}>\n {taxes || translate(L10N.LABEL_INCLUDES_TAXES_FEES)}\n </Text>\n </View>\n\n <View row={!isMobile} className={style.buttons}>\n {!isMobile && valid && (\n <Action>\n <Icon value={ICON.ADD_EXTRAS} />\n !Add Extras\n </Action>\n )}\n\n <Button disabled={!valid} large={!isMobile} wide={isMobile} onPress={handlePress}>\n {translate(L10N.ACTION_RESERVE)}\n </Button>\n </View>\n </View>\n </View>\n );\n};\n\nFooter.propTypes = {\n cart: PropTypes.arrayOf(PropTypes.shape({})),\n dataSource: PropTypes.shape({}),\n filter: PropTypes.shape({}),\n multiRoom: PropTypes.bool,\n occupation: PropTypes.arrayOf(\n PropTypes.arrayOf(\n PropTypes.shape({\n ages: PropTypes.arrayOf(PropTypes.number),\n amount: PropTypes.number,\n type: PropTypes.number,\n }),\n ),\n ),\n onChange: PropTypes.func,\n};\n\nexport { Footer };\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Header = void 0;
|
|
7
7
|
var _dataSources = require("@mirai/data-sources");
|
|
8
8
|
var _locale = require("@mirai/locale");
|
|
9
9
|
var _ui = require("@mirai/ui");
|
|
@@ -11,17 +11,20 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
var _Rates = require("./Rates.l10n");
|
|
13
13
|
var style = _interopRequireWildcard(require("./Rates.module.css"));
|
|
14
|
+
var _helpers = require("../helpers");
|
|
14
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
const
|
|
18
|
+
const Header = _ref => {
|
|
18
19
|
let {
|
|
19
20
|
dataSource: {
|
|
20
|
-
|
|
21
|
+
clubConditions
|
|
21
22
|
} = {},
|
|
23
|
+
children,
|
|
22
24
|
value = {},
|
|
23
25
|
onChange = () => {},
|
|
24
|
-
onCurrency = () => {}
|
|
26
|
+
onCurrency = () => {},
|
|
27
|
+
...others
|
|
25
28
|
} = _ref;
|
|
26
29
|
const {
|
|
27
30
|
isMobile
|
|
@@ -41,89 +44,33 @@ const Filter = _ref => {
|
|
|
41
44
|
} = (0, _dataSources.useStore)();
|
|
42
45
|
const handleChange = function () {
|
|
43
46
|
let {
|
|
44
|
-
board,
|
|
45
47
|
clubDiscount
|
|
46
48
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
47
49
|
const next = {
|
|
48
50
|
...value
|
|
49
51
|
};
|
|
50
|
-
if (
|
|
52
|
+
if (clubDiscount !== undefined) next.clubDiscount = clubDiscount;
|
|
51
53
|
onChange(next);
|
|
52
54
|
};
|
|
53
|
-
const Boards = () => {
|
|
54
|
-
const {
|
|
55
|
-
board: selectedBoard
|
|
56
|
-
} = value;
|
|
57
|
-
return isMobile || boards.length > 3 ? /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
|
|
58
|
-
name: "boards",
|
|
59
|
-
emptyOption: translate(_Rates.L10N.LABEL_SELECT_TYPE_ACCOMMODATION),
|
|
60
|
-
options: boards,
|
|
61
|
-
value: selectedBoard,
|
|
62
|
-
onChange: board => handleChange({
|
|
63
|
-
board
|
|
64
|
-
}),
|
|
65
|
-
className: style.input
|
|
66
|
-
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, boards.map(board => /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
|
|
67
|
-
key: board,
|
|
68
|
-
onPress: () => handleChange({
|
|
69
|
-
board
|
|
70
|
-
}),
|
|
71
|
-
className: [style.tag, style.pressable, board === selectedBoard && style.active]
|
|
72
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
73
|
-
action: true,
|
|
74
|
-
bold: board === selectedBoard
|
|
75
|
-
}, board))));
|
|
76
|
-
};
|
|
77
|
-
const Currencies = () => /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
78
|
-
style: {
|
|
79
|
-
position: 'relative'
|
|
80
|
-
}
|
|
81
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
82
|
-
className: style.currencyValue
|
|
83
|
-
}, currency), /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
|
|
84
|
-
name: "currency",
|
|
85
|
-
options: _locale.CURRENCIES.map(currency => "".concat(currency, " - ").concat(new Intl.DisplayNames(locale, {
|
|
86
|
-
type: 'currency'
|
|
87
|
-
}).of(currency))),
|
|
88
|
-
values: _locale.CURRENCIES,
|
|
89
|
-
value: currency,
|
|
90
|
-
onChange: onCurrency,
|
|
91
|
-
className: [style.input, style.selectCurrencies]
|
|
92
|
-
}));
|
|
93
55
|
const {
|
|
94
56
|
clubDiscount = false
|
|
95
57
|
} = value;
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
} = _ref2;
|
|
100
|
-
return rates.map(_ref3 => {
|
|
101
|
-
let {
|
|
102
|
-
boardName: name
|
|
103
|
-
} = _ref3;
|
|
104
|
-
return name;
|
|
105
|
-
});
|
|
106
|
-
}).flat())];
|
|
107
|
-
const hasBoards = boards.length >= 2;
|
|
58
|
+
const {
|
|
59
|
+
contentBackground
|
|
60
|
+
} = _ui.Theme.get();
|
|
108
61
|
return /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
109
|
-
row: !isMobile,
|
|
110
|
-
className: style.filter
|
|
111
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
112
|
-
row: true,
|
|
113
|
-
className: style.fields
|
|
114
|
-
}, hasBoards && /*#__PURE__*/_react.default.createElement(Boards, null), isMobile && hasBoards && /*#__PURE__*/_react.default.createElement(Currencies, null)), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
115
62
|
row: true,
|
|
116
|
-
className: style.
|
|
117
|
-
|
|
63
|
+
className: (0, _ui.styles)(style.header, !isMobile && others.className),
|
|
64
|
+
style: {
|
|
65
|
+
backgroundColor: (0, _helpers.opacity)(contentBackground, 0.66)
|
|
66
|
+
}
|
|
67
|
+
}, children, discount !== undefined && /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
118
68
|
row: true,
|
|
119
69
|
wide: isMobile,
|
|
120
|
-
className: [style.tag, clubDiscount && style.
|
|
121
|
-
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
122
|
-
row: true,
|
|
123
|
-
className: style.clubDiscount
|
|
70
|
+
className: [style.tag, clubDiscount && style.highlight]
|
|
124
71
|
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
125
72
|
action: true,
|
|
126
|
-
bold:
|
|
73
|
+
bold: true
|
|
127
74
|
}, translate(_Rates.L10N.LABEL_CLUB_DISCOUNT)), /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
|
|
128
75
|
pressable: true,
|
|
129
76
|
Template: () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
@@ -131,22 +78,49 @@ const Filter = _ref => {
|
|
|
131
78
|
small: true
|
|
132
79
|
}, translate(_Rates.L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE, {
|
|
133
80
|
club: name
|
|
134
|
-
})), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
81
|
+
})), clubConditions ? /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
135
82
|
small: true
|
|
136
|
-
}, translate(_Rates.L10N.
|
|
83
|
+
}, translate(_Rates.L10N.LABEL_CLUB_CONDITIONS, {
|
|
84
|
+
conditions: /*#__PURE__*/_react.default.createElement(_ui.Action, {
|
|
85
|
+
href: clubConditions,
|
|
86
|
+
inline: true,
|
|
87
|
+
target: "_blank",
|
|
88
|
+
className: style.action
|
|
89
|
+
}, translate(_Rates.L10N.ACTION_CLUB_VIEW_CONDITIONS))
|
|
90
|
+
})) : /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
91
|
+
small: true
|
|
92
|
+
}, translate(_Rates.L10N.LABEL_CLUB_BENEFITS))),
|
|
93
|
+
className: style.tooltip
|
|
137
94
|
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
138
|
-
value:
|
|
139
|
-
}))
|
|
95
|
+
value: _helpers.ICON.INFO
|
|
96
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.Switch, {
|
|
140
97
|
checked: clubDiscount,
|
|
141
98
|
name: "clubDiscount",
|
|
142
99
|
onChange: nextValue => handleChange({
|
|
143
100
|
clubDiscount: nextValue
|
|
144
101
|
}),
|
|
145
102
|
className: style.input
|
|
146
|
-
})),
|
|
103
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
104
|
+
style: {
|
|
105
|
+
position: 'relative'
|
|
106
|
+
}
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
108
|
+
className: style.currencyValue
|
|
109
|
+
}, currency), /*#__PURE__*/_react.default.createElement(_ui.InputSelect, {
|
|
110
|
+
name: "currency",
|
|
111
|
+
options: _locale.CURRENCIES.map(currency => "".concat(currency, " - ").concat(new Intl.DisplayNames(locale, {
|
|
112
|
+
type: 'currency'
|
|
113
|
+
}).of(currency))),
|
|
114
|
+
values: _locale.CURRENCIES,
|
|
115
|
+
value: currency,
|
|
116
|
+
onChange: onCurrency,
|
|
117
|
+
className: [style.input, style.selectCurrencies]
|
|
118
|
+
})));
|
|
147
119
|
};
|
|
148
|
-
exports.
|
|
149
|
-
|
|
120
|
+
exports.Header = Header;
|
|
121
|
+
Header.displayName = 'Mirai:Core:Rates.Header';
|
|
122
|
+
Header.propTypes = {
|
|
123
|
+
children: _propTypes.default.node,
|
|
150
124
|
dataSource: _propTypes.default.shape({}),
|
|
151
125
|
value: _propTypes.default.shape({
|
|
152
126
|
board: _propTypes.default.string,
|
|
@@ -155,5 +129,4 @@ Filter.propTypes = {
|
|
|
155
129
|
onChange: _propTypes.default.func,
|
|
156
130
|
onCurrency: _propTypes.default.func
|
|
157
131
|
};
|
|
158
|
-
|
|
159
|
-
//# sourceMappingURL=Rates.Filter.js.map
|
|
132
|
+
//# sourceMappingURL=Rates.Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rates.Header.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_Rates","style","_interopRequireWildcard","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Header","_ref","dataSource","clubConditions","children","value","onChange","onCurrency","others","isMobile","useDevice","translate","useLocale","club","discount","name","currency","locale","useStore","handleChange","clubDiscount","arguments","length","undefined","next","contentBackground","Theme","createElement","View","row","className","styles","header","backgroundColor","opacity","wide","tag","highlight","Text","action","bold","L10N","LABEL_CLUB_DISCOUNT","Tooltip","pressable","Template","Fragment","small","LABEL_CLUB_MEMBERS_EXCLUSIVE","LABEL_CLUB_CONDITIONS","conditions","Action","href","inline","target","ACTION_CLUB_VIEW_CONDITIONS","LABEL_CLUB_BENEFITS","tooltip","Icon","ICON","INFO","Switch","checked","nextValue","input","position","currencyValue","InputSelect","options","CURRENCIES","map","concat","Intl","DisplayNames","type","of","values","selectCurrencies","exports","displayName","propTypes","PropTypes","node","shape","board","string","bool","func"],"sources":["../../../src/components/Rates/Rates.Header.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { CURRENCIES, useLocale } from '@mirai/locale';\nimport { useDevice } from '@mirai/ui';\nimport { Action, Icon, InputSelect, styles, Switch, Text, Theme, Tooltip, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { L10N } from './Rates.l10n';\nimport * as style from './Rates.module.css';\nimport { ICON, opacity } from '../helpers';\n\nconst Header = ({\n dataSource: { clubConditions } = {},\n children,\n value = {},\n onChange = () => {},\n onCurrency = () => {},\n ...others\n}) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const { value: { club: { discount, name } = {}, currency, locale } = {} } = useStore();\n\n const handleChange = ({ clubDiscount } = {}) => {\n const next = { ...value };\n\n if (clubDiscount !== undefined) next.clubDiscount = clubDiscount;\n\n onChange(next);\n };\n\n const { clubDiscount = false } = value;\n\n const { contentBackground } = Theme.get();\n\n return (\n <View\n row\n className={styles(style.header, !isMobile && others.className)}\n style={{ backgroundColor: opacity(contentBackground, 0.66) }}\n >\n {children}\n\n {discount !== undefined && (\n <View row wide={isMobile} className={[style.tag, clubDiscount && style.highlight]}>\n <Text action bold>\n {translate(L10N.LABEL_CLUB_DISCOUNT)}\n </Text>\n <Tooltip\n pressable\n Template={() => (\n <>\n <Text bold small>\n {translate(L10N.LABEL_CLUB_MEMBERS_EXCLUSIVE, { club: name })}\n </Text>\n {clubConditions ? (\n <Text small>\n {translate(L10N.LABEL_CLUB_CONDITIONS, {\n conditions: (\n <Action href={clubConditions} inline target=\"_blank\" className={style.action}>\n {translate(L10N.ACTION_CLUB_VIEW_CONDITIONS)}\n </Action>\n ),\n })}\n </Text>\n ) : (\n <Text small>{translate(L10N.LABEL_CLUB_BENEFITS)}</Text>\n )}\n </>\n )}\n className={style.tooltip}\n >\n <Icon value={ICON.INFO} />\n </Tooltip>\n\n <Switch\n checked={clubDiscount}\n name=\"clubDiscount\"\n onChange={(nextValue) => handleChange({ clubDiscount: nextValue })}\n className={style.input}\n />\n </View>\n )}\n\n <View style={{ position: 'relative' }}>\n <Text className={style.currencyValue}>{currency}</Text>\n <InputSelect\n name=\"currency\"\n options={CURRENCIES.map(\n (currency) => `${currency} - ${new Intl.DisplayNames(locale, { type: 'currency' }).of(currency)}`,\n )}\n values={CURRENCIES}\n value={currency}\n onChange={onCurrency}\n className={[style.input, style.selectCurrencies]}\n />\n </View>\n </View>\n );\n};\n\nHeader.displayName = 'Mirai:Core:Rates.Header';\n\nHeader.propTypes = {\n children: PropTypes.node,\n dataSource: PropTypes.shape({}),\n value: PropTypes.shape({\n board: PropTypes.string,\n clubDiscount: PropTypes.bool,\n }),\n onChange: PropTypes.func,\n onCurrency: PropTypes.func,\n};\n\nexport { Header };\n"],"mappings":"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"}
|