@xo-union/tk-component-header-nav
Version:
62 lines (61 loc) • 2.91 kB
JavaScript
"use strict";
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.useDefaultProps = void 0;
var _react = require("react");
var _orionWebLibReact = require("@tkww/orion-web-lib-react");
var _useLocationCjs = require("./useLocation.cjs.js");
var _getDefaultFavoritesConfigCjs = require("./getDefaultFavoritesConfig.cjs.js");
var _useMembershipDataCjs = _interopRequireDefault(require("./useMembershipData.cjs.js"));
var _useRewardsBarVisibilityCjs = _interopRequireDefault(require("./useRewardsBarVisibility.cjs.js"));
var _indexCjs = _interopRequireDefault(require("../../utils/generateHeaderLinks/index.cjs.js"));
const useDefaultProps = props => {
var _membership$data;
/* eslint-disable react-hooks/rules-of-hooks */
const membershipIsControlled = (0, _orionWebLibReact.useIsControlled)(props.membership);
const showRewardsBarIsControlled = (0, _orionWebLibReact.useIsControlled)(props.showRewardsBar);
const locationIsControlled = (0, _orionWebLibReact.useIsControlled)(props.location);
const favoritesIsControlled = (0, _orionWebLibReact.useIsControlled)(props.favorites);
const firstFavoritesValue = (0, _orionWebLibReact.useConstant)(() => props.favorites);
const {
loggedIn,
activeProduct
} = props;
const location = (0, _orionWebLibReact.useUnstableReference)(locationIsControlled ? props.location : (0, _useLocationCjs.useLocation)());
const membership = membershipIsControlled ? props.membership : (0, _useMembershipDataCjs.default)(loggedIn);
const showRewardsBar = showRewardsBarIsControlled ? props.showRewardsBar : (0, _useRewardsBarVisibilityCjs.default)({
member: ((_membership$data = membership.data) === null || _membership$data === void 0 ? void 0 : _membership$data.member) || null,
location
});
const stableLinks = (0, _orionWebLibReact.useUnstableReference)(props.links ?? {});
const links = (0, _react.useMemo)(() => {
const defaultLinks = (0, _indexCjs.default)(props.knotHostEnv);
return {
...defaultLinks,
...stableLinks
};
}, [props.knotHostEnv, stableLinks]);
const defaultFavoritesConfig = (0, _getDefaultFavoritesConfigCjs.getDefaultFavoritesConfig)({
activeProduct,
links,
location,
explicitlyOptedIn: favoritesIsControlled && !!firstFavoritesValue
});
const favorites =
// eslint-disable-next-line no-nested-ternary
!favoritesIsControlled || props.favorites === true ? defaultFavoritesConfig : typeof props.favorites === 'object' && props.favorites !== null ? {
...defaultFavoritesConfig,
...props.favorites
} : false;
return {
...props,
membership,
showRewardsBar,
links,
favorites
};
};
exports.useDefaultProps = useDefaultProps;