UNPKG

react-component-transition

Version:
37 lines (36 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentTransition = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var context_1 = require("./context"); var transition_1 = require("../transition"); var ComponentTransition = function (props) { var context = react_1.useContext(context_1.ComponentTransitionContext); var forceExit = (context === null || context === void 0 ? void 0 : context.exitKeys.indexOf(context.contextId)) > -1; var forceEnter = (context === null || context === void 0 ? void 0 : context.enterKeys.indexOf(context.contextId)) > -1; var animateOnMount = props.animateOnMount, children = props.children, lazy = props.lazy, onEnterFinished = props.onEnterFinished, onExitFinished = props.onExitFinished; var handleEnterFinished = function () { if (onEnterFinished) { onEnterFinished(); } if ((context === null || context === void 0 ? void 0 : context.contextId) && (context === null || context === void 0 ? void 0 : context.onEnterFinished)) { context.onEnterFinished(context.contextId); } }; var handleExitFinished = function () { if (onExitFinished) { onExitFinished(); } if ((context === null || context === void 0 ? void 0 : context.contextId) && (context === null || context === void 0 ? void 0 : context.onExitFinished)) { context.onExitFinished(context.contextId); } }; var Component = lazy ? transition_1.LazyTransition : transition_1.Transition; return ( // Clear context for nested transitions react_1.default.createElement(context_1.ComponentTransitionContext.Provider, { value: null }, react_1.default.createElement(Component, tslib_1.__assign({}, props, { animateOnMount: forceEnter || animateOnMount, onEnterFinished: handleEnterFinished, onExitFinished: handleExitFinished }), forceExit ? null : children))); }; exports.ComponentTransition = ComponentTransition; exports.ComponentTransition.displayName = "ComponentTransition";