@@ -6,10 +6,11 @@ import {
66 INode ,
77 ITreeViewOnSelectProps ,
88} from 'react-accessible-treeview' ;
9- import { Navbar } from 'react-daisyui' ;
9+ import { Button , Navbar } from 'react-daisyui' ;
1010import {
1111 DevicePhoneMobileIcon ,
1212 MagnifyingGlassIcon ,
13+ ViewfinderCircleIcon ,
1314} from '@heroicons/react/24/outline' ;
1415import { IDevice } from 'adb-ts/lib/util' ;
1516import { ToastContainer , toast } from 'react-toastify' ;
@@ -33,6 +34,7 @@ function MainView(): React.JSX.Element {
3334 const [ screencap , setScreencap ] = useState < string | null > ( null ) ;
3435 const [ deviceExpanded , setDeviceExpanded ] = useState ( false ) ;
3536 const [ searchExpanded , setSearchExpanded ] = useState ( false ) ;
37+ const [ showTargetSize , setShowTargetSize ] = useState ( true ) ;
3638 const [ logMessages , setLogMessages ] = useState <
3739 { time : string ; type : string ; message : string ; id : number } [ ]
3840 > ( [ ] ) ;
@@ -130,8 +132,13 @@ function MainView(): React.JSX.Element {
130132 return clickable ;
131133 } ) ;
132134 centers . forEach ( ( item1 , index ) => {
133- centers . slice ( index + 1 ) . forEach ( item2 => {
134- if ( Math . sqrt ( Math . pow ( item2 . center . left - item1 . center . left , 2 ) + Math . pow ( item2 . center . top - item1 . center . top , 2 ) ) < 24 ) {
135+ centers . slice ( index + 1 ) . forEach ( ( item2 ) => {
136+ if (
137+ Math . sqrt (
138+ ( item2 . center . left - item1 . center . left ) ** 2 +
139+ ( item2 . center . top - item1 . center . top ) ** 2 ,
140+ ) < 24
141+ ) {
135142 overlaps . push ( item1 . element ) ;
136143 overlaps . push ( item2 . element ) ;
137144 }
@@ -216,6 +223,10 @@ function MainView(): React.JSX.Element {
216223 } ) ;
217224 } ;
218225
226+ const toggleTargetSize = ( ) => {
227+ setShowTargetSize ( ! showTargetSize ) ;
228+ } ;
229+
219230 return (
220231 < div className = "flex w-screen h-screen flex-column bg-base-200" >
221232 < Navbar
@@ -229,6 +240,18 @@ function MainView(): React.JSX.Element {
229240 onScreencapReceived = { screencapReceived }
230241 onDisconnected = { onDisconnected }
231242 />
243+ < Button
244+ className = { `ml-2 ${ showTargetSize ? 'btn-primary' : 'btn-accent' } btn-outline` }
245+ aria-pressed = { showTargetSize }
246+ active = { showTargetSize }
247+ onClick = { toggleTargetSize }
248+ aria-label = "show target size issues"
249+ >
250+ < ViewfinderCircleIcon
251+ className = "h-[24px]"
252+ title = "show target size issues"
253+ />
254+ </ Button >
232255 </ Navbar . Start >
233256 < Navbar . Center >
234257 < h1 className = "text-xl" >
@@ -317,6 +340,7 @@ function MainView(): React.JSX.Element {
317340 dataTree = { viewHierarchy }
318341 onViewSelected = { onHoveredViewSelected }
319342 overlappingViews = { overlappingViews }
343+ showTargetSize = { showTargetSize }
320344 />
321345 </ div >
322346 < Splitter
@@ -336,6 +360,8 @@ function MainView(): React.JSX.Element {
336360 onViewHovered = { viewHovered }
337361 selectedView = { selectedView }
338362 searchTerm = { searchTerm }
363+ showTargetSize = { showTargetSize }
364+ overlappingViews = { overlappingViews }
339365 />
340366 </ div >
341367 < Splitter
0 commit comments