@rh-support/cases 2.6.214 → 2.6.216

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 +1 @@
1
- {"version":3,"file":"CaseList.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseList.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAuClC,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAqC1C,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAMD,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAspBrC"}
1
+ {"version":3,"file":"CaseList.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseList.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAwClC,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAuC1C,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAMD,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,qBA2vBrC"}
@@ -16,14 +16,17 @@ import { ErrorBoundary, ToastNotification, useBreakpoint, useDocumentTitle, useF
16
16
  import { CSSUserModal, fetchAllStatuses, fetchCaseGroupsForAccount, fetchCaseGroupsForSSO, fetchCaseSeverities, fetchCaseTypes, fetchProducts, GlobalMetadataDispatchContext, GlobalMetadataStateContext, setUserPreferences, updateCaseListTraditionalSupportAgreed, updateUserPreferences, useGlobalDispatchContext, UserPreferencesKeys, } from '@rh-support/react-context';
17
17
  import { getStringifiedParams, getUrlParsedParams, haventLoadedMetadata, haventLoadedProductsMetadata, pendoTrackEvent, } from '@rh-support/utils';
18
18
  import isEmpty from 'lodash/isEmpty';
19
+ import isEqual from 'lodash/isEqual';
19
20
  import some from 'lodash/some';
20
21
  import React, { useContext, useEffect, useRef, useState } from 'react';
21
22
  import { Trans, useTranslation } from 'react-i18next';
22
23
  import { useInView } from 'react-intersection-observer';
23
24
  import { useLocation } from 'react-router-dom';
24
25
  import { CaseSearchQueryType } from '../../enums/caseSearch';
26
+ import { SolrKeys } from '../../enums/filters';
25
27
  import { PageTitle } from '../../enums/pageTitle';
26
28
  import { useFilterStateOnLoad } from '../../hooks/useFilterStateOnLoad';
29
+ import { getDefaultGroupFilterSelection, shouldApplyDefaultGroupFilter } from '../../utils/caseGroupDefaultFilterUtils';
27
30
  import { clearPageCursors, getCaseListFromGraphQL, loadMoreCases, } from '../../utils/caseListGraphQLUtils';
28
31
  import { createFilterStateFromUrlQuery, createURLQueryFromFilterState, FILTER_URL_CURRENT_PAGE_SEARCH_PARAM, FILTER_URL_PAGE_SIZE_SEARCH_PARAM, FILTER_URL_QUERY_SEARCH_PARAM, FILTER_URL_QUERY_TYPE, } from '../../utils/caseSearchUtils';
29
32
  import { UpdatedCaseDataEvent } from '../../utils/constants';
@@ -34,20 +37,21 @@ import { CaseListTable } from './case-list-table/CaseListTable';
34
37
  import { CaseSearch } from './case-search/CaseSearch';
35
38
  import { useCaseListDispatchContext, useCaseListStateContext } from './CaseListContext';
36
39
  import { CaseListFilterDispatchContext, CaseListFilterStateContext } from './CaseListFilterContext';
37
- import { isNoFilterApplied, isOnlyDefaultFilterApplied } from './CaseListFilterHelpers';
40
+ import { isNoFilterApplied, isOnlyDefaultFilterApplied, isOnlyGroupFilterApplied } from './CaseListFilterHelpers';
38
41
  import { updateFilterState } from './CaseListFilterReducer';
39
42
  import { appendCaseList, setCaseList, setCurrentQuery, setCursorInfo, setIsFetching, setIsLoadingMore, setLoadMoreError, } from './CaseListReducer';
40
43
  export function CaseList(props) {
41
- var _a, _b, _c, _d, _e, _f, _g;
44
+ var _a, _b, _c, _d, _e, _f, _g, _h;
42
45
  const { t } = useTranslation();
43
46
  useDocumentTitle(PageTitle.CASE_LIST);
44
47
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
45
48
  const { caseList, isFetching, isLoadingMore, hasNextPage, endCursor, currentQuery, loadMoreError, loadMoreRetryCount, } = useCaseListStateContext();
46
49
  const CaseListDispatch = useCaseListDispatchContext();
47
50
  const breakPoint = useBreakpoint();
48
- const { globalMetadataState, globalMetadataState: { caseGroups, loggedInUser, loggedInUserRights, loggedInUsersAccount, userPreferences, managedAccounts, bookmarkedAccounts, allCaseTypes, allCaseSeverities, allCaseStatuses, allProducts, caseRecordTypes, caseListTraditionalSupportAgreed, }, } = useContext(GlobalMetadataStateContext);
51
+ const { globalMetadataState, globalMetadataState: { caseGroups, loggedInUser, loggedInUserRights, loggedInUsersAccount, userPreferences, managedAccounts, bookmarkedAccounts, allCaseTypes, allCaseSeverities, allCaseStatuses, allProducts, caseRecordTypes, caseListTraditionalSupportAgreed, hydraUserPreferences, }, } = useContext(GlobalMetadataStateContext);
49
52
  const globalDispatchContext = useGlobalDispatchContext();
50
53
  const apolloClient = useApolloClient();
54
+ const includeSecureSupportCases = Boolean(loggedInUsersAccount.data.secureSupport);
51
55
  const location = useLocation();
52
56
  const searchParams = getUrlParsedParams(location.search);
53
57
  const queryFromUrl = searchParams[FILTER_URL_QUERY_SEARCH_PARAM];
@@ -69,6 +73,7 @@ export function CaseList(props) {
69
73
  const loadMoreLockRef = useRef(false);
70
74
  const loadMoreFnRef = useRef(() => { });
71
75
  const loadMoreCooldownRef = useRef(false);
76
+ const loadMoreAbortRef = useRef(null);
72
77
  const activeFilterStateRef = useRef(filterState);
73
78
  const sentinelElRef = useRef(null);
74
79
  const prefetchRef = useRef({
@@ -85,7 +90,7 @@ export function CaseList(props) {
85
90
  if (!cursor || prefetchRef.current.cursor === cursor)
86
91
  return;
87
92
  prefetchRef.current = { cursor, data: null, loading: true };
88
- loadMoreCases(activeFilterStateRef.current, apolloClient, cursor)
93
+ loadMoreCases(activeFilterStateRef.current, apolloClient, cursor, undefined, includeSecureSupportCases)
89
94
  .then((result) => {
90
95
  if (prefetchRef.current.cursor === cursor) {
91
96
  prefetchRef.current = { cursor, data: result, loading: false };
@@ -129,6 +134,25 @@ export function CaseList(props) {
129
134
  }
130
135
  // eslint-disable-next-line react-hooks/exhaustive-deps
131
136
  }, [inView]);
137
+ useEffect(() => {
138
+ if (!isLoadingMore)
139
+ return;
140
+ const handleOffline = () => {
141
+ if (loadMoreAbortRef.current) {
142
+ loadMoreAbortRef.current.abort();
143
+ loadMoreAbortRef.current = null;
144
+ }
145
+ loadMoreLockRef.current = false;
146
+ setLoadMoreError(CaseListDispatch, true, loadMoreRetryCount + 1);
147
+ };
148
+ if (!navigator.onLine) {
149
+ handleOffline();
150
+ return;
151
+ }
152
+ window.addEventListener('offline', handleOffline);
153
+ return () => window.removeEventListener('offline', handleOffline);
154
+ // eslint-disable-next-line react-hooks/exhaustive-deps
155
+ }, [isLoadingMore]);
132
156
  useEffect(() => {
133
157
  const onClick = (e) => {
134
158
  const anchor = e.target.closest('a.btn_slideto[href="#masthead"]');
@@ -154,7 +178,7 @@ export function CaseList(props) {
154
178
  prefetchRef.current = { cursor: '', data: null, loading: false };
155
179
  loadMoreCooldownRef.current = true;
156
180
  activeFilterStateRef.current = currentFilterState;
157
- const result = yield getCaseListFromGraphQL(currentFilterState, apolloClient, undefined, controller.signal);
181
+ const result = yield getCaseListFromGraphQL(currentFilterState, apolloClient, undefined, controller.signal, undefined, includeSecureSupportCases);
158
182
  if (controller.signal.aborted) {
159
183
  return;
160
184
  }
@@ -184,6 +208,7 @@ export function CaseList(props) {
184
208
  }
185
209
  function loadMore() {
186
210
  return __awaiter(this, void 0, void 0, function* () {
211
+ var _a;
187
212
  if (loadMoreCooldownRef.current ||
188
213
  loadMoreLockRef.current ||
189
214
  isLoadingMore ||
@@ -192,6 +217,11 @@ export function CaseList(props) {
192
217
  loadMoreError)
193
218
  return;
194
219
  loadMoreLockRef.current = true;
220
+ if (loadMoreAbortRef.current) {
221
+ loadMoreAbortRef.current.abort();
222
+ }
223
+ const controller = new AbortController();
224
+ loadMoreAbortRef.current = controller;
195
225
  setIsLoadingMore(CaseListDispatch, true);
196
226
  try {
197
227
  let result;
@@ -202,8 +232,10 @@ export function CaseList(props) {
202
232
  }
203
233
  else {
204
234
  prefetchRef.current = { cursor: '', data: null, loading: false };
205
- result = yield loadMoreCases(activeFilterStateRef.current, apolloClient, endCursor);
235
+ result = yield loadMoreCases(activeFilterStateRef.current, apolloClient, endCursor, controller.signal, includeSecureSupportCases);
206
236
  }
237
+ if (controller.signal.aborted)
238
+ return;
207
239
  setLoadMoreError(CaseListDispatch, false, 0);
208
240
  appendCaseList(CaseListDispatch, result.docs, result.hasNextPage, result.endCursor);
209
241
  if (result.hasNextPage && result.endCursor) {
@@ -211,17 +243,27 @@ export function CaseList(props) {
211
243
  }
212
244
  }
213
245
  catch (err) {
246
+ if ((err === null || err === void 0 ? void 0 : err.name) === 'AbortError' || ((_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.includes('aborted')) || controller.signal.aborted) {
247
+ return;
248
+ }
214
249
  const nextRetryCount = loadMoreRetryCount + 1;
215
250
  setLoadMoreError(CaseListDispatch, true, nextRetryCount);
216
251
  console.error('[CaseList] loadMore error:', err);
217
252
  }
218
253
  finally {
219
- loadMoreLockRef.current = false;
254
+ if (!controller.signal.aborted) {
255
+ loadMoreLockRef.current = false;
256
+ }
220
257
  }
221
258
  });
222
259
  }
223
260
  loadMoreFnRef.current = loadMore;
224
261
  function retryLoadMore() {
262
+ if (loadMoreAbortRef.current) {
263
+ loadMoreAbortRef.current.abort();
264
+ loadMoreAbortRef.current = null;
265
+ }
266
+ loadMoreLockRef.current = false;
225
267
  setLoadMoreError(CaseListDispatch, false, loadMoreRetryCount);
226
268
  setTimeout(() => loadMoreFnRef.current(), 0);
227
269
  }
@@ -240,7 +282,7 @@ export function CaseList(props) {
240
282
  };
241
283
  const checkNewCases = () => __awaiter(this, void 0, void 0, function* () {
242
284
  try {
243
- const { caseListResponse } = yield getCaseListFromGraphQL(filterState, apolloClient);
285
+ const { caseListResponse } = yield getCaseListFromGraphQL(filterState, apolloClient, undefined, undefined, undefined, includeSecureSupportCases);
244
286
  let changed = false;
245
287
  if (caseListResponse.response.numFound <= filterState.paginationInfo.pageSize &&
246
288
  caseListResponse.response.numFound !== caseList.numFound) {
@@ -278,24 +320,50 @@ export function CaseList(props) {
278
320
  var _a;
279
321
  if (!salesforceAccountId || loggedInUser.isFetching)
280
322
  return;
281
- if (haventLoadedMetadata(caseGroups, (data) => data === undefined)) {
282
- if ((_a = loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.isInternal) {
283
- fetchCaseGroupsForAccount(dispatchToGlobalMetadataReducer, apolloClient, salesforceAccountId, defaultCaseGroupId, loggedInContactId, loggedInIsOrgAdmin);
284
- }
285
- else {
286
- fetchCaseGroupsForSSO(dispatchToGlobalMetadataReducer, apolloClient, salesforceAccountId, defaultCaseGroupId, loggedInContactId, loggedInIsOrgAdmin);
287
- }
323
+ if (!haventLoadedMetadata(caseGroups, (data) => data === undefined))
324
+ return;
325
+ if ((_a = loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.isInternal) {
326
+ fetchCaseGroupsForAccount(dispatchToGlobalMetadataReducer, apolloClient, salesforceAccountId, defaultCaseGroupId, loggedInContactId, loggedInIsOrgAdmin);
327
+ }
328
+ else {
329
+ fetchCaseGroupsForSSO(dispatchToGlobalMetadataReducer, apolloClient, salesforceAccountId, defaultCaseGroupId, loggedInContactId, loggedInIsOrgAdmin);
288
330
  }
289
331
  }, [
332
+ apolloClient,
290
333
  caseGroups,
291
334
  dispatchToGlobalMetadataReducer,
292
- apolloClient,
293
- salesforceAccountId,
294
- loggedInUsersAccount.data,
335
+ defaultCaseGroupId,
295
336
  loggedInContactId,
296
337
  loggedInIsOrgAdmin,
297
338
  loggedInUser.isFetching,
339
+ (_f = loggedInUsersAccount.data) === null || _f === void 0 ? void 0 : _f.isInternal,
340
+ salesforceAccountId,
341
+ ]);
342
+ useEffect(() => {
343
+ if (location.pathname !== '/case/list')
344
+ return;
345
+ if (loggedInUser.isFetching || caseGroups.isFetching || caseGroups.data === undefined)
346
+ return;
347
+ if (!shouldApplyDefaultGroupFilter(queryFromUrl, hydraUserPreferences.data))
348
+ return;
349
+ const canAutoSync = isNoFilterApplied(filterState) ||
350
+ isOnlyDefaultFilterApplied(filterState) ||
351
+ isOnlyGroupFilterApplied(filterState.filterInfo);
352
+ if (!canAutoSync)
353
+ return;
354
+ const nextGroupFilter = getDefaultGroupFilterSelection(caseGroups.data, loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.data);
355
+ const currentGroupFilter = filterState.filterInfo[SolrKeys.group] || [];
356
+ if (isEqual(currentGroupFilter, nextGroupFilter))
357
+ return;
358
+ updateFilterState(filterDispatch, Object.assign(Object.assign({}, filterState), { filterInfo: Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: nextGroupFilter }) }));
359
+ // eslint-disable-next-line react-hooks/exhaustive-deps
360
+ }, [
298
361
  defaultCaseGroupId,
362
+ caseGroups.data,
363
+ caseGroups.isFetching,
364
+ loggedInUser.isFetching,
365
+ location.pathname,
366
+ queryFromUrl,
299
367
  ]);
300
368
  useEffect(() => {
301
369
  const loadMetadata = () => __awaiter(this, void 0, void 0, function* () {
@@ -486,8 +554,8 @@ export function CaseList(props) {
486
554
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading filter chips') } },
487
555
  React.createElement(CaseListFilterChips, null))),
488
556
  React.createElement("section", { className: "case-search-bottom" },
489
- React.createElement("aside", { className: `case-search-filters ${((_f = filterSectionRef.current) === null || _f === void 0 ? void 0 : _f.expanded) ? '' : 'collapsed'}` },
490
- React.createElement("h2", { className: "filter-header pf-v6-u-display-flex" }, ((_g = filterSectionRef.current) === null || _g === void 0 ? void 0 : _g.expanded) ? (React.createElement(React.Fragment, null,
557
+ React.createElement("aside", { className: `case-search-filters ${((_g = filterSectionRef.current) === null || _g === void 0 ? void 0 : _g.expanded) ? '' : 'collapsed'}` },
558
+ React.createElement("h2", { className: "filter-header pf-v6-u-display-flex" }, ((_h = filterSectionRef.current) === null || _h === void 0 ? void 0 : _h.expanded) ? (React.createElement(React.Fragment, null,
491
559
  React.createElement(Button, { isInline: true, className: "pf-v6-u-flex-shrink-0 pf-v6-u-flex-none case-search-filter-text-button", variant: "link", title: t('Collapse filter section'), "data-tracking-id": "collapse-case-list-filter", onClick: onToggleFilterBtnClick, iconPosition: "right", icon: React.createElement(OpenDrawerRightIcon, { className: "mirrored" }) },
492
560
  React.createElement(Trans, null, "Filters")))) : (React.createElement(Button, { isInline: true, className: "pf-v6-c-button pf-m-link pf-m-inline pf-v6-u-flex-shrink-0 pf-v6-u-flex-none pf-v6-u-display-flex pf-v6-u-align-items-center pf-v6-u-justify-content-center pf-v6-u-px-lg", variant: "link", title: t('Expand filter section'), "data-tracking-id": "expand-case-list-filter", onClick: onToggleFilterBtnClick, iconPosition: "right", icon: React.createElement(OpenDrawerRightIcon, null) }, isXLScreen ? null : React.createElement(Trans, null, "Filters")))),
493
561
  React.createElement("div", { className: "filter-wrapper" },
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadCSVFileModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/DownloadCSVFileModal.tsx"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AA+BrC,OAAO,KAAuC,MAAM,OAAO,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAWD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA8WzD"}
1
+ {"version":3,"file":"DownloadCSVFileModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-table/DownloadCSVFileModal.tsx"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAgCrC,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAWD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBAmXzD"}
@@ -13,9 +13,10 @@ import { Button, Checkbox, Form, FormGroup, Grid, GridItem, InputGroup, Modal, M
13
13
  import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
14
14
  import TimesCircleIcon from '@patternfly/react-icons/dist/js/icons/times-circle-icon';
15
15
  import { ToastNotification } from '@rh-support/components';
16
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
16
17
  import { downloadCSV, formatDateTime, mapSfdcStatusToPortalStatus, toNewCaseTypeSwitcher, } from '@rh-support/utils';
17
18
  import { isEmpty } from 'lodash';
18
- import React, { useEffect, useMemo, useState } from 'react';
19
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
19
20
  import { useTranslation } from 'react-i18next';
20
21
  import { SolrKeys } from '../../../enums/filters';
21
22
  import { getCaseListFromGraphQL } from '../../../utils/caseListGraphQLUtils';
@@ -31,6 +32,8 @@ export default function DownloadCSVFileModal(props) {
31
32
  const { onClose, onModalshow, isDisabled, filterState, selectedCases, filteredCaseCount } = props;
32
33
  const { t } = useTranslation();
33
34
  const apolloClient = useApolloClient();
35
+ const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
36
+ const includeSecureSupportCases = Boolean(loggedInUsersAccount.data.secureSupport);
34
37
  const [isFetching, setIsFetching] = useState(false);
35
38
  const [downloadCSVFileName, setDownloadCSVFileName] = useState('CaseList.csv');
36
39
  const [checkboxes, setCheckboxes] = useState({
@@ -170,7 +173,7 @@ export default function DownloadCSVFileModal(props) {
170
173
  setIsFetching(true);
171
174
  const hasSelectedCases = selectedCases.length > 0;
172
175
  const csvLimit = hasSelectedCases ? selectedCases.length : 1000;
173
- const result = yield getCaseListFromGraphQL(filterState, apolloClient, csvLimit, undefined, hasSelectedCases ? selectedCases : undefined);
176
+ const result = yield getCaseListFromGraphQL(filterState, apolloClient, csvLimit, undefined, hasSelectedCases ? selectedCases : undefined, includeSecureSupportCases);
174
177
  setIsFetching(false);
175
178
  const updatedCsvData = result.caseListResponse.response.docs.map((row) => (Object.assign(Object.assign({}, row), { case_type: toNewCaseTypeSwitcher(row.case_type), case_link: `https://${window.location.host}${window.location.pathname}/#/case/${row.case_number}` })));
176
179
  downloadCSV(updatedCsvData, getHeaders(), splitExtensionName ? `${splitExtensionName}.csv` : 'CaseList.csv');
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,GAAG,SAAS,sBACf,MAAM,cACd,mBAAmB;;;;EA+DtC"}
1
+ {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAU1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,GAAG,SAAS,sBACf,MAAM,cACd,mBAAmB;;;;EAiEtC"}
@@ -4,6 +4,7 @@ import findKey from 'lodash/findKey';
4
4
  import { useContext, useMemo } from 'react';
5
5
  import { CaseListFilterStateContext, initialCaseFilterState } from '../components/case-list/CaseListFilterContext';
6
6
  import { SolrKeys } from '../enums/filters';
7
+ import { decodeCaseListUrlFilterQuery, getDefaultGroupFilterSelection, shouldApplyDefaultGroupFilter, } from '../utils/caseGroupDefaultFilterUtils';
7
8
  import { createFilterStateFromUrlQuery } from '../utils/caseSearchUtils';
8
9
  // TODO Comment
9
10
  export function useFilterStateOnLoad() {
@@ -12,14 +13,15 @@ export function useFilterStateOnLoad() {
12
13
  const savesSearches = find(hydraUserPreferences.data, (pref) => pref.key === UserPreferencesKeys.caseSavedSearchFilters);
13
14
  const savedSearchesObj = useMemo(() => ((savesSearches === null || savesSearches === void 0 ? void 0 : savesSearches.value) ? JSON.parse(savesSearches.value) : {}), [savesSearches]);
14
15
  const set = (queryFromUrl, pageSizeFromUrl, currentPageFromUrl, searchType) => {
16
+ var _a;
15
17
  let savedSearchFilterState = null;
16
18
  const defaultSavedSearchKey = findKey(savedSearchesObj, { defaultChecked: true });
17
19
  if (defaultSavedSearchKey) {
18
20
  const { filterState: filterStateSaved, queryString, type, sortState, } = savedSearchesObj[defaultSavedSearchKey];
19
21
  savedSearchFilterState = Object.assign(Object.assign({}, filterState), { sortInfo: sortState, filterQueryInfo: Object.assign(Object.assign({}, filterState.filterQueryInfo), { queryString, type }), filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), filterStateSaved) });
20
22
  }
21
- const defaultGroup = (caseGroups.data || []).find((group) => group.isDefault);
22
- const [urlQuery] = (queryFromUrl || '').split(/ orderBy /i);
23
+ const defaultGroupFilter = getDefaultGroupFilterSelection(caseGroups.data, (_a = globalMetadataState.loggedInUser) === null || _a === void 0 ? void 0 : _a.data);
24
+ const applyDefaultGroup = shouldApplyDefaultGroupFilter(queryFromUrl, hydraUserPreferences.data);
23
25
  /**
24
26
  When user lands on page for the first time:
25
27
  If we have any query in url(for example redirect from dashboard), we apply the query, if not
@@ -27,12 +29,12 @@ export function useFilterStateOnLoad() {
27
29
  check if user has default group the apply group filter,
28
30
  non of the above, we apply default search values
29
31
  */
30
- let defaultFilterState = urlQuery && urlQuery !== 'undefined'
32
+ let defaultFilterState = decodeCaseListUrlFilterQuery(queryFromUrl)
31
33
  ? createFilterStateFromUrlQuery(queryFromUrl, globalMetadataState, pageSizeFromUrl, currentPageFromUrl, searchType)
32
34
  : defaultSavedSearchKey
33
35
  ? savedSearchFilterState
34
- : !!(defaultGroup === null || defaultGroup === void 0 ? void 0 : defaultGroup.name)
35
- ? Object.assign(Object.assign({}, filterState), { filterInfo: Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: [{ key: defaultGroup.groupNum, value: defaultGroup.name }] }) }) : filterState;
36
+ : applyDefaultGroup && defaultGroupFilter.length > 0
37
+ ? Object.assign(Object.assign({}, filterState), { filterInfo: Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: defaultGroupFilter }) }) : filterState;
36
38
  return {
37
39
  initFilterState: defaultFilterState,
38
40
  defaultSearchName: defaultSavedSearchKey && !queryFromUrl ? defaultSavedSearchKey : '',
@@ -0,0 +1,12 @@
1
+ import { ICaseGroup } from '@cee-eng/hydrajs/@types/api/public/caseGroups';
2
+ import { IPreference } from '@cee-eng/hydrajs/@types/models/general';
3
+ import type { ILoggedInSsoContact } from '@rh-support/utils';
4
+ export declare function decodeCaseListUrlFilterQuery(queryFromUrl?: string): string;
5
+ export declare function hasDefaultSavedSearch(hydraUserPreferences?: IPreference[]): boolean;
6
+ /** Default group filter applies only when URL and saved-search do not own the filter state. */
7
+ export declare function shouldApplyDefaultGroupFilter(queryFromUrl?: string, hydraUserPreferences?: IPreference[]): boolean;
8
+ export declare function getDefaultGroupFilterSelection(caseGroups: ICaseGroup[] | undefined, loggedInUser?: ILoggedInSsoContact): Array<{
9
+ key: string;
10
+ value: string;
11
+ }>;
12
+ //# sourceMappingURL=caseGroupDefaultFilterUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caseGroupDefaultFilterUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseGroupDefaultFilterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAM7D,wBAAgB,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAa1E;AAED,wBAAgB,qBAAqB,CAAC,oBAAoB,GAAE,WAAW,EAAO,GAAG,OAAO,CAOvF;AAED,+FAA+F;AAC/F,wBAAgB,6BAA6B,CACzC,YAAY,CAAC,EAAE,MAAM,EACrB,oBAAoB,GAAE,WAAW,EAAO,GACzC,OAAO,CAMT;AAED,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,UAAU,EAAE,GAAG,SAAS,EACpC,YAAY,CAAC,EAAE,mBAAmB,GACnC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAGvC"}
@@ -0,0 +1,34 @@
1
+ import { UserPreferencesKeys } from '@rh-support/react-context';
2
+ import find from 'lodash/find';
3
+ import findKey from 'lodash/findKey';
4
+ import { buildDefaultGroupFilterSelection, getDefaultCaseGroupForFilter } from './caseGroupDefaultUtils';
5
+ export function decodeCaseListUrlFilterQuery(queryFromUrl) {
6
+ if (!queryFromUrl || queryFromUrl === 'undefined') {
7
+ return '';
8
+ }
9
+ try {
10
+ const decoded = decodeURIComponent(queryFromUrl);
11
+ const [urlQuery] = decoded.split(/ orderBy /i);
12
+ return urlQuery && urlQuery !== 'undefined' ? urlQuery.trim() : '';
13
+ }
14
+ catch (_a) {
15
+ const [urlQuery] = queryFromUrl.split(/ orderBy /i);
16
+ return urlQuery && urlQuery !== 'undefined' ? urlQuery.trim() : '';
17
+ }
18
+ }
19
+ export function hasDefaultSavedSearch(hydraUserPreferences = []) {
20
+ const savedSearchPreference = find(hydraUserPreferences, (pref) => pref.key === UserPreferencesKeys.caseSavedSearchFilters);
21
+ const savedSearchesObj = (savedSearchPreference === null || savedSearchPreference === void 0 ? void 0 : savedSearchPreference.value) ? JSON.parse(savedSearchPreference.value) : {};
22
+ return Boolean(findKey(savedSearchesObj, { defaultChecked: true }));
23
+ }
24
+ /** Default group filter applies only when URL and saved-search do not own the filter state. */
25
+ export function shouldApplyDefaultGroupFilter(queryFromUrl, hydraUserPreferences = []) {
26
+ if (decodeCaseListUrlFilterQuery(queryFromUrl)) {
27
+ return false;
28
+ }
29
+ return !hasDefaultSavedSearch(hydraUserPreferences);
30
+ }
31
+ export function getDefaultGroupFilterSelection(caseGroups, loggedInUser) {
32
+ const defaultGroup = getDefaultCaseGroupForFilter(caseGroups, loggedInUser);
33
+ return buildDefaultGroupFilterSelection(defaultGroup);
34
+ }
@@ -0,0 +1,10 @@
1
+ import { ICaseGroup } from '@cee-eng/hydrajs/@types/api/public/caseGroups';
2
+ import type { ILoggedInSsoContact } from '@rh-support/utils';
3
+ /** Resolves the user's default case group from contact preference, falling back to isDefault flags. */
4
+ export declare function getDefaultCaseGroupForFilter(caseGroups: ICaseGroup[] | undefined, loggedInUser?: ILoggedInSsoContact): ICaseGroup | undefined;
5
+ /** Builds the group filter chip/select values for a default case group. */
6
+ export declare function buildDefaultGroupFilterSelection(defaultGroup?: ICaseGroup): Array<{
7
+ key: string;
8
+ value: string;
9
+ }>;
10
+ //# sourceMappingURL=caseGroupDefaultUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caseGroupDefaultUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseGroupDefaultUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,uGAAuG;AACvG,wBAAgB,4BAA4B,CACxC,UAAU,EAAE,UAAU,EAAE,GAAG,SAAS,EACpC,YAAY,CAAC,EAAE,mBAAmB,GACnC,UAAU,GAAG,SAAS,CAYxB;AAED,2EAA2E;AAC3E,wBAAgB,gCAAgC,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAMjH"}
@@ -0,0 +1,20 @@
1
+ /** Resolves the user's default case group from contact preference, falling back to isDefault flags. */
2
+ export function getDefaultCaseGroupForFilter(caseGroups, loggedInUser) {
3
+ var _a;
4
+ const groups = caseGroups || [];
5
+ const defaultCaseGroupId = (_a = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.defaultCaseGroup) !== null && _a !== void 0 ? _a : null;
6
+ if (defaultCaseGroupId && defaultCaseGroupId !== '-1') {
7
+ const match = groups.find((group) => group.groupNum === defaultCaseGroupId);
8
+ if (match) {
9
+ return match;
10
+ }
11
+ }
12
+ return groups.find((group) => group.isDefault);
13
+ }
14
+ /** Builds the group filter chip/select values for a default case group. */
15
+ export function buildDefaultGroupFilterSelection(defaultGroup) {
16
+ if (!(defaultGroup === null || defaultGroup === void 0 ? void 0 : defaultGroup.name)) {
17
+ return [];
18
+ }
19
+ return [{ key: defaultGroup.groupNum, value: defaultGroup.name }];
20
+ }
@@ -14,7 +14,7 @@ export interface IGraphQLCaseListResponse {
14
14
  endCursor: string | undefined;
15
15
  }
16
16
  export declare function clearPageCursors(): void;
17
- export declare function getCaseListFromGraphQL(filterState: ICaseListFilterState, apolloClient: ApolloClient, limitOverride?: number, signal?: AbortSignal, selectedCaseNumbers?: string[]): Promise<IGraphQLCaseListResponse>;
17
+ export declare function getCaseListFromGraphQL(filterState: ICaseListFilterState, apolloClient: ApolloClient, limitOverride?: number, signal?: AbortSignal, selectedCaseNumbers?: string[], includeSecureSupportCases?: boolean): Promise<IGraphQLCaseListResponse>;
18
18
  export interface ILoadMoreResult {
19
19
  docs: ICaseListItem[];
20
20
  hasNextPage: boolean;
@@ -24,5 +24,5 @@ export interface ILoadMoreResult {
24
24
  * Fetches the next page of cases for infinite scroll.
25
25
  * Uses the provided `afterCursor` instead of the page-based cursor store.
26
26
  */
27
- export declare function loadMoreCases(filterState: ICaseListFilterState, apolloClient: ApolloClient, afterCursor: string, signal?: AbortSignal): Promise<ILoadMoreResult>;
27
+ export declare function loadMoreCases(filterState: ICaseListFilterState, apolloClient: ApolloClient, afterCursor: string, signal?: AbortSignal, includeSecureSupportCases?: boolean): Promise<ILoadMoreResult>;
28
28
  //# sourceMappingURL=caseListGraphQLUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caseListGraphQLUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListGraphQLUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAKH,aAAa,EAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,+CAA+C,CAAC;AASrG,MAAM,WAAW,wBAAwB;IACrC,gBAAgB,EAAE;QACd,QAAQ,EAAE;YACN,IAAI,EAAE,aAAa,EAAE,CAAC;YACtB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACjB,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAwDD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAkFD,wBAAsB,sBAAsB,CACxC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,EACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAwFnC;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,eAAe,CAAC,CA4C1B"}
1
+ {"version":3,"file":"caseListGraphQLUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListGraphQLUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAKH,aAAa,EAEhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,+CAA+C,CAAC;AASrG,MAAM,WAAW,wBAAwB;IACrC,gBAAgB,EAAE;QACd,QAAQ,EAAE;YACN,IAAI,EAAE,aAAa,EAAE,CAAC;YACtB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACjB,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAwDD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAkFD,wBAAsB,sBAAsB,CACxC,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,EACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAC9B,yBAAyB,UAAQ,GAClC,OAAO,CAAC,wBAAwB,CAAC,CA6FnC;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,EACpB,yBAAyB,UAAQ,GAClC,OAAO,CAAC,eAAe,CAAC,CAoD1B"}
@@ -32,14 +32,14 @@ function resolveOwnerIds(searchTerms, apolloClient) {
32
32
  searchTerm,
33
33
  namePattern: `%${searchTerm}%`,
34
34
  },
35
- fetchPolicy: 'network-only',
35
+ fetchPolicy: 'cache-first',
36
36
  }),
37
37
  apolloClient.query({
38
38
  query: GET_GROUP_IDS_BY_NAME,
39
39
  variables: {
40
40
  namePattern: `%${searchTerm}%`,
41
41
  },
42
- fetchPolicy: 'network-only',
42
+ fetchPolicy: 'cache-first',
43
43
  }),
44
44
  ]);
45
45
  const userEdges = ((_d = (_c = (_b = (_a = userResult.data) === null || _a === void 0 ? void 0 : _a.redhat_support_uiapi) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.RedHatSupportUser) === null || _d === void 0 ? void 0 : _d.edges) || [];
@@ -148,8 +148,8 @@ function resolveVersionProductIds(filterState, apolloClient) {
148
148
  }
149
149
  });
150
150
  }
151
- export function getCaseListFromGraphQL(filterState, apolloClient, limitOverride, signal, selectedCaseNumbers) {
152
- return __awaiter(this, void 0, void 0, function* () {
151
+ export function getCaseListFromGraphQL(filterState_1, apolloClient_1, limitOverride_1, signal_1, selectedCaseNumbers_1) {
152
+ return __awaiter(this, arguments, void 0, function* (filterState, apolloClient, limitOverride, signal, selectedCaseNumbers, includeSecureSupportCases = false) {
153
153
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
154
154
  try {
155
155
  yield resolveVersionProductIds(filterState, apolloClient);
@@ -160,7 +160,7 @@ export function getCaseListFromGraphQL(filterState, apolloClient, limitOverride,
160
160
  const ownerUserIds = yield resolveOwnerIds(federationIdsToResolve, apolloClient);
161
161
  resolvedUserIds = { ownerUserIds };
162
162
  }
163
- const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds);
163
+ const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds, includeSecureSupportCases);
164
164
  if (limitOverride) {
165
165
  variables.first = limitOverride;
166
166
  }
@@ -237,8 +237,8 @@ export function getCaseListFromGraphQL(filterState, apolloClient, limitOverride,
237
237
  * Fetches the next page of cases for infinite scroll.
238
238
  * Uses the provided `afterCursor` instead of the page-based cursor store.
239
239
  */
240
- export function loadMoreCases(filterState, apolloClient, afterCursor, signal) {
241
- return __awaiter(this, void 0, void 0, function* () {
240
+ export function loadMoreCases(filterState_1, apolloClient_1, afterCursor_1, signal_1) {
241
+ return __awaiter(this, arguments, void 0, function* (filterState, apolloClient, afterCursor, signal, includeSecureSupportCases = false) {
242
242
  var _a, _b, _c, _d, _e, _f, _g;
243
243
  try {
244
244
  yield resolveVersionProductIds(filterState, apolloClient);
@@ -249,14 +249,14 @@ export function loadMoreCases(filterState, apolloClient, afterCursor, signal) {
249
249
  const ownerUserIds = yield resolveOwnerIds(federationIdsToResolve, apolloClient);
250
250
  resolvedUserIds = { ownerUserIds };
251
251
  }
252
- const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds);
252
+ const variables = yield createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds, includeSecureSupportCases);
253
253
  variables.first = 20;
254
254
  variables.after = afterCursor;
255
255
  const { data } = yield apolloClient.query({
256
256
  query: GET_CASES_BY_FILTERS,
257
257
  variables,
258
- fetchPolicy: 'network-only',
259
- context: signal ? { fetchOptions: { signal } } : undefined,
258
+ fetchPolicy: 'no-cache',
259
+ context: Object.assign({ queryDeduplication: false }, (signal ? { fetchOptions: { signal } } : undefined)),
260
260
  });
261
261
  const connection = (_b = (_a = data === null || data === void 0 ? void 0 : data.redhat_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.RedHatSupportCase;
262
262
  if (!connection) {
@@ -271,7 +271,7 @@ export function loadMoreCases(filterState, apolloClient, afterCursor, signal) {
271
271
  }
272
272
  catch (error) {
273
273
  if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError' || ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.includes('aborted')) || (signal === null || signal === void 0 ? void 0 : signal.aborted)) {
274
- return { docs: [], hasNextPage: false, endCursor: undefined };
274
+ throw error;
275
275
  }
276
276
  console.error('[GraphQL] loadMoreCases error:', error);
277
277
  throw error;
@@ -11,5 +11,5 @@ export interface IResolvedUserIds {
11
11
  /** Pre-resolved OwnerId values (RedHatSupportUser or RedHatSupportGroup). */
12
12
  ownerUserIds?: string[];
13
13
  }
14
- export declare function createGraphQLVariablesFromFilterState(filterState: ICaseListFilterState, apolloClient: ApolloClient, resolvedUserIds?: IResolvedUserIds): Promise<IGraphQLCaseListVariables>;
14
+ export declare function createGraphQLVariablesFromFilterState(filterState: ICaseListFilterState, apolloClient: ApolloClient, resolvedUserIds?: IResolvedUserIds, includeSecureSupportCases?: boolean): Promise<IGraphQLCaseListVariables>;
15
15
  //# sourceMappingURL=caseListVariablesBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caseListVariablesBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListVariablesBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAcnD,OAAO,EAEH,oBAAoB,EAEvB,MAAM,+CAA+C,CAAC;AAMvD,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAM1F;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAqaD,wBAAsB,qCAAqC,CACvD,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,gBAAgB,GACnC,OAAO,CAAC,yBAAyB,CAAC,CAuIpC"}
1
+ {"version":3,"file":"caseListVariablesBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/caseListVariablesBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAcnD,OAAO,EAEH,oBAAoB,EAEvB,MAAM,+CAA+C,CAAC;AAMvD,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAM1F;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAqaD,wBAAsB,qCAAqC,CACvD,WAAW,EAAE,oBAAoB,EACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,CAAC,EAAE,gBAAgB,EAClC,yBAAyB,UAAQ,GAClC,OAAO,CAAC,yBAAyB,CAAC,CAuIpC"}
@@ -393,14 +393,14 @@ function resolveOwnerIdsBySearchTerms(searchTerms, apolloClient) {
393
393
  return [...new Set([...userIds, ...groupIds])];
394
394
  });
395
395
  }
396
- export function createGraphQLVariablesFromFilterState(filterState, apolloClient, resolvedUserIds) {
397
- return __awaiter(this, void 0, void 0, function* () {
396
+ export function createGraphQLVariablesFromFilterState(filterState_1, apolloClient_1, resolvedUserIds_1) {
397
+ return __awaiter(this, arguments, void 0, function* (filterState, apolloClient, resolvedUserIds, includeSecureSupportCases = false) {
398
398
  var _a;
399
399
  const { paginationInfo, sortInfo, filterInfo, filterQueryInfo } = filterState;
400
400
  const first = (paginationInfo === null || paginationInfo === void 0 ? void 0 : paginationInfo.pageSize) || 10;
401
401
  const orderBy = buildOrderByFromSortInfo(sortInfo);
402
402
  const andConditions = [];
403
- andConditions.push(buildAccessRestrictionExclusionFilter());
403
+ andConditions.push(buildAccessRestrictionExclusionFilter(includeSecureSupportCases));
404
404
  if (filterInfo) {
405
405
  const statusFilter = buildStatusFilter(filterInfo[SolrKeys.status]);
406
406
  if (statusFilter)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/cases",
3
- "version": "2.6.214",
3
+ "version": "2.6.216",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -38,11 +38,11 @@
38
38
  "@patternfly/patternfly": "6.2.1",
39
39
  "@patternfly/react-core": "6.2.1",
40
40
  "@patternfly/react-table": "6.2.1",
41
- "@rh-support/components": "2.5.209",
42
- "@rh-support/react-context": "2.5.304",
41
+ "@rh-support/components": "2.5.211",
42
+ "@rh-support/react-context": "2.5.306",
43
43
  "@rh-support/types": "2.0.26",
44
- "@rh-support/user-permissions": "2.5.156",
45
- "@rh-support/utils": "2.5.137",
44
+ "@rh-support/user-permissions": "2.5.158",
45
+ "@rh-support/utils": "2.5.139",
46
46
  "localforage": "^1.10.0",
47
47
  "lodash": "^4.17.21",
48
48
  "pegjs": "^0.10.0",
@@ -94,5 +94,5 @@
94
94
  "defaults and supports es6-module",
95
95
  "maintained node versions"
96
96
  ],
97
- "gitHead": "56082a7ae9e90099d5504236da82ee1d2688048c"
97
+ "gitHead": "8932407838770cc8548f647dddcc44d39a34dcfd"
98
98
  }