motion
Version:
The Motion library for the web
28 lines (23 loc) • 976 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var framerMotion = require('framer-motion');
var React = require('react');
var poses = require('../utils/poses.cjs.js');
var updateTarget = require('../utils/update-target.cjs.js');
function useExit(target, options, { exit, poses: poses$1 }, { exit: inheritedExit }) {
const [isPresent, onExitComplete] = framerMotion.usePresence();
/**
* In case we don't have an exit animation defined we still need to
* call onExitComplete if it exits so AnimatePresence knows it
* can remove this component.
*/
React.useEffect(() => {
if (!exit)
onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();
}, [isPresent]);
if (exit && !isPresent) {
updateTarget.updateTargetAndOptions(target, options, poses.resolvePose(exit, inheritedExit, poses$1));
return onExitComplete;
}
}
exports.useExit = useExit;