FrontPastel/node_modules/@mui/base/useTransition/useTransitionStateManager.js

34 lines
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
};
}