import type { ElementRef } from '../../../lib/teact/teact'; import { useEffect } from '../../../lib/teact/teact'; import { requestMutation } from '../../../lib/fasterdom/fasterdom'; export default function useTransitionFixes( containerRef: ElementRef, transitionElSelector = '.Transition.shared-media-transition', ) { // Set `min-height` for shared media container to prevent jumping when switching tabs useEffect(() => { function setMinHeight() { const container = containerRef.current!; const transitionEl = container.querySelector(transitionElSelector); const tabsEl = container.querySelector('.SquareTabList'); if (transitionEl && tabsEl) { const newHeight = container.clientHeight - tabsEl.offsetHeight; requestMutation(() => { transitionEl.style.minHeight = `${newHeight}px`; }); } } setMinHeight(); window.addEventListener('resize', setMinHeight, false); return () => { window.removeEventListener('resize', setMinHeight, false); }; }, [containerRef, transitionElSelector]); }