krp-react-form-component
Version:
KRP React Component for Form Preview Component
170 lines (169 loc) • 6.23 kB
JavaScript
"use strict";
require("core-js/modules/es.object.assign.js");
require("core-js/modules/es.weak-map.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/web.dom-collections.iterator.js");
var _react = _interopRequireWildcard(require("react"));
var _antd = require("antd");
var _propTypes = _interopRequireDefault(require("prop-types"));
require("./CustomTimePicker.scss");
var _AppContext = require("../../../../context/AppContext");
var _CommonFormConstants = require("../../../../constants/CommonFormConstants");
var _moment = _interopRequireDefault(require("moment"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
const CustomTimePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
let {
mode,
name,
required,
lang,
className,
placeholder,
format,
minTime = "",
maxTime = "",
disabledHours,
disabledMinutes,
initState,
formProps,
formFieldName,
errorMsg,
handleTitleError,
popupClassName
} = _ref;
const {
resolveLocale
} = (0, _react.useContext)(_AppContext.AppContext);
const [open, setOpen] = (0, _react.useState)(false);
const [value, setValue] = (0, _react.useState)(initState || null);
const [prevValue, setPrevValue] = (0, _react.useState)(null);
const handleOpenChange = () => {
setOpen(true);
setPrevValue(value);
setValue(value);
};
const handleConfirm = required => {
if (value === null && required === 'yes') {
formProps.setFields({
[formFieldName]: {
value: null,
errors: [new Error(errorMsg)]
}
});
} else {
formProps.setFieldsValue({
[formFieldName]: value
});
}
handleTitleError();
setOpen(false);
};
const handleClose = () => {
setValue(prevValue);
setOpen(false);
};
const _onChange = (time, required) => {
const min = (0, _moment.default)(minTime, _CommonFormConstants.CONSTANT.TIME_FORMAT);
const max = (0, _moment.default)(maxTime, _CommonFormConstants.CONSTANT.TIME_FORMAT);
if (minTime !== "" || maxTime !== "") {
if (time.isBefore(min)) {
time = min;
} else if (time.isAfter(max)) {
time = max;
}
}
if (time === null && required === 'yes') {
formProps.setFields({
[formFieldName]: {
value: null,
errors: [new Error(errorMsg)]
}
});
handleTitleError();
}
setValue(time);
if (mode !== "mobile") {
formProps.setFieldsValue({
[formFieldName]: time
});
}
};
let attr = {};
if (mode === 'mobile') {
attr = {
initState: initState,
formProps: formProps,
formFieldName: formFieldName,
errorMsg: errorMsg,
handleTitleError: handleTitleError,
popupClassName: "mobile-item-timepicker-popup ".concat(popupClassName),
inputReadOnly: true,
open: open,
onOpenChange: handleOpenChange,
// value: value,
addon: () => /*#__PURE__*/_react.default.createElement("div", {
className: "mobile-item-timepicker-extra-footer"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mobile-item-timepicker-extra-footer-container"
}, /*#__PURE__*/_react.default.createElement(_antd.Button, {
className: "mobile-item-timepicker-extra-footer-btn-left",
icon: "close",
shape: "circle",
onClick: handleClose
}), /*#__PURE__*/_react.default.createElement("div", {
style: {
marginLeft: 5
}
}, resolveLocale('FORM_PREVIEW_TIMEPICKER_FOOTER_CLOSE'))), /*#__PURE__*/_react.default.createElement("div", {
className: "mobile-item-timepicker-extra-footer-container"
}, /*#__PURE__*/_react.default.createElement("div", {
style: {
marginRight: 5
}
}, resolveLocale('FORM_PREVIEW_TIMEPICKER_FOOTER_OK')), /*#__PURE__*/_react.default.createElement(_antd.Button, {
className: "mobile-item-timepicker-extra-footer-btn-right",
icon: "check",
shape: "circle",
onClick: () => {
handleConfirm(required);
}
})))
};
}
return /*#__PURE__*/_react.default.createElement(_antd.TimePicker, _extends({
name: name,
className: className,
placeholder: placeholder,
format: format,
disabledHours: disabledHours,
disabledMinutes: disabledMinutes,
onChange: e => {
_onChange(e, required);
},
value: value
}, attr));
});
CustomTimePicker.propTypes = {
name: _propTypes.default.string,
required: _propTypes.default.string,
lang: _propTypes.default.string,
className: _propTypes.default.string,
placeholder: _propTypes.default.string,
format: _propTypes.default.string,
minTime: _propTypes.default.string,
maxTime: _propTypes.default.string,
disabledHours: _propTypes.default.func,
disabledMinutes: _propTypes.default.func,
initState: _propTypes.default.object,
formProps: _propTypes.default.object,
formFieldName: _propTypes.default.string,
errorMsg: _propTypes.default.string,
handleTitleError: _propTypes.default.func,
popupClassName: _propTypes.default.string
};
var _default = exports.default = CustomTimePicker;