@talend/react-components
Version:
Set of react components.
87 lines (86 loc) • 3.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactI18next = require("react-i18next");
var _constants = _interopRequireDefault(require("../../../../constants"));
var _translate = _interopRequireDefault(require("../../../../translate"));
var _constants2 = require("../constants");
var _Context = require("../Context");
var _Error = _interopRequireDefault(require("./Error.component"));
var _ValidationModule = _interopRequireDefault(require("./Validation.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function Validation({
t
}) {
const {
errorManagement,
formManagement
} = (0, _react.useContext)(_Context.DateTimeContext);
const {
errors,
focusedInput,
hoursErrorId,
minutesErrorId,
secondsErrorId,
inputErrorId
} = errorManagement;
const errorsOrder = [inputErrorId, hoursErrorId, minutesErrorId, secondsErrorId];
const errorsMapping = {
[inputErrorId]: errors.filter(error => _constants2.INPUT_ERRORS.includes(error.code)),
[hoursErrorId]: errors.filter(error => _constants2.HOUR_ERRORS.includes(error.code)),
[minutesErrorId]: errors.filter(error => _constants2.MINUTES_ERRORS.includes(error.code)),
[secondsErrorId]: errors.filter(error => _constants2.SECONDS_ERRORS.includes(error.code))
};
let visibleErrors = focusedInput;
if (!visibleErrors) {
visibleErrors = errorsOrder.find(part => errorsMapping[part].length);
}
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: _ValidationModule.default.validation,
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: _ValidationModule.default.errors,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Error.default, {
id: inputErrorId,
errors: errorsMapping[inputErrorId],
hidden: visibleErrors !== inputErrorId
}, "input-errors"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Error.default, {
id: hoursErrorId,
errors: errorsMapping[hoursErrorId],
hidden: visibleErrors !== hoursErrorId
}, "hours-errors"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Error.default, {
id: minutesErrorId,
errors: errorsMapping[minutesErrorId],
hidden: visibleErrors !== minutesErrorId
}, "minutes-errors"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Error.default, {
id: secondsErrorId,
errors: errorsMapping[secondsErrorId],
hidden: visibleErrors !== secondsErrorId
}, "seconds-errors")]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
name: "action-datepicker-validate",
className: "btn btn-primary",
type: "button",
"aria-label": t('DATEPICKER_VALIDATE_DESC', {
defaultValue: 'Validate date value'
}),
onClick: formManagement.onSubmit,
children: t('DATEPICKER_VALIDATE', {
defaultValue: 'Done'
})
})]
});
}
Validation.displayName = 'DateTime.Validation';
Validation.propTypes = {
t: _propTypes.default.func
};
Validation.defaultProps = {
t: (0, _translate.default)()
};
var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(Validation);
//# sourceMappingURL=Validation.component.js.map