@ozen-ui/kit
Version:
React component library
26 lines (25 loc) • 863 B
JavaScript
import { __assign } from "tslib";
import React, { isValidElement, cloneElement } from 'react';
import { isElement, isValidElementType } from 'react-is';
import { mergeDeep } from '../object/mergeDeep';
export function renderContent(_a) {
var content = _a.content, props = _a.props;
// primitives: string or number
if (typeof content === 'string' || typeof content === 'number') {
return content;
}
// react-element
if (isElement(content)) {
return cloneElement(content, mergeDeep(props, content.props));
}
// render-function
if (typeof content === 'function' && !isValidElement(content)) {
return content(props);
}
// react-component
if (isValidElementType(content)) {
var Content = content;
return React.createElement(Content, __assign({}, props));
}
return null;
}