From 578835d9daaefb97fdfcadf372257c51df3ab97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Mon, 6 Jul 2026 13:50:40 -0300 Subject: [PATCH] Close product filters with escape --- src/pages/Products.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/pages/Products.tsx b/src/pages/Products.tsx index 962600a..8cf308b 100644 --- a/src/pages/Products.tsx +++ b/src/pages/Products.tsx @@ -198,14 +198,24 @@ const Products = () => { useEffect(() => { if (!isFilterMenuOpen) return; - const handleClickOutside = (event: MouseEvent) => { + const handlePointerDown = (event: PointerEvent) => { if (!filterMenuRef.current?.contains(event.target as Node)) { setIsFilterMenuOpen(false); } }; + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + setIsFilterMenuOpen(false); + } + }; - document.addEventListener('mousedown', handleClickOutside); - return () => document.removeEventListener('mousedown', handleClickOutside); + document.addEventListener('pointerdown', handlePointerDown); + document.addEventListener('keydown', handleKeyDown); + + return () => { + document.removeEventListener('pointerdown', handlePointerDown); + document.removeEventListener('keydown', handleKeyDown); + }; }, [isFilterMenuOpen]); const productsData = useMemo(() => {