Skip to content

Commit 177d3e2

Browse files
Update fix for HomeClient.tsx setState issue
Moved virtualKeysOpen state declaration before scroll callback and clear it directly in the event handler when dock becomes hidden, preserving original behavior while avoiding cascading renders Co-authored-by: Kinin-Code-Offical <125186556+Kinin-Code-Offical@users.noreply.github.com>
1 parent f05b28d commit 177d3e2

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/components/HomeClient.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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);
@@ -560,7 +564,7 @@ export default function HomeClient({ content }: HomeClientProps) {
560564
});
561565
}, []);
562566

563-
const showVirtualKeys = isMobile || (virtualKeysOpen && dockKeysVisible);
567+
const showVirtualKeys = isMobile || virtualKeysOpen;
564568

565569
const applyLanguage = (lang: "tr" | "en") => {
566570
setLanguage(lang);

0 commit comments

Comments
 (0)