index.tsx 1013 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
  3. * SPDX-License-Identifier: MIT
  4. */
  5. import '@flowgram.ai/fixed-layout-editor/index.css';
  6. import './index.less';
  7. import classNames from 'classnames';
  8. import { FlowNodeEntity, useNodeRender } from '@flowgram.ai/fixed-layout-editor';
  9. import { useNodeStatus } from '@/hooks/use-node-loading';
  10. export const NodeRender = ({ node }: { node: FlowNodeEntity }) => {
  11. const { onMouseEnter, onMouseLeave, form, dragging, isBlockOrderIcon, isBlockIcon, activated } =
  12. useNodeRender();
  13. const { className } = useNodeStatus();
  14. return (
  15. <div
  16. className={classNames('node-render', className, {
  17. 'node-render-activated': activated,
  18. 'node-render-dragging': dragging,
  19. 'node-render-block-order-icon': isBlockOrderIcon,
  20. 'node-render-block-icon': isBlockIcon,
  21. })}
  22. onMouseEnter={onMouseEnter}
  23. onMouseLeave={onMouseLeave}
  24. >
  25. <div className="node-form">{form?.render()}</div>
  26. </div>
  27. );
  28. };