From 9162e4159d61bdd065b4db0930f272675b21065b Mon Sep 17 00:00:00 2001 From: Tobias Merkle Date: Wed, 1 Oct 2025 10:51:08 -0400 Subject: [PATCH] fix #855 --- .../components/Home/components/OmniButton.tsx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hyperdrive/packages/homepage/ui/src/components/Home/components/OmniButton.tsx b/hyperdrive/packages/homepage/ui/src/components/Home/components/OmniButton.tsx index 59b12badd..4a46fd17d 100644 --- a/hyperdrive/packages/homepage/ui/src/components/Home/components/OmniButton.tsx +++ b/hyperdrive/packages/homepage/ui/src/components/Home/components/OmniButton.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState, useRef } from 'react'; +import React, { useEffect, useState, useRef, useCallback } from 'react'; import { useNavigationStore } from '../../../stores/navigationStore'; import classNames from 'classnames'; import { usePersistenceStore } from '../../../stores/persistenceStore'; @@ -72,7 +72,7 @@ export const OmniButton: React.FC = () => { }); }; - const handleMouseMove = (e: MouseEvent) => { + const handleMouseMove = useCallback((e: MouseEvent) => { if (isMobile()) return; console.log('omnibutton handleMouseMove', e); e.stopPropagation(); @@ -90,9 +90,9 @@ export const OmniButton: React.FC = () => { const newY = Math.max(30, Math.min(window.innerHeight - 30, dragStart.buttonY + deltaY)); setOmnibuttonPosition({ x: newX, y: newY }); } - }; + }, [dragStart, isDragging, setOmnibuttonPosition]); - const handleMouseUp = () => { + const handleMouseUp = useCallback(() => { if (isMobile()) return; console.log('omnibutton handleMouseUp'); if (!isDragging && dragStart) { @@ -101,19 +101,19 @@ export const OmniButton: React.FC = () => { } setDragStart(null); setIsDragging(false); - }; + }, [isDragging, dragStart, isRecentAppsOpen, toggleRecentApps, closeAllOverlays]); // Mouse event listeners useEffect(() => { if (dragStart) { - document.addEventListener('mousemove', handleMouseMove), { passive: false }; - document.addEventListener('mouseup', handleMouseUp), { passive: false }; + document.addEventListener('mousemove', handleMouseMove); + document.addEventListener('mouseup', handleMouseUp); return () => { - document.removeEventListener('mousemove', handleMouseMove), { passive: false }; - document.removeEventListener('mouseup', handleMouseUp), { passive: false }; + document.removeEventListener('mousemove', handleMouseMove); + document.removeEventListener('mouseup', handleMouseUp); }; } - }, [dragStart, isDragging]); + }, [dragStart, isDragging, handleMouseMove, handleMouseUp]); // Handle window resize to keep button in bounds useEffect(() => {