qpp-style 9.32.0 → 9.33.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.
- package/.editorconfig +1 -1
- package/components/Header/HeaderAccountMenu.jsx +2 -2
- package/components/Session/Session.jsx +99 -0
- package/components/Session/index.jsx +3 -0
- package/coverage/clover.xml +196 -173
- package/coverage/coverage-final.json +71 -70
- package/coverage/lcov-report/components/Accordion/index.html +20 -20
- package/coverage/lcov-report/components/Accordion/index.jsx.html +121 -109
- package/coverage/lcov-report/components/Button/index.html +116 -0
- package/coverage/lcov-report/components/Button/index.js.html +355 -0
- package/coverage/lcov-report/components/Error/Collapsible.jsx.html +98 -98
- package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +33 -33
- package/coverage/lcov-report/components/Error/index.html +23 -23
- package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +395 -557
- package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +70 -70
- package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +44 -44
- package/coverage/lcov-report/components/Footer/index.html +33 -48
- package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +30 -45
- package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
- package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +367 -0
- package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +35 -41
- package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +307 -0
- package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +211 -0
- package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +235 -0
- package/coverage/lcov-report/components/Header/HeaderMenuItem.jsx.html +802 -0
- package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
- 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/Header/HeaderUI.jsx.html +586 -0
- package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
- package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +328 -0
- package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +166 -0
- package/coverage/lcov-report/components/Header/hooks.js.html +283 -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} +34 -46
- package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +96 -108
- package/coverage/lcov-report/components/Infotip/InfotipContent.jsx.html +223 -0
- package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +49 -49
- package/coverage/lcov-report/components/Infotip/index.html +32 -32
- package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
- package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +116 -116
- package/coverage/lcov-report/components/Modal/Modal.jsx.html +252 -252
- package/coverage/lcov-report/components/Modal/index.html +38 -38
- package/coverage/lcov-report/components/Modal/index.jsx.html +31 -31
- package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
- package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
- package/coverage/lcov-report/components/{SideNav/Details → NotificationBanner}/index.html +46 -46
- package/coverage/lcov-report/components/NotificationBanner/index.js.html +748 -0
- package/coverage/lcov-report/components/SanitizedContent/index.html +19 -19
- package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +287 -218
- package/coverage/lcov-report/components/SessionDialogUI.jsx.html +440 -440
- package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
- package/coverage/lcov-report/components/SideNav/Chart/index.html +1 -16
- package/coverage/lcov-report/components/SideNav/{AnimationGroup → Content/SelectRole}/index.html +29 -29
- package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +532 -0
- package/coverage/lcov-report/components/SideNav/helpers.js.html +1125 -54
- package/coverage/lcov-report/components/SideNav/index.html +19 -19
- package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +9 -9
- 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 +21 -21
- package/coverage/lcov-report/components/hooks/useGetConfig.js.html +131 -128
- package/coverage/lcov-report/components/index.html +21 -21
- package/coverage/lcov-report/index.html +31 -31
- package/coverage/lcov-report/lib/Chevron.jsx.html +36 -36
- package/coverage/lcov-report/lib/SvgComponents.jsx.html +1471 -973
- package/coverage/lcov-report/lib/index.html +21 -36
- 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/LegacyFooterUI.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 +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
- package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
- package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/react/components/Header/index.html +1 -1
- 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/InfotipContent.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 +7 -7
- package/coverage/lcov-report/react/components/Modal/index.html +1 -1
- package/coverage/lcov-report/react/components/Modal/index.jsx.html +3 -3
- package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +1 -1
- package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
- package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
- package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +1 -1
- 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 +30 -90
- 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 +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/react/components/SideNav/UI/default-markup.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/react/components/SideNav/index.html +1 -1
- package/coverage/lcov-report/react/components/SideNav/index.js.html +1 -1
- package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +2 -2
- 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 +1 -1
- package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
- package/coverage/lcov-report/react/components/index.html +21 -21
- 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 +1 -1
- package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +2 -2
- package/coverage/lcov-report/react/lib/index.html +1 -1
- package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
- package/coverage/lcov-report/react/session/index.html +46 -31
- package/coverage/lcov-report/react/session/index.js.html +1 -1
- package/coverage/lcov-report/react/session/isAuthV2.js.html +151 -0
- package/coverage/lcov-report/react/session/logout.js.html +8 -8
- package/coverage/lcov-report/react/session/refresh.js.html +69 -57
- package/coverage/lcov-report/react/session/ttl.js.html +43 -79
- package/coverage/lcov-report/session/index.html +53 -53
- package/coverage/lcov-report/session/index.js.html +13 -13
- package/coverage/lcov-report/session/logout.js.html +145 -127
- package/coverage/lcov-report/session/refresh.js.html +90 -90
- package/coverage/lcov-report/session/ttl.js.html +77 -77
- package/coverage/lcov.info +233 -208
- 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/index.js +0 -5
- package/package.json +1 -1
- package/session/isAuthV2.js +22 -0
- package/session/refresh.js +36 -33
- package/session/ttl.js +21 -33
- package/test/session/session.test.js +5 -5
- package/components/SessionDialog/sessionDialog.js +0 -26
- package/components/SessionDialogUI.jsx +0 -261
- package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -667
- package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -166
- package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
- package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -709
- package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +0 -733
- 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/PracticeDetails.jsx.html +0 -220
- package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
- package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -208
- package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +0 -247
- package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +0 -199
- package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -832
- package/coverage/lcov-report/components/SideNav/Links/NavLinkInline.jsx.html +0 -406
- package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +0 -187
- 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/styles/components/_footer.scss +0 -593
- package/styles/components/_header.scss +0 -890
- package/styles/components/_sidebar.scss +0 -8
- package/styles/components/sidebar/_animations.scss +0 -38
- package/styles/components/sidebar/_cms.scss +0 -61
- package/styles/components/sidebar/_details.scss +0 -58
- package/styles/components/sidebar/_links.scss +0 -420
- package/styles/components/sidebar/_sidebar-animation.scss +0 -121
- package/styles/components/sidebar/_sidebar-tooltip.scss +0 -33
- package/styles/components/sidebar/_sidebar.scss +0 -141
- package/styles/components/sidebar/project-specific/_wi.scss +0 -42
- package/styles/qppds/components/_infotip-content.scss +0 -49
- package/styles/qppds/components/_spinner.scss +0 -46
- package/test/components/SessionDialogUI.test.js +0 -339
package/.editorconfig
CHANGED
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { useHeaderState } from './hooks';
|
|
4
4
|
import { setUtagLink } from './utag-helpers';
|
|
5
|
-
import SessionDialogUI from '../SessionDialogUI';
|
|
6
5
|
import HeaderMenuItem from './HeaderMenuItem';
|
|
6
|
+
import Session from '../Session';
|
|
7
7
|
|
|
8
8
|
const HeaderAccountMenu = ({ handleClick, isLoginEnabled, isDevPre }) => {
|
|
9
9
|
const { closeMenus, RouterLink, headerContent } = useHeaderState();
|
|
@@ -66,7 +66,7 @@ const HeaderAccountMenu = ({ handleClick, isLoginEnabled, isDevPre }) => {
|
|
|
66
66
|
if (isLoggedIn) {
|
|
67
67
|
return (
|
|
68
68
|
<>
|
|
69
|
-
<
|
|
69
|
+
<Session />
|
|
70
70
|
<HeaderMenuItem
|
|
71
71
|
hasMenu
|
|
72
72
|
menuName="Login"
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import cookie from 'cookie';
|
|
3
|
+
import Modal from '../Modal';
|
|
4
|
+
import { fetchTtl } from '../../session';
|
|
5
|
+
import refreshSession from '../../session/refresh';
|
|
6
|
+
import logoutSession from '../../session/logout';
|
|
7
|
+
|
|
8
|
+
// calculate TWO_MINUTES for interval
|
|
9
|
+
const SECOND = 1000;
|
|
10
|
+
const MINUTE = 60 * SECOND;
|
|
11
|
+
const TWO_MINUTES = 2 * MINUTE;
|
|
12
|
+
const DEFAULT_SESSION_CHECK_INTERVAL = TWO_MINUTES;
|
|
13
|
+
|
|
14
|
+
// This Dialog shows up 2 minutes before the user session ends
|
|
15
|
+
// giving the user an opportunity to refresh the token
|
|
16
|
+
// or to sign out
|
|
17
|
+
const InactiveDialog = () => {
|
|
18
|
+
const [isOpen, setIsOpen] = useState(true);
|
|
19
|
+
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
const timeout = setTimeout(() => logoutSession(window), TWO_MINUTES);
|
|
22
|
+
return () => clearInterval(timeout);
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<Modal
|
|
27
|
+
useDesignSystem
|
|
28
|
+
title="You will be signed out within two minutes"
|
|
29
|
+
isOpen={isOpen}
|
|
30
|
+
primary={{
|
|
31
|
+
title: 'Keep me signed in',
|
|
32
|
+
onClick: () => {
|
|
33
|
+
refreshSession();
|
|
34
|
+
setIsOpen(false);
|
|
35
|
+
},
|
|
36
|
+
}}
|
|
37
|
+
secondary={{
|
|
38
|
+
title: 'Sign me out now',
|
|
39
|
+
onClick: () => logoutSession(window),
|
|
40
|
+
}}
|
|
41
|
+
onRequestClose={() => setIsOpen(false)}
|
|
42
|
+
>
|
|
43
|
+
<p>
|
|
44
|
+
You have been inactive for thirty minutes. For your security, we will
|
|
45
|
+
sign you out automatically.
|
|
46
|
+
</p>
|
|
47
|
+
</Modal>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// 120 seconds is 2 minutes
|
|
52
|
+
const DEFAULT_WARNING_TIMEOUT_SECONDS = 120;
|
|
53
|
+
function shouldShowInactiveDialog(
|
|
54
|
+
timeRemainingSeconds,
|
|
55
|
+
warningTimeoutSeconds = DEFAULT_WARNING_TIMEOUT_SECONDS,
|
|
56
|
+
) {
|
|
57
|
+
return timeRemainingSeconds < warningTimeoutSeconds;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const Session = () => {
|
|
61
|
+
const [isInactiveDialogOpen, setIsInactiveDialogOpen] = useState(false);
|
|
62
|
+
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
let didCancel = false;
|
|
65
|
+
const cookies = cookie.parse(document.cookie);
|
|
66
|
+
const hasAuthToken = !!cookies.qpp_auth_token;
|
|
67
|
+
async function isSessionValid() {
|
|
68
|
+
if (hasAuthToken) {
|
|
69
|
+
const timeRemaining = await fetchTtl(cookies.qpp_auth_token);
|
|
70
|
+
// safeguard against unmounted component
|
|
71
|
+
if (didCancel) return;
|
|
72
|
+
|
|
73
|
+
// token expired
|
|
74
|
+
if (timeRemaining === 0) {
|
|
75
|
+
logoutSession(window);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// token is about to expire
|
|
79
|
+
if (shouldShowInactiveDialog(timeRemaining)) {
|
|
80
|
+
setIsInactiveDialogOpen(true);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
isSessionValid();
|
|
85
|
+
const interval = setInterval(
|
|
86
|
+
isSessionValid,
|
|
87
|
+
DEFAULT_SESSION_CHECK_INTERVAL,
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
return () => {
|
|
91
|
+
clearInterval(interval);
|
|
92
|
+
didCancel = true;
|
|
93
|
+
};
|
|
94
|
+
}, []);
|
|
95
|
+
|
|
96
|
+
return <>{isInactiveDialogOpen && <InactiveDialog />}</>;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export default Session;
|