'use client' import React, { useState } from 'react' import Konva from 'konva' import { Group, Rect } from 'react-konva' import { KonvaEventObject } from 'konva/lib/Node' import { entities } from '../../wailsjs/wailsjs/go/models' import { useProject } from '../../context/Project/provider' import AreaContextMenu from './AreaContextMenu' import { useStage } from './context/provider' type Props = { isActive: boolean, area: entities.Area, } type coordinates = { x: number, y: number } const Area = (props: Props) => { const { selectedAreaId, setSelectedAreaId } = useProject() const { scale } = useStage() const shapeRef = React.useRef(null) const [isAreaContextMenuOpen, setIsAreaContextMenuOpen] = useState(false) const [areaContextMenuPosition, setAreaContextMenuPosition] = useState() const { area, isActive } = props const a = area const width = (a.endX - a.startX) const height = (a.endY - a.startY) const handleContextMenu = (e: KonvaEventObject) => { e.evt.preventDefault() const stage = e.currentTarget.getStage() const pointerPosition = stage?.getRelativePointerPosition() if (!pointerPosition) return const x = pointerPosition.x + 4 const y = pointerPosition.y + 4 setAreaContextMenuPosition({ x, y }) setIsAreaContextMenuOpen(true) } const handleAreaClick = (areaId: string) => { if (areaId === selectedAreaId) setSelectedAreaId('') else setSelectedAreaId(areaId) } return handleAreaClick(a.id)} onContextMenu={handleContextMenu} isArea /> {isAreaContextMenuOpen ? : <> } } export default Area