import { ResizeControlVariant, XY_RESIZER_HANDLE_POSITIONS, XY_RESIZER_LINE_POSITIONS } from '@xyflow/system'; import { NodeResizeControl } from './NodeResizeControl'; import type { NodeResizerProps } from './types'; /** * The `` component can be used to add a resize functionality to your *nodes. It renders draggable controls around the node to resize in all directions. * @public * * @example *```jsx *import { memo } from 'react'; *import { Handle, Position, NodeResizer } from '@xyflow/react'; * *function ResizableNode({ data }) { * return ( * <> * * *
{data.label}
* * * ); *}; * *export default memo(ResizableNode); *``` */ export function NodeResizer({ nodeId, isVisible = true, handleClassName, handleStyle, lineClassName, lineStyle, color, minWidth = 10, minHeight = 10, maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = false, shouldResize, onResizeStart, onResize, onResizeEnd, }: NodeResizerProps) { if (!isVisible) { return null; } return ( <> {XY_RESIZER_LINE_POSITIONS.map((position) => ( ))} {XY_RESIZER_HANDLE_POSITIONS.map((position) => ( ))} ); }