@nocobase/flow-engine
Version:
A standalone flow engine for NocoBase, managing workflows, models, and actions.
35 lines (31 loc) • 993 B
text/typescript
/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
export default {
contexts: ['JSBlockRunJSContext'],
prefix: 'sn-jsb-react',
label: 'Render React',
content: `
// Render a React element into ctx.element via ReactDOM
const { React, ReactDOM, antd } = ctx;
const { Button } = antd;
// Unmount previous render to allow repeated runs
if (ctx.__reactRoot?.unmount) {
try { ctx.__reactRoot.unmount(); } catch(_) {}
ctx.__reactRoot = undefined;
}
const node = React.createElement(
'div',
{ style: { padding: 12 } },
React.createElement(Button, { type: 'primary', onClick: () => ctx.message.success(ctx.t('Clicked!')) }, ctx.t('Click')),
);
const root = ReactDOM.createRoot(ctx.element);
root.render(node);
ctx.__reactRoot = root;
`,
};