59 / 98
Как обрабатывать клики вне компонента (click outside)?
Вешаем обработчик mousedown на document и проверяем, попадает ли event.target внутрь нашего элемента через ref.current.contains(). Если клик снаружи — вызываем callback. Используем mousedown вместо click, потому что mousedown срабатывает до того, как элемент может потерять фокус.