diff --git a/src/components/time-filter/time-filter.tsx b/src/components/time-filter/time-filter.tsx index d97d1145..73e17898 100644 --- a/src/components/time-filter/time-filter.tsx +++ b/src/components/time-filter/time-filter.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState, useRef } from 'react'; +import { useCallback, useEffect, useRef, useState } from 'react'; import styles from './time-filter.module.css'; const filters = [ @@ -15,32 +15,28 @@ const TimeFilter = () => { const dropdownRef = useRef(null); const dropChoicesClass = isDropdownOpen ? styles.dropChoicesVisible : styles.dropChoicesHidden; - const toggleClick = () => { - setIsDropdownOpen(!isDropdownOpen); - }; - - const handleClickOutside = (event: MouseEvent) => { + const handleClickOutside = useCallback((event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsDropdownOpen(false); } - }; + }, []); useEffect(() => { document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; - }, []); + }, [handleClickOutside]); return (
links from:{' '} -
+
{setIsDropdownOpen(!isDropdownOpen)}} ref={dropdownRef}> past month
-
+
{filters.map((filter: string, index: number) => (
setIsDropdownOpen(false)}> {filter}