@mui/base
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
34 lines (33 loc) • 899 B
JavaScript
'use client';
import * as React from 'react';
import { TransitionContext } from './TransitionContext';
/**
* Allows an element to be transitioned in and out.
* The transition is triggerred by a `TransitionContext` placed above in the component tree.
*
* Demos:
*
* - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)
*
* API:
*
* - [useTransitionStateManager API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-state-manager)
*/
export function useTransitionStateManager() {
const transitionContext = React.useContext(TransitionContext);
if (!transitionContext) {
throw new Error('Missing transition context');
}
const {
registerTransition,
requestedEnter,
onExited
} = transitionContext;
React.useEffect(() => {
return registerTransition();
}, [registerTransition]);
return {
onExited,
requestedEnter
};
}