@royaloperahouse/harmonic 0.18.2-e → 0.18.3-a

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.
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, memo, useCallback, useRef, useImperativeHandle, useMemo, useEffect, useState, forwardRef, 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';
@@ -4571,6 +4571,31 @@ var TimerValueSeparator = /*#__PURE__*/styled.div(_templateObject6$3 || (_templa
4571
4571
  var TimerValueWrapper = /*#__PURE__*/styled.div(_templateObject7$1 || (_templateObject7$1 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4572
4572
  var TimerValue = /*#__PURE__*/styled.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4573
4573
 
4574
+ var pad = function pad(num) {
4575
+ return String(num || 0).padStart(2, '0');
4576
+ };
4577
+ var renderTimerValue = function renderTimerValue(value, label, separator) {
4578
+ if (separator === void 0) {
4579
+ separator = true;
4580
+ }
4581
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4582
+ className: "harmonic-timer-value"
4583
+ }, /*#__PURE__*/React__default.createElement(HarmonicHeader, {
4584
+ color: "inherit",
4585
+ hierarchy: "h3",
4586
+ size: "medium",
4587
+ "data-testid": label
4588
+ }, value)), /*#__PURE__*/React__default.createElement(TimerLabel, {
4589
+ className: "harmonic-timer-label"
4590
+ }, /*#__PURE__*/React__default.createElement(HarmonicOverline, {
4591
+ color: "inherit",
4592
+ size: "large"
4593
+ }, label))), separator && (/*#__PURE__*/React__default.createElement(HarmonicHeader, {
4594
+ color: "inherit",
4595
+ hierarchy: "h3",
4596
+ size: "medium"
4597
+ }, /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"))));
4598
+ };
4574
4599
  var Timer = function Timer(_ref) {
4575
4600
  var endDate = _ref.endDate,
4576
4601
  title = _ref.title,
@@ -4579,43 +4604,22 @@ var Timer = function Timer(_ref) {
4579
4604
  bottomLine = _ref$bottomLine === void 0 ? true : _ref$bottomLine,
4580
4605
  _ref$color = _ref.color,
4581
4606
  color = _ref$color === void 0 ? ThemeColor['base-black'] : _ref$color;
4582
- var _React$useState = React__default.useState('00'),
4583
- seconds = _React$useState[0],
4584
- setSeconds = _React$useState[1];
4585
- var _React$useState2 = React__default.useState('00'),
4586
- minutes = _React$useState2[0],
4587
- setMinutes = _React$useState2[1];
4588
- var _React$useState3 = React__default.useState('00'),
4589
- hours = _React$useState3[0],
4590
- setHours = _React$useState3[1];
4591
- var _React$useState4 = React__default.useState('00'),
4592
- days = _React$useState4[0],
4593
- setDays = _React$useState4[1];
4594
- var _React$useState5 = React__default.useState(false),
4595
- isEndDateReached = _React$useState5[0],
4596
- setIsEndDateReached = _React$useState5[1];
4597
- var renderTimerValue = function renderTimerValue(value, label, separator) {
4598
- if (separator === void 0) {
4599
- separator = true;
4600
- }
4601
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4602
- className: "harmonic-timer-value"
4603
- }, /*#__PURE__*/React__default.createElement(HarmonicHeader, {
4604
- color: "inherit",
4605
- hierarchy: "h3",
4606
- size: "medium"
4607
- }, value)), /*#__PURE__*/React__default.createElement(TimerLabel, {
4608
- className: "harmonic-timer-label"
4609
- }, /*#__PURE__*/React__default.createElement(HarmonicOverline, {
4610
- color: "inherit",
4611
- size: "large"
4612
- }, label))), separator && (/*#__PURE__*/React__default.createElement(HarmonicHeader, {
4613
- color: "inherit",
4614
- hierarchy: "h3",
4615
- size: "medium"
4616
- }, /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"))));
4617
- };
4618
- React__default.useEffect(function () {
4607
+ var _useState = useState('00'),
4608
+ seconds = _useState[0],
4609
+ setSeconds = _useState[1];
4610
+ var _useState2 = useState('00'),
4611
+ minutes = _useState2[0],
4612
+ setMinutes = _useState2[1];
4613
+ var _useState3 = useState('00'),
4614
+ hours = _useState3[0],
4615
+ setHours = _useState3[1];
4616
+ var _useState4 = useState('00'),
4617
+ days = _useState4[0],
4618
+ setDays = _useState4[1];
4619
+ var _useState5 = useState(false),
4620
+ isEndDateReached = _useState5[0],
4621
+ setIsEndDateReached = _useState5[1];
4622
+ useEffect(function () {
4619
4623
  if (isEndDateReached) return undefined;
4620
4624
  // We use this to set values for the timer immediately
4621
4625
  var setIntervalAndExecute = function setIntervalAndExecute(fn, delay) {
@@ -4623,19 +4627,21 @@ var Timer = function Timer(_ref) {
4623
4627
  return setInterval(fn, delay);
4624
4628
  };
4625
4629
  var updateValues = function updateValues() {
4626
- var futureDate = moment(endDate);
4627
- var nowDate = moment();
4628
- var differenceInMilliseconds = futureDate.valueOf() - nowDate.valueOf();
4629
- var difference = moment(differenceInMilliseconds).utc();
4630
- if (differenceInMilliseconds < 0) {
4630
+ var futureDate = new Date(endDate);
4631
+ var nowDate = new Date();
4632
+ var diffInMs = futureDate.getTime() - nowDate.getTime();
4633
+ if (diffInMs < 0) {
4631
4634
  setIsEndDateReached(true);
4632
4635
  if (endDateHandler) endDateHandler();
4633
4636
  } else {
4634
- var fullDaysLeft = Math.floor(futureDate.diff(nowDate, 'days', true));
4635
- var daysDiff = fullDaysLeft < 10 ? "0" + fullDaysLeft : fullDaysLeft.toString();
4636
- var hoursDiff = difference.format('HH');
4637
- var minutesDiff = difference.format('mm');
4638
- var secondsDiff = difference.format('ss');
4637
+ var duration = intervalToDuration({
4638
+ start: nowDate,
4639
+ end: futureDate
4640
+ });
4641
+ var daysDiff = pad(differenceInDays(futureDate, nowDate));
4642
+ var hoursDiff = pad(duration.hours);
4643
+ var minutesDiff = pad(duration.minutes);
4644
+ var secondsDiff = pad(duration.seconds);
4639
4645
  setDays(daysDiff);
4640
4646
  setHours(hoursDiff);
4641
4647
  setMinutes(minutesDiff);
@@ -4647,7 +4653,7 @@ var Timer = function Timer(_ref) {
4647
4653
  clearInterval(interval);
4648
4654
  };
4649
4655
  });
4650
- var hideTimer = moment(endDate).isBefore(moment());
4656
+ var hideTimer = isPast(new Date(endDate));
4651
4657
  if (hideTimer) return null;
4652
4658
  return /*#__PURE__*/React__default.createElement(TimerWrapper, {
4653
4659
  color: color