'use client' import React from 'react' import { Group, Line } from 'react-konva' import { useProject } from '../../../context/Project/provider' import { useStage } from '../context/provider' const ConnectionLines = () => { const { scale } = useStage() const { getSelectedDocument, contextGroups } = useProject() const areas = getSelectedDocument()?.areas || [] const renderLines = () => { console.log('contextGroups', contextGroups) if (!contextGroups?.length) return <> const linesAlreadyRendered = new Set() const lines = contextGroups.map((contextGroup) => { const currentArea = areas.find(a => a.id === contextGroup.areaId) const nextArea = areas.find(a => a.id === contextGroup.nextId) if (!currentArea || !nextArea) return if (linesAlreadyRendered.has(`${contextGroup.areaId}-${contextGroup.nextId}`)) return if (linesAlreadyRendered.has(`${contextGroup.nextId}-${contextGroup.areaId}`)) return const startingPoint = { x: ((currentArea.startX + currentArea.endX) * scale) / 2, y: currentArea.startY * scale } const startingTensionPoint = { x: (startingPoint.x + (nextArea.startX * scale)) / 2, y: startingPoint.y, } const endingPoint = { x: ((nextArea.startX + nextArea.endX) * scale) / 2, y: nextArea.endY * scale } const endingTensionPoint = { x: (startingPoint.x + (nextArea.startX * scale)) / 2, y: endingPoint.y, } linesAlreadyRendered.add(`${contextGroup.areaId}-${contextGroup.nextId}`) linesAlreadyRendered.add(`${contextGroup.nextId}-${contextGroup.areaId}`) return }) return lines.filter(l => !!l) } return {renderLines()} } export default ConnectionLines