@grafana/ui
Version:
Grafana Components Library
51 lines (44 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
function _interopNamespaceCompat(e) {
if (e && typeof e === 'object' && 'default' in e) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);
;
function getChildId(children) {
let inputId;
const child = React__namespace.Children.only(children);
if ("id" in (child == null ? void 0 : child.props)) {
inputId = child.props.id;
} else if ("inputId" in child.props) {
inputId = child == null ? void 0 : child.props.inputId;
}
return typeof inputId === "string" ? inputId : void 0;
}
function renderOrCallToRender(itemToRender, props) {
if (React__namespace.isValidElement(itemToRender) || typeof itemToRender === "string" || typeof itemToRender === "number") {
return itemToRender;
}
if (typeof itemToRender === "function" && props) {
return itemToRender(props);
}
throw new Error(`${itemToRender} is not a React element nor a function that returns React element`);
}
exports.getChildId = getChildId;
exports.renderOrCallToRender = renderOrCallToRender;
//# sourceMappingURL=reactUtils.cjs.map