@lendi/navbar 7.40.4 → 7.40.6

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,3 +1,4 @@
1
+ import { LDFlagSet } from 'launchdarkly-js-client-sdk';
1
2
  export interface LinkProps {
2
3
  label: string;
3
4
  link?: string | undefined;
@@ -9,4 +10,4 @@ export interface MenuSubItem {
9
10
  label: string;
10
11
  link: string | undefined;
11
12
  }
12
- export declare const MULTI_MENU_OPTIONS: MenuItem[];
13
+ export declare const getMultiMenuOptions: (featureFlags?: LDFlagSet) => MenuItem[];
@@ -135,7 +135,7 @@ function _objectSpread2(e) {
135
135
  }
136
136
 
137
137
  var analytics = navbarAnalyticsEvent => {
138
- if (window && window.analytics) {
138
+ if (window) {
139
139
  analytics$1.trackEvent(_objectSpread2({}, navbarAnalyticsEvent));
140
140
  } else {
141
141
  if (process.env.NODE_ENV === 'development') {
@@ -1967,6 +1967,17 @@ var MULTI_MENU_OPTIONS = [{
1967
1967
  link: '/inspire/category/life-at-lendi/'
1968
1968
  }]
1969
1969
  }];
1970
+ var MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK = MULTI_MENU_OPTIONS.map(menu => _objectSpread2(_objectSpread2({}, menu), {}, {
1971
+ children: menu.children.map(child => child.link === '/calculators/debt-consolidation-calculator/' ? {
1972
+ label: 'Home loan health check',
1973
+ link: '/home-loans/basics/health-check/'
1974
+ } : child)
1975
+ }));
1976
+ var getMultiMenuOptions = function getMultiMenuOptions() {
1977
+ var featureFlags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1978
+ // replace debt-consolidation-calculator with health-check if gpHomeLoanHealthCheck enabled
1979
+ return featureFlags.gpHomeLoanHealthCheck ? MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK : MULTI_MENU_OPTIONS;
1980
+ };
1970
1981
 
1971
1982
  var DesktopActions = _ref => {
1972
1983
  var _window, _window2;
@@ -2519,8 +2530,9 @@ var MenuOptions = props => {
2519
2530
  continueURL
2520
2531
  } = props;
2521
2532
  var [currentSelected, setCurrentSelected] = React__default["default"].useState('');
2533
+ var flags = launchdarkly.useFlags();
2522
2534
  var displayPanel = React__default["default"].useRef(null);
2523
- var selectedItem = MULTI_MENU_OPTIONS.find(menuItem => menuItem.label === currentSelected);
2535
+ var selectedItem = getMultiMenuOptions(flags).find(menuItem => menuItem.label === currentSelected);
2524
2536
  var hasWindow = typeof window !== 'undefined';
2525
2537
  React__default["default"].useEffect(() => {
2526
2538
  if (hasWindow) {
@@ -2540,7 +2552,7 @@ var MenuOptions = props => {
2540
2552
  };
2541
2553
  return /*#__PURE__*/jsxRuntime.jsx(OptionsContainer, {
2542
2554
  children: /*#__PURE__*/jsxRuntime.jsx(UnOrderedList, {
2543
- children: MULTI_MENU_OPTIONS.map(_ref => {
2555
+ children: getMultiMenuOptions(flags).map(_ref => {
2544
2556
  var _selectedItem$link;
2545
2557
  var {
2546
2558
  label,
@@ -2669,10 +2681,11 @@ var MultiNavbarComponent = _ref => {
2669
2681
  otherProps = _objectWithoutProperties(_ref, _excluded$8);
2670
2682
  var session = lalaReact.useSession();
2671
2683
  var isAuthenticated = session.status === lalaReact.Status.Authenticated;
2684
+ var flags = launchdarkly.useFlags();
2672
2685
  var [leftSidebarState, setLeftSidebarState] = React__default["default"].useState(false);
2673
2686
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
2674
2687
  children: [/*#__PURE__*/jsxRuntime.jsx(LeftSidebar$1, {
2675
- menuOptions: MULTI_MENU_OPTIONS,
2688
+ menuOptions: getMultiMenuOptions(flags),
2676
2689
  openSidebar: leftSidebarState,
2677
2690
  closeSidebar: () => setLeftSidebarState(false),
2678
2691
  isAuthenticated: isAuthenticated,
@@ -63,7 +63,7 @@ function _objectSpread2(e) {
63
63
  }
64
64
 
65
65
  var _templateObject$g, _templateObject2$6, _templateObject3$2, _templateObject4$1, _templateObject5$1, analytics = navbarAnalyticsEvent => {
66
- window && window.analytics ? analytics$1.trackEvent(_objectSpread2({}, navbarAnalyticsEvent)) : console.error("Segment is not loaded");
66
+ window ? analytics$1.trackEvent(_objectSpread2({}, navbarAnalyticsEvent)) : console.error("Segment is not loaded");
67
67
  };
68
68
 
69
69
  function _taggedTemplateLiteral(strings, raw) {
@@ -1245,7 +1245,14 @@ var _templateObject$9, _templateObject2$4, _templateObject$8, _templateObject2$3
1245
1245
  label: "Life at Lendi",
1246
1246
  link: "/inspire/category/life-at-lendi/"
1247
1247
  } ]
1248
- } ], DesktopActions = _ref => {
1248
+ } ], MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK = MULTI_MENU_OPTIONS.map((menu => _objectSpread2(_objectSpread2({}, menu), {}, {
1249
+ children: menu.children.map((child => "/calculators/debt-consolidation-calculator/" === child.link ? {
1250
+ label: "Home loan health check",
1251
+ link: "/home-loans/basics/health-check/"
1252
+ } : child))
1253
+ }))), getMultiMenuOptions = function() {
1254
+ return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).gpHomeLoanHealthCheck ? MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK : MULTI_MENU_OPTIONS;
1255
+ }, DesktopActions = _ref => {
1249
1256
  var _window, _window2, {isAuthenticated: isAuthenticated, continueURL: continueURL, showContinueAction: showContinueAction = !1, openCommPanel: openCommPanel = (() => {}), teamMember: teamMember, hasUnreadMessages: hasUnreadMessages, showTalkToExpertCta: showTalkToExpertCta} = _ref, brand = lalaUtils.getBrandFromHostname(), env = getEnvFromHostname(null === (_window = window) || void 0 === _window || null === (_window = _window.location) || void 0 === _window ? void 0 : _window.hostname), signInURL = getSignInURL(brand, env, null === (_window2 = window) || void 0 === _window2 || null === (_window2 = _window2.location) || void 0 === _window2 ? void 0 : _window2.href), primaryLabel = null != teamMember && teamMember.firstName ? "Talk to ".concat(teamMember.firstName) : "aussie" === brand ? LABEL_TALK_TO_A_BROKER : LABEL_TALK_TO_EXPERT;
1250
1257
  return jsxRuntime.jsxs(DesktopActionsWrapper, {
1251
1258
  children: [ showTalkToExpertCta && jsxRuntime.jsx(TalkExpertAction$1, {
@@ -1648,7 +1655,7 @@ var _templateObject$5, _templateObject$4, _templateObject2$2, _templateObject3$1
1648
1655
  displayName: "indexstyle__OptionsContainer",
1649
1656
  componentId: "lui__sc-56jb5a-14"
1650
1657
  })([ "width:100%;display:none;flex-direction:row;justify-content:space-between;align-items:center;", " ", "" ], spacing.ml("lg"), breakpoint.gte("desktop")(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral([ "\n display: flex;\n position: relative;\n" ])))), prevSelected = "", MenuOptions = props => {
1651
- var {isTransparent: isTransparent} = NavbarBase.useNavbarBaseContext(), {isAuthenticated: isAuthenticated, params: params, continueURL: continueURL} = props, [currentSelected, setCurrentSelected] = React__default.default.useState(""), displayPanel = React__default.default.useRef(null), selectedItem = MULTI_MENU_OPTIONS.find((menuItem => menuItem.label === currentSelected)), hasWindow = "undefined" != typeof window;
1658
+ var {isTransparent: isTransparent} = NavbarBase.useNavbarBaseContext(), {isAuthenticated: isAuthenticated, params: params, continueURL: continueURL} = props, [currentSelected, setCurrentSelected] = React__default.default.useState(""), flags = launchdarkly.useFlags(), displayPanel = React__default.default.useRef(null), selectedItem = getMultiMenuOptions(flags).find((menuItem => menuItem.label === currentSelected)), hasWindow = "undefined" != typeof window;
1652
1659
  React__default.default.useEffect((() => (hasWindow && window.addEventListener("mousedown", closeDisplayPanel),
1653
1660
  () => {
1654
1661
  hasWindow && window.removeEventListener("mousedown", closeDisplayPanel);
@@ -1658,7 +1665,7 @@ var _templateObject$5, _templateObject$4, _templateObject2$2, _templateObject3$1
1658
1665
  };
1659
1666
  return jsxRuntime.jsx(OptionsContainer, {
1660
1667
  children: jsxRuntime.jsx(UnOrderedList, {
1661
- children: MULTI_MENU_OPTIONS.map((_ref => {
1668
+ children: getMultiMenuOptions(flags).map((_ref => {
1662
1669
  var _selectedItem$link, {label: label, children: children} = _ref;
1663
1670
  return jsxRuntime.jsxs(ListItem, {
1664
1671
  children: [ jsxRuntime.jsxs(LinkOption, {
@@ -1752,10 +1759,10 @@ var _templateObject$5, _templateObject$4, _templateObject2$2, _templateObject3$1
1752
1759
  }, onClickOption = (label, setCurrentSelected) => {
1753
1760
  setCurrentSelected(prevSelected === label ? "" : label);
1754
1761
  }, MenuOptions$1 = MenuOptions, _excluded$8 = [ "useTransparent", "homeURL", "params", "continueURL", "onLogout", "application", "showContinueAction", "showTalkToExpertCta", "hideDashboardItem", "hideManageApplicationsItem", "isCommPanelOpen", "hasUnread", "closeCommPanel", "openCommPanel", "customerOwner" ], MultiNavbarComponent = _ref => {
1755
- var {useTransparent: useTransparent = !1, homeURL: homeURL, params: params = "", continueURL: continueURL = "/", onLogout: onLogout = (() => {}), application: application, showContinueAction: showContinueAction, showTalkToExpertCta: showTalkToExpertCta, hideDashboardItem: hideDashboardItem, hideManageApplicationsItem: hideManageApplicationsItem, isCommPanelOpen: isCommPanelOpen, hasUnread: hasUnread, closeCommPanel: closeCommPanel, openCommPanel: _openCommPanel, customerOwner: customerOwner} = _ref, otherProps = _objectWithoutProperties(_ref, _excluded$8), isAuthenticated = lalaReact.useSession().status === lalaReact.Status.Authenticated, [leftSidebarState, setLeftSidebarState] = React__default.default.useState(!1);
1762
+ var {useTransparent: useTransparent = !1, homeURL: homeURL, params: params = "", continueURL: continueURL = "/", onLogout: onLogout = (() => {}), application: application, showContinueAction: showContinueAction, showTalkToExpertCta: showTalkToExpertCta, hideDashboardItem: hideDashboardItem, hideManageApplicationsItem: hideManageApplicationsItem, isCommPanelOpen: isCommPanelOpen, hasUnread: hasUnread, closeCommPanel: closeCommPanel, openCommPanel: _openCommPanel, customerOwner: customerOwner} = _ref, otherProps = _objectWithoutProperties(_ref, _excluded$8), isAuthenticated = lalaReact.useSession().status === lalaReact.Status.Authenticated, flags = launchdarkly.useFlags(), [leftSidebarState, setLeftSidebarState] = React__default.default.useState(!1);
1756
1763
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1757
1764
  children: [ jsxRuntime.jsx(LeftSidebar$1, {
1758
- menuOptions: MULTI_MENU_OPTIONS,
1765
+ menuOptions: getMultiMenuOptions(flags),
1759
1766
  openSidebar: leftSidebarState,
1760
1767
  closeSidebar: () => setLeftSidebarState(!1),
1761
1768
  isAuthenticated: isAuthenticated,
@@ -102,7 +102,7 @@ function _objectSpread2(e) {
102
102
  }
103
103
 
104
104
  var analytics = navbarAnalyticsEvent => {
105
- if (window && window.analytics) {
105
+ if (window) {
106
106
  trackEvent(_objectSpread2({}, navbarAnalyticsEvent));
107
107
  } else {
108
108
  if (process.env.NODE_ENV === 'development') {
@@ -1934,6 +1934,17 @@ var MULTI_MENU_OPTIONS = [{
1934
1934
  link: '/inspire/category/life-at-lendi/'
1935
1935
  }]
1936
1936
  }];
1937
+ var MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK = MULTI_MENU_OPTIONS.map(menu => _objectSpread2(_objectSpread2({}, menu), {}, {
1938
+ children: menu.children.map(child => child.link === '/calculators/debt-consolidation-calculator/' ? {
1939
+ label: 'Home loan health check',
1940
+ link: '/home-loans/basics/health-check/'
1941
+ } : child)
1942
+ }));
1943
+ var getMultiMenuOptions = function getMultiMenuOptions() {
1944
+ var featureFlags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1945
+ // replace debt-consolidation-calculator with health-check if gpHomeLoanHealthCheck enabled
1946
+ return featureFlags.gpHomeLoanHealthCheck ? MULTI_MENU_OPTIONS_WITH_HEALTH_CHECK : MULTI_MENU_OPTIONS;
1947
+ };
1937
1948
 
1938
1949
  var DesktopActions = _ref => {
1939
1950
  var _window, _window2;
@@ -2486,8 +2497,9 @@ var MenuOptions = props => {
2486
2497
  continueURL
2487
2498
  } = props;
2488
2499
  var [currentSelected, setCurrentSelected] = React.useState('');
2500
+ var flags = useFlags();
2489
2501
  var displayPanel = React.useRef(null);
2490
- var selectedItem = MULTI_MENU_OPTIONS.find(menuItem => menuItem.label === currentSelected);
2502
+ var selectedItem = getMultiMenuOptions(flags).find(menuItem => menuItem.label === currentSelected);
2491
2503
  var hasWindow = typeof window !== 'undefined';
2492
2504
  React.useEffect(() => {
2493
2505
  if (hasWindow) {
@@ -2507,7 +2519,7 @@ var MenuOptions = props => {
2507
2519
  };
2508
2520
  return /*#__PURE__*/jsx(OptionsContainer, {
2509
2521
  children: /*#__PURE__*/jsx(UnOrderedList, {
2510
- children: MULTI_MENU_OPTIONS.map(_ref => {
2522
+ children: getMultiMenuOptions(flags).map(_ref => {
2511
2523
  var _selectedItem$link;
2512
2524
  var {
2513
2525
  label,
@@ -2636,10 +2648,11 @@ var MultiNavbarComponent = _ref => {
2636
2648
  otherProps = _objectWithoutProperties(_ref, _excluded$8);
2637
2649
  var session = useSession();
2638
2650
  var isAuthenticated = session.status === Status.Authenticated;
2651
+ var flags = useFlags();
2639
2652
  var [leftSidebarState, setLeftSidebarState] = React.useState(false);
2640
2653
  return /*#__PURE__*/jsxs(Fragment, {
2641
2654
  children: [/*#__PURE__*/jsx(LeftSidebar$1, {
2642
- menuOptions: MULTI_MENU_OPTIONS,
2655
+ menuOptions: getMultiMenuOptions(flags),
2643
2656
  openSidebar: leftSidebarState,
2644
2657
  closeSidebar: () => setLeftSidebarState(false),
2645
2658
  isAuthenticated: isAuthenticated,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lendi/navbar",
3
3
  "access": "restricted",
4
- "version": "7.40.4",
4
+ "version": "7.40.6",
5
5
  "license": "ISC",
6
6
  "source": "src/index.tsx",
7
7
  "main": "dist/navbar.cjs.js",