source: node_modules/recharts/lib/animation/JavascriptAnimate.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 2.2 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.JavascriptAnimate = JavascriptAnimate;
7var _react = require("react");
8var _DataUtils = require("../util/DataUtils");
9var _resolveDefaultProps = require("../util/resolveDefaultProps");
10var _configUpdate = _interopRequireDefault(require("./configUpdate"));
11var _easing = require("./easing");
12var _useAnimationManager = require("./useAnimationManager");
13var _Global = require("../util/Global");
14function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15var defaultJavascriptAnimateProps = {
16 begin: 0,
17 duration: 1000,
18 easing: 'ease',
19 isActive: true,
20 canBegin: true,
21 onAnimationEnd: () => {},
22 onAnimationStart: () => {}
23};
24var from = {
25 t: 0
26};
27var to = {
28 t: 1
29};
30function JavascriptAnimate(outsideProps) {
31 var props = (0, _resolveDefaultProps.resolveDefaultProps)(outsideProps, defaultJavascriptAnimateProps);
32 var {
33 isActive: isActiveProp,
34 canBegin,
35 duration,
36 easing,
37 begin,
38 onAnimationEnd,
39 onAnimationStart,
40 children
41 } = props;
42 var isActive = isActiveProp === 'auto' ? !_Global.Global.isSsr : isActiveProp;
43 var animationManager = (0, _useAnimationManager.useAnimationManager)(props.animationId, props.animationManager);
44 var [style, setStyle] = (0, _react.useState)(isActive ? from : to);
45 var stopJSAnimation = (0, _react.useRef)(null);
46 (0, _react.useEffect)(() => {
47 if (!isActive) {
48 setStyle(to);
49 }
50 }, [isActive]);
51 (0, _react.useEffect)(() => {
52 if (!isActive || !canBegin) {
53 return _DataUtils.noop;
54 }
55 var startAnimation = (0, _configUpdate.default)(from, to, (0, _easing.configEasing)(easing), duration, setStyle, animationManager.getTimeoutController());
56 var onAnimationActive = () => {
57 stopJSAnimation.current = startAnimation();
58 };
59 animationManager.start([onAnimationStart, begin, onAnimationActive, duration, onAnimationEnd]);
60 return () => {
61 animationManager.stop();
62 if (stopJSAnimation.current) {
63 stopJSAnimation.current();
64 }
65 onAnimationEnd();
66 };
67 }, [isActive, canBegin, duration, easing, begin, onAnimationStart, onAnimationEnd, animationManager]);
68 return children(style.t);
69}
Note: See TracBrowser for help on using the repository browser.