MCPcopy Create free account
hub / github.com/alibaba/lowcode-engine / rendererFactory

Function rendererFactory

packages/renderer-core/src/renderer/renderer.tsx:11–182  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

9import logger from '../utils/logger';
10
11export default function rendererFactory(): IRenderComponent {
12 const { PureComponent, Component, createElement, findDOMNode } = adapter.getRuntime();
13 const RENDERER_COMPS: any = adapter.getRenderers();
14 const BaseRenderer = baseRendererFactory();
15 const AppContext = contextFactory();
16 const Div = divFactory();
17
18 const ConfigProvider = adapter.getConfigProvider() || Div;
19
20 const debug = Debug('renderer:entry');
21
22 class FaultComponent extends PureComponent<IPublicTypeNodeSchema | any> {
23 render() {
24 logger.error(`%c${this.props.componentName || ''} 组件渲染异常, 异常原因: ${this.props.error?.message || this.props.error || '未知'}`, 'color: #ff0000;');
25 return createElement(Div, {
26 style: {
27 width: '100%',
28 height: '50px',
29 lineHeight: '50px',
30 textAlign: 'center',
31 fontSize: '15px',
32 color: '#ff0000',
33 border: '2px solid #ff0000',
34 },
35 }, `${this.props.componentName || ''} 组件渲染异常,请查看控制台日志`);
36 }
37 }
38
39 class NotFoundComponent extends PureComponent<{
40 componentName: string;
41 } & IRendererProps> {
42 render() {
43 if (this.props.enableStrictNotFoundMode) {
44 return `${this.props.componentName || ''} Component Not Found`;
45 }
46 return createElement(Div, this.props, this.props.children || `${this.props.componentName || ''} Component Not Found`);
47 }
48 }
49
50 return class Renderer extends Component<IRendererProps> {
51 static displayName = 'Renderer';
52
53 state: Partial<IRendererState> = {};
54
55 __ref: any;
56
57 static defaultProps: IRendererProps = {
58 appHelper: undefined,
59 components: {},
60 designMode: '',
61 suspended: false,
62 schema: {} as IPublicTypeRootSchema,
63 onCompGetRef: () => { },
64 onCompGetCtx: () => { },
65 thisRequiredInJSE: true,
66 };
67
68 static findDOMNode = findDOMNode;

Callers 2

factoryFunction · 0.85
renderer.test.tsxFile · 0.85

Calls 6

baseRendererFactoryFunction · 0.85
contextFactoryFunction · 0.85
divFactoryFunction · 0.85
getRuntimeMethod · 0.80
getRenderersMethod · 0.80
getConfigProviderMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…