@@ -424,6 +424,7 @@ export default function HomeClient({ content }: HomeClientProps) {
424424 ) ;
425425 const [ dockKeysVisible , setDockKeysVisible ] = useState ( true ) ;
426426 const dockKeysVisibleRef = useRef ( true ) ;
427+ const [ virtualKeysOpen , setVirtualKeysOpen ] = useState ( false ) ;
427428 const scrollProgressRef = useSmoothScrollProgress ( heroRef , ( value ) => {
428429 if ( ! shellRef . current ) {
429430 return ;
@@ -462,6 +463,10 @@ export default function HomeClient({ content }: HomeClientProps) {
462463 if ( dockKeysVisibleRef . current !== nextDockKeysVisible ) {
463464 dockKeysVisibleRef . current = nextDockKeysVisible ;
464465 setDockKeysVisible ( nextDockKeysVisible ) ;
466+ // Close virtual keys when dock becomes hidden
467+ if ( ! nextDockKeysVisible ) {
468+ setVirtualKeysOpen ( false ) ;
469+ }
465470 }
466471 } ) ;
467472 const isMobile = useMediaQuery ( "(max-width: 900px)" ) ;
@@ -501,7 +506,6 @@ export default function HomeClient({ content }: HomeClientProps) {
501506 shift : false ,
502507 alt : false ,
503508 } ) ;
504- const [ virtualKeysOpen , setVirtualKeysOpen ] = useState ( false ) ;
505509 const mobileModifiersRef = useRef ( mobileModifiers ) ;
506510 const handleSceneReady = useCallback ( ( ) => {
507511 setSceneReady ( true ) ;
@@ -656,12 +660,6 @@ export default function HomeClient({ content }: HomeClientProps) {
656660 mobileModifiersRef . current = mobileModifiers ;
657661 } , [ mobileModifiers ] ) ;
658662
659- useEffect ( ( ) => {
660- if ( ! dockKeysVisible && virtualKeysOpen ) {
661- setVirtualKeysOpen ( false ) ;
662- }
663- } , [ dockKeysVisible , virtualKeysOpen ] ) ;
664-
665663 useEffect ( ( ) => {
666664 screenAspectRef . current = screenAspect ;
667665 } , [ screenAspect ] ) ;
0 commit comments