| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import '@flowgram.ai/fixed-layout-editor/index.css';
- import { defaultFixedSemiMaterials } from '@flowgram.ai/fixed-semi-materials';
- import {
- FixedLayoutEditorProvider,
- EditorRenderer,
- FlowNodeEntity,
- useNodeRender,
- } from '@flowgram.ai/fixed-layout-editor';
- export const NodeRender = ({ node }: { node: FlowNodeEntity }) => {
- const {
- onMouseEnter,
- onMouseLeave,
- startDrag,
- form,
- dragging,
- isBlockOrderIcon,
- isBlockIcon,
- activated,
- } = useNodeRender();
- return (
- <div
- onMouseEnter={onMouseEnter}
- onMouseLeave={onMouseLeave}
- onMouseDown={(e) => {
- startDrag(e);
- e.stopPropagation();
- }}
- style={{
- width: 280,
- minHeight: 88,
- height: 'auto',
- background: '#fff',
- border: '1px solid rgba(6, 7, 9, 0.15)',
- borderColor: activated ? '#82a7fc' : 'rgba(6, 7, 9, 0.15)',
- borderRadius: 8,
- boxShadow: '0 2px 6px 0 rgba(0, 0, 0, 0.04), 0 4px 12px 0 rgba(0, 0, 0, 0.02)',
- display: 'flex',
- flexDirection: 'column',
- justifyContent: 'center',
- position: 'relative',
- padding: 12,
- cursor: 'move',
- opacity: dragging ? 0.3 : 1,
- ...(isBlockOrderIcon || isBlockIcon ? { width: 260 } : {}),
- }}
- >
- {form?.render()}
- </div>
- );
- };
- const FlowGramApp = () => (
- <FixedLayoutEditorProvider
- nodeRegistries={[
- {
- type: 'custom',
- },
- ]}
- initialData={{
- nodes: [
- {
- id: 'custom_0',
- type: 'custom',
- },
- ],
- }}
- materials={{
- renderDefaultNode: NodeRender,
- components: defaultFixedSemiMaterials,
- }}
- >
- <EditorRenderer />
- </FixedLayoutEditorProvider>
- );
- export default FlowGramApp;
|