UNPKG

@kiwicom/smart-faq

Version:

221 lines (182 loc) 6.18 kB
"use strict"; require("core-js/modules/es.array.concat"); require("core-js/modules/es.date.to-string"); require("core-js/modules/es.object.get-own-property-descriptor"); require("core-js/modules/es.regexp.exec"); require("core-js/modules/es.string.replace"); Object.defineProperty(exports, "__esModule", { value: true }); exports.formatHour = exports.timeDurationTranslationData = exports.formatTimeDuration = exports.formatCountDown = exports.formatDepartureDate = exports.FormatDate = exports.URGENCY_THRESHOLD = void 0; var React = _interopRequireWildcard(require("react")); var _Translate = _interopRequireDefault(require("@kiwicom/nitro/lib/components/Translate")); var _Language = require("../context/Language"); var _translationUtils = require("../../shared/helpers/translationUtils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } // @flow var URGENCY_THRESHOLD = 48; /*:: type Props = {| dateString: string, |};*/ /*:: type CountDownProps = {| hoursLeft: number, |};*/ /*:: type TimeDepartureProps = {| mins: number, isLayover: boolean, |};*/ exports.URGENCY_THRESHOLD = URGENCY_THRESHOLD; var FormatDate = function FormatDate(_ref) { var dateString = _ref.dateString; var options = { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }; return React.createElement(_Language.LanguageContext.Consumer, null, function (language) { var _supportedLanguages$l; var locale = ((_supportedLanguages$l = _translationUtils.supportedLanguages[language]) !== null && _supportedLanguages$l !== void 0 ? _supportedLanguages$l : _translationUtils.DEFAULT_LOCALE).replace('_', '-'); return new Date(dateString).toLocaleDateString(locale, options); }); }; exports.FormatDate = FormatDate; var formatDepartureDate = function formatDepartureDate(dateString /*: string*/ ) { var dateUTC = new Date(dateString); var month = dateUTC.getUTCMonth() + 1; var day = dateUTC.getUTCDate(); var year = dateUTC.getUTCFullYear(); return "".concat(day, "/").concat(month, "/").concat(year); }; /*:: export type FormattedDaysType = {| format: 'days', daysLeft: number, |};*/ exports.formatDepartureDate = formatDepartureDate; var formatNumberDays = function formatNumberDays(hoursLeft /*: number*/ ) { return ( /*: FormattedDaysType*/ { format: 'days', daysLeft: Math.floor(hoursLeft / 24) } ); }; /*:: export type FormattedCountdownType = | FormattedDaysType | {| format: 'hours_minutes', hoursLeft: number, minutesLeft: number, |} | {| format: 'hours', hoursLeft: number, |};*/ var formatCountDown = function formatCountDown(_ref2) /*: FormattedCountdownType*/ { var hoursLeft = _ref2.hoursLeft; var nhours = Math.floor(hoursLeft); var nmins = Math.floor((hoursLeft - nhours) * 60); if (hoursLeft < URGENCY_THRESHOLD) { return nmins ? { format: 'hours_minutes', hoursLeft: nhours, minutesLeft: nmins } : { format: 'hours', hoursLeft: nhours }; } return formatNumberDays(hoursLeft); }; exports.formatCountDown = formatCountDown; var translationKeys = { layoverMoreThanOneHour: "smartfaq.single_booking_page.layover.more_than_one_hour", layoverLessThanOneHour: "smartfaq.single_booking_page.layover.less_than_one_hour", segmentMoreThanOneHour: "smartfaq.single_booking_page.segment.more_than_one_hour", segmentLessThanOneHour: "smartfaq.single_booking_page.segment.less_than_one_hour" }; var formatTimeDuration = function formatTimeDuration(_ref3) /*: React.Node*/ { var mins = _ref3.mins, isLayover = _ref3.isLayover; var nhours = Math.floor(mins / 60); var nmins = mins - nhours * 60; var layoverTime = nhours ? React.createElement(_Translate.default, { t: translationKeys.layoverMoreThanOneHour, values: { numberHours: nhours, numberMins: nmins } }) : React.createElement(_Translate.default, { t: translationKeys.layoverLessThanOneHour, values: { numberMins: nmins } }); var segmentTime = nhours ? React.createElement(_Translate.default, { t: translationKeys.segmentMoreThanOneHour, values: { numberHours: nhours, numberMins: nmins } }) : React.createElement(_Translate.default, { t: translationKeys.segmentLessThanOneHour, values: { numberMins: nmins } }); return isLayover ? layoverTime : segmentTime; }; exports.formatTimeDuration = formatTimeDuration; var timeDurationTranslationData = function timeDurationTranslationData(_ref4) /*: Object*/ { var mins = _ref4.mins, isLayover = _ref4.isLayover; var nhours = Math.floor(mins / 60); var nmins = mins - nhours * 60; var translationKey = ''; if (isLayover && nhours) { translationKey = translationKeys.layoverMoreThanOneHour; } if (isLayover && !nhours) { translationKey = translationKeys.layoverLessThanOneHour; } if (!isLayover && nhours) { translationKey = translationKeys.segmentMoreThanOneHour; } if (!isLayover && !nhours) { translationKey = translationKeys.segmentLessThanOneHour; } var translationVariables = nhours ? { numberHours: nhours, numberMins: nmins } : { numberMins: nmins }; return { translationKey: translationKey, translationVariables: translationVariables }; }; exports.timeDurationTranslationData = timeDurationTranslationData; var formatHour = function formatHour(date /*: string*/ ) { var options = { hour: 'numeric', timeZone: 'UTC', minute: 'numeric' }; return new Date(date).toLocaleString('en-US', options); }; exports.formatHour = formatHour;