Skip to content

Commit 5f33b9a

Browse files
authored
remove container.focus (#40)
* remove container.focus * add bindKeys to onMouseEnter for dimension overlay
1 parent a838af8 commit 5f33b9a

File tree

4 files changed

+12
-21
lines changed

4 files changed

+12
-21
lines changed

site/components/CanvasGraphics/CanvasGraphics.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ export const CanvasGraphics = ({
254254
>
255255
<DimensionOverlay
256256
transform={currentTransform || computedInitialTransform}
257-
focusOnHover={true}
258257
>
259258
<canvas
260259
ref={canvasRef}

site/components/DimensionOverlay.tsx

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,9 @@ import type { Matrix } from "transformation-matrix"
55
interface Props {
66
transform?: Matrix
77
children: React.ReactNode
8-
focusOnHover?: boolean
98
}
109

11-
export const DimensionOverlay: React.FC<Props> = ({
12-
children,
13-
transform,
14-
focusOnHover = false,
15-
}) => {
10+
export const DimensionOverlay: React.FC<Props> = ({ children, transform }) => {
1611
if (!transform) transform = identity()
1712
const [dimensionToolVisible, setDimensionToolVisible] = useState(false)
1813
const [dimensionToolStretching, setDimensionToolStretching] = useState(false)
@@ -25,7 +20,7 @@ export const DimensionOverlay: React.FC<Props> = ({
2520
const container = containerRef.current!
2621
const containerBounds = container?.getBoundingClientRect()
2722

28-
useEffect(() => {
23+
const bindKeys = () => {
2924
const container = containerRef.current
3025

3126
const down = (e: KeyboardEvent) => {
@@ -67,7 +62,9 @@ export const DimensionOverlay: React.FC<Props> = ({
6762
container.removeEventListener("mouseleave", removeKeyListener)
6863
}
6964
}
70-
}, [containerRef])
65+
}
66+
67+
useEffect(bindKeys, [containerBounds?.width, containerBounds?.height])
7168

7269
const screenDStart = applyToPoint(transform, dStart)
7370
const screenDEnd = applyToPoint(transform, dEnd)
@@ -90,16 +87,6 @@ export const DimensionOverlay: React.FC<Props> = ({
9087
ref={containerRef}
9188
tabIndex={0}
9289
style={{ position: "relative" }}
93-
onMouseEnter={() => {
94-
if (focusOnHover && containerRef.current) {
95-
containerRef.current.focus()
96-
}
97-
}}
98-
onMouseLeave={() => {
99-
if (containerRef.current) {
100-
containerRef.current.blur()
101-
}
102-
}}
10390
onMouseMove={(e: React.MouseEvent<HTMLDivElement>) => {
10491
const rect = e.currentTarget.getBoundingClientRect()
10592
const x = e.clientX - rect.left
@@ -119,6 +106,11 @@ export const DimensionOverlay: React.FC<Props> = ({
119106
setDimensionToolVisible(false)
120107
}
121108
}}
109+
onMouseEnter={() => {
110+
if (containerRef.current) {
111+
bindKeys()
112+
}
113+
}}
122114
>
123115
{children}
124116
{dimensionToolVisible && (

site/components/GraphicsDisplay.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export function GraphicsDisplay({ graphics }: GraphicsDisplayProps) {
8888
onMouseMove={handleMouseMove}
8989
onMouseLeave={handleMouseLeave}
9090
>
91-
<DimensionOverlay focusOnHover={true}>
91+
<DimensionOverlay>
9292
<div
9393
className="w-full h-full"
9494
dangerouslySetInnerHTML={{

site/components/InteractiveGraphics/InteractiveGraphics.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ export const InteractiveGraphics = ({
206206
overflow: "hidden",
207207
}}
208208
>
209-
<DimensionOverlay transform={realToScreen} focusOnHover={true}>
209+
<DimensionOverlay transform={realToScreen}>
210210
{graphics.lines?.map((l, originalIndex) =>
211211
filterLines(l) ? (
212212
<Line

0 commit comments

Comments
 (0)