UNPKG

2.76 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
12var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
14var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
16var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
18var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
20var _component = _interopRequireDefault(require("./base/component"));
21
22var _children = _interopRequireDefault(require("./children"));
23
24var Timeline = /*#__PURE__*/function (_Component) {
25 (0, _inherits2.default)(Timeline, _Component);
26
27 var _super = (0, _createSuper2.default)(Timeline);
28
29 function Timeline(props) {
30 var _this;
31
32 (0, _classCallCheck2.default)(this, Timeline);
33 _this = _super.call(this, props);
34
35 _this.next = function () {
36 var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
37 state = _assertThisInitialize.state,
38 props = _assertThisInitialize.props;
39
40 var index = state.index,
41 count = state.count,
42 delay = state.delay;
43 var loop = props.loop;
44 var next = loop ? (index + 1) % count : index + 1;
45
46 if (next < count) {
47 setTimeout(function () {
48 _this.setState({
49 index: next
50 });
51 }, delay || 0);
52 }
53 };
54
55 var delay = props.delay,
56 _props$start = props.start,
57 start = _props$start === void 0 ? 0 : _props$start,
58 children = props.children;
59
60 var count = _children.default.toArray(children).length;
61
62 _this.state = {
63 delay: delay,
64 count: count,
65 index: start
66 };
67 return _this;
68 }
69
70 (0, _createClass2.default)(Timeline, [{
71 key: "didMount",
72 value: function didMount() {
73 var context = this.context;
74 var root = context.root;
75 root.on('animationEnd', this.next);
76 }
77 }, {
78 key: "didUnmount",
79 value: function didUnmount() {
80 var context = this.context;
81 var root = context.root;
82 root.off('animationEnd', this.next);
83 }
84 }, {
85 key: "render",
86 value: function render() {
87 var state = this.state,
88 props = this.props;
89 var children = props.children;
90 var index = state.index;
91
92 var childrenArray = _children.default.toArray(children);
93
94 return childrenArray[index];
95 }
96 }]);
97 return Timeline;
98}(_component.default);
99
100var _default = Timeline;
101exports.default = _default;
\No newline at end of file