UNPKG

@innovaccer/design-system

Version:

React components library project for Innovaccer Design System

45 lines (34 loc) 1.31 kB
export const getWrapperElement = (): Element => { let element = document.querySelector('.Overlay-wrapper'); if (element === null) { element = document.createElement('div'); element.classList.add('Overlay-wrapper'); document.body.appendChild(element); } return element; }; interface elementData { element: Element; containerClassName: string; elementRef: React.RefObject<HTMLDivElement>; } export const getUpdatedZIndex = (ele: elementData): number | undefined => { const { containerClassName, elementRef, element } = ele; if (element === null) return; const elements = element.querySelectorAll(containerClassName); if (elements.length < 1) return; const siblings = Array.from(elements).filter((el) => el !== elementRef.current); let zIndex = -1; siblings.forEach((element) => { const prevZIndex = parseInt(window.getComputedStyle(element).zIndex || '0', 10); zIndex = Math.max(zIndex, prevZIndex + 10); }); return zIndex > 0 ? zIndex : undefined; }; export const closeOnEscapeKeypress = (event: KeyboardEvent, isTopOverlay: boolean | undefined, onClose: Function) => { if (event.key === 'Escape' && isTopOverlay) { onClose(event); // prevent browser-specific escape key behavior (Safari exits fullscreen) event.preventDefault(); } }