ConceptPortal-public/rsconcept/frontend/src/hooks/useDropdown.ts

23 lines
432 B
TypeScript
Raw Normal View History

'use client';
2023-07-20 17:11:03 +03:00
import { useRef, useState } from 'react';
2023-07-25 20:27:29 +03:00
2023-07-20 17:11:03 +03:00
import useClickedOutside from './useClickedOutside';
function useDropdown() {
const [isOpen, setIsOpen] = useState(false);
2023-07-20 17:11:03 +03:00
const ref = useRef(null);
useClickedOutside({ ref, callback: () => setIsOpen(false) });
2023-07-25 20:27:29 +03:00
2023-07-20 17:11:03 +03:00
return {
2023-07-25 20:27:29 +03:00
ref,
isOpen,
setIsOpen,
toggle: () => setIsOpen(!isOpen),
hide: () => setIsOpen(false)
2023-07-20 17:11:03 +03:00
};
}
2023-07-20 17:11:03 +03:00
2023-12-28 14:04:44 +03:00
export default useDropdown;