UNPKG

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

Version:
37 lines (34 loc) 1.6 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.default = void 0; var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/set")); var _react = require("react"); var _useIsomorphicLayoutEffectCjs = require("../../utils/use-isomorphic-layout-effect.cjs.js"); const DO_NOT_RENDER_IN_PAGES = new _set.default(['', 'dashboard', 'paper', 'knotrewards']); const DISMISSED_SESSION_NAME = 'tk-header-rewards-bar-dismissed'; const useRewardsBarVisibility = _ref => { let { member, location } = _ref; const [isEnabled, setIsEnabled] = (0, _react.useState)(false); (0, _useIsomorphicLayoutEffectCjs.useLayoutEffect)(() => { // Member's data const isLoggedIn = !!member; const hasRewardsProgram = member === null || member === void 0 ? void 0 : member.in_rewards_program; // Page validation const pathname = (location === null || location === void 0 ? void 0 : location.pathname) ?? ''; const [, currentPageSlug] = pathname.split('/', 2); const isPageValid = !DO_NOT_RENDER_IN_PAGES.has(currentPageSlug); // Session storage validation const isDismissed = sessionStorage.getItem(DISMISSED_SESSION_NAME) === 'true'; setIsEnabled(!isDismissed && isPageValid && isLoggedIn && !!hasRewardsProgram); }, [member, location]); return isEnabled; }; var _default = useRewardsBarVisibility; exports.default = _default;