@royaloperahouse/harmonic 0.19.1 → 0.19.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.
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, memo, forwardRef, useCallback, useRef, useImperativeHandle, useMemo, useEffect, useState, 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';
@@ -4663,6 +4663,31 @@ var TimerValueSeparator = /*#__PURE__*/styled.div(_templateObject6$3 || (_templa
4663
4663
  var TimerValueWrapper = /*#__PURE__*/styled.div(_templateObject7$1 || (_templateObject7$1 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4664
4664
  var TimerValue = /*#__PURE__*/styled.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose([""])));
4665
4665
 
4666
+ var pad = function pad(num) {
4667
+ return String(num || 0).padStart(2, '0');
4668
+ };
4669
+ var renderTimerValue = function renderTimerValue(value, label, separator) {
4670
+ if (separator === void 0) {
4671
+ separator = true;
4672
+ }
4673
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4674
+ className: "harmonic-timer-value"
4675
+ }, /*#__PURE__*/React__default.createElement(HarmonicHeader, {
4676
+ color: "inherit",
4677
+ hierarchy: "h3",
4678
+ size: "medium",
4679
+ "data-testid": label
4680
+ }, value)), /*#__PURE__*/React__default.createElement(TimerLabel, {
4681
+ className: "harmonic-timer-label"
4682
+ }, /*#__PURE__*/React__default.createElement(HarmonicOverline, {
4683
+ color: "inherit",
4684
+ size: "large"
4685
+ }, label))), separator && (/*#__PURE__*/React__default.createElement(HarmonicHeader, {
4686
+ color: "inherit",
4687
+ hierarchy: "h3",
4688
+ size: "medium"
4689
+ }, /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"))));
4690
+ };
4666
4691
  var Timer = function Timer(_ref) {
4667
4692
  var endDate = _ref.endDate,
4668
4693
  title = _ref.title,
@@ -4671,43 +4696,22 @@ var Timer = function Timer(_ref) {
4671
4696
  bottomLine = _ref$bottomLine === void 0 ? true : _ref$bottomLine,
4672
4697
  _ref$color = _ref.color,
4673
4698
  color = _ref$color === void 0 ? ThemeColor['base-black'] : _ref$color;
4674
- var _React$useState = React__default.useState('00'),
4675
- seconds = _React$useState[0],
4676
- setSeconds = _React$useState[1];
4677
- var _React$useState2 = React__default.useState('00'),
4678
- minutes = _React$useState2[0],
4679
- setMinutes = _React$useState2[1];
4680
- var _React$useState3 = React__default.useState('00'),
4681
- hours = _React$useState3[0],
4682
- setHours = _React$useState3[1];
4683
- var _React$useState4 = React__default.useState('00'),
4684
- days = _React$useState4[0],
4685
- setDays = _React$useState4[1];
4686
- var _React$useState5 = React__default.useState(false),
4687
- isEndDateReached = _React$useState5[0],
4688
- setIsEndDateReached = _React$useState5[1];
4689
- var renderTimerValue = function renderTimerValue(value, label, separator) {
4690
- if (separator === void 0) {
4691
- separator = true;
4692
- }
4693
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TimerValueWrapper, null, /*#__PURE__*/React__default.createElement(TimerValue, {
4694
- className: "harmonic-timer-value"
4695
- }, /*#__PURE__*/React__default.createElement(HarmonicHeader, {
4696
- color: "inherit",
4697
- hierarchy: "h3",
4698
- size: "medium"
4699
- }, value)), /*#__PURE__*/React__default.createElement(TimerLabel, {
4700
- className: "harmonic-timer-label"
4701
- }, /*#__PURE__*/React__default.createElement(HarmonicOverline, {
4702
- color: "inherit",
4703
- size: "large"
4704
- }, label))), separator && (/*#__PURE__*/React__default.createElement(HarmonicHeader, {
4705
- color: "inherit",
4706
- hierarchy: "h3",
4707
- size: "medium"
4708
- }, /*#__PURE__*/React__default.createElement(TimerValueSeparator, null, ":"))));
4709
- };
4710
- React__default.useEffect(function () {
4699
+ var _useState = useState('00'),
4700
+ seconds = _useState[0],
4701
+ setSeconds = _useState[1];
4702
+ var _useState2 = useState('00'),
4703
+ minutes = _useState2[0],
4704
+ setMinutes = _useState2[1];
4705
+ var _useState3 = useState('00'),
4706
+ hours = _useState3[0],
4707
+ setHours = _useState3[1];
4708
+ var _useState4 = useState('00'),
4709
+ days = _useState4[0],
4710
+ setDays = _useState4[1];
4711
+ var _useState5 = useState(false),
4712
+ isEndDateReached = _useState5[0],
4713
+ setIsEndDateReached = _useState5[1];
4714
+ useEffect(function () {
4711
4715
  if (isEndDateReached) return undefined;
4712
4716
  // We use this to set values for the timer immediately
4713
4717
  var setIntervalAndExecute = function setIntervalAndExecute(fn, delay) {
@@ -4715,19 +4719,21 @@ var Timer = function Timer(_ref) {
4715
4719
  return setInterval(fn, delay);
4716
4720
  };
4717
4721
  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();
4722
- if (differenceInMilliseconds < 0) {
4722
+ var futureDate = new Date(endDate);
4723
+ var nowDate = new Date();
4724
+ var diffInMs = futureDate.getTime() - nowDate.getTime();
4725
+ if (diffInMs < 0) {
4723
4726
  setIsEndDateReached(true);
4724
4727
  if (endDateHandler) endDateHandler();
4725
4728
  } else {
4726
- var fullDaysLeft = Math.floor(futureDate.diff(nowDate, 'days', true));
4727
- var daysDiff = fullDaysLeft < 10 ? "0" + fullDaysLeft : fullDaysLeft.toString();
4728
- var hoursDiff = difference.format('HH');
4729
- var minutesDiff = difference.format('mm');
4730
- var secondsDiff = difference.format('ss');
4729
+ var duration = intervalToDuration({
4730
+ start: nowDate,
4731
+ end: futureDate
4732
+ });
4733
+ var daysDiff = pad(differenceInDays(futureDate, nowDate));
4734
+ var hoursDiff = pad(duration.hours);
4735
+ var minutesDiff = pad(duration.minutes);
4736
+ var secondsDiff = pad(duration.seconds);
4731
4737
  setDays(daysDiff);
4732
4738
  setHours(hoursDiff);
4733
4739
  setMinutes(minutesDiff);
@@ -4739,7 +4745,7 @@ var Timer = function Timer(_ref) {
4739
4745
  clearInterval(interval);
4740
4746
  };
4741
4747
  });
4742
- var hideTimer = moment(endDate).isBefore(moment());
4748
+ var hideTimer = isPast(new Date(endDate));
4743
4749
  if (hideTimer) return null;
4744
4750
  return /*#__PURE__*/React__default.createElement(TimerWrapper, {
4745
4751
  color: color