import { Diamond, RectSide } from "@/statecharts/concrete_syntax"; import { rountangleMinSize } from "@/statecharts/concrete_syntax"; import { Vec2D } from "../../util/geometry"; import { RectHelper } from "./RectHelpers"; import { memo } from "react"; import { arraysEqual } from "@/util/util"; export const DiamondShape = memo(function DiamondShape(props: {size: Vec2D, extraAttrs: object}) { const minSize = rountangleMinSize(props.size); return ; }); export const DiamondSVG = memo(function DiamondSVG(props: { diamond: Diamond; selected: RectSide[]; highlight: RectSide[]; error?: string; active: boolean; }) { const minSize = rountangleMinSize(props.diamond.size); const extraAttrs = { className: '' + (props.selected.length === 4 ? " selected" : "") + (props.error ? " error" : "") + (props.active ? " active" : ""), "data-uid": props.diamond.uid, "data-parts": "left top right bottom", }; return {props.diamond.uid} ; }, (prevProps, nextProps) => { return prevProps.diamond === nextProps.diamond && arraysEqual(prevProps.selected, nextProps.selected) && arraysEqual(prevProps.highlight, nextProps.highlight) && prevProps.error === nextProps.error && prevProps.active === nextProps.active });