From 3f5dfa9ee914686eadb81f235944b5df4f4e62d8 Mon Sep 17 00:00:00 2001 From: RobPruzan Date: Sat, 30 Nov 2024 08:46:14 -0500 Subject: [PATCH 1/2] broken --- react-scan-0.0.35.tgz | Bin 0 -> 118298 bytes src/core/index.ts | 4 + .../inspect-element/inspect-state-machine.ts | 3 +- src/core/web/mini-map/canvas.ts | 203 ++++++++++++++++++ 4 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 react-scan-0.0.35.tgz create mode 100644 src/core/web/mini-map/canvas.ts diff --git a/react-scan-0.0.35.tgz b/react-scan-0.0.35.tgz new file mode 100644 index 0000000000000000000000000000000000000000..67be66a9ab0a73db4c78f3343cc5135fcf0be4d3 GIT binary patch literal 118298 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

uQ$Cq;KI}W2?XH;w(d`q(+TB(UR&`FX#6EKC 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 z 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%0Db^DIXK;I^lHq=5hJg)tb1?FNOS`L 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 Xf7U { } const ctx = overlayElement.getContext(); createInspectElementStateMachine(); + createMinimapCanvas() const audioContext = typeof window !== 'undefined' @@ -405,3 +408,4 @@ export const getRenderInfo = (type: unknown) => { } return null; }; + diff --git a/src/core/web/inspect-element/inspect-state-machine.ts b/src/core/web/inspect-element/inspect-state-machine.ts index 9099a408..1063fb2b 100644 --- a/src/core/web/inspect-element/inspect-state-machine.ts +++ b/src/core/web/inspect-element/inspect-state-machine.ts @@ -1,4 +1,5 @@ import { type Internals, ReactScanInternals } from '../../index'; + import { throttle } from '../utils'; import { didFiberRender } from '../../instrumentation/fiber'; import { restoreSizeFromLocalStorage } from '../toolbar'; @@ -35,7 +36,7 @@ export const INSPECT_OVERLAY_CANVAS_ID = 'react-scan-inspect-canvas'; let lastHoveredElement: HTMLElement; let animationId: ReturnType; -type Kinds = States['kind']; +export type Kinds = States['kind']; export const createInspectElementStateMachine = () => { if (typeof window === 'undefined') { return; diff --git a/src/core/web/mini-map/canvas.ts b/src/core/web/mini-map/canvas.ts new file mode 100644 index 00000000..ad26bc7c --- /dev/null +++ b/src/core/web/mini-map/canvas.ts @@ -0,0 +1,203 @@ +import { ReactScanInternals, type Internals } from '../../index'; + +const MINIMAP_HEIGHT = 400; +const MINIMAP_WIDTH = 300; +const MINIMAP_CANVAS_ID = 'react-scan-minimap-canvas'; + +const getVisibleBoundsRelativeToContainer = (element: HTMLElement): DOMRect => { + // this is wrong, we need a way to arbitrarily calculate the range of visible pixels + // given in the viewport or blocked by a scroll container + // maybe helpful? https://stackoverflow.com/questions/704758/how-do-i-check-if-an-element-is-really-visible-with-javascript + // https://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen + const elementRect = element.getBoundingClientRect(); + const viewportRect = new DOMRect(0, 0, window.innerWidth, window.innerHeight); + + const x1 = Math.max(elementRect.left, viewportRect.left); + const y1 = Math.max(elementRect.top, viewportRect.top); + const x2 = Math.min(elementRect.right, viewportRect.right); + const y2 = Math.min(elementRect.bottom, viewportRect.bottom); + + const width = x2 - x1; + const height = y2 - y1; + + return new DOMRect(x1, y1, width, height); +}; + +const hasOverflowChildren = (element: HTMLElement): boolean => { + // todo + return true; +}; + +const drawMinimapInsideViewportWindow = ( + ctx: CanvasRenderingContext2D, + minimap: { + topLeft: [number, number]; + bottomRight: [number, number]; + scaleFn: (x: number, y: number) => [number, number]; + }, + element: HTMLElement, +) => { + const visibleBounds = getVisibleBoundsRelativeToContainer(element); + + // a little ugly, but from world, to canvas + const [x1, y1] = minimap.scaleFn(visibleBounds.left, visibleBounds.top); + const [x2, y2] = minimap.scaleFn(visibleBounds.right, visibleBounds.bottom); + + const width = x2 - x1; + const height = y2 - y1; + + ctx.strokeStyle = 'red'; + ctx.lineWidth = 2; + ctx.strokeRect(x1, y1, width, height); +}; + +const drawMinimap = ( + ctx: CanvasRenderingContext2D, + minimap: { + topLeft: [number, number]; + bottomRight: [number, number]; + scaleFn: (x: number, y: number) => [number, number]; + }, + element: HTMLElement, +) => { + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + + drawChildren(element, 20, ctx, minimap.scaleFn); +}; + +const drawChildren = ( + element: HTMLElement, + depth = 20, + ctx: CanvasRenderingContext2D, + scaleFn: (x: number, y: number) => [number, number], +) => { + if (depth === 0) return; + + const rect = element.getBoundingClientRect(); + + const [x1, y1] = scaleFn(rect.left, rect.top); + const [x2, y2] = scaleFn(rect.right, rect.bottom); + + const width = x2 - x1; + const height = y2 - y1; + + ctx.strokeStyle = 'rgba(0, 0, 255, 0.5)'; + ctx.lineWidth = 1; + ctx.strokeRect(x1, y1, width, height); + + const children = Array.from(element.children) as HTMLElement[]; + for (const child of children) { + drawChildren(child, depth - 1, ctx, scaleFn); + } +}; + +export const createMinimapCanvas = () => { + if (typeof window === 'undefined') return; + + let canvas = document.getElementById( + MINIMAP_CANVAS_ID, + ) as HTMLCanvasElement | null; + if (!canvas) { + canvas = document.createElement('canvas'); + canvas.id = MINIMAP_CANVAS_ID; + canvas.width = MINIMAP_WIDTH; + canvas.height = MINIMAP_HEIGHT; + canvas.style.cssText = ` + position: fixed; + right: 24px; + top: 24px; /* Positioning from top */ + pointer-events: none; + z-index: 2147483646; + background: rgba(0, 0, 0, 0.8); + border-radius: 4px; + `; + document.documentElement.appendChild(canvas); + } + + const ctx = canvas.getContext('2d'); + if (!ctx) return; + + const unsubscribeFns: Partial< + Record void> + > = {}; + + const unsubscribeAll = () => { + Object.values(unsubscribeFns).forEach((unSub) => unSub?.()); + }; + + ReactScanInternals.subscribeMultiple(['inspectState'], (store: Internals) => { + unsubscribeAll(); + + const unSub = (() => { + const inspectState = store.inspectState; + + switch (inspectState.kind) { + case 'focused': { + const element = inspectState.focusedDomElement; + + // todo: hiding logic + + const contentRect = element.getBoundingClientRect(); + const contentWidth = Math.max(element.scrollWidth, contentRect.width); + const contentHeight = Math.max( + element.scrollHeight, + contentRect.height, + ); + + const scaleX = MINIMAP_WIDTH / contentWidth; + const scaleY = MINIMAP_HEIGHT / contentHeight; + const scale = Math.min(scaleX, scaleY); + + const toCanvasCoordinates = ( + x: number, + y: number, + ): [number, number] => { + const relativeX = x - contentRect.left + element.scrollLeft; + const relativeY = y - contentRect.top + element.scrollTop; + + return [relativeX * scale, relativeY * scale]; + }; + + const minimap: { + topLeft: [number, number]; + bottomRight: [number, number]; + scaleFn: (x: number, y: number) => [number, number]; + } = { + topLeft: [contentRect.left, contentRect.top], + bottomRight: [contentRect.right, contentRect.bottom], + scaleFn: toCanvasCoordinates, + }; + + let animationFrameId: number; + + const draw = () => { + drawMinimap(ctx, minimap, element); + drawMinimapInsideViewportWindow(ctx, minimap, element); + + animationFrameId = requestAnimationFrame(draw); + }; + + draw(); + + return () => { + cancelAnimationFrame(animationFrameId); + // canvas.style.display = 'none'; + }; + } + default: { + // canvas.style.display = 'none'; + return; + } + } + })(); + + if (unSub) { + unsubscribeFns[store.inspectState.kind] = unSub; + } + }); + + return () => { + unsubscribeAll(); + canvas.parentNode?.removeChild(canvas); + }; +}; From 975b8bb26b38132b6e7a6728a107c51a8b620d16 Mon Sep 17 00:00:00 2001 From: Aiden Bai Date: Sat, 30 Nov 2024 06:33:34 -0800 Subject: [PATCH 2/2] fix: maigc --- src/core/web/mini-map/canvas.ts | 351 ++++++++++++++++++++------------ src/core/web/toolbar.ts | 15 ++ 2 files changed, 233 insertions(+), 133 deletions(-) diff --git a/src/core/web/mini-map/canvas.ts b/src/core/web/mini-map/canvas.ts index ad26bc7c..e2270595 100644 --- a/src/core/web/mini-map/canvas.ts +++ b/src/core/web/mini-map/canvas.ts @@ -1,31 +1,83 @@ -import { ReactScanInternals, type Internals } from '../../index'; +import { ReactScanInternals } from '../../index'; -const MINIMAP_HEIGHT = 400; -const MINIMAP_WIDTH = 300; +const MINIMAP_MAX_HEIGHT = 200; +const MINIMAP_MIN_HEIGHT = 100; const MINIMAP_CANVAS_ID = 'react-scan-minimap-canvas'; -const getVisibleBoundsRelativeToContainer = (element: HTMLElement): DOMRect => { - // this is wrong, we need a way to arbitrarily calculate the range of visible pixels - // given in the viewport or blocked by a scroll container - // maybe helpful? https://stackoverflow.com/questions/704758/how-do-i-check-if-an-element-is-really-visible-with-javascript - // https://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen - const elementRect = element.getBoundingClientRect(); - const viewportRect = new DOMRect(0, 0, window.innerWidth, window.innerHeight); +const toCanvasCoordinates = ( + rootElement: HTMLElement, + scaleX: number, + scaleY: number, + dpr: number, +) => { + const rootRect = rootElement.getBoundingClientRect(); + + return (x: number, y: number): [number, number] => { + const relativeX = (x - rootRect.left) * scaleX / dpr; + const relativeY = (y - rootRect.top) * scaleY / dpr; + return [relativeX, relativeY]; + }; +}; + +const hasOverflowChildren = (element: HTMLElement, rootElement: HTMLElement): boolean => { + const rect = element.getBoundingClientRect(); + const rootRect = rootElement.getBoundingClientRect(); + + return ( + rect.bottom < rootRect.top || + rect.top > rootRect.bottom || + rect.right < rootRect.left || + rect.left > rootRect.right + ); +}; + +const drawChildren = ( + element: HTMLElement, + ctx: CanvasRenderingContext2D, + scaleFn: (x: number, y: number) => [number, number], + rootElement: HTMLElement, + depth = 100, +) => { + if (depth === 0) return; - const x1 = Math.max(elementRect.left, viewportRect.left); - const y1 = Math.max(elementRect.top, viewportRect.top); - const x2 = Math.min(elementRect.right, viewportRect.right); - const y2 = Math.min(elementRect.bottom, viewportRect.bottom); + const rect = element.getBoundingClientRect(); + if (!rect.width || !rect.height) return; + + const [x1, y1] = scaleFn(rect.left, rect.top); + const [x2, y2] = scaleFn(rect.right, rect.bottom); const width = x2 - x1; const height = y2 - y1; - return new DOMRect(x1, y1, width, height); -}; + if (width < 0 || height < 0) return; + + const isOffscreen = hasOverflowChildren(element, rootElement); + const activeOutline = ReactScanInternals.activeOutlines.find( + (ao) => ao.outline.domNode === element + ); + + if (activeOutline) { + const alpha = activeOutline.alpha; + ctx.strokeStyle = `rgba(147, 112, 219, ${alpha})`; + ctx.lineWidth = 1; + ctx.strokeRect(x1, y1, width, height); + } else { + // Only draw if there are active outlines somewhere + if (ReactScanInternals.activeOutlines.length > 0) { + ctx.strokeStyle = isOffscreen ? 'rgba(128, 128, 128, 0.3)' : 'rgba(147, 112, 219, 0.3)'; + ctx.lineWidth = 1; + ctx.strokeRect(x1, y1, width, height); + } + } -const hasOverflowChildren = (element: HTMLElement): boolean => { - // todo - return true; + // Draw children + const children = Array.from(element.children) as HTMLElement[]; + for (const child of children) { + const style = window.getComputedStyle(child); + if (style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0') { + drawChildren(child, ctx, scaleFn, rootElement, depth - 1); + } + } }; const drawMinimapInsideViewportWindow = ( @@ -34,21 +86,47 @@ const drawMinimapInsideViewportWindow = ( topLeft: [number, number]; bottomRight: [number, number]; scaleFn: (x: number, y: number) => [number, number]; + dpr: number; }, - element: HTMLElement, + rootElement: HTMLElement, ) => { - const visibleBounds = getVisibleBoundsRelativeToContainer(element); + ctx.save(); + ctx.scale(minimap.dpr, minimap.dpr); + + const rootRect = rootElement.getBoundingClientRect(); + const viewportRect = { + left: window.scrollX, + top: window.scrollY, + right: window.scrollX + window.innerWidth, + bottom: window.scrollY + window.innerHeight + }; + + // Convert viewport coordinates to be relative to the root element + const relativeViewport = { + left: (viewportRect.left - rootRect.left) / rootRect.width, + top: (viewportRect.top - rootRect.top) / rootRect.height, + right: (viewportRect.right - rootRect.left) / rootRect.width, + bottom: (viewportRect.bottom - rootRect.top) / rootRect.height + }; + + // Get canvas dimensions + const canvasWidth = ctx.canvas.width / minimap.dpr; + const canvasHeight = ctx.canvas.height / minimap.dpr; - // a little ugly, but from world, to canvas - const [x1, y1] = minimap.scaleFn(visibleBounds.left, visibleBounds.top); - const [x2, y2] = minimap.scaleFn(visibleBounds.right, visibleBounds.bottom); + // Calculate viewport position in canvas coordinates + const x1 = relativeViewport.left * canvasWidth; + const y1 = relativeViewport.top * canvasHeight; + const x2 = relativeViewport.right * canvasWidth; + const y2 = relativeViewport.bottom * canvasHeight; const width = x2 - x1; const height = y2 - y1; - ctx.strokeStyle = 'red'; - ctx.lineWidth = 2; + ctx.strokeStyle = 'rgba(255, 255, 255, 0.5)'; + ctx.lineWidth = 1; ctx.strokeRect(x1, y1, width, height); + + ctx.restore(); }; const drawMinimap = ( @@ -57,38 +135,61 @@ const drawMinimap = ( topLeft: [number, number]; bottomRight: [number, number]; scaleFn: (x: number, y: number) => [number, number]; + dpr: number; }, - element: HTMLElement, -) => { - ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - - drawChildren(element, 20, ctx, minimap.scaleFn); -}; - -const drawChildren = ( - element: HTMLElement, - depth = 20, - ctx: CanvasRenderingContext2D, - scaleFn: (x: number, y: number) => [number, number], + rootElement: HTMLElement, ) => { - if (depth === 0) return; - - const rect = element.getBoundingClientRect(); - - const [x1, y1] = scaleFn(rect.left, rect.top); - const [x2, y2] = scaleFn(rect.right, rect.bottom); + ctx.save(); + ctx.scale(minimap.dpr, minimap.dpr); + ctx.clearRect(0, 0, ctx.canvas.width / minimap.dpr, ctx.canvas.height / minimap.dpr); + + // Draw root element first + drawChildren(rootElement, ctx, minimap.scaleFn, rootElement, 100); + + // Draw scheduled outlines + ReactScanInternals.scheduledOutlines.forEach((outline) => { + const element = outline.domNode; + if (element !== rootElement) { + drawChildren(element, ctx, minimap.scaleFn, rootElement, 100); + } + }); - const width = x2 - x1; - const height = y2 - y1; + // Draw active outlines + ReactScanInternals.activeOutlines.forEach((activeOutline) => { + const element = activeOutline.outline.domNode; + if (element !== rootElement) { + drawChildren(element, ctx, minimap.scaleFn, rootElement, 100); + } + }); - ctx.strokeStyle = 'rgba(0, 0, 255, 0.5)'; - ctx.lineWidth = 1; - ctx.strokeRect(x1, y1, width, height); + ctx.restore(); +}; - const children = Array.from(element.children) as HTMLElement[]; - for (const child of children) { - drawChildren(child, depth - 1, ctx, scaleFn); - } +const resizeCanvas = (element: HTMLElement, canvas: HTMLCanvasElement) => { + const dpr = window.devicePixelRatio || 1; + const elementRect = element.getBoundingClientRect(); + const containerWidth = canvas.parentElement?.clientWidth ?? 360; + const contentWidth = containerWidth - 16; // Account for margins + const contentHeight = elementRect.height; + + // Calculate height while maintaining aspect ratio + const elementAspectRatio = elementRect.width / elementRect.height; + const canvasHeight = Math.max(MINIMAP_MIN_HEIGHT, Math.min(MINIMAP_MAX_HEIGHT, contentWidth / elementAspectRatio)); + + // Set canvas dimensions with device pixel ratio + canvas.width = contentWidth * dpr; + canvas.height = canvasHeight * dpr; + + // Set CSS dimensions + canvas.style.width = `${contentWidth}px`; + canvas.style.height = `${canvasHeight}px`; + + // Return scale factors + return { + scaleX: (contentWidth * dpr) / elementRect.width, + scaleY: (canvasHeight * dpr) / contentHeight, + dpr + }; }; export const createMinimapCanvas = () => { @@ -100,104 +201,88 @@ export const createMinimapCanvas = () => { if (!canvas) { canvas = document.createElement('canvas'); canvas.id = MINIMAP_CANVAS_ID; - canvas.width = MINIMAP_WIDTH; - canvas.height = MINIMAP_HEIGHT; canvas.style.cssText = ` - position: fixed; - right: 24px; - top: 24px; /* Positioning from top */ pointer-events: none; - z-index: 2147483646; - background: rgba(0, 0, 0, 0.8); + background: rgb(0, 0, 0); border-radius: 4px; + display: none; + opacity: 0.9; + margin: 8px; + border: 1px solid rgba(255, 255, 255, 0.1); + width: calc(100% - 16px); `; - document.documentElement.appendChild(canvas); + } + + // Find the toolbar's minimap container to insert the canvas + const toolbar = document.getElementById('react-scan-toolbar'); + const minimapContainer = toolbar?.querySelector('#react-scan-minimap-container'); + + if (minimapContainer) { + minimapContainer.innerHTML = ''; // Clear existing content + minimapContainer.appendChild(canvas); } const ctx = canvas.getContext('2d'); if (!ctx) return; - const unsubscribeFns: Partial< - Record void> - > = {}; + const unsubscribeFns: (() => void)[] = []; const unsubscribeAll = () => { - Object.values(unsubscribeFns).forEach((unSub) => unSub?.()); + unsubscribeFns.forEach((unSub) => unSub()); + unsubscribeFns.length = 0; }; - ReactScanInternals.subscribeMultiple(['inspectState'], (store: Internals) => { - unsubscribeAll(); - - const unSub = (() => { - const inspectState = store.inspectState; - - switch (inspectState.kind) { - case 'focused': { - const element = inspectState.focusedDomElement; - - // todo: hiding logic - - const contentRect = element.getBoundingClientRect(); - const contentWidth = Math.max(element.scrollWidth, contentRect.width); - const contentHeight = Math.max( - element.scrollHeight, - contentRect.height, - ); - - const scaleX = MINIMAP_WIDTH / contentWidth; - const scaleY = MINIMAP_HEIGHT / contentHeight; - const scale = Math.min(scaleX, scaleY); - - const toCanvasCoordinates = ( - x: number, - y: number, - ): [number, number] => { - const relativeX = x - contentRect.left + element.scrollLeft; - const relativeY = y - contentRect.top + element.scrollTop; - - return [relativeX * scale, relativeY * scale]; - }; - - const minimap: { - topLeft: [number, number]; - bottomRight: [number, number]; - scaleFn: (x: number, y: number) => [number, number]; - } = { - topLeft: [contentRect.left, contentRect.top], - bottomRight: [contentRect.right, contentRect.bottom], - scaleFn: toCanvasCoordinates, - }; - - let animationFrameId: number; - - const draw = () => { - drawMinimap(ctx, minimap, element); - drawMinimapInsideViewportWindow(ctx, minimap, element); - - animationFrameId = requestAnimationFrame(draw); - }; - - draw(); - - return () => { - cancelAnimationFrame(animationFrameId); - // canvas.style.display = 'none'; - }; - } - default: { - // canvas.style.display = 'none'; - return; - } + // Subscribe to outline state changes + const unsubOutlines = ReactScanInternals.subscribeMultiple( + ['activeOutlines', 'scheduledOutlines'], + (store) => { + const hasActiveOutlines = store.activeOutlines.length > 0; + const hasScheduledOutlines = store.scheduledOutlines.length > 0; + canvas.style.display = hasActiveOutlines || hasScheduledOutlines ? 'block' : 'none'; + } + ); + unsubscribeFns.push(unsubOutlines); + + // Subscribe to inspect state changes + const unsubInspect = ReactScanInternals.subscribeMultiple(['inspectState'], (store) => { + const inspectState = store.inspectState; + + switch (inspectState.kind) { + case 'focused': { + const element = inspectState.focusedDomElement; + const { scaleX, scaleY, dpr } = resizeCanvas(element, canvas); + const scaleFn = toCanvasCoordinates(element, scaleX, scaleY, dpr); + + const minimap = { + topLeft: [0, 0] as [number, number], + bottomRight: [element.scrollWidth, element.scrollHeight] as [number, number], + scaleFn, + dpr + }; + + let animationFrameId: number; + + const draw = () => { + drawMinimap(ctx, minimap, element); + drawMinimapInsideViewportWindow(ctx, minimap, element); + animationFrameId = requestAnimationFrame(draw); + }; + + draw(); + + return () => { + cancelAnimationFrame(animationFrameId); + }; + } + default: { + return; } - })(); - - if (unSub) { - unsubscribeFns[store.inspectState.kind] = unSub; } }); + unsubscribeFns.push(unsubInspect); return () => { unsubscribeAll(); - canvas.parentNode?.removeChild(canvas); + canvas?.parentNode?.removeChild(canvas); }; }; diff --git a/src/core/web/toolbar.ts b/src/core/web/toolbar.ts index db41faa5..9dadbb18 100644 --- a/src/core/web/toolbar.ts +++ b/src/core/web/toolbar.ts @@ -172,6 +172,18 @@ export const createToolbar = (): (() => void) => { +