UNPKG

@netdata/netdata-ui

Version:

netdata UI kit

62 lines 2.36 kB
var _excluded = ["in", "as", "toggle", "speed", "timing", "transformOrigin", "mount", "children"]; function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } import React, { useMemo, useRef } from "react"; import styled from "styled-components"; import { Transition } from "react-transition-group"; import makeAnimations from "./makeAnimations"; var Animation = function Animation(_ref) { var isVisible = _ref["in"], as = _ref.as, toggle = _ref.toggle, _ref$speed = _ref.speed, speed = _ref$speed === void 0 ? 200 : _ref$speed, _ref$timing = _ref.timing, timing = _ref$timing === void 0 ? "" : _ref$timing, transformOrigin = _ref.transformOrigin, mount = _ref.mount, children = _ref.children, rest = _objectWithoutPropertiesLoose(_ref, _excluded); var animations = useMemo(function () { return makeAnimations({ toggle: toggle, timing: timing, speed: speed, transformOrigin: transformOrigin }); }, []); var StyledContainer = useMemo(function () { return as && styled(as).withConfig({ displayName: "animation", componentId: "sc-6srjcx-0" })(["", ""], function (props) { return props.transitionStyling; }); }, []); var ref = useRef(); return /*#__PURE__*/React.createElement(Transition, { nodeRef: ref, "in": isVisible, timeout: speed, mountOnEnter: !mount, unmountOnExit: !mount }, function (transition) { var transitionStyling = animations[transition]; if (StyledContainer) { return /*#__PURE__*/React.createElement(StyledContainer, _extends({ transitionStyling: transitionStyling }, rest, { ref: ref }), children({ transition: transition, transitionStyling: transitionStyling })); } return children({ transition: transition, transitionStyling: transitionStyling, ref: ref }); }); }; export default Animation;