UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

66 lines (65 loc) 1.97 kB
"use strict"; "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