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 67 68 69 70 71 72 73 74 75 76 77 78 79 | 13x 13x 13x 13x 13x 13x 1x 1x 1x 1x 1x 13x 1x 1x 13x 1x 13x 1x | import { Button } from "@/ahuora-design-system/ui/button";
import {
usePinchCalculateCreateMutation,
usePinchExtractCreateMutation,
} from "@/api/apiStore.gen";
import { useSearchParam } from "@/hooks/searchParams";
import { toast } from "sonner";
import { useParseExcel } from "./OpenPinch";
import { CSVUploaderButton } from "../multi-steady-state/CSVUploader";
import { useCurrentGroupId } from "@/hooks/flowsheetObjects";
import { cn } from "@/lib/utils";
function PinchTabs({ editing, handleNotEdit, excludedSegments, setExcludedSegments }) {
const [currentProject] = useSearchParam("pinch");
const [tab, setTab] = useSearchParam("pinchTab", "streams");
const handleExcelUpload = useParseExcel();
const [calculatePinch] = usePinchCalculateCreateMutation();
const [extractData] = usePinchExtractCreateMutation();
const handleCalculatePinch = () => {
calculatePinch({
pinchRequest: { excludedSegments },
}).unwrap()
.then(() => toast.success("Calculated Successfully"))
.catch((error) => toast.error(`Analysis failed with: ${error.data.details}`))
setTab("targets");
setExcludedSegments([]);
handleNotEdit()
}
const handleExtractData = () => {
extractData()
.unwrap()
.then(() => toast.success("Extracted Stream Data from Flowsheet"))
.catch((error) => toast.error(`Extraction failed with: ${error.data.message}`))
}
const handleTabSelect = (tab: string) => {
setTab(tab);
};
return (
<div className="flex flex-row justify-between">
<div className="flex flex-row gap-5 items-center">
<div
className={cn(tab == "streams" && "border-b-2 border-primary", "h-6 cursor-pointer")}
onClick={() => handleTabSelect("streams")}
key="streams"
>
<p>Streams</p>
</div>
<div
className={cn(tab == "utilities" && "border-b-2 border-primary", "h-6 cursor-pointer")}
onClick={() => handleTabSelect("utilities")}
key="utilities"
>
<p>Utilities</p>
</div>
<div
className={cn(tab == "targets" && "border-b-2 border-primary", "h-6 cursor-pointer")}
onClick={() => handleTabSelect("targets")}
key="targets"
>
<p>Targets</p>
</div>
</div>
<div className="flex flex-row gap-4 m-0 p-0 items-center">
<Button onClick={handleExtractData}>Extract</Button>
<CSVUploaderButton onUpload={handleExcelUpload} fileExtension=".xlsb, .xlsx" buttonText="From OpenPinch" label="openpinch-excel-upload" />
<Button className={editing ? 'bg-yellow-500 hover:bg-yellow-500/80' : ''} onClick={handleCalculatePinch}>Calculate</Button>
</div>
</div>
)
}
export default PinchTabs;
|