UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

45 lines (38 loc) 1.67 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var reactTransitionGroup = require('react-transition-group'); var getTransitionStyles = require('./get-transition-styles/get-transition-styles.js'); var useMantineTheme = require('../../theme/use-mantine-theme/use-mantine-theme.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); function GroupedTransition({ transitions, mounted, children, themeOverride }) { const theme = useMantineTheme.useMantineTheme(themeOverride); const duration = Math.max(...Object.keys(transitions).map((transition) => transitions[transition].duration)); return /* @__PURE__ */ React__default.createElement(reactTransitionGroup.Transition, { in: mounted, timeout: duration, unmountOnExit: true, mountOnEnter: true, onEnter: (node) => node.offsetHeight }, (transitionState) => { const transitionsStyles = Object.keys(transitions).reduce((acc, transition) => { acc[transition] = getTransitionStyles.getTransitionStyles({ duration: transitions[transition].duration, transition: transitions[transition].transition, timingFunction: transitions[transition].timingFunction || theme.transitionTimingFunction, state: transitionState }); return acc; }, {}); return children(transitionsStyles); }); } GroupedTransition.displayName = "@mantine/core/GroupedTransition"; exports.GroupedTransition = GroupedTransition; //# sourceMappingURL=GroupedTransition.js.map