All files / src/pages/flowsheet-page/flowsheet/Canvas/Nodes LogicBlockGraphic.tsx

90.9% Statements 10/11
78.57% Branches 11/14
100% Functions 2/2
90.9% Lines 10/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66          45x 59x 59x   59x                     59x             59x               59x 59x   59x           59x                                          
import React from "react";
 
import { Line,Text } from "./HelperFunctions.tsx";
import { GenericObjectGraphicProps } from "@/hooks/graphicTypes.ts";
 
const LogicBlockGraphic = (props: GenericObjectGraphicProps) => {
const gObj = props.graphicObject;
  const width = gObj.width!;
 
  const points = [
    0,
    width / 2,
    width / 2,
    0,
    width,
    width / 2,
    width / 2,
    width,
  ];
 
  const fill = props.disabled
    ? "#aaaaaa"
    : props.isSelected
      ? "#3a4869"
      : props.isHovered
        ? "#505050"
        : "#404040";
  const stroke = props.disabled
    ? "#aaaaaa"
    : props.highlight
      ? "#26967f"
      : props.isSelected
        ? "#1077c4"
        : "#404040";
 
  const character = (() => {
    switch (props.simulationObject.objectType) {
      case "recycle":
        return "R";
      default:
        return "";
    }
  })();
 
  return <>
   <Line
        points={points}
        fill={fill}
        stroke={stroke}
        strokeWidth={2}
      />
      <Text
        listening={false}
        align="center"
        verticalAlign="middle"
        width={width}
        height={width}
        text={character}
        fontSize={14}
        fontFamily="Inter"
        fill="#fff"
        fontStyle="bold"
      />
  </>;
};
export default LogicBlockGraphic;