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 80 81 | 103x 168x 42x 42x 42x 42x 42x 42x 42x 42x 18x 42x 42x 42x 42x 504x 168x 252x 168x | import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectLabel,
SelectTrigger,
SelectValue,
} from "@/ahuora-design-system/ui/select";
import {
ObjectTypeEnum,
SimulationObjectRetrieveRead,
} from "@/api/apiStore.gen";
const STREAM_OBJECT_TYPES = new Set<ObjectTypeEnum>([
ObjectTypeEnum.Stream,
ObjectTypeEnum.HumidAirStream,
ObjectTypeEnum.EnergyStream,
ObjectTypeEnum.AcStream,
ObjectTypeEnum.TransformerStream,
]);
export function ResultObjectPicker({
objects,
onObjectChange,
selectedObjectId,
}: {
objects: SimulationObjectRetrieveRead[];
onObjectChange: (objectId: string) => void;
selectedObjectId: number | undefined;
}) {
const selectableObjects = objects.filter(
(object) => object.objectType !== ObjectTypeEnum.Group,
);
const streamObjects = selectableObjects.filter((object) =>
STREAM_OBJECT_TYPES.has(object.objectType),
);
const unitOperationObjects = selectableObjects.filter(
(object) => !STREAM_OBJECT_TYPES.has(object.objectType),
);
return (
<div className="flex min-w-0 items-center gap-2">
<span className="text-sm font-medium text-muted-foreground">Object</span>
<Select
value={selectedObjectId ? String(selectedObjectId) : undefined}
onValueChange={onObjectChange}
>
<SelectTrigger
aria-label="Scenario result object"
className="h-8 w-52 rounded-md border px-2 py-1 text-sm"
>
<SelectValue placeholder="Select object" />
</SelectTrigger>
<SelectContent>
{streamObjects.length > 0 && (
<SelectGroup>
<SelectLabel>Streams</SelectLabel>
{streamObjects.map((object) => (
<SelectItem key={object.id} value={String(object.id)}>
{object.componentName}
</SelectItem>
))}
</SelectGroup>
)}
{unitOperationObjects.length > 0 && (
<SelectGroup>
<SelectLabel>Unit operations</SelectLabel>
{unitOperationObjects.map((object) => (
<SelectItem key={object.id} value={String(object.id)}>
{object.componentName}
</SelectItem>
))}
</SelectGroup>
)}
</SelectContent>
</Select>
</div>
);
}
|