import { MutableRefObject } from 'react'; export type BasicTarget = | (() => T | null) | T | null | MutableRefObject; type TargetElement = HTMLElement | Document | Window | null | undefined; export function getTargetElement( target?: BasicTarget, ): TargetElement { if (!target) { return window; } let targetElement: TargetElement; if (typeof target === 'function') { targetElement = target(); } else if ('current' in target) { targetElement = target.current; } else { targetElement = target; } return targetElement; }