qpp-style 9.19.1 → 9.20.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.
@@ -11,6 +11,22 @@ const extractCookieValues = (cookies) => {
11
11
  return [hasAuthorizations, cmsInternalRoles];
12
12
  };
13
13
 
14
+ /**
15
+ * Check if internal cms role is a Reviewer role
16
+ * @param {string} cmsInternalRole
17
+ * @returns {boolean}
18
+ */
19
+ export const isReviewerRole = (cmsInternalRole) => {
20
+ const reviewerRoles = [
21
+ 'QPP Self-Nomination',
22
+ 'QPP Targeted Review & Exceptions',
23
+ 'QPP Case Management - PIMMS Reviewer',
24
+ 'QPP Case Management - ACO PAC Reviewer',
25
+ 'QPP Case Management - CMS Reviewer',
26
+ ];
27
+ return reviewerRoles.includes(cmsInternalRole);
28
+ };
29
+
14
30
  /**
15
31
  * Check if internal cms roles has Reviewer role
16
32
  * @param {array} cmsInternalRoles array of values
@@ -18,11 +34,7 @@ const extractCookieValues = (cookies) => {
18
34
  */
19
35
  const hasReviewerRole = (cmsInternalRoles) => {
20
36
  if (!cmsInternalRoles) return false;
21
- return cmsInternalRoles.some(
22
- (name) =>
23
- name === 'QPP Self-Nomination' ||
24
- name === 'QPP Targeted Review & Exceptions'
25
- );
37
+ return cmsInternalRoles.some(isReviewerRole);
26
38
  };
27
39
 
28
40
  /**
@@ -148,10 +148,10 @@ const NavLinkDrawer = ({
148
148
  const renderDrawerLinksRecursively = (navLinks, className = '') => {
149
149
  return (
150
150
  navLinks &&
151
- navLinks.map((link) => {
151
+ navLinks.map((link, index) => {
152
152
  if (link.type === 'divider') {
153
153
  return (
154
- <AnimationGroup display={true} key={link.label}>
154
+ <AnimationGroup display={true} key={index}>
155
155
  <hr />
156
156
  </AnimationGroup>
157
157
  );
@@ -93,6 +93,10 @@
93
93
  {
94
94
  "url": "/self-nomination",
95
95
  "label": "Self Nomination"
96
+ },
97
+ {
98
+ "url": "/cases/needs-review",
99
+ "label": "Review Skip Requests"
96
100
  }
97
101
  ],
98
102
  "viewer": [],
@@ -16,6 +16,7 @@ import {
16
16
  ManageDocumentsIcon,
17
17
  AuthorContentIcon,
18
18
  } from '../../lib/SvgComponents';
19
+ import { isReviewerRole } from './Content/SelectRole/utils';
19
20
 
20
21
  const submissionsUrl = '/user/submissions';
21
22
  const dashboardUrl = '/user/dashboard';
@@ -82,6 +83,7 @@ const getIcon = (url, linkLabel) => {
82
83
  '/reviewer/exception': HardshipIcon,
83
84
  '/reviewer/targeted-review': TargetIcon,
84
85
  '/self-nomination': IndividualReporting,
86
+ '/cases/needs-review': FacilityBasedPreviewIcon,
85
87
  [contentMgrDashboardUrl]: AccountHomeIcon,
86
88
  'Manage Documents': ManageDocumentsIcon,
87
89
  'Author Content': AuthorContentIcon,
@@ -98,6 +100,9 @@ const singleRoleContentMap = {
98
100
  'QPP Front-end - Author': 'contentManager',
99
101
  'QPP Self-Nomination': 'internalReviewers',
100
102
  'QPP Targeted Review & Exceptions': 'internalReviewers',
103
+ 'QPP Case Management - PIMMS Reviewer': 'internalReviewers',
104
+ 'QPP Case Management - ACO PAC Reviewer': 'internalReviewers',
105
+ 'QPP Case Management - CMS Reviewer': 'internalReviewers',
101
106
  };
102
107
 
103
108
  const multiRoleContentMap = {
@@ -128,7 +133,7 @@ const replaceDefaultContentMgrLinks = (defaultContent) => {
128
133
 
129
134
  /**
130
135
  * Load the side nav content for the given role
131
- * @param {sting} roleName role of given user from internalReviewerNames
136
+ * @param {string} roleName role of given user from internalReviewerNames
132
137
  * @param {object} navContent object of side nav links by role (levelOneContent & defaultContent)
133
138
  * @returns {array} returns an array of objects (side nav menu links) from levelOneContent
134
139
  * || defaultContent
@@ -164,6 +169,7 @@ const isImpersonating = (docCookie) => {
164
169
  * @returns {boolean}
165
170
  */
166
171
  const isMultiRoleUser = (docCookie) => {
172
+ const activeRoles = new Set();
167
173
  const { qpp_cms_internal_authorized } = cookie.parse(docCookie);
168
174
  let internalAuthz = [];
169
175
  if (qpp_cms_internal_authorized) {
@@ -176,7 +182,15 @@ const isMultiRoleUser = (docCookie) => {
176
182
  internalAuth !== 'Test internalCms Resource 2'
177
183
  );
178
184
  });
179
- return filteredInternalAuthz.length > 1;
185
+
186
+ filteredInternalAuthz.forEach((element) => {
187
+ if (isReviewerRole(element)) {
188
+ return activeRoles.add('reviewer');
189
+ }
190
+ return activeRoles.add(element);
191
+ });
192
+
193
+ return activeRoles.size > 1;
180
194
  };
181
195
 
182
196
  /**
@@ -290,6 +304,14 @@ const getUrlConditionMap = (userPermissions) => {
290
304
  'QPP Self-Nomination'
291
305
  ),
292
306
 
307
+ '/cases/needs-review': userPermissions.internalReviewerNames?.some((val) =>
308
+ [
309
+ 'QPP Case Management - PIMMS Reviewer',
310
+ 'QPP Case Management - ACO PAC Reviewer',
311
+ 'QPP Case Management - CMS Reviewer',
312
+ ].includes(val)
313
+ ),
314
+
293
315
  // dev pre
294
316
  '/user/applications': userPermissions.ehrAuthorized,
295
317
  '/user/test-data': userPermissions.ehrAuthorized,