UNPKG

react-component-transition

Version:
34 lines (33 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentTransitionList = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var use_children_manager_1 = require("./use-children-manager"); var component_transition_1 = require("../component-transition"); var ComponentTransitionList = function (_a) { var children = _a.children; var _b = react_1.useState(0), forceUpdate = _b[1]; var _c = use_children_manager_1.useChildrenManager(children), childrenMapper = _c.childrenMapper, internalKeys = _c.internalKeys, enterKeys = _c.enterKeys, exitKeys = _c.exitKeys, removeExit = _c.removeExit, removeEnter = _c.removeEnter; var onExitFinished = function (internalKey) { var remaining = removeExit(internalKey); if (remaining === 0) { forceUpdate(function (counter) { return counter + 1; }); } }; var onEnterFinished = function (internalKey) { removeEnter(internalKey); }; return (react_1.default.createElement(react_1.default.Fragment, null, internalKeys.map(function (internalKey) { var context = { contextId: internalKey, onExitFinished: onExitFinished, onEnterFinished: onEnterFinished, enterKeys: enterKeys, exitKeys: exitKeys, }; return (react_1.default.createElement(component_transition_1.ComponentTransitionContext.Provider, { key: internalKey, value: context }, childrenMapper[internalKey])); }))); }; exports.ComponentTransitionList = ComponentTransitionList; exports.ComponentTransitionList.displayName = "ComponentTransitionList";