@@ -3,6 +3,7 @@ import { DEVICE_OPTIONS, Orientation } from '@onlook/constants';
33import type { WindowMetadata } from '@onlook/models' ;
44import { Icons } from '@onlook/ui/icons/index' ;
55import { Select , SelectContent , SelectGroup , SelectItem , SelectLabel , SelectSeparator , SelectTrigger } from '@onlook/ui/select' ;
6+ import { cn } from '@onlook/ui/utils' ;
67import { computeWindowMetadata , getDeviceType } from '@onlook/utility' ;
78import { observer } from 'mobx-react-lite' ;
89import { useEffect , useMemo , useState } from 'react' ;
@@ -85,20 +86,12 @@ export const DeviceSelector = observer(() => {
8586
8687 return (
8788 < Select value = { device } onValueChange = { handleDeviceChange } onOpenChange = { setIsOpen } >
88- { ! isOpen && (
89- < HoverOnlyTooltip content = "Device" side = "bottom" sideOffset = { 10 } >
90- < SelectTrigger className = "flex items-center gap-2 text-muted-foreground dark:bg-transparent border border-border/0 cursor-pointer rounded-lg hover:bg-background-tertiary/20 hover:text-white hover:border hover:border-border focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none focus-visible:outline-none" >
91- < DeviceIcon deviceType = { deviceType } orientation = { metadata . orientation } />
92- < span className = "text-smallPlus" > { deviceType } </ span >
93- </ SelectTrigger >
94- </ HoverOnlyTooltip >
95- ) }
96- { isOpen && (
89+ < HoverOnlyTooltip content = "Device" side = "bottom" sideOffset = { 10 } disabled = { isOpen } >
9790 < SelectTrigger className = "flex items-center gap-2 text-muted-foreground dark:bg-transparent border border-border/0 cursor-pointer rounded-lg hover:bg-background-tertiary/20 hover:text-white hover:border hover:border-border focus-visible:ring-0 focus-visible:ring-offset-0 focus:outline-none focus-visible:outline-none" >
9891 < DeviceIcon deviceType = { deviceType } orientation = { metadata . orientation } />
9992 < span className = "text-smallPlus" > { deviceType } </ span >
10093 </ SelectTrigger >
101- ) }
94+ </ HoverOnlyTooltip >
10295 < SelectContent >
10396 { Object . entries ( DEVICE_OPTIONS ) . map ( ( [ category , devices ] ) => (
10497 < SelectGroup key = { category } >
@@ -107,13 +100,12 @@ export const DeviceSelector = observer(() => {
107100 < SelectItem
108101 key = { `${ category } :${ name } ` }
109102 value = { `${ category } :${ name } ` }
110- className = { `text-xs flex items-center cursor-pointer ${
111- device === `${ category } :${ name } `
112- ? 'bg-background-tertiary/50 text-foreground-primary'
113- : ''
114- } `}
103+ className = { cn (
104+ 'text-xs flex items-center cursor-pointer' ,
105+ device === `${ category } :${ name } ` && 'bg-background-tertiary/50 text-foreground-primary'
106+ ) }
115107 >
116- < DeviceIcon deviceType = { category } orientation = { metadata . orientation } className = { `${ device === `${ category } :${ name } ` ? 'text-foreground-primary' : 'text-foreground-onlook' } ` } />
108+ < DeviceIcon deviceType = { category } orientation = { metadata . orientation } className = { `${ device === `${ category } :${ name } ` ? 'text-foreground-primary' : 'text-foreground-onlook' } ` } />
117109 { name } < span className = { `text-micro ${ device === `${ category } :${ name } ` ? 'text-foreground-primary' : 'text-foreground-tertiary' } ` } > { dimensions . replace ( 'x' , '×' ) } </ span >
118110 </ SelectItem >
119111 ) ) }
0 commit comments