UNPKG

@braineet/ui

Version:

Braineet design system

41 lines (40 loc) 1.46 kB
"use strict"; exports.__esModule = true; exports.default = exports.FocusError = void 0; var _react = require("react"); var _formik = require("formik"); var FocusError = exports.FocusError = function FocusError(_ref) { var _ref$focusDelay = _ref.focusDelay, focusDelay = _ref$focusDelay === void 0 ? 100 : _ref$focusDelay, onFocus = _ref.onFocus; var _useFormikContext = (0, _formik.useFormikContext)(), isSubmitting = _useFormikContext.isSubmitting, touched = _useFormikContext.touched, isValidating = _useFormikContext.isValidating, errors = _useFormikContext.errors; (0, _react.useEffect)(function () { if (isSubmitting && !isValidating) { var errorNames = Object.keys(touched).reduce(function (prev, key) { if ((0, _formik.getIn)(errors, key)) { prev.push(key); } return prev; }, []); if (errorNames.length && typeof document !== 'undefined') { var errorElement; errorNames.forEach(function (errorKey) { var selector = "[name=\"" + errorKey + "\"]"; if (!errorElement) { errorElement = document.querySelector(selector); } }); setTimeout(function () { if (errorElement) errorElement.focus(); if (onFocus) onFocus(); }, focusDelay); } } }, [isSubmitting, isValidating, errors, touched, focusDelay]); return null; }; var _default = exports.default = FocusError;