UNPKG

@talend/react-components

Version:
80 lines 2.85 kB
import { useContext } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import I18N_DOMAIN_COMPONENTS from '../../../../constants'; import getDefaultT from '../../../../translate'; import { INPUT_ERRORS, HOUR_ERRORS, MINUTES_ERRORS, SECONDS_ERRORS } from '../constants'; import { DateTimeContext } from '../Context'; import Error from './Error.component'; import theme from './Validation.module.scss'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function Validation({ t }) { const { errorManagement, formManagement } = useContext(DateTimeContext); const { errors, focusedInput, hoursErrorId, minutesErrorId, secondsErrorId, inputErrorId } = errorManagement; const errorsOrder = [inputErrorId, hoursErrorId, minutesErrorId, secondsErrorId]; const errorsMapping = { [inputErrorId]: errors.filter(error => INPUT_ERRORS.includes(error.code)), [hoursErrorId]: errors.filter(error => HOUR_ERRORS.includes(error.code)), [minutesErrorId]: errors.filter(error => MINUTES_ERRORS.includes(error.code)), [secondsErrorId]: errors.filter(error => SECONDS_ERRORS.includes(error.code)) }; let visibleErrors = focusedInput; if (!visibleErrors) { visibleErrors = errorsOrder.find(part => errorsMapping[part].length); } return /*#__PURE__*/_jsxs("div", { className: theme.validation, children: [/*#__PURE__*/_jsxs("div", { className: theme.errors, children: [/*#__PURE__*/_jsx(Error, { id: inputErrorId, errors: errorsMapping[inputErrorId], hidden: visibleErrors !== inputErrorId }, "input-errors"), /*#__PURE__*/_jsx(Error, { id: hoursErrorId, errors: errorsMapping[hoursErrorId], hidden: visibleErrors !== hoursErrorId }, "hours-errors"), /*#__PURE__*/_jsx(Error, { id: minutesErrorId, errors: errorsMapping[minutesErrorId], hidden: visibleErrors !== minutesErrorId }, "minutes-errors"), /*#__PURE__*/_jsx(Error, { id: secondsErrorId, errors: errorsMapping[secondsErrorId], hidden: visibleErrors !== secondsErrorId }, "seconds-errors")] }), /*#__PURE__*/_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.func }; Validation.defaultProps = { t: getDefaultT() }; export default withTranslation(I18N_DOMAIN_COMPONENTS)(Validation); //# sourceMappingURL=Validation.component.js.map