();
useEffect(() => {
if (process.env.NODE_ENV === 'test' && isOpen) {
onEntered?.();
} else {
if (process.env.NODE_ENV === 'test' && isOpenRef.current) {
onExited?.();
}
}
isOpenRef.current = isOpen;
}, [isOpen]);
useEffect(() => {
const rootElement = divRef.current;
if (!rootElement) {
return;
}
const onTransitionEnd = (e: TransitionEvent) => {
if (e.propertyName === 'transform') {
isOpenRef.current ? onEntered?.() : onExited?.();
}
};
const onTransitionStart = (e: TransitionEvent) => {
if (e.propertyName === 'transform') {
isOpenRef.current ? onEntering?.() : onExiting?.();
}
};
rootElement.addEventListener('transitionend', onTransitionEnd);
rootElement.addEventListener('transitionstart', onTransitionStart);
return () => {
rootElement.removeEventListener('transitionend', onTransitionEnd);
rootElement.removeEventListener('transitionstart', onTransitionStart);
};
}, []);
return (
{
if (e.nativeEvent.code === 'Escape') {
onRequestClose?.();
return;
}
if (divRef.current && e.nativeEvent.code === 'Tab') {
scopeTab(divRef.current, e);
return;
}
}}
ref={(el) => {
if (el) {
divRef.current = el;
}
contentRef?.(el);
}}
data-hook={dataHook}
data-transition-status={transitionStatus}
className={st(
classes.root,
{
exited: transitionStatus === 'exited',
overlay,
appendTo,
},
...[className, isOpen ? 'cairo-sliding-modal-is-open' : undefined],
)}
role="presentation"
style={style}
aria-modal={undefined}
>
{children}
);
}