54 lines
1.0 KiB
TypeScript
54 lines
1.0 KiB
TypeScript
import React, { memo, CSSProperties } from 'react';
|
|
import cc from 'classcat';
|
|
|
|
interface MiniMapNodeProps {
|
|
x: number;
|
|
y: number;
|
|
width: number;
|
|
height: number;
|
|
borderRadius: number;
|
|
className: string;
|
|
color: string;
|
|
shapeRendering: string;
|
|
strokeColor: string;
|
|
strokeWidth: number;
|
|
style?: CSSProperties;
|
|
}
|
|
|
|
const MiniMapNode = ({
|
|
x,
|
|
y,
|
|
width,
|
|
height,
|
|
style,
|
|
color,
|
|
strokeColor,
|
|
strokeWidth,
|
|
className,
|
|
borderRadius,
|
|
shapeRendering,
|
|
}: MiniMapNodeProps) => {
|
|
const { background, backgroundColor } = style || {};
|
|
const fill = (color || background || backgroundColor) as string;
|
|
|
|
return (
|
|
<rect
|
|
className={cc(['react-flow__minimap-node', className])}
|
|
x={x}
|
|
y={y}
|
|
rx={borderRadius}
|
|
ry={borderRadius}
|
|
width={width}
|
|
height={height}
|
|
fill={fill}
|
|
stroke={strokeColor}
|
|
strokeWidth={strokeWidth}
|
|
shapeRendering={shapeRendering}
|
|
/>
|
|
);
|
|
};
|
|
|
|
MiniMapNode.displayName = 'MiniMapNode';
|
|
|
|
export default memo(MiniMapNode);
|