Skip to content

Commit 8a5626b

Browse files
committed
Adding visual indicator of overlapping views
1 parent edd2274 commit 8a5626b

3 files changed

Lines changed: 22 additions & 8 deletions

File tree

src/renderer/index.scss

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8463,11 +8463,6 @@ html:has(.drawer-open.drawer-open) {
84638463
margin-bottom: 1rem;
84648464
}
84658465

8466-
.my-auto {
8467-
margin-top: auto;
8468-
margin-bottom: auto;
8469-
}
8470-
84718466
.mb-8 {
84728467
margin-bottom: 2rem;
84738468
}

src/renderer/views/main-view.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import SearchView from './search-view';
2626

2727
function MainView(): React.JSX.Element {
2828
const [selectedView, setSelectedView] = useState<number>(0);
29+
const [overlappingViews, setOverlappingViews] = useState<any[]>([]);
2930
const [viewHierarchy, setViewHierarchy] = useState({ name: '' });
3031
const [selectedDevice, setSelectedDevice] = useState<IDevice | null>(null);
3132
const [searchTerm, setSearchTerm] = useState<string>('');
@@ -114,7 +115,8 @@ function MainView(): React.JSX.Element {
114115
const clickable =
115116
item.metadata &&
116117
item.metadata.properties &&
117-
item.metadata.properties.includes('clickable');
118+
item.metadata.properties.includes('clickable') &&
119+
(item.metadata.scaledWidth < 24.0 || item.metadata.scaledHeight < 24.0);
118120
if (clickable) {
119121
const scaleFactor = item.metadata.dpScaleFactor;
120122
centers.push({
@@ -136,6 +138,7 @@ function MainView(): React.JSX.Element {
136138
});
137139
});
138140
console.log('possible overlaps', overlaps);
141+
setOverlappingViews(overlaps);
139142
};
140143

141144
const messageReceived = useCallback((data: any) => {
@@ -313,6 +316,7 @@ function MainView(): React.JSX.Element {
313316
hoverCoord={hoveredCoord}
314317
dataTree={viewHierarchy}
315318
onViewSelected={onHoveredViewSelected}
319+
overlappingViews={overlappingViews}
316320
/>
317321
</div>
318322
<Splitter

src/renderer/views/screenshot.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const Screenshot = function Screenshot({
1414
selectCoord,
1515
dataTree,
1616
onViewSelected,
17+
overlappingViews,
1718
}: any) {
1819
const [screencapHeight, setScreencapHeight] = useState(0);
1920
const [screencapWidth, setScreencapWidth] = useState(0);
@@ -132,8 +133,6 @@ const Screenshot = function Screenshot({
132133
const svgClick = useCallback(() => {
133134
onViewSelected(hoveredView);
134135
}, [hoveredView, onViewSelected]);
135-
136-
// if (screencap) {
137136
return (
138137
<div className="m-auto mx-4">
139138
<div className="relative mx-auto border-base-content bg-base-content border-[14px] rounded-xl max-h-[calc(100vh-150px)] h-full w-full shadow-xl">
@@ -155,6 +154,22 @@ const Screenshot = function Screenshot({
155154
onClick={svgClick}
156155
>
157156
<image href={`data:image/png;base64,${screencap}`} />
157+
{overlappingViews.map((overlappingView: any) => (
158+
<circle
159+
r={((screencapWidth / width) * 10).toFixed(0)}
160+
cx={
161+
(overlappingView.metadata.x2 +
162+
overlappingView.metadata.x1) /
163+
2
164+
}
165+
cy={
166+
(overlappingView.metadata.y2 +
167+
overlappingView.metadata.y1) /
168+
2
169+
}
170+
fill="rgba(255, 0, 0, 0.3)"
171+
/>
172+
))}
158173
{hoverCoord.x !== 0 ||
159174
hoverCoord.y !== 0 ||
160175
hoverCoord.width !== 0 ||

0 commit comments

Comments
 (0)