This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user