@royaloperahouse/chord 2.11.0-b-development → 2.11.1-a-development

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';
@@ -4665,6 +4665,23 @@ var TimerValueSeparator = /*#__PURE__*/styled.div(_templateObject6$3 || (_templa
4665
4665
  var TimerValueWrapper = /*#__PURE__*/styled.div(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4666
4666
  var TimerValue = /*#__PURE__*/styled.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4667
4667
 
4668
+ var pad = function pad(num) {
4669
+ return String(num || 0).padStart(2, '0');
4670
+ };
4671
+
4672
+ var renderTimerValue = function renderTimerValue(value, title, separator) {
4673
+ if (separator === void 0) {
4674
+ separator = true;
4675
+ }
4676
+
4677
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4678
+ className: 'chord-timer-value',
4679
+ "data-testid": title
4680
+ }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4681
+ className: 'chord-timer-label'
4682
+ }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4683
+ };
4684
+
4668
4685
  var Timer = function Timer(_ref) {
4669
4686
  var endDate = _ref.endDate,
4670
4687
  title = _ref.title,
@@ -4674,39 +4691,27 @@ var Timer = function Timer(_ref) {
4674
4691
  _ref$color = _ref.color,
4675
4692
  color = _ref$color === void 0 ? Colors.Black : _ref$color;
4676
4693
 
4677
- var _React$useState = React__default.useState('00'),
4678
- seconds = _React$useState[0],
4679
- setSeconds = _React$useState[1];
4680
-
4681
- var _React$useState2 = React__default.useState('00'),
4682
- minutes = _React$useState2[0],
4683
- setMinutes = _React$useState2[1];
4694
+ var _useState = useState('00'),
4695
+ seconds = _useState[0],
4696
+ setSeconds = _useState[1];
4684
4697
 
4685
- var _React$useState3 = React__default.useState('00'),
4686
- hours = _React$useState3[0],
4687
- setHours = _React$useState3[1];
4698
+ var _useState2 = useState('00'),
4699
+ minutes = _useState2[0],
4700
+ setMinutes = _useState2[1];
4688
4701
 
4689
- var _React$useState4 = React__default.useState('00'),
4690
- days = _React$useState4[0],
4691
- setDays = _React$useState4[1];
4702
+ var _useState3 = useState('00'),
4703
+ hours = _useState3[0],
4704
+ setHours = _useState3[1];
4692
4705
 
4693
- var _React$useState5 = React__default.useState(false),
4694
- isEndDateReached = _React$useState5[0],
4695
- setIsEndDateReached = _React$useState5[1];
4706
+ var _useState4 = useState('00'),
4707
+ days = _useState4[0],
4708
+ setDays = _useState4[1];
4696
4709
 
4697
- var renderTimerValue = function renderTimerValue(value, title, separator) {
4698
- if (separator === void 0) {
4699
- separator = true;
4700
- }
4701
-
4702
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4703
- className: 'chord-timer-value'
4704
- }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4705
- className: 'chord-timer-label'
4706
- }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4707
- };
4710
+ var _useState5 = useState(false),
4711
+ isEndDateReached = _useState5[0],
4712
+ setIsEndDateReached = _useState5[1];
4708
4713
 
4709
- React__default.useEffect(function () {
4714
+ useEffect(function () {
4710
4715
  if (isEndDateReached) return; // We use this to set values for the timer immediately
4711
4716
 
4712
4717
  var setIntervalAndExecute = function setIntervalAndExecute(fn, delay) {
@@ -4715,20 +4720,23 @@ var Timer = function Timer(_ref) {
4715
4720
  };
4716
4721
 
4717
4722
  var updateValues = function updateValues() {
4718
- var futureDate = moment(endDate);
4719
- var nowDate = moment();
4720
- var differenceInMilliseconds = futureDate.valueOf() - nowDate.valueOf();
4721
- var difference = moment(differenceInMilliseconds).utc();
4723
+ var futureDate = new Date(endDate); // Date.now() is explicitly passed here just to satisfy Jest time mocking.
4724
+
4725
+ var nowDate = new Date(Date.now());
4726
+ var diffInMs = futureDate.getTime() - nowDate.getTime();
4722
4727
 
4723
- if (differenceInMilliseconds < 0) {
4728
+ if (diffInMs < 0) {
4724
4729
  setIsEndDateReached(true);
4725
4730
  if (endDateHandler) endDateHandler();
4726
4731
  } else {
4727
- var fullDaysLeft = Math.floor(futureDate.diff(nowDate, 'days', true));
4728
- var daysDiff = fullDaysLeft < 10 ? "0" + fullDaysLeft : fullDaysLeft.toString();
4729
- var hoursDiff = difference.format('HH');
4730
- var minutesDiff = difference.format('mm');
4731
- var secondsDiff = difference.format('ss');
4732
+ var duration = intervalToDuration({
4733
+ start: nowDate,
4734
+ end: futureDate
4735
+ });
4736
+ var daysDiff = pad(differenceInDays(futureDate, nowDate));
4737
+ var hoursDiff = pad(duration.hours);
4738
+ var minutesDiff = pad(duration.minutes);
4739
+ var secondsDiff = pad(duration.seconds);
4732
4740
  setDays(daysDiff);
4733
4741
  setHours(hoursDiff);
4734
4742
  setMinutes(minutesDiff);
@@ -4741,7 +4749,7 @@ var Timer = function Timer(_ref) {
4741
4749
  clearInterval(interval);
4742
4750
  };
4743
4751
  });
4744
- var hideTimer = moment(endDate).isBefore(moment());
4752
+ var hideTimer = isPast(new Date(endDate));
4745
4753
  if (hideTimer) return null;
4746
4754
  return /*#__PURE__*/React__default.createElement(TimerWrapper, {
4747
4755
  color: color