UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

42 lines 1.48 kB
import React, { useMemo } from 'react'; import { useItem } from "../hooks/index.js"; import { useTranslation } from "../../hooks/index.js"; import { convertJsxToString } from "../../../../shared/component-helper.js"; import { replaceItemNo } from "./ItemNo.js"; export function useIterateItemNo({ label: labelProp, labelSuffix = undefined, required = undefined }) { const { index: iterateIndex } = useItem() || {}; const { optionalLabelSuffix } = useTranslation().Field; const labelSuffixText = useMemo(() => { if (typeof labelSuffix !== 'boolean' && (required === false || typeof labelSuffix !== 'undefined')) { return labelSuffix !== null && labelSuffix !== void 0 ? labelSuffix : optionalLabelSuffix; } return ''; }, [required, labelSuffix, optionalLabelSuffix]); return useMemo(() => { let content = labelProp; if (iterateIndex !== undefined) { content = replaceItemNo(labelProp, iterateIndex); } if (labelSuffixText) { if (convertJsxToString(content).includes(optionalLabelSuffix)) { return content; } if (typeof content === 'string') { return content + ' ' + labelSuffixText; } if (React.isValidElement(content)) { return React.createElement(React.Fragment, null, content, ' ', labelSuffixText); } } return content; }, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix]); } //# sourceMappingURL=useIterateItemNo.js.map