UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

62 lines (61 loc) 2.79 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useReportError; var _react = require("react"); var _useId = _interopRequireDefault(require("../../../../shared/helpers/useId.js")); var _Context = _interopRequireDefault(require("../../DataContext/Context.js")); var _StepContext = _interopRequireDefault(require("../../Wizard/Step/StepContext.js")); var _index = _interopRequireDefault(require("../../Wizard/Context/index.js")); var _VisibilityContext = _interopRequireDefault(require("../Visibility/VisibilityContext.js")); var _index2 = require("../../hooks/index.js"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function useReportError(error, customDataContext, name) { const { joinPath } = (0, _index2.usePath)(); const dataContext = (0, _react.useContext)(_Context.default); const wizardContext = (0, _react.useContext)(_index.default); const wizardStepContext = (0, _react.useContext)(_StepContext.default); const visibilityContext = (0, _react.useContext)(_VisibilityContext.default); const { setFieldError: setFieldErrorDataContext, setMountedFieldState, prerenderFieldProps } = customDataContext || dataContext; const { setFieldError: setFieldErrorWizard } = wizardContext || {}; const { index: wizardIndex } = wizardStepContext || {}; const { isVisible } = visibilityContext || {}; const handleFieldAsVisible = isVisible; const id = (0, _useId.default)(); (0, _react.useEffect)(() => { if (prerenderFieldProps) { return; } const path = joinPath(['internal', name, id]); const currentError = handleFieldAsVisible !== false ? error : undefined; if (currentError) { setMountedFieldState === null || setMountedFieldState === void 0 || setMountedFieldState(path, { isMounted: true }); } setFieldErrorWizard === null || setFieldErrorWizard === void 0 || setFieldErrorWizard(wizardIndex, path, currentError ? true : undefined); setFieldErrorDataContext === null || setFieldErrorDataContext === void 0 || setFieldErrorDataContext(path, currentError); return () => { setMountedFieldState === null || setMountedFieldState === void 0 || setMountedFieldState(path, { isMounted: false }); setFieldErrorWizard === null || setFieldErrorWizard === void 0 || setFieldErrorWizard(wizardIndex, path, undefined); setFieldErrorDataContext === null || setFieldErrorDataContext === void 0 || setFieldErrorDataContext(path, undefined); }; }, [error, handleFieldAsVisible, id, joinPath, name, prerenderFieldProps, setFieldErrorDataContext, setFieldErrorWizard, setMountedFieldState, wizardIndex]); } //# sourceMappingURL=useReportError.js.map