Next.js Discord

Discord Forum

Better CSS Selection?

Unanswered
Sun bear posted this in #help-forum
Open in Discord
Sun bearOP
I am wondering if there is a better CSS or else Functionality to track if the dropdown menu is open or not and when it should close.
Currently i have it like that:
export default function MultiDropdownMenu({ menu }: Props) {
  const [isOpen, setIsOpen] = useState(false);
  const dropdownRef = useRef<HTMLDivElement>(null);

  const toggleDropdown = () => {
    setIsOpen(!isOpen);
  };

  const handleClickOutside = (event: MouseEvent) => {
    if (
      dropdownRef.current &&
      !dropdownRef.current.contains(event.target as Node)
    ) {
      setIsOpen(false);
    }
  };

  useEffect(() => {
    document.addEventListener("mousedown", handleClickOutside);
    return () => {
      document.removeEventListener("mousedown", handleClickOutside);
    };
  }, []);

  return (
    <div ref={dropdownRef}>
      <button
        onClick={toggleDropdown}
      >Toggle</button>
    </div>

0 Replies