import { clientId, q } from "@thorium/context/AppContext";
import { useStation } from "@thorium/routes/station/useStation";
import { Icon } from "@thorium/ui/Icon";
import { Tooltip } from "@thorium/ui/Tooltip";
import { cn } from "@thorium/utils/cn";
import { useLiveQuery } from "@thorium/utils/live-query/client";
import { useShipMapStore } from "./useShipMapStore";
export function CargoContainerList() {
const { shipId } = useStation();
const [cargoContainers] = q.cargoControl.containers.useNetRequest({ shipId });
return (
{cargoContainers.map((container) => (
))}
);
}
function CargoContainer({
container,
}: {
container: {
id: number;
destinationNode: number | null;
entityState: "idle" | "enRoute";
};
}) {
const { shipId } = useStation();
const [cargoRooms] = q.cargoControl.rooms.useNetRequest({ shipId });
const { rooms } = cargoRooms;
const selectedRoomId = useShipMapStore((state) => state.selectedRoomId);
const { interpolate } = useLiveQuery();
const selectedContainerId = useShipMapStore((state) => state.selectedContainerId);
const isSelected = container.id === selectedContainerId;
const inRoom = container.destinationNode === selectedRoomId;
const destinationRoom = rooms.find((room) => room.id === container.destinationNode);
return (
);
}