diff --git a/src/views/MonitorView/MonitorView.vue b/src/views/MonitorView/MonitorView.vue index 6a60119..288ded5 100644 --- a/src/views/MonitorView/MonitorView.vue +++ b/src/views/MonitorView/MonitorView.vue @@ -524,20 +524,20 @@ function bindingEndpoints() { if (!selectedId.value) return null const asset = devices.asset(selectedId.value) if (!asset) return null - let dock = null - let drone = null + let dockAsset = null + let droneAsset = null if (asset.type === 'dock') { - dock = asset - const child = (asset.children || []).map((c) => devices.asset(c.id || c)).find((a) => a && !a.inDock && a.hasCoordinates) - drone = child || null + dockAsset = asset + const dockRec = devices.record(asset.id) + const flying = devices.drones.find((d) => d.dockId === dockRec?.dockId && d.statusClass === 'mission') + droneAsset = flying ? devices.asset(flying.id) : null } else { - drone = asset.inDock ? null : asset - dock = asset.parent ? devices.asset(asset.parent) : null + droneAsset = asset.inDock ? null : asset + dockAsset = asset.parent ? devices.asset(asset.parent) : null } - if (!dock?.hasCoordinates || !drone?.hasCoordinates) return null - if (drone.inDock) return null - const a = [Number(dock.longitude), Number(dock.latitude)] - const b = [Number(drone.longitude), Number(drone.latitude)] + if (!dockAsset?.hasCoordinates || !droneAsset?.hasCoordinates || droneAsset.inDock) return null + const a = [Number(dockAsset.longitude), Number(dockAsset.latitude)] + const b = [Number(droneAsset.longitude), Number(droneAsset.latitude)] if (!a.every(Number.isFinite) || !b.every(Number.isFinite)) return null return [a, b] }