@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
62 lines (61 loc) • 2.79 kB
JavaScript
;
"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