@royaloperahouse/chord 1.18.2-b-chord-development → 1.18.2-c-chord-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.cjs.development.js +102 -7
- package/dist/chord.cjs.development.js.map +1 -1
- package/dist/chord.cjs.production.min.js +1 -1
- package/dist/chord.cjs.production.min.js.map +1 -1
- package/dist/chord.esm.js +102 -7
- package/dist/chord.esm.js.map +1 -1
- package/dist/components/atoms/Basket/Basket.d.ts +1 -1
- package/dist/components/atoms/Basket/helpers.d.ts +3 -0
- package/dist/components/atoms/Basket/hooks.d.ts +7 -0
- package/dist/components/molecules/NavTop/NavTop.d.ts +1 -1
- package/dist/types/navigation.d.ts +8 -0
- package/package.json +1 -1
|
@@ -3709,8 +3709,96 @@ var SvgContainer = /*#__PURE__*/styled__default.div(_templateObject2$f || (_temp
|
|
|
3709
3709
|
var NumContainer = /*#__PURE__*/styled__default.div(_templateObject3$9 || (_templateObject3$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n width: 12px;\n height: 12px;\n position: absolute;\n top: 8px;\n margin-left: 6px;\n\n & .basket-num {\n color: white;\n font-size: 10px;\n font-family: var(--font-family-navigation);\n }\n"])));
|
|
3710
3710
|
var BasketText = /*#__PURE__*/styled__default.a(_templateObject4$5 || (_templateObject4$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--font-size-navigation);\n font-family: var(--font-family-navigation);\n color: var(--base-color-black);\n margin-left: 6px;\n text-decoration: none;\n"])));
|
|
3711
3711
|
|
|
3712
|
+
var getSecondsUntil = function getSecondsUntil(expiryUnixTimestamp) {
|
|
3713
|
+
if (!expiryUnixTimestamp) return 0;
|
|
3714
|
+
var now = Date.now();
|
|
3715
|
+
var expiry = new Date(expiryUnixTimestamp * 1000);
|
|
3716
|
+
var diff = Math.round((expiry.getTime() - now) / 1000);
|
|
3717
|
+
return diff > 0 ? diff : 0;
|
|
3718
|
+
};
|
|
3719
|
+
var formatTime = function formatTime(seconds) {
|
|
3720
|
+
if (seconds > 60) {
|
|
3721
|
+
return Math.ceil(seconds / 60) + " mins";
|
|
3722
|
+
}
|
|
3723
|
+
|
|
3724
|
+
return seconds + " sec" + (seconds === 1 ? '' : 's');
|
|
3725
|
+
};
|
|
3726
|
+
var checkTimeRed = function checkTimeRed(seconds) {
|
|
3727
|
+
if (seconds <= 0) {
|
|
3728
|
+
return false;
|
|
3729
|
+
}
|
|
3730
|
+
|
|
3731
|
+
return seconds / 60 <= 5;
|
|
3732
|
+
};
|
|
3733
|
+
|
|
3734
|
+
var useBasket = function useBasket(expiryUnixTimestamp, numItems) {
|
|
3735
|
+
var _useState = React.useState(),
|
|
3736
|
+
basketText = _useState[0],
|
|
3737
|
+
setBasketText = _useState[1];
|
|
3738
|
+
|
|
3739
|
+
var _useState2 = React.useState(),
|
|
3740
|
+
basketIsActive = _useState2[0],
|
|
3741
|
+
setBasketIsActive = _useState2[1];
|
|
3742
|
+
|
|
3743
|
+
var _useState3 = React.useState(numItems != null ? numItems : 0),
|
|
3744
|
+
basketNumItems = _useState3[0],
|
|
3745
|
+
setBasketNumItems = _useState3[1];
|
|
3746
|
+
|
|
3747
|
+
var _useState4 = React.useState(getSecondsUntil(expiryUnixTimestamp)),
|
|
3748
|
+
seconds = _useState4[0],
|
|
3749
|
+
setSeconds = _useState4[1];
|
|
3750
|
+
|
|
3751
|
+
var _useState5 = React.useState(),
|
|
3752
|
+
timer = _useState5[0],
|
|
3753
|
+
setTimer = _useState5[1];
|
|
3754
|
+
|
|
3755
|
+
React.useEffect(function () {
|
|
3756
|
+
if (!numItems) return;
|
|
3757
|
+
setBasketNumItems(numItems);
|
|
3758
|
+
}, [numItems]);
|
|
3759
|
+
React.useEffect(function () {
|
|
3760
|
+
if (!expiryUnixTimestamp) return;
|
|
3761
|
+
setSeconds(getSecondsUntil(expiryUnixTimestamp));
|
|
3762
|
+
}, [expiryUnixTimestamp]);
|
|
3763
|
+
React.useEffect(function () {
|
|
3764
|
+
if (timer) {
|
|
3765
|
+
clearInterval(timer); // clears the old timer before setting a new one
|
|
3766
|
+
}
|
|
3767
|
+
|
|
3768
|
+
if (!expiryUnixTimestamp || numItems === 0) return function () {
|
|
3769
|
+
return undefined;
|
|
3770
|
+
};
|
|
3771
|
+
var interval = setInterval(function () {
|
|
3772
|
+
setSeconds(getSecondsUntil(expiryUnixTimestamp));
|
|
3773
|
+
}, 1000);
|
|
3774
|
+
setTimer(interval);
|
|
3775
|
+
return function () {
|
|
3776
|
+
return clearInterval(interval);
|
|
3777
|
+
};
|
|
3778
|
+
}, [expiryUnixTimestamp]);
|
|
3779
|
+
React.useEffect(function () {
|
|
3780
|
+
if (!timer) return;
|
|
3781
|
+
|
|
3782
|
+
if (seconds > 0) {
|
|
3783
|
+
setBasketText(formatTime(seconds));
|
|
3784
|
+
setBasketIsActive(checkTimeRed(seconds));
|
|
3785
|
+
} else {
|
|
3786
|
+
clearInterval(timer);
|
|
3787
|
+
setBasketNumItems(0);
|
|
3788
|
+
setBasketText('');
|
|
3789
|
+
setBasketIsActive(false);
|
|
3790
|
+
}
|
|
3791
|
+
}, [seconds, timer]);
|
|
3792
|
+
return {
|
|
3793
|
+
basketText: basketText,
|
|
3794
|
+
basketNumItems: basketNumItems,
|
|
3795
|
+
basketIsActive: basketIsActive
|
|
3796
|
+
};
|
|
3797
|
+
};
|
|
3798
|
+
|
|
3712
3799
|
var Basket$1 = function Basket(_ref) {
|
|
3713
3800
|
var text = _ref.text,
|
|
3801
|
+
expiryTime = _ref.expiryTime,
|
|
3714
3802
|
link = _ref.link,
|
|
3715
3803
|
_ref$selected = _ref.selected,
|
|
3716
3804
|
selected = _ref$selected === void 0 ? false : _ref$selected,
|
|
@@ -3718,8 +3806,7 @@ var Basket$1 = function Basket(_ref) {
|
|
|
3718
3806
|
numItems = _ref$numItems === void 0 ? 0 : _ref$numItems,
|
|
3719
3807
|
onClick = _ref.onClick,
|
|
3720
3808
|
_ref$colorPrimary = _ref.colorPrimary,
|
|
3721
|
-
colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary
|
|
3722
|
-
isActive = _ref.isActive;
|
|
3809
|
+
colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary;
|
|
3723
3810
|
|
|
3724
3811
|
var onClickHandler = function onClickHandler() {
|
|
3725
3812
|
if (onClick) {
|
|
@@ -3727,29 +3814,35 @@ var Basket$1 = function Basket(_ref) {
|
|
|
3727
3814
|
}
|
|
3728
3815
|
};
|
|
3729
3816
|
|
|
3817
|
+
var _useBasket = useBasket(expiryTime, numItems),
|
|
3818
|
+
basketText = _useBasket.basketText,
|
|
3819
|
+
basketNumItems = _useBasket.basketNumItems,
|
|
3820
|
+
basketIsActive = _useBasket.basketIsActive;
|
|
3821
|
+
|
|
3822
|
+
var isEmpty = expiryTime ? basketNumItems <= 0 : numItems <= 0;
|
|
3823
|
+
|
|
3730
3824
|
var onKeyDownHandler = function onKeyDownHandler(e) {
|
|
3731
3825
|
if (e.key === 'Enter') {
|
|
3732
3826
|
onClickHandler();
|
|
3733
3827
|
}
|
|
3734
3828
|
};
|
|
3735
3829
|
|
|
3736
|
-
var empty = numItems <= 0;
|
|
3737
3830
|
return /*#__PURE__*/React__default.createElement(BasketContainer, {
|
|
3738
3831
|
selected: selected,
|
|
3739
3832
|
onClick: onClickHandler,
|
|
3740
3833
|
onKeyDown: onKeyDownHandler,
|
|
3741
3834
|
colorPrimary: colorPrimary,
|
|
3742
|
-
isActive:
|
|
3835
|
+
isActive: basketIsActive,
|
|
3743
3836
|
tabIndex: 0
|
|
3744
|
-
}, /*#__PURE__*/React__default.createElement(SvgContainer, null,
|
|
3837
|
+
}, /*#__PURE__*/React__default.createElement(SvgContainer, null, isEmpty ? /*#__PURE__*/React__default.createElement(Icon, {
|
|
3745
3838
|
iconName: "Basket"
|
|
3746
3839
|
}) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Icon, {
|
|
3747
3840
|
iconName: "BasketFull"
|
|
3748
3841
|
}), /*#__PURE__*/React__default.createElement(NumContainer, null, /*#__PURE__*/React__default.createElement("span", {
|
|
3749
3842
|
className: "basket-num"
|
|
3750
|
-
}, numItems)))), /*#__PURE__*/React__default.createElement("div", null, !
|
|
3843
|
+
}, expiryTime ? basketNumItems : numItems)))), /*#__PURE__*/React__default.createElement("div", null, !isEmpty ? /*#__PURE__*/React__default.createElement(BasketText, {
|
|
3751
3844
|
"data-testid": "baskettext"
|
|
3752
|
-
}, text) : ''));
|
|
3845
|
+
}, expiryTime ? basketText : text) : ''));
|
|
3753
3846
|
};
|
|
3754
3847
|
|
|
3755
3848
|
var _templateObject$v, _templateObject2$g;
|
|
@@ -4013,6 +4106,7 @@ var NavTop = function NavTop(_ref) {
|
|
|
4013
4106
|
accountOptions = _ref.accountOptions,
|
|
4014
4107
|
onLink = _ref.onLink,
|
|
4015
4108
|
basketText = _ref.basketText,
|
|
4109
|
+
basketExpiryUnixTimestamp = _ref.basketExpiryUnixTimestamp,
|
|
4016
4110
|
basketLink = _ref.basketLink,
|
|
4017
4111
|
basketNumItems = _ref.basketNumItems,
|
|
4018
4112
|
basketIsActive = _ref.basketIsActive,
|
|
@@ -4028,6 +4122,7 @@ var NavTop = function NavTop(_ref) {
|
|
|
4028
4122
|
}), /*#__PURE__*/React__default.createElement(Basket$1, {
|
|
4029
4123
|
link: basketLink,
|
|
4030
4124
|
text: basketText,
|
|
4125
|
+
expiryTime: basketExpiryUnixTimestamp,
|
|
4031
4126
|
numItems: basketNumItems,
|
|
4032
4127
|
isActive: basketIsActive,
|
|
4033
4128
|
onClick: onLink,
|