import React from 'react'; import styled from "styled-components"; import { mapRect } from "../../helpers/inputHelpers"; interface HighlighterProps { unmodifiedRect: DOMRect; displayedSelector: string; width: number; height: number; canvasRect: DOMRect; }; export const Highlighter = ({ unmodifiedRect, displayedSelector = '', width, height, canvasRect}: HighlighterProps) => { if (!unmodifiedRect) { return null; } else { // const unshiftedRect = mapRect(unmodifiedRect, width, height); // console.log('unshiftedRect', unshiftedRect) // const rect = { // bottom: unshiftedRect.bottom + canvasRect.top, // top: unshiftedRect.top + canvasRect.top, // left: unshiftedRect.left + canvasRect.left, // right: unshiftedRect.right + canvasRect.left, // x: unshiftedRect.x + canvasRect.left, // y: unshiftedRect.y + canvasRect.top, // width: unshiftedRect.width, // height: unshiftedRect.height, // } const rect = { top: unmodifiedRect.top + canvasRect.top, left: unmodifiedRect.left + canvasRect.left, right: unmodifiedRect.right + canvasRect.left, bottom: unmodifiedRect.bottom + canvasRect.top, width: unmodifiedRect.width, height: unmodifiedRect.height, }; const adjustedWidth = Math.min(rect.width, width - rect.left); // Adjust width if it extends beyond canvas boundary const adjustedHeight = Math.min(rect.height, height - rect.top); // Adjust height if it extends beyond canvas boundary console.log('unmodifiedRect:', unmodifiedRect) console.log('rectangle:', rect) console.log('canvas rectangle:', canvasRect) // make the highlighting rectangle stay in browser window boundaries // if (rect.bottom > canvasRect.bottom) { // rect.height = height - unshiftedRect.top; // } // if (rect.top < canvasRect.top) { // rect.height = rect.height - (canvasRect.top - rect.top); // rect.top = canvasRect.top; // } // if (rect.right > canvasRect.right) { // rect.width = width - unshiftedRect.left; // } // if (rect.left < canvasRect.left) { // rect.width = rect.width - (canvasRect.left - rect.left); // rect.left = canvasRect.left; // } return (