UNPKG

6.26 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 _styledComponents = require('styled-components');
20
21var _styledComponents2 = _interopRequireDefault(_styledComponents);
22
23var _react = require('react');
24
25var _react2 = _interopRequireDefault(_react);
26
27var _clock = require('./clock');
28
29var _utilities = require('../library/utilities');
30
31function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
33function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
35function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
37function _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; }
38
39function _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; }
40
41var Countdown = function (_Component) {
42 _inherits(Countdown, _Component);
43
44 function Countdown() {
45 var _ref;
46
47 var _temp, _this, _ret;
48
49 _classCallCheck(this, Countdown);
50
51 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
52 args[_key] = arguments[_key];
53 }
54
55 return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Countdown.__proto__ || Object.getPrototypeOf(Countdown)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
56 diff: (0, _utilities.differenceInDays)(_this.props.date, _this.props.now)
57 }, _temp), _possibleConstructorReturn(_this, _ret);
58 }
59
60 /**
61 * Define the proptypes of the component.
62 * @type {Object}
63 */
64
65
66 /**
67 * Define the initial state of the component.
68 * @type {Object}
69 */
70
71
72 _createClass(Countdown, [{
73 key: 'componentDidMount',
74
75
76 /**
77 * Invoked when the component is mounted.
78 *
79 * @return {void}
80 */
81 value: function componentDidMount() {
82 var _this2 = this;
83
84 this.timer = setInterval(function () {
85 _this2.setState({ diff: (0, _utilities.differenceInDays)(_this2.props.date, _this2.props.now) });
86 });
87 }
88
89 /**
90 * Invoked when the component will unmount.
91 *
92 * @return {void}
93 */
94
95 }, {
96 key: 'componentWillUnmount',
97 value: function componentWillUnmount() {
98 clearInterval(this.timer);
99 }
100
101 /**
102 * Render the component
103 *
104 * @return {ReactElement}
105 */
106
107 }, {
108 key: 'render',
109 value: function render() {
110 var diff = this.state.diff;
111 var _props = this.props,
112 label = _props.label,
113 className = _props.className;
114
115
116 return _react2.default.createElement(
117 'div',
118 { className: className },
119 _react2.default.createElement(
120 _label2.default,
121 null,
122 label
123 ),
124 _react2.default.createElement(
125 _clock.Clock,
126 null,
127 _react2.default.createElement(
128 _clock.Unit,
129 null,
130 _react2.default.createElement(
131 _clock.UnitAmount,
132 null,
133 diff.days
134 ),
135 _react2.default.createElement(
136 _clock.UnitLabel,
137 null,
138 'days'
139 )
140 ),
141 _react2.default.createElement(
142 _clock.Unit,
143 null,
144 _react2.default.createElement(
145 _clock.UnitAmount,
146 null,
147 (0, _zpad2.default)(diff.hours)
148 ),
149 _react2.default.createElement(
150 _clock.UnitLabel,
151 null,
152 'hrs'
153 )
154 ),
155 _react2.default.createElement(
156 _clock.Unit,
157 null,
158 _react2.default.createElement(
159 _clock.UnitAmount,
160 null,
161 (0, _zpad2.default)(diff.minutes)
162 ),
163 _react2.default.createElement(
164 _clock.UnitLabel,
165 null,
166 'min'
167 )
168 ),
169 _react2.default.createElement(
170 _clock.Unit,
171 null,
172 _react2.default.createElement(
173 _clock.UnitAmount,
174 null,
175 (0, _zpad2.default)(diff.seconds)
176 ),
177 _react2.default.createElement(
178 _clock.UnitLabel,
179 null,
180 'sec'
181 )
182 )
183 )
184 );
185 }
186 }]);
187
188 return Countdown;
189}(_react.Component);
190
191Countdown.propTypes = {
192 now: _react.PropTypes.string,
193 className: _react.PropTypes.string,
194 date: _react.PropTypes.string.isRequired,
195 label: _react.PropTypes.string.isRequired
196};
197exports.default = (0, _styledComponents2.default)(Countdown)(_templateObject);
\No newline at end of file