|
|
@@ -6,6 +6,10 @@ import { definePluginCreator } from '@flowgram.ai/core';
|
|
|
export type MaterialReactComponent<T = any> = (props: T) => React.ReactNode | null;
|
|
|
|
|
|
export interface MaterialsPluginOptions {
|
|
|
+ /**
|
|
|
+ * 注册特定的 UI 组件
|
|
|
+ */
|
|
|
+ components?: Record<FlowRendererKey | string, MaterialReactComponent>;
|
|
|
/**
|
|
|
* 注册特定的节点渲染组件
|
|
|
*/
|
|
|
@@ -28,7 +32,7 @@ export const createMaterialsPlugin = definePluginCreator<MaterialsPluginOptions>
|
|
|
*/
|
|
|
registry.registerReactComponent(
|
|
|
FlowRendererKey.NODE_RENDER,
|
|
|
- opts.renderDefaultNode || (() => null),
|
|
|
+ opts.renderDefaultNode || (() => null)
|
|
|
);
|
|
|
|
|
|
/**
|
|
|
@@ -37,12 +41,20 @@ export const createMaterialsPlugin = definePluginCreator<MaterialsPluginOptions>
|
|
|
if (opts.renderTexts) {
|
|
|
registry.registerText(opts.renderTexts);
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 注册组件
|
|
|
+ */
|
|
|
+ if (opts.components) {
|
|
|
+ Object.keys(opts.components).forEach((key) =>
|
|
|
+ registry.registerReactComponent(key, opts.components![key])
|
|
|
+ );
|
|
|
+ }
|
|
|
/**
|
|
|
* 注册单节点渲染
|
|
|
*/
|
|
|
if (opts.renderNodes) {
|
|
|
- Object.keys(opts.renderNodes).forEach(key =>
|
|
|
- registry.registerReactComponent(key, opts.renderNodes![key]),
|
|
|
+ Object.keys(opts.renderNodes).forEach((key) =>
|
|
|
+ registry.registerReactComponent(key, opts.renderNodes![key])
|
|
|
);
|
|
|
}
|
|
|
},
|