qpp-style 9.18.2 → 9.19.1

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.
Files changed (187) hide show
  1. package/components/Header/HeaderAccountMenu.jsx +10 -85
  2. package/components/Header/HeaderUI.jsx +53 -61
  3. package/components/Header/hooks.js +16 -2
  4. package/components/SideNav/UI/SideNavUI.jsx +0 -6
  5. package/components/index.js +0 -2
  6. package/coverage/clover.xml +116 -119
  7. package/coverage/coverage-final.json +72 -73
  8. package/coverage/lcov-report/components/Accordion/index.html +116 -0
  9. package/coverage/lcov-report/components/Accordion/index.jsx.html +364 -0
  10. package/coverage/lcov-report/components/Button/index.html +116 -0
  11. package/coverage/lcov-report/components/Button/index.js.html +355 -0
  12. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +349 -0
  13. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +178 -0
  14. package/coverage/lcov-report/components/Error/index.html +131 -0
  15. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +706 -0
  16. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +265 -0
  17. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +187 -0
  18. package/coverage/lcov-report/components/Footer/index.html +146 -0
  19. package/coverage/lcov-report/components/GovBanner/index.html +116 -0
  20. package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
  21. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +592 -0
  22. package/coverage/lcov-report/components/Header/HeaderCancel.jsx.html +133 -0
  23. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
  24. package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +211 -0
  25. package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +235 -0
  26. package/coverage/lcov-report/components/Header/HeaderMenuItem.jsx.html +802 -0
  27. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  28. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  29. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
  30. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +586 -0
  31. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  32. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +331 -0
  33. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +166 -0
  34. package/coverage/lcov-report/components/Header/hooks.js.html +241 -0
  35. package/coverage/lcov-report/components/Header/index.html +326 -0
  36. package/coverage/lcov-report/components/Header/utag-helpers.js.html +112 -0
  37. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +310 -0
  38. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +208 -0
  39. package/coverage/lcov-report/components/Infotip/index.html +146 -0
  40. package/coverage/lcov-report/components/Infotip/index.js.html +94 -0
  41. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +301 -0
  42. package/coverage/lcov-report/components/Modal/Modal.jsx.html +505 -0
  43. package/coverage/lcov-report/components/Modal/index.html +146 -0
  44. package/coverage/lcov-report/components/Modal/index.jsx.html +151 -0
  45. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +181 -0
  46. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  47. package/coverage/lcov-report/components/NotificationBanner/index.html +146 -0
  48. package/coverage/lcov-report/components/NotificationBanner/index.js.html +748 -0
  49. package/coverage/lcov-report/components/SanitizedContent/index.html +116 -0
  50. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +685 -0
  51. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +868 -0
  52. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +889 -0
  53. package/coverage/lcov-report/components/SideNav/Chart/index.html +116 -0
  54. package/coverage/lcov-report/components/SideNav/helpers.js.html +1057 -0
  55. package/coverage/lcov-report/components/SideNav/index.html +116 -0
  56. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +349 -0
  57. package/coverage/lcov-report/components/Tooltip/index.html +146 -0
  58. package/coverage/lcov-report/components/Tooltip/index.js.html +94 -0
  59. package/coverage/lcov-report/components/Tooltip/position.js.html +289 -0
  60. package/coverage/lcov-report/components/hooks/index.html +116 -0
  61. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +310 -0
  62. package/coverage/lcov-report/components/index.html +116 -0
  63. package/coverage/lcov-report/index.html +11 -11
  64. package/coverage/lcov-report/lib/Chevron.jsx.html +181 -0
  65. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1792 -0
  66. package/coverage/lcov-report/lib/index.html +131 -0
  67. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  68. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  69. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  70. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  71. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  72. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  73. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  74. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  75. package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
  76. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  77. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +2 -2
  78. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +667 -0
  79. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  80. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  81. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  82. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  83. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  84. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  85. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
  86. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  87. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  88. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  89. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  90. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
  91. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  93. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  94. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +1 -1
  95. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  96. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
  97. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
  99. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  100. package/coverage/lcov-report/react/components/Header/index.html +1 -1
  101. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  102. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
  103. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
  104. package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
  105. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  106. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
  107. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
  108. package/coverage/lcov-report/react/components/Modal/index.html +1 -1
  109. package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
  110. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +10 -10
  111. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  112. package/coverage/lcov-report/react/components/NotificationBanner/index.html +11 -11
  113. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +1 -1
  114. package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
  115. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
  116. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  117. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
  118. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
  119. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  120. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  121. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
  122. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  123. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  124. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +1 -1
  125. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  126. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +1 -1
  127. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +1 -1
  129. package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  132. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
  134. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  135. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  136. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  137. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +2 -2
  139. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  140. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  141. package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
  142. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  143. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +2 -20
  144. package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
  145. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  146. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +1 -1
  147. package/coverage/lcov-report/react/components/SideNav/index.html +1 -1
  148. package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
  149. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  150. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  151. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  152. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  153. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  154. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  155. package/coverage/lcov-report/react/components/index.html +1 -1
  156. package/coverage/lcov-report/react/index.html +1 -1
  157. package/coverage/lcov-report/react/index.js.html +1 -1
  158. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  159. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +1 -1
  160. package/coverage/lcov-report/react/lib/index.html +5 -20
  161. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  162. package/coverage/lcov-report/react/session/index.html +1 -1
  163. package/coverage/lcov-report/react/session/index.js.html +1 -1
  164. package/coverage/lcov-report/react/session/logout.js.html +1 -1
  165. package/coverage/lcov-report/react/session/refresh.js.html +1 -1
  166. package/coverage/lcov-report/react/session/ttl.js.html +1 -1
  167. package/coverage/lcov-report/session/index.html +161 -0
  168. package/coverage/lcov-report/session/index.js.html +100 -0
  169. package/coverage/lcov-report/session/logout.js.html +307 -0
  170. package/coverage/lcov-report/session/refresh.js.html +232 -0
  171. package/coverage/lcov-report/session/ttl.js.html +196 -0
  172. package/coverage/lcov.info +91 -100
  173. package/dist/browser.js +1 -1
  174. package/dist/browser.js.LICENSE.txt +0 -6
  175. package/dist/browser.js.map +1 -1
  176. package/dist/index.js +1 -1
  177. package/dist/index.js.LICENSE.txt +0 -6
  178. package/dist/index.js.map +1 -1
  179. package/dist/react/index.js +1 -1
  180. package/dist/react/index.js.LICENSE.txt +0 -6
  181. package/dist/react/index.js.map +1 -1
  182. package/images/icons/svg/registration.svg +8 -0
  183. package/lib/SvgComponents.jsx +2 -2
  184. package/package.json +22 -22
  185. package/test-setup.js +0 -4
  186. package/components/Spinner/index.js +0 -9
  187. package/components/UnwrappedSpinner/index.js +0 -8
@@ -1,45 +1,23 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import cookie from 'cookie';
4
- import jwtDecode from 'jwt-decode';
5
-
6
3
  import { useHeaderState } from './hooks';
7
4
  import { setUtagLink } from './utag-helpers';
8
5
  import SessionDialogUI from '../SessionDialogUI';
9
- import {
10
- performanceFeedbackUrl,
11
- physicianCompareUrl,
12
- dashboardUrl,
13
- manageUrl,
14
- submissionsUrl,
15
- facilityBasedPreviewUrl,
16
- } from '../SideNav/helpers';
17
6
  import HeaderMenuItem from './HeaderMenuItem';
18
7
 
19
- const HeaderAccountMenu = ({
20
- handleClick,
21
- fbpPerformanceYear,
22
- feedbackPerformanceYear,
23
- isLoginEnabled,
24
- isDevPre,
25
- performanceYear,
26
- showFacilityBasedPreviewLink,
27
- showPhysicianCompareLink,
28
- }) => {
29
- const cookies = cookie.parse(document.cookie);
30
- const hasAuthToken = cookies.hasOwnProperty('qpp_auth_token');
31
- const hasAuthorizations = cookies.qpp_has_authorizations === 'true';
32
- const hasNonRegistryAuthorizations =
33
- cookies.qpp_has_non_registry_authorizations === 'true';
34
- const isDevPreAndNotAuthenticated = !hasAuthToken && isDevPre;
35
- const { closeMenus, RouterLink } = useHeaderState();
8
+ const HeaderAccountMenu = ({ handleClick, isLoginEnabled, isDevPre }) => {
9
+ const { closeMenus, RouterLink, headerContent } = useHeaderState();
10
+ const { isLoggedIn, firstName, devPreMenuLinks, accountMenuLinks } =
11
+ headerContent;
12
+
13
+ const isDevPreAndNotAuthenticated = !isLoggedIn && isDevPre;
36
14
 
37
15
  if (!isLoginEnabled || isDevPreAndNotAuthenticated) {
38
16
  return null;
39
17
  }
40
18
 
41
19
  // login link
42
- if (!hasAuthToken) {
20
+ if (!isLoggedIn) {
43
21
  if (RouterLink) {
44
22
  return (
45
23
  <li onClick={handleClick} className="header-item-login login">
@@ -85,50 +63,7 @@ const HeaderAccountMenu = ({
85
63
  );
86
64
  }
87
65
 
88
- if (hasAuthToken) {
89
- const { firstName } = jwtDecode(cookies.qpp_auth_token);
90
- const additionalLinks = [];
91
- if (hasAuthorizations) {
92
- additionalLinks.push(
93
- { type: 'link', href: dashboardUrl, name: 'Eligibility & Reporting' },
94
- {
95
- type: 'link',
96
- href: performanceFeedbackUrl(
97
- feedbackPerformanceYear || performanceYear
98
- ),
99
- name: 'Performance Feedback',
100
- }
101
- );
102
- if (showPhysicianCompareLink && hasNonRegistryAuthorizations) {
103
- additionalLinks.push({
104
- type: 'link',
105
- href: physicianCompareUrl,
106
- name: 'Doctors & Clinicians Preview',
107
- });
108
- }
109
- if (showFacilityBasedPreviewLink) {
110
- additionalLinks.push({
111
- type: 'link',
112
- href: facilityBasedPreviewUrl(fbpPerformanceYear || performanceYear),
113
- name: 'Facility Based Preview',
114
- });
115
- }
116
- }
117
- const columns = [
118
- [
119
- {
120
- items: [
121
- { type: 'link', href: submissionsUrl, name: 'Account Home' },
122
- ...additionalLinks,
123
- { type: 'link', href: manageUrl, name: 'Manage Access' },
124
- { type: 'signout', name: 'Sign Out' },
125
- ],
126
- },
127
- ],
128
- ];
129
- const devPreColumns = [
130
- [{ items: [{ type: 'signout', name: 'Sign Out' }] }],
131
- ];
66
+ if (isLoggedIn) {
132
67
  return (
133
68
  <>
134
69
  <SessionDialogUI />
@@ -138,8 +73,8 @@ const HeaderAccountMenu = ({
138
73
  name={firstName}
139
74
  subtitle="My Account"
140
75
  className="account-menu-item"
141
- columns={isDevPre ? devPreColumns : columns}
142
- rows={isDevPre ? devPreColumns : columns}
76
+ columns={isDevPre ? devPreMenuLinks : accountMenuLinks}
77
+ rows={isDevPre ? devPreMenuLinks : accountMenuLinks}
143
78
  />
144
79
  </>
145
80
  );
@@ -148,21 +83,11 @@ const HeaderAccountMenu = ({
148
83
 
149
84
  HeaderAccountMenu.propTypes = {
150
85
  isLoginEnabled: PropTypes.bool.isRequired,
151
- showPhysicianCompareLink: PropTypes.bool,
152
- showFacilityBasedPreviewLink: PropTypes.bool,
153
- performanceYear: PropTypes.number,
154
- fbpPerformanceYear: PropTypes.string,
155
- feedbackPerformanceYear: PropTypes.string,
156
86
  isDevPre: PropTypes.bool,
157
87
  handleClick: PropTypes.func.isRequired,
158
88
  };
159
89
 
160
90
  HeaderAccountMenu.defaultProps = {
161
- showPhysicianCompareLink: false,
162
- showFacilityBasedPreviewLink: false,
163
- performanceYear: 2017,
164
- fbpPerformanceYear: null,
165
- feedbackPerformanceYear: null,
166
91
  isDevPre: false,
167
92
  };
168
93
 
@@ -1,6 +1,6 @@
1
- import React, { useState } from 'react';
1
+ import React, { useState, useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
-
3
+ import axios from 'axios';
4
4
  import HeaderAccountMenu from './HeaderAccountMenu.jsx';
5
5
  import HeaderCancel from './HeaderCancel.jsx';
6
6
  import HeaderContainer from './HeaderContainer';
@@ -8,26 +8,20 @@ import HeaderMenuItem from './HeaderMenuItem';
8
8
  import HeaderMobileButton from './HeaderMobileButton';
9
9
  import ImpersonatorBanner from './ImpersonatorBanner';
10
10
  import HelpIcon from './HelpIcon';
11
- import defaultHeaderContent from './default-content.json';
12
11
  import { HeaderStateProvider } from './hooks';
13
- import useGetConfig from '../hooks/useGetConfig';
14
12
 
15
13
  const HeaderUI = ({
16
- fbpPerformanceYear,
17
- feedbackPerformanceYear,
18
14
  handleCancel,
19
15
  includeSkipToSidebar,
20
16
  isDevPre,
21
17
  isLoginEnabled,
22
- performanceYear,
23
18
  showCancelButton,
24
- showPhysicianCompareLink,
25
- showFacilityBasedPreviewLink,
26
19
  skipToContentId,
27
20
  RouterLink,
28
21
  isIESupportPage,
29
22
  }) => {
30
23
  const [isMobileMenuExpanded, setIsMobileMenuExpanded] = useState(false);
24
+ const [headerContent, setHeaderContent] = useState({});
31
25
 
32
26
  const mapContentToRows = (config) => {
33
27
  // Append transposed array to content
@@ -47,53 +41,47 @@ const HeaderUI = ({
47
41
  });
48
42
  };
49
43
 
50
- const result = useGetConfig({
51
- localStorageName: 'qpp_top_nav_content',
52
- url: '/config/header',
53
- timeout: 30,
54
- defaultContent: defaultHeaderContent,
55
- });
56
-
57
- const content = mapContentToRows(result?.content);
44
+ // execute on init render
45
+ useEffect(async () => {
46
+ let cancelRequest = false;
47
+ const { origin } = window.location;
48
+ const {
49
+ data: { data: navMenuItems },
50
+ } = await axios.get(`${origin}/config/header`);
51
+ if (!cancelRequest) setHeaderContent(navMenuItems);
52
+ return () => {
53
+ cancelRequest = true;
54
+ };
55
+ }, []);
58
56
 
59
- if (showCancelButton) {
60
- return (
61
- <HeaderStateProvider RouterLink={RouterLink}>
62
- <HeaderContainer
63
- showCancelButton
64
- skipToContentId={skipToContentId}
65
- includeSkipToSidebar={includeSkipToSidebar}
66
- >
67
- <HeaderCancel handleCancel={handleCancel} />
68
- </HeaderContainer>
69
- </HeaderStateProvider>
70
- );
71
- }
57
+ const content = mapContentToRows(headerContent?.content);
72
58
 
73
- if (isDevPre) {
74
- return (
75
- <HeaderStateProvider RouterLink={RouterLink}>
76
- <HeaderContainer
77
- isIESupportPage={isIESupportPage}
78
- skipToContentId={skipToContentId}
79
- includeSkipToSidebar={includeSkipToSidebar}
80
- >
81
- <nav aria-label="Primary navigation" hidden={!isMobileMenuExpanded}>
82
- <ul className="navigation-menu">
83
- <HeaderAccountMenu isDevPre isLoginEnabled={isLoginEnabled} />
84
- </ul>
85
- </nav>
86
- </HeaderContainer>
87
- </HeaderStateProvider>
88
- );
89
- }
59
+ const displayCancelContent = () => (
60
+ <HeaderContainer
61
+ showCancelButton
62
+ skipToContentId={skipToContentId}
63
+ includeSkipToSidebar={includeSkipToSidebar}
64
+ >
65
+ <HeaderCancel handleCancel={handleCancel} />
66
+ </HeaderContainer>
67
+ );
90
68
 
91
- if (!content) {
92
- return null;
93
- }
69
+ const displayDevPreContent = () => (
70
+ <HeaderContainer
71
+ isIESupportPage={isIESupportPage}
72
+ skipToContentId={skipToContentId}
73
+ includeSkipToSidebar={includeSkipToSidebar}
74
+ >
75
+ <nav aria-label="Primary navigation" hidden={!isMobileMenuExpanded}>
76
+ <ul className="navigation-menu">
77
+ <HeaderAccountMenu isDevPre isLoginEnabled={isLoginEnabled} />
78
+ </ul>
79
+ </nav>
80
+ </HeaderContainer>
81
+ );
94
82
 
95
- return (
96
- <HeaderStateProvider RouterLink={RouterLink}>
83
+ const displayHeaderContent = () => (
84
+ <>
97
85
  <HeaderContainer
98
86
  isIESupportPage={isIESupportPage}
99
87
  skipToContentId={skipToContentId}
@@ -118,24 +106,30 @@ const HeaderUI = ({
118
106
  ))}
119
107
  <HeaderAccountMenu
120
108
  handleClick={() => setIsMobileMenuExpanded(!isMobileMenuExpanded)}
121
- fbpPerformanceYear={fbpPerformanceYear}
122
- feedbackPerformanceYear={feedbackPerformanceYear}
123
109
  isLoginEnabled={isLoginEnabled}
124
- performanceYear={performanceYear}
125
- showPhysicianCompareLink={showPhysicianCompareLink}
126
- showFacilityBasedPreviewLink={showFacilityBasedPreviewLink}
127
110
  />
128
111
  </ul>
129
112
  </nav>
130
113
  </HeaderContainer>
131
114
  <ImpersonatorBanner />
115
+ </>
116
+ );
117
+
118
+ const displayContent = () => {
119
+ if (showCancelButton) return displayCancelContent();
120
+ if (isDevPre) return displayDevPreContent();
121
+ if (content?.length) return displayHeaderContent();
122
+ return null;
123
+ };
124
+
125
+ return (
126
+ <HeaderStateProvider RouterLink={RouterLink} headerContent={headerContent}>
127
+ {displayContent()}
132
128
  </HeaderStateProvider>
133
129
  );
134
130
  };
135
131
 
136
132
  HeaderUI.propTypes = {
137
- fbpPerformanceYear: PropTypes.string,
138
- feedbackPerformanceYear: PropTypes.string,
139
133
  handleCancel: PropTypes.func,
140
134
  includeSkipToSidebar: PropTypes.bool,
141
135
  isDevPre: PropTypes.bool,
@@ -149,8 +143,6 @@ HeaderUI.propTypes = {
149
143
  isIESupportPage: PropTypes.bool,
150
144
  };
151
145
  HeaderUI.defaultProps = {
152
- fbpPerformanceYear: null,
153
- feedbackPerformanceYear: null,
154
146
  handleCancel: Function.prototype,
155
147
  includeSkipToSidebar: false,
156
148
  isDevPre: false,
@@ -16,7 +16,11 @@ export function useWindowWidth() {
16
16
 
17
17
  export const HeaderStateContext = createContext(null);
18
18
 
19
- export const HeaderStateProvider = ({ children, RouterLink }) => {
19
+ export const HeaderStateProvider = ({
20
+ children,
21
+ RouterLink,
22
+ headerContent, // allow header content from api request available to all child components
23
+ }) => {
20
24
  const [currentOpenMenu, setCurrentOpenMenu] = useState('');
21
25
 
22
26
  const handleToggleMenu = (name) => {
@@ -27,18 +31,28 @@ export const HeaderStateProvider = ({ children, RouterLink }) => {
27
31
  };
28
32
 
29
33
  const closeMenus = () => setCurrentOpenMenu('');
34
+
30
35
  return (
31
36
  <HeaderStateContext.Provider
32
- value={{ currentOpenMenu, handleToggleMenu, closeMenus, RouterLink }}
37
+ value={{
38
+ currentOpenMenu,
39
+ handleToggleMenu,
40
+ closeMenus,
41
+ RouterLink,
42
+ headerContent,
43
+ }}
33
44
  >
34
45
  {children}
35
46
  </HeaderStateContext.Provider>
36
47
  );
37
48
  };
49
+
38
50
  HeaderStateProvider.propTypes = {
39
51
  children: PropTypes.node.isRequired,
40
52
  RouterLink: PropTypes.func,
53
+ headerContent: PropTypes.object,
41
54
  };
55
+
42
56
  HeaderStateProvider.defaultProps = {
43
57
  RouterLink: null,
44
58
  };
@@ -1,6 +1,5 @@
1
1
  import React, { useState, useEffect, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import SVGInline from 'react-svg-inline';
4
3
 
5
4
  import { withGetConfig } from '../../hooks/useGetConfig';
6
5
  import { LevelOneContent, LevelTwoContent } from '../Content';
@@ -15,7 +14,6 @@ import { PracticeDetails, IndividualDetails } from '../Details';
15
14
  import { ScoreChart } from '../Chart';
16
15
  import SanitizedContent from '../../SanitizedContent';
17
16
  import * as SvgComponents from '../../../lib/SvgComponents.jsx';
18
- import SVGIcons from '../../../lib/svg-definitions.svg';
19
17
  import CmsSwitchLink from '../Links/CmsSwitchLink';
20
18
  import defaultContent from './default-content';
21
19
 
@@ -30,7 +28,6 @@ const SideNavUI = ({
30
28
  onExpanded,
31
29
  performanceYear,
32
30
  showReportingLinks,
33
- svgIcons,
34
31
  result,
35
32
  }) => {
36
33
  const [isExpandedState, setIsExpandedState] = useState(isExpanded);
@@ -274,7 +271,6 @@ const SideNavUI = ({
274
271
  config.navClassName
275
272
  }`}
276
273
  >
277
- <SVGInline svg={svgIcons} />
278
274
  {content}
279
275
  <NavLinkToggle
280
276
  isAltStyle={isAltStyle}
@@ -297,7 +293,6 @@ SideNavUI.propTypes = {
297
293
  isAltStyle: PropTypes.bool,
298
294
  showReportingLinks: PropTypes.bool,
299
295
  performanceYear: PropTypes.string,
300
- svgIcons: PropTypes.string,
301
296
  result: PropTypes.shape({
302
297
  content: PropTypes.shape({
303
298
  default: PropTypes.arrayOf(PropTypes.object),
@@ -320,7 +315,6 @@ SideNavUI.defaultProps = {
320
315
  isAltStyle: false,
321
316
  showReportingLinks: false,
322
317
  performanceYear: '2017',
323
- svgIcons: SVGIcons,
324
318
  result: {
325
319
  content: {
326
320
  default: [],
@@ -9,7 +9,6 @@ import Footer from './Footer/FooterUI';
9
9
  import Header from './Header/HeaderUI';
10
10
  import Modal from './Modal';
11
11
  import SideNav from './SideNav/UI/SideNavUI';
12
- import Spinner from './UnwrappedSpinner';
13
12
  import TabPanel from './Tabs/TabPanel';
14
13
  import Tabs from './Tabs/index';
15
14
  import Tooltip from './Tooltip';
@@ -115,7 +114,6 @@ export {
115
114
  Modal,
116
115
  Search,
117
116
  SideNav,
118
- Spinner,
119
117
  TabPanel,
120
118
  Tabs,
121
119
  TextButton,