UNPKG

@xo-union/tk-component-header-nav

Version:
62 lines (61 loc) 2.91 kB
"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;