UNPKG

6.46 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
9var _templateObject = _taggedTemplateLiteral(['\n display: block;\n position: relative;\n padding-top: 1.5em;\n'], ['\n display: block;\n position: relative;\n padding-top: 1.5em;\n']);
10
11var _zpad = require('zpad');
12
13var _zpad2 = _interopRequireDefault(_zpad);
14
15var _label = require('./label');
16
17var _label2 = _interopRequireDefault(_label);
18
19var _action = require('./action');
20
21var _action2 = _interopRequireDefault(_action);
22
23var _styledComponents = require('styled-components');
24
25var _styledComponents2 = _interopRequireDefault(_styledComponents);
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _clock = require('./clock');
32
33var _utilities = require('../library/utilities');
34
35function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
37function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
38
39function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
40
41function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
42
43function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
44
45var Countdown = function (_Component) {
46 _inherits(Countdown, _Component);
47
48 function Countdown() {
49 var _ref;
50
51 var _temp, _this, _ret;
52
53 _classCallCheck(this, Countdown);
54
55 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
56 args[_key] = arguments[_key];
57 }
58
59 return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Countdown.__proto__ || Object.getPrototypeOf(Countdown)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
60 diff: (0, _utilities.differenceInDays)(_this.props.date, _this.props.now)
61 }, _temp), _possibleConstructorReturn(_this, _ret);
62 }
63
64 /**
65 * Define the proptypes of the component.
66 * @type {Object}
67 */
68
69
70 /**
71 * Define the initial state of the component.
72 * @type {Object}
73 */
74
75
76 _createClass(Countdown, [{
77 key: 'componentDidMount',
78
79
80 /**
81 * Invoked when the component is mounted.
82 *
83 * @return {void}
84 */
85 value: function componentDidMount() {
86 var _this2 = this;
87
88 this.timer = setInterval(function () {
89 _this2.setState({ diff: (0, _utilities.differenceInDays)(_this2.props.date, _this2.props.now) });
90 });
91 }
92
93 /**
94 * Invoked when the component will unmount.
95 *
96 * @return {void}
97 */
98
99 }, {
100 key: 'componentWillUnmount',
101 value: function componentWillUnmount() {
102 clearInterval(this.timer);
103 }
104
105 /**
106 * Render the component
107 *
108 * @return {ReactElement}
109 */
110
111 }, {
112 key: 'render',
113 value: function render() {
114 var diff = this.state.diff;
115 var _props = this.props,
116 label = _props.label,
117 className = _props.className;
118
119
120 return _react2.default.createElement(
121 'div',
122 { className: className },
123 _react2.default.createElement(
124 _label2.default,
125 null,
126 label
127 ),
128 _react2.default.createElement(
129 _clock.Clock,
130 null,
131 _react2.default.createElement(
132 _clock.Unit,
133 null,
134 _react2.default.createElement(
135 _clock.UnitAmount,
136 null,
137 diff.days
138 ),
139 _react2.default.createElement(
140 _clock.UnitLabel,
141 null,
142 'days'
143 )
144 ),
145 _react2.default.createElement(
146 _clock.Unit,
147 null,
148 _react2.default.createElement(
149 _clock.UnitAmount,
150 null,
151 (0, _zpad2.default)(diff.hours)
152 ),
153 _react2.default.createElement(
154 _clock.UnitLabel,
155 null,
156 'hrs'
157 )
158 ),
159 _react2.default.createElement(
160 _clock.Unit,
161 null,
162 _react2.default.createElement(
163 _clock.UnitAmount,
164 null,
165 (0, _zpad2.default)(diff.minutes)
166 ),
167 _react2.default.createElement(
168 _clock.UnitLabel,
169 null,
170 'min'
171 )
172 ),
173 _react2.default.createElement(
174 _clock.Unit,
175 null,
176 _react2.default.createElement(
177 _clock.UnitAmount,
178 null,
179 (0, _zpad2.default)(diff.seconds)
180 ),
181 _react2.default.createElement(
182 _clock.UnitLabel,
183 null,
184 'sec'
185 )
186 )
187 ),
188 _react2.default.createElement(
189 _action2.default,
190 null,
191 'Add to calendar'
192 )
193 );
194 }
195 }]);
196
197 return Countdown;
198}(_react.Component);
199
200Countdown.propTypes = {
201 now: _react.PropTypes.string,
202 className: _react.PropTypes.string,
203 date: _react.PropTypes.string.isRequired,
204 label: _react.PropTypes.string.isRequired
205};
206exports.default = (0, _styledComponents2.default)(Countdown)(_templateObject);
\No newline at end of file