pouncejs
Version:
A collection of UI components from Panther labs
202 lines (169 loc) • 5.7 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireDefault(require("react"));
var _helpers = require("../../utils/helpers");
var _Box = _interopRequireDefault(require("../Box"));
var _AbstractButton = _interopRequireDefault(require("../AbstractButton"));
var ListItem = function ListItem(_ref) {
var selected = _ref.selected,
onSelect = _ref.onSelect,
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["selected", "onSelect"]);
return /*#__PURE__*/_react.default.createElement(_Box.default, {
as: "li",
mb: 6
}, /*#__PURE__*/_react.default.createElement(_AbstractButton.default, (0, _extends2.default)({
color: "navyblue-100",
_selected: {
color: 'white-200'
},
_hover: {
color: 'white-200'
},
"aria-selected": selected,
onClick: onSelect,
fontSize: "medium"
}, rest)));
};
var getOptions = function getOptions(timezone) {
return [{
id: 'last_day',
label: 'Last 24 Hours',
onSelectPreset: function onSelectPreset(callback, setCurrentMonth) {
return function (e) {
e.preventDefault();
var _getDates = (0, _helpers.getDates)(timezone),
lastDay = _getDates.lastDay,
nextMonth = _getDates.nextMonth,
now = _getDates.now;
setCurrentMonth(nextMonth);
callback([lastDay, now]);
};
}
}, {
id: 'last_week',
label: 'Last Week',
onSelectPreset: function onSelectPreset(callback, setCurrentMonth) {
return function (e) {
e.preventDefault();
var _getDates2 = (0, _helpers.getDates)(timezone),
lastWeek = _getDates2.lastWeek,
nextMonth = _getDates2.nextMonth,
now = _getDates2.now;
setCurrentMonth(nextMonth);
callback([lastWeek, now]);
};
}
}, {
id: 'last_month',
label: 'Last Month',
onSelectPreset: function onSelectPreset(callback, setCurrentMonth) {
return function (e) {
e.preventDefault();
var _getDates3 = (0, _helpers.getDates)(timezone),
lastMonth = _getDates3.lastMonth,
nextMonth = _getDates3.nextMonth,
now = _getDates3.now;
setCurrentMonth(nextMonth);
callback([lastMonth, now]);
};
}
}, {
id: 'last_three_months',
label: 'Last 3 Months',
onSelectPreset: function onSelectPreset(callback, setCurrentMonth) {
return function (e) {
e.preventDefault();
var _getDates4 = (0, _helpers.getDates)(timezone),
lastThreeMonths = _getDates4.lastThreeMonths,
nextMonth = _getDates4.nextMonth,
now = _getDates4.now;
setCurrentMonth(nextMonth);
callback([lastThreeMonths, now]);
};
}
}, {
id: 'last_six_months',
label: 'Last 6 Months',
onSelectPreset: function onSelectPreset(callback, setCurrentMonth) {
return function (e) {
e.preventDefault();
var _getDates5 = (0, _helpers.getDates)(timezone),
lastSixMonths = _getDates5.lastSixMonths,
nextMonth = _getDates5.nextMonth,
now = _getDates5.now;
setCurrentMonth(nextMonth);
callback([lastSixMonths, now]);
};
}
}, {
id: 'custom',
label: 'Custom',
onSelectPreset: function onSelectPreset() {
return function (e) {
e.preventDefault();
};
}
}];
};
var Presets = function Presets(_ref2) {
var _ref2$currentDateRang = _ref2.currentDateRange,
currentDateRange = _ref2$currentDateRang === void 0 ? [] : _ref2$currentDateRang,
timezone = _ref2.timezone,
onSelect = _ref2.onSelect,
setCurrentMonth = _ref2.setCurrentMonth;
var selected = _react.default.useMemo(function () {
var _getDates6 = (0, _helpers.getDates)(timezone),
now = _getDates6.now,
lastDay = _getDates6.lastDay,
lastWeek = _getDates6.lastWeek,
lastMonth = _getDates6.lastMonth,
lastThreeMonths = _getDates6.lastThreeMonths,
lastSixMonths = _getDates6.lastSixMonths;
var start = currentDateRange[0],
end = currentDateRange[1];
if (!start || !end) {
return 'custom';
}
if (!end.isSame(now, 'date')) {
return 'custom';
}
if (start.isSame(lastDay, 'minute')) {
return 'last_day';
}
if (start.isSame(lastWeek, 'date')) {
return 'last_week';
}
if (start.isSame(lastMonth, 'date')) {
return 'last_month';
}
if (start.isSame(lastThreeMonths, 'date')) {
return 'last_three_months';
}
if (start.isSame(lastSixMonths, 'date')) {
return 'last_six_months';
}
return 'custom';
}, [currentDateRange]);
return /*#__PURE__*/_react.default.createElement(_Box.default, {
borderRight: "1px solid",
borderColor: "navyblue-300"
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
p: 6,
width: "140px"
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
as: "ol"
}, getOptions(timezone).map(function (opt) {
return /*#__PURE__*/_react.default.createElement(ListItem, {
"aria-label": opt.label,
onSelect: opt.onSelectPreset(onSelect, setCurrentMonth),
selected: selected === opt.id,
key: opt.id
}, opt.label);
}))));
};
var _default = Presets;
exports.default = _default;