lowcode-engine/packages/utils/src/create-content.ts
2022-12-26 14:08:12 +08:00

17 lines
471 B
TypeScript

import { ReactNode, ComponentType, isValidElement, cloneElement, createElement } from 'react';
import { isReactComponent } from './is-react';
export function createContent(
content: ReactNode | ComponentType<any>,
props?: Record<string, unknown>,
): ReactNode {
if (isValidElement(content)) {
return props ? cloneElement(content, props) : content;
}
if (isReactComponent(content)) {
return createElement(content, props);
}
return content;
}