"use client"; import { useEditor } from "@/hooks/use-editor"; import type { SnapLine } from "@/lib/preview/preview-snap"; import { positionToOverlay } from "@/lib/preview/preview-coords"; export function SnapGuides({ lines, canvasRef, containerRef, }: { lines: SnapLine[]; canvasRef: React.RefObject; containerRef: React.RefObject; }) { const editor = useEditor(); const canvasSize = editor.project.getActive().settings.canvasSize; const canvasRect = canvasRef.current?.getBoundingClientRect(); const containerRect = containerRef.current?.getBoundingClientRect(); if (!canvasRect || !containerRect || lines.length === 0) { return null; } const toOverlayX = (logicalX: number) => positionToOverlay({ positionX: logicalX, positionY: 0, canvasRect, containerRect, canvasSize, }).x; const toOverlayY = (logicalY: number) => positionToOverlay({ positionX: 0, positionY: logicalY, canvasRect, containerRect, canvasSize, }).y; return (
{lines.map((line) => { if (line.type === "vertical") { return (
); } return (
); })}
); }