@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
49 lines (48 loc) • 2.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useIterateItemNo = useIterateItemNo;
var _react = _interopRequireWildcard(require("react"));
var _index = require("../hooks/index.js");
var _index2 = require("../../hooks/index.js");
var _componentHelper = require("../../../../shared/component-helper.js");
var _ItemNo = require("./ItemNo.js");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function useIterateItemNo({
label: labelProp,
labelSuffix = undefined,
required = undefined
}) {
const {
index: iterateIndex
} = (0, _index.useItem)() || {};
const {
optionalLabelSuffix
} = (0, _index2.useTranslation)().Field;
const labelSuffixText = (0, _react.useMemo)(() => {
if (typeof labelSuffix !== 'boolean' && (required === false || typeof labelSuffix !== 'undefined')) {
return labelSuffix !== null && labelSuffix !== void 0 ? labelSuffix : optionalLabelSuffix;
}
return '';
}, [required, labelSuffix, optionalLabelSuffix]);
return (0, _react.useMemo)(() => {
let content = labelProp;
if (iterateIndex !== undefined) {
content = (0, _ItemNo.replaceItemNo)(labelProp, iterateIndex);
}
if (labelSuffixText) {
if ((0, _componentHelper.convertJsxToString)(content).includes(optionalLabelSuffix)) {
return content;
}
if (typeof content === 'string') {
return content + ' ' + labelSuffixText;
}
if (_react.default.isValidElement(content)) {
return _react.default.createElement(_react.default.Fragment, null, content, ' ', labelSuffixText);
}
}
return content;
}, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix]);
}
//# sourceMappingURL=useIterateItemNo.js.map