import { useMemo } from 'react' import { cableTypesForConnection, getPortType } from '../../domain/diagram' import { useCatalogStore } from '../../state/catalogStore' import { useDiagramStore } from '../../state/diagramStore' export default function ConnectionInspector({ connectionId }: { connectionId: string }) { const diagram = useDiagramStore((s) => s.diagram) const catalog = useCatalogStore((s) => s.catalog) const access = useDiagramStore((s) => s.access) const canEdit = access?.myPermission !== 'view' const updateConnection = useDiagramStore((s) => s.updateConnection) const removeConnection = useDiagramStore((s) => s.removeConnection) const connection = diagram.connections.find((c) => c.id === connectionId) const sourceDevice = diagram.devices.find((d) => d.id === connection?.sourceDeviceId) const targetDevice = diagram.devices.find((d) => d.id === connection?.targetDeviceId) const sourcePort = sourceDevice?.ports.find((p) => p.id === connection?.sourcePortId) const targetPort = targetDevice?.ports.find((p) => p.id === connection?.targetPortId) const availableCableTypes = useMemo(() => { if (!sourcePort || !targetPort) return [] const sourcePortType = getPortType(catalog, sourcePort.portTypeId) const targetPortType = getPortType(catalog, targetPort.portTypeId) return sourcePortType && targetPortType ? cableTypesForConnection(catalog, sourcePortType, targetPortType) : [] }, [catalog, sourcePort, targetPort]) const cableCostPerUnit = availableCableTypes.find((ct) => ct.id === connection?.cableTypeId)?.costPerUnit if (!connection || !sourceDevice || !targetDevice || !sourcePort || !targetPort) return null return (
) }