import React from 'react'; import classNames from 'classnames'; import {getMetricValue, getMetricColor, getClipPathDefinition} from '../utils/metric-utils.js'; import {CANVAS_METRIC_FONT_SIZE} from '../constants/styles.js'; export default function NodeShapeSquare({ id, highlighted, size, color, rx = 0, ry = 0, metric }) { const rectProps = (scale, radiusScale) => ({ width: scale * size * 2, height: scale * size * 2, rx: (radiusScale || scale) * size * rx, ry: (radiusScale || scale) * size * ry, x: -size * scale, y: -size * scale }); const clipId = `mask-${id}`; const {height, hasMetric, formattedValue} = getMetricValue(metric, size); const metricStyle = { fill: getMetricColor(metric) }; const className = classNames('shape', { metrics: hasMetric }); const fontSize = size * CANVAS_METRIC_FONT_SIZE; return ( {hasMetric && getClipPathDefinition(clipId, size, height)} {highlighted && } {hasMetric && } {highlighted && hasMetric ? {formattedValue} : } ); }