All files / src/pages/flowsheet-page/pinch-analysis PinchAnalysis.tsx

80% Statements 8/10
100% Branches 0/0
50% Functions 2/4
80% Lines 8/10

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                              143x 143x 143x   143x       143x 3x     143x             143x                                  
import { useCallback, useState } from "react";
import { useSearchParam } from "@/hooks/searchParams";
import { PinchLeftSideBar } from "../flowsheet/LeftSideBar/PinchLeftSideBar";
import { ResizablePanel } from "../flowsheet/Resizables";
import HenDiagramsPage from "./hen-generation/HENDiagramsPage";
import PinchTabs from "./PinchTabs";
import SegmentTable from "./SegmentTable";
import TargetsPage from "./TargetsPage";
import UtilityInputTable from "./UtilityInput";
 
function EmptyTab({ name }: { name: string }) {
  return <div className="">{name}</div>;
}
 
export default function PinchAnalysis() {
  const [tab] = useSearchParam("pinchTab", "streams");
  const [editing, setEditing] = useState(false);
  const [excludedSegments, setExcludedSegments] = useState<number[]>([]);
 
  const handleEdit = useCallback(() => {
    setEditing(true);
  }, []);
 
  const handleNotEdit = useCallback(() => {
    setEditing(false);
  }, []);
 
  const tabs = {
    streams: <SegmentTable setExcludedSegments={setExcludedSegments} />,
    utilities: <UtilityInputTable handleEdit={handleEdit} />,
    targets: <TargetsPage />,
    hens: <HenDiagramsPage />,
  };
 
  return (
    <>
      <PinchLeftSideBar tab={tab}></PinchLeftSideBar>
      <ResizablePanel.MiddlePanel>
        <div className="h-full p-4 flex flex-col gap-4 overflow-hidden">
          <PinchTabs
            handleNotEdit={handleNotEdit}
            editing={editing}
            excludedSegments={excludedSegments}
            setExcludedSegments={setExcludedSegments}
          />
          {tabs[tab!]}
        </div>
      </ResizablePanel.MiddlePanel>
    </>
  );
}