lowcode-engine/packages/utils/src/create-content.ts
2022-02-16 11:20:17 +08:00

14 lines
458 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;
}