diff --git a/src/container/EdgeRenderer/index.tsx b/src/container/EdgeRenderer/index.tsx index e3ba07bd..5de86c49 100644 --- a/src/container/EdgeRenderer/index.tsx +++ b/src/container/EdgeRenderer/index.tsx @@ -216,7 +216,7 @@ const EdgeRenderer = (props: EdgeRendererProps) => { const width = useStoreState((state) => state.width); const height = useStoreState((state) => state.height); - const { connectionLineStyle, connectionLineType, arrowHeadColor, connectionLineComponent } = props; + const { connectionLineType, arrowHeadColor, connectionLineStyle, connectionLineComponent } = props; if (!width) { return null; diff --git a/src/container/GraphView/index.tsx b/src/container/GraphView/index.tsx index ad5ecdc1..321f2853 100644 --- a/src/container/GraphView/index.tsx +++ b/src/container/GraphView/index.tsx @@ -60,8 +60,8 @@ export interface GraphViewProps { connectionLineStyle?: CSSProperties; connectionLineComponent?: ConnectionLineComponent; deleteKeyCode: number; - snapToGrid?: boolean; - snapGrid?: [number, number]; + snapToGrid: boolean; + snapGrid: [number, number]; onlyRenderVisibleNodes: boolean; nodesDraggable?: boolean; nodesConnectable?: boolean; @@ -69,8 +69,8 @@ export interface GraphViewProps { selectNodesOnDrag?: boolean; minZoom?: number; maxZoom?: number; - defaultZoom?: number; - defaultPosition?: [number, number]; + defaultZoom: number; + defaultPosition: [number, number]; translateExtent?: TranslateExtent; arrowHeadColor: string; markerEndId?: string; diff --git a/src/container/NodeRenderer/index.tsx b/src/container/NodeRenderer/index.tsx index bf99ac32..66125c1d 100644 --- a/src/container/NodeRenderer/index.tsx +++ b/src/container/NodeRenderer/index.tsx @@ -14,9 +14,9 @@ interface NodeRendererProps { onNodeContextMenu?: (event: MouseEvent, node: Node) => void; onNodeDragStart?: (event: MouseEvent, node: Node) => void; onNodeDragStop?: (event: MouseEvent, node: Node) => void; - onlyRenderVisibleNodes?: boolean; - snapToGrid?: boolean; - snapGrid?: [number, number]; + onlyRenderVisibleNodes: boolean; + snapToGrid: boolean; + snapGrid: [number, number]; } function renderNode( @@ -75,7 +75,7 @@ function renderNode( ); } -const NodeRenderer = ({ onlyRenderVisibleNodes = true, ...props }: NodeRendererProps) => { +const NodeRenderer = (props: NodeRendererProps) => { const nodes = useStoreState((s) => s.nodes); const transform = useStoreState((s) => s.transform); const selectedElements = useStoreState((s) => s.selectedElements); @@ -88,7 +88,7 @@ const NodeRenderer = ({ onlyRenderVisibleNodes = true, ...props }: NodeRendererP transform: `translate(${transform[0]}px,${transform[1]}px) scale(${transform[2]})`, }; - const renderNodes = onlyRenderVisibleNodes ? getNodesInside(nodes, viewportBox, transform, true) : nodes; + const renderNodes = props.onlyRenderVisibleNodes ? getNodesInside(nodes, viewportBox, transform, true) : nodes; return (
diff --git a/src/container/ReactFlow/index.tsx b/src/container/ReactFlow/index.tsx index c3c9eba6..0593fa8f 100644 --- a/src/container/ReactFlow/index.tsx +++ b/src/container/ReactFlow/index.tsx @@ -97,18 +97,16 @@ export interface ReactFlowProps extends Omit, 'on translateExtent?: TranslateExtent; arrowHeadColor?: string; markerEndId?: string; - zoomOnScroll: boolean; + zoomOnScroll?: boolean; zoomOnDoubleClick?: boolean; } const ReactFlow = ({ - style, - onElementClick, elements = [], className, - children, nodeTypes = defaultNodeTypes, edgeTypes = defaultEdgeTypes, + onElementClick, onLoad, onMove, onMoveStart, @@ -134,13 +132,13 @@ const ReactFlow = ({ connectionLineComponent, deleteKeyCode = 8, selectionKeyCode = 16, - snapToGrid, - snapGrid, + snapToGrid = false, + snapGrid = [15, 15], onlyRenderVisibleNodes = true, + selectNodesOnDrag = true, nodesDraggable, nodesConnectable, elementsSelectable, - selectNodesOnDrag = true, minZoom, maxZoom, defaultZoom = 1, @@ -154,13 +152,15 @@ const ReactFlow = ({ onPaneClick, onPaneScroll, onPaneContextMenu, + children, + ...rest }: ReactFlowProps) => { - const nodeTypesParsed = useMemo(() => createNodeTypes(nodeTypes), [nodeTypes]); - const edgeTypesParsed = useMemo(() => createEdgeTypes(edgeTypes), [edgeTypes]); + const nodeTypesParsed = useMemo(() => createNodeTypes(nodeTypes), []); + const edgeTypesParsed = useMemo(() => createEdgeTypes(edgeTypes), []); const reactFlowClasses = cc(['react-flow', className]); return ( -
+
{ - state.snapGrid = snapGrid; + state.snapGrid[0] = snapGrid[0]; + state.snapGrid[1] = snapGrid[1]; }), setInteractive: action((state, isInteractive) => {