@royaloperahouse/chord 2.11.1 → 2.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/chord.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, memo, useRef, useCallback, useEffect, useState, forwardRef, useMemo, cloneElement, useLayoutEffect } from 'react';
2
2
  import styled, { css, ThemeProvider, createGlobalStyle } from 'styled-components';
3
- import moment from 'moment';
3
+ import { isPast, intervalToDuration, differenceInDays } from 'date-fns';
4
4
  import { renderToString } from 'react-dom/server';
5
5
  import Select$1, { components } from 'react-select';
6
6
  import Select$2 from 'react-select/async';
@@ -4596,6 +4596,23 @@ var TimerValueSeparator = /*#__PURE__*/styled.div(_templateObject6$3 || (_templa
4596
4596
  var TimerValueWrapper = /*#__PURE__*/styled.div(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4597
4597
  var TimerValue = /*#__PURE__*/styled.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4598
4598
 
4599
+ var pad = function pad(num) {
4600
+ return String(num || 0).padStart(2, '0');
4601
+ };
4602
+
4603
+ var renderTimerValue = function renderTimerValue(value, title, separator) {
4604
+ if (separator === void 0) {
4605
+ separator = true;
4606
+ }
4607
+
4608
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4609
+ className: 'chord-timer-value',
4610
+ "data-testid": title
4611
+ }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4612
+ className: 'chord-timer-label'
4613
+ }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4614
+ };
4615
+
4599
4616
  var Timer = function Timer(_ref) {
4600
4617
  var endDate = _ref.endDate,
4601
4618
  title = _ref.title,
@@ -4605,39 +4622,27 @@ var Timer = function Timer(_ref) {
4605
4622
  _ref$color = _ref.color,
4606
4623
  color = _ref$color === void 0 ? Colors.Black : _ref$color;
4607
4624
 
4608
- var _React$useState = React__default.useState('00'),
4609
- seconds = _React$useState[0],
4610
- setSeconds = _React$useState[1];
4611
-
4612
- var _React$useState2 = React__default.useState('00'),
4613
- minutes = _React$useState2[0],
4614
- setMinutes = _React$useState2[1];
4625
+ var _useState = useState('00'),
4626
+ seconds = _useState[0],
4627
+ setSeconds = _useState[1];
4615
4628
 
4616
- var _React$useState3 = React__default.useState('00'),
4617
- hours = _React$useState3[0],
4618
- setHours = _React$useState3[1];
4629
+ var _useState2 = useState('00'),
4630
+ minutes = _useState2[0],
4631
+ setMinutes = _useState2[1];
4619
4632
 
4620
- var _React$useState4 = React__default.useState('00'),
4621
- days = _React$useState4[0],
4622
- setDays = _React$useState4[1];
4633
+ var _useState3 = useState('00'),
4634
+ hours = _useState3[0],
4635
+ setHours = _useState3[1];
4623
4636
 
4624
- var _React$useState5 = React__default.useState(false),
4625
- isEndDateReached = _React$useState5[0],
4626
- setIsEndDateReached = _React$useState5[1];
4637
+ var _useState4 = useState('00'),
4638
+ days = _useState4[0],
4639
+ setDays = _useState4[1];
4627
4640
 
4628
- var renderTimerValue = function renderTimerValue(value, title, separator) {
4629
- if (separator === void 0) {
4630
- separator = true;
4631
- }
4632
-
4633
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4634
- className: 'chord-timer-value'
4635
- }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4636
- className: 'chord-timer-label'
4637
- }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4638
- };
4641
+ var _useState5 = useState(false),
4642
+ isEndDateReached = _useState5[0],
4643
+ setIsEndDateReached = _useState5[1];
4639
4644
 
4640
- React__default.useEffect(function () {
4645
+ useEffect(function () {
4641
4646
  if (isEndDateReached) return; // We use this to set values for the timer immediately
4642
4647
 
4643
4648
  var setIntervalAndExecute = function setIntervalAndExecute(fn, delay) {
@@ -4646,20 +4651,23 @@ var Timer = function Timer(_ref) {
4646
4651
  };
4647
4652
 
4648
4653
  var updateValues = function updateValues() {
4649
- var futureDate = moment(endDate);
4650
- var nowDate = moment();
4651
- var differenceInMilliseconds = futureDate.valueOf() - nowDate.valueOf();
4652
- var difference = moment(differenceInMilliseconds).utc();
4654
+ var futureDate = new Date(endDate); // Date.now() is explicitly passed here just to satisfy Jest time mocking.
4655
+
4656
+ var nowDate = new Date(Date.now());
4657
+ var diffInMs = futureDate.getTime() - nowDate.getTime();
4653
4658
 
4654
- if (differenceInMilliseconds < 0) {
4659
+ if (diffInMs < 0) {
4655
4660
  setIsEndDateReached(true);
4656
4661
  if (endDateHandler) endDateHandler();
4657
4662
  } else {
4658
- var fullDaysLeft = Math.floor(futureDate.diff(nowDate, 'days', true));
4659
- var daysDiff = fullDaysLeft < 10 ? "0" + fullDaysLeft : fullDaysLeft.toString();
4660
- var hoursDiff = difference.format('HH');
4661
- var minutesDiff = difference.format('mm');
4662
- var secondsDiff = difference.format('ss');
4663
+ var duration = intervalToDuration({
4664
+ start: nowDate,
4665
+ end: futureDate
4666
+ });
4667
+ var daysDiff = pad(differenceInDays(futureDate, nowDate));
4668
+ var hoursDiff = pad(duration.hours);
4669
+ var minutesDiff = pad(duration.minutes);
4670
+ var secondsDiff = pad(duration.seconds);
4663
4671
  setDays(daysDiff);
4664
4672
  setHours(hoursDiff);
4665
4673
  setMinutes(minutesDiff);
@@ -4672,7 +4680,7 @@ var Timer = function Timer(_ref) {
4672
4680
  clearInterval(interval);
4673
4681
  };
4674
4682
  });
4675
- var hideTimer = moment(endDate).isBefore(moment());
4683
+ var hideTimer = isPast(new Date(endDate));
4676
4684
  if (hideTimer) return null;
4677
4685
  return /*#__PURE__*/React__default.createElement(TimerWrapper, {
4678
4686
  color: color