qpp-style 9.18.2-mo-beta.0 → 9.19.0
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.
- package/components/Header/HeaderAccountMenu.jsx +10 -85
- package/components/Header/HeaderUI.jsx +53 -61
- package/components/Header/hooks.js +16 -2
- package/components/NotificationBanner/CollapsedView.js +29 -22
- package/coverage/clover.xml +424 -377
- package/coverage/coverage-final.json +73 -71
- package/coverage/lcov-report/components/Accordion/index.html +1 -1
- package/coverage/lcov-report/components/Accordion/index.jsx.html +4 -4
- package/coverage/lcov-report/components/{SideNav/AnimationGroup → Button}/index.html +30 -30
- package/coverage/lcov-report/components/{SideNav/Links/NavLinkInline.jsx.html → Button/index.js.html} +101 -152
- package/coverage/lcov-report/components/Error/Collapsible.jsx.html +1 -1
- package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +1 -1
- package/coverage/lcov-report/components/Error/index.html +1 -1
- package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +184 -358
- package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +11 -11
- package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +11 -11
- package/coverage/lcov-report/components/Footer/index.html +29 -44
- package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +27 -42
- package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
- package/coverage/lcov-report/components/{SideNav/Content/LevelOneContent.jsx.html → Header/HeaderAccountMenu.jsx.html} +187 -304
- package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +18 -24
- package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +280 -0
- package/coverage/lcov-report/components/{SideNav/Links/NavLinkContainer.jsx.html → Header/HeaderLogo.jsx.html} +72 -60
- package/coverage/lcov-report/components/{SideNav/Links/NavItemInline.jsx.html → Header/HeaderMenuButton.js.html} +63 -75
- package/coverage/lcov-report/components/{SideNav/Content/LevelTwoContent.jsx.html → Header/HeaderMenuItem.jsx.html} +305 -236
- package/coverage/lcov-report/components/{SideNav/Details/PracticeDetails.jsx.html → Header/HeaderMenuLink.js.html} +78 -63
- package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
- package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
- package/coverage/lcov-report/components/{Footer/LegacyFooterUI.jsx.html → Header/HeaderUI.jsx.html} +193 -274
- package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
- package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +331 -0
- package/coverage/lcov-report/components/{SideNav/AnimationGroup/AnimationGroup.jsx.html → Header/NavigationButtonIcon.jsx.html} +48 -48
- package/coverage/lcov-report/components/Header/hooks.js.html +241 -0
- package/coverage/lcov-report/components/Header/index.html +326 -0
- package/coverage/lcov-report/components/{SideNav/Links/index.js.html → Header/utag-helpers.js.html} +28 -40
- package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +2 -2
- package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +5 -5
- package/coverage/lcov-report/components/Infotip/index.html +1 -1
- package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
- package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +3 -3
- package/coverage/lcov-report/components/Modal/Modal.jsx.html +5 -5
- package/coverage/lcov-report/components/Modal/index.html +1 -1
- package/coverage/lcov-report/components/Modal/index.jsx.html +5 -5
- package/coverage/lcov-report/components/{SideNav/Chart → NotificationBanner}/index.html +30 -45
- package/coverage/lcov-report/components/{SideNav/Links/NavLinkDrawer.jsx.html → NotificationBanner/index.js.html} +318 -270
- package/coverage/lcov-report/components/SanitizedContent/index.html +1 -1
- package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +1 -1
- package/coverage/lcov-report/components/SessionDialogUI.jsx.html +4 -4
- package/coverage/lcov-report/components/SideNav/helpers.js.html +649 -10
- package/coverage/lcov-report/components/SideNav/index.html +17 -17
- package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +8 -8
- package/coverage/lcov-report/components/Tooltip/index.html +1 -1
- package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
- package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
- package/coverage/lcov-report/components/hooks/index.html +19 -19
- package/coverage/lcov-report/components/hooks/useGetConfig.js.html +39 -36
- package/coverage/lcov-report/components/index.html +1 -1
- package/coverage/lcov-report/index.html +73 -73
- package/coverage/lcov-report/lib/Chevron.jsx.html +5 -5
- package/coverage/lcov-report/lib/SvgComponents.jsx.html +54 -12
- package/coverage/lcov-report/lib/index.html +15 -30
- package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
- package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Button/index.html +1 -1
- package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
- package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Error/error.js.html +1 -1
- package/coverage/lcov-report/react/components/Error/index.html +1 -1
- package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
- package/coverage/lcov-report/react/components/Footer/index.html +1 -1
- package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
- package/coverage/lcov-report/react/components/GovBanner/index.js.html +3 -3
- package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +26 -251
- package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +2 -2
- package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +4 -4
- package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +19 -19
- package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +26 -8
- package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +2 -2
- package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +89 -113
- package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +2 -2
- package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +5 -5
- package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/header.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/hooks.js.html +59 -17
- package/coverage/lcov-report/react/components/Header/index.html +36 -36
- package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/index.html +1 -1
- package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Modal/index.html +1 -1
- package/coverage/lcov-report/react/components/Modal/index.jsx.html +1 -1
- package/coverage/lcov-report/{components/SideNav/Links/NavLinkToggle.jsx.html → react/components/NotificationBanner/CollapsedView.js.html} +40 -46
- package/coverage/lcov-report/{components/SideNav/Links/CmsSwitchLink.jsx.html → react/components/NotificationBanner/ExpandedView.js.html} +55 -43
- package/coverage/lcov-report/react/components/NotificationBanner/index.html +51 -21
- package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +168 -300
- package/coverage/lcov-report/react/components/SanitizedContent/index.html +1 -1
- package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +1 -1
- package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +109 -31
- package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +14 -14
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +10 -16
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +51 -27
- package/coverage/lcov-report/react/components/SideNav/Content/index.html +19 -19
- package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +2 -2
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +8 -2
- package/coverage/lcov-report/react/components/SideNav/UI/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/helpers.js.html +197 -17
- package/coverage/lcov-report/react/components/SideNav/index.html +19 -19
- package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
- package/coverage/lcov-report/react/components/hooks/index.html +19 -19
- package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +37 -37
- package/coverage/lcov-report/react/components/index.html +1 -1
- package/coverage/lcov-report/react/index.html +1 -1
- package/coverage/lcov-report/react/index.js.html +1 -1
- package/coverage/lcov-report/react/lib/Chevron.jsx.html +2 -2
- package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +57 -9
- package/coverage/lcov-report/react/lib/index.html +14 -14
- package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
- package/coverage/lcov-report/react/session/index.html +1 -1
- package/coverage/lcov-report/react/session/index.js.html +1 -1
- package/coverage/lcov-report/react/session/logout.js.html +1 -1
- package/coverage/lcov-report/react/session/refresh.js.html +1 -1
- package/coverage/lcov-report/react/session/ttl.js.html +1 -1
- package/coverage/lcov-report/session/index.html +20 -20
- package/coverage/lcov-report/session/index.js.html +1 -1
- package/coverage/lcov-report/session/logout.js.html +24 -15
- package/coverage/lcov-report/session/refresh.js.html +2 -2
- package/coverage/lcov-report/session/ttl.js.html +2 -2
- package/coverage/lcov.info +699 -612
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/images/icons/svg/registration.svg +8 -0
- package/package.json +1 -1
- package/styles/qppds/components/_header.scss +1 -1
- package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +0 -889
- package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
- package/coverage/lcov-report/components/SideNav/Content/index.html +0 -146
- package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -97
- package/coverage/lcov-report/components/SideNav/Details/index.html +0 -146
- package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
- package/coverage/lcov-report/components/SideNav/Links/index.html +0 -206
- package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1084
- package/coverage/lcov-report/components/SideNav/UI/index.js.html +0 -94
- package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -460
- package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +0 -667
|
@@ -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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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 (!
|
|
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 (
|
|
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 ?
|
|
142
|
-
rows={isDevPre ?
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
|
|
96
|
-
|
|
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 = ({
|
|
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={{
|
|
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
|
};
|
|
@@ -2,31 +2,38 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { BellOutline } from '../../lib/SvgComponents.jsx';
|
|
4
4
|
|
|
5
|
-
const CollapsedView = (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
5
|
+
const CollapsedView = forwardRef(
|
|
6
|
+
(
|
|
7
|
+
{ expandNotification, label },
|
|
8
|
+
{ collapsedWrapperRef, collapsedBannerRef }
|
|
9
|
+
) => {
|
|
10
|
+
return (
|
|
11
|
+
<div
|
|
12
|
+
ref={collapsedWrapperRef}
|
|
13
|
+
className={`notification-banner-wrapper collapsed-view`}
|
|
14
|
+
onClick={expandNotification}
|
|
15
|
+
>
|
|
16
|
+
<button
|
|
17
|
+
ref={collapsedBannerRef}
|
|
18
|
+
className={`notification-banner-label`}
|
|
19
|
+
>
|
|
20
|
+
{label}
|
|
21
|
+
<span className="bell-icon">
|
|
22
|
+
<svg aria-hidden="true" focusable="false">
|
|
23
|
+
<BellOutline />
|
|
24
|
+
</svg>
|
|
25
|
+
</span>
|
|
26
|
+
</button>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
CollapsedView.displayName = 'CollapsedView';
|
|
26
33
|
|
|
27
34
|
CollapsedView.propTypes = {
|
|
28
35
|
expandNotification: PropTypes.func,
|
|
29
36
|
label: PropTypes.string,
|
|
30
37
|
};
|
|
31
38
|
|
|
32
|
-
export default
|
|
39
|
+
export default CollapsedView;
|