@kiwicom/smart-faq
Version:
221 lines (182 loc) • 6.18 kB
JavaScript
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;
;