import {MutableRefObject, useEffect} from 'react'; import moment, {Moment} from 'moment'; function getFormattedValue(date: Moment | null | undefined, format: string): string { return moment.isMoment(date) ? date.format(format) : date ?? ''; } const useOnClickOutside = (ref: MutableRefObject, handler: () => void) => { useEffect(() => { const listener = (event: Event) => { if (!ref.current || ref.current.contains(event.target as (Node | null))) { return; } handler(); }; document.addEventListener('mousedown', listener); document.addEventListener('touchstart', listener); return () => { document.removeEventListener('mousedown', listener); document.removeEventListener('touchstart', listener); }; }, [ref, handler]); }; export { useOnClickOutside, getFormattedValue, };