@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
66 lines (65 loc) • 1.97 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useCollectStepsData = useCollectStepsData;
var _react = require("react");
var _componentHelper = require("../../../../shared/component-helper");
var _WizardContext = _interopRequireDefault(require("../Context/WizardContext"));
var _hooks = require("../../hooks");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function useCollectStepsData() {
const {
activeIndexRef,
hasErrorInOtherStepRef,
stepsRef,
submitCountRef,
writeStepsState,
hasInvalidStepsState
} = (0, _react.useContext)(_WizardContext.default) || {};
const translations = (0, _hooks.useTranslation)();
const collectStepsData = (0, _react.useCallback)(_ref => {
let {
id,
index,
inactive,
title
} = _ref;
if (!hasInvalidStepsState) {
return;
}
writeStepsState(index);
const stringifiedTitle = title !== undefined ? (0, _componentHelper.convertJsxToString)(title) : 'Title missing';
let status = undefined;
let statusState = undefined;
if (index !== activeIndexRef.current && !inactive) {
if (hasInvalidStepsState(index, ['error'])) {
status = translations.Step.stepHasError;
statusState = 'error';
} else if (submitCountRef.current > 0 && hasInvalidStepsState(index, ['unknown'])) {
status = 'Unknown state';
statusState = 'warn';
}
}
if (status) {
hasErrorInOtherStepRef.current = true;
}
stepsRef.current.set(index, {
index,
id,
title,
stringifiedTitle,
inactive,
status,
statusState
});
return {
title
};
}, [activeIndexRef, hasErrorInOtherStepRef, hasInvalidStepsState, stepsRef, submitCountRef, translations.Step.stepHasError, writeStepsState]);
return {
collectStepsData
};
}
//# sourceMappingURL=useCollectStepsData.js.map