@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/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## [2.11.2]
2
+ - Migrated from moment.js 2.29.4 to date-fn 2.30.0
3
+
1
4
  ## [2.11.1]
2
5
  - Added invisible text inside Account link if no visible text is provided for SEO & A11y.
3
6
 
package/README.GIT CHANGED
@@ -59,6 +59,10 @@ You can quickly build and serve the contents of `/storybook-static` from your lo
59
59
  ```bash
60
60
  yarn storybook
61
61
  ```
62
+ Try to use this script if you have issues running it locally
63
+ ```bash
64
+ NODE_OPTIONS=--openssl-legacy-provider yarn storybook
65
+ ```
62
66
 
63
67
  By default the storybook will be accessible at
64
68
  [http://localhost:6006/](http://localhost:6006/)
@@ -8,7 +8,7 @@ var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
9
  var styled = require('styled-components');
10
10
  var styled__default = _interopDefault(styled);
11
- var moment = _interopDefault(require('moment'));
11
+ var dateFns = require('date-fns');
12
12
  var server = require('react-dom/server');
13
13
  var Select$1 = require('react-select');
14
14
  var Select$1__default = _interopDefault(Select$1);
@@ -4591,6 +4591,23 @@ var TimerValueSeparator = /*#__PURE__*/styled__default.div(_templateObject6$3 ||
4591
4591
  var TimerValueWrapper = /*#__PURE__*/styled__default.div(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4592
4592
  var TimerValue = /*#__PURE__*/styled__default.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4593
4593
 
4594
+ var pad = function pad(num) {
4595
+ return String(num || 0).padStart(2, '0');
4596
+ };
4597
+
4598
+ var renderTimerValue = function renderTimerValue(value, title, separator) {
4599
+ if (separator === void 0) {
4600
+ separator = true;
4601
+ }
4602
+
4603
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4604
+ className: 'chord-timer-value',
4605
+ "data-testid": title
4606
+ }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4607
+ className: 'chord-timer-label'
4608
+ }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4609
+ };
4610
+
4594
4611
  var Timer = function Timer(_ref) {
4595
4612
  var endDate = _ref.endDate,
4596
4613
  title = _ref.title,
@@ -4600,39 +4617,27 @@ var Timer = function Timer(_ref) {
4600
4617
  _ref$color = _ref.color,
4601
4618
  color = _ref$color === void 0 ? exports.Colors.Black : _ref$color;
4602
4619
 
4603
- var _React$useState = React__default.useState('00'),
4604
- seconds = _React$useState[0],
4605
- setSeconds = _React$useState[1];
4606
-
4607
- var _React$useState2 = React__default.useState('00'),
4608
- minutes = _React$useState2[0],
4609
- setMinutes = _React$useState2[1];
4620
+ var _useState = React.useState('00'),
4621
+ seconds = _useState[0],
4622
+ setSeconds = _useState[1];
4610
4623
 
4611
- var _React$useState3 = React__default.useState('00'),
4612
- hours = _React$useState3[0],
4613
- setHours = _React$useState3[1];
4624
+ var _useState2 = React.useState('00'),
4625
+ minutes = _useState2[0],
4626
+ setMinutes = _useState2[1];
4614
4627
 
4615
- var _React$useState4 = React__default.useState('00'),
4616
- days = _React$useState4[0],
4617
- setDays = _React$useState4[1];
4628
+ var _useState3 = React.useState('00'),
4629
+ hours = _useState3[0],
4630
+ setHours = _useState3[1];
4618
4631
 
4619
- var _React$useState5 = React__default.useState(false),
4620
- isEndDateReached = _React$useState5[0],
4621
- setIsEndDateReached = _React$useState5[1];
4632
+ var _useState4 = React.useState('00'),
4633
+ days = _useState4[0],
4634
+ setDays = _useState4[1];
4622
4635
 
4623
- var renderTimerValue = function renderTimerValue(value, title, separator) {
4624
- if (separator === void 0) {
4625
- separator = true;
4626
- }
4627
-
4628
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4629
- className: 'chord-timer-value'
4630
- }, value), /*#__PURE__*/React__default.createElement(TimerLabel, {
4631
- className: 'chord-timer-label'
4632
- }, title)), separator && /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"));
4633
- };
4636
+ var _useState5 = React.useState(false),
4637
+ isEndDateReached = _useState5[0],
4638
+ setIsEndDateReached = _useState5[1];
4634
4639
 
4635
- React__default.useEffect(function () {
4640
+ React.useEffect(function () {
4636
4641
  if (isEndDateReached) return; // We use this to set values for the timer immediately
4637
4642
 
4638
4643
  var setIntervalAndExecute = function setIntervalAndExecute(fn, delay) {
@@ -4641,20 +4646,23 @@ var Timer = function Timer(_ref) {
4641
4646
  };
4642
4647
 
4643
4648
  var updateValues = function updateValues() {
4644
- var futureDate = moment(endDate);
4645
- var nowDate = moment();
4646
- var differenceInMilliseconds = futureDate.valueOf() - nowDate.valueOf();
4647
- var difference = moment(differenceInMilliseconds).utc();
4649
+ var futureDate = new Date(endDate); // Date.now() is explicitly passed here just to satisfy Jest time mocking.
4650
+
4651
+ var nowDate = new Date(Date.now());
4652
+ var diffInMs = futureDate.getTime() - nowDate.getTime();
4648
4653
 
4649
- if (differenceInMilliseconds < 0) {
4654
+ if (diffInMs < 0) {
4650
4655
  setIsEndDateReached(true);
4651
4656
  if (endDateHandler) endDateHandler();
4652
4657
  } else {
4653
- var fullDaysLeft = Math.floor(futureDate.diff(nowDate, 'days', true));
4654
- var daysDiff = fullDaysLeft < 10 ? "0" + fullDaysLeft : fullDaysLeft.toString();
4655
- var hoursDiff = difference.format('HH');
4656
- var minutesDiff = difference.format('mm');
4657
- var secondsDiff = difference.format('ss');
4658
+ var duration = dateFns.intervalToDuration({
4659
+ start: nowDate,
4660
+ end: futureDate
4661
+ });
4662
+ var daysDiff = pad(dateFns.differenceInDays(futureDate, nowDate));
4663
+ var hoursDiff = pad(duration.hours);
4664
+ var minutesDiff = pad(duration.minutes);
4665
+ var secondsDiff = pad(duration.seconds);
4658
4666
  setDays(daysDiff);
4659
4667
  setHours(hoursDiff);
4660
4668
  setMinutes(minutesDiff);
@@ -4667,7 +4675,7 @@ var Timer = function Timer(_ref) {
4667
4675
  clearInterval(interval);
4668
4676
  };
4669
4677
  });
4670
- var hideTimer = moment(endDate).isBefore(moment());
4678
+ var hideTimer = dateFns.isPast(new Date(endDate));
4671
4679
  if (hideTimer) return null;
4672
4680
  return /*#__PURE__*/React__default.createElement(TimerWrapper, {
4673
4681
  color: color