@prefect9/ui
Version:
UI React components
85 lines (84 loc) • 3.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es.string.trim.js");
require("core-js/modules/web.dom-collections.iterator.js");
var _react = require("react");
var _isType = require("@prefect9/is-type");
var _Modal = require("../Modal");
var _Modal2 = _interopRequireDefault(require("./Modal"));
var _datetime = _interopRequireDefault(require("@prefect9/datetime"));
var _styles = _interopRequireDefault(require("../../styles.css"));
var _icons = _interopRequireDefault(require("../../icons"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function DatePickerRangeModal(_ref) {
let {
from,
to,
onChange,
label,
disabled
} = _ref;
const modal = (0, _Modal.useModal)();
const [dateFrom, setDateFrom] = (0, _react.useState)(new _datetime.default());
const [dateTo, setDateTo] = (0, _react.useState)(new _datetime.default());
(0, _react.useEffect)(() => {
if (_datetime.default.isDateStr(from) && _datetime.default.isDateStr(to)) {
const d1 = new _datetime.default(from);
const d2 = new _datetime.default(to);
if (d1.smallThen(d2)) {
setDateFrom(d1);
setDateTo(d2);
} else {
setDateFrom(d2);
setDateTo(d1);
}
} else {
setDateTo(new _datetime.default());
const newDateFrom = new _datetime.default();
newDateFrom.modify('-6 days');
setDateFrom(newDateFrom);
}
}, [from, to]);
const clickHandler = (0, _react.useCallback)(e => {
e.preventDefault();
if (disabled) return;
modal.show( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal2.default, {
from: dateFrom,
to: dateTo
})).then(data => {
if (data === 'close') return;else if ((0, _isType.isObj)(data)) {
const {
from,
to
} = data;
if ((0, _isType.isFunc)(onChange)) onChange({
from: from.toDateStr(),
to: to.toDateStr()
});
}
});
}, [disabled, dateFrom, dateTo]);
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: "prefect9-field ".concat(disabled ? 'disabled' : ''),
children: [(0, _isType.isStr)(label) && label.trim().length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "field-label",
onClick: clickHandler,
children: label
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: "prefect9-modal-calendar",
onClick: clickHandler,
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: "prefect9-modal-calendar__text",
children: [dateFrom.toDateInterfaceStr(), " \u2014 ", dateTo.toDateInterfaceStr()]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "prefect9-modal-calendar__ico",
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.default.Calendar, {})
})]
})]
});
}
var _default = exports.default = DatePickerRangeModal;