@rh-support/cases 2.6.168 → 2.6.170

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/lib/esm/components/case-list/CaseList.d.ts +0 -7
  2. package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
  3. package/lib/esm/components/case-list/CaseList.js +116 -111
  4. package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
  5. package/lib/esm/components/case-list/CaseListContext.js +0 -2
  6. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +6 -1
  7. package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
  8. package/lib/esm/components/case-list/CaseListFilterReducer.js +4 -1
  9. package/lib/esm/components/case-list/CaseListReducer.d.ts +2 -8
  10. package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
  11. package/lib/esm/components/case-list/CaseListReducer.js +1 -13
  12. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
  13. package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +18 -11
  14. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
  15. package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +28 -3
  16. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +1 -7
  17. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
  18. package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +7 -15
  19. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -5
  20. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
  21. package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +14 -14
  22. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +1 -3
  23. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
  24. package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
  25. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +5 -4
  26. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
  27. package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +15 -54
  28. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +0 -3
  29. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
  30. package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +18 -44
  31. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +0 -3
  32. package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
  33. package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +14 -44
  34. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +1 -3
  35. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
  36. package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +61 -32
  37. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +0 -1
  38. package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
  39. package/lib/esm/components/case-list/case-list-table/CaseListTable.js +9 -8
  40. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +0 -5
  41. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
  42. package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +38 -68
  43. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
  44. package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +5 -15
  45. package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
  46. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
  47. package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +2 -3
  48. package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
  49. package/lib/esm/components/case-list/case-search/AdvanceSearch.js +2 -2
  50. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
  51. package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +1 -0
  52. package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
  53. package/lib/esm/components/case-list/case-search/CaseSearch.js +6 -6
  54. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
  55. package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +4 -1
  56. package/lib/esm/css/caseList.css +0 -2
  57. package/lib/esm/enums/case.d.ts +2 -1
  58. package/lib/esm/enums/case.d.ts.map +1 -1
  59. package/lib/esm/enums/case.js +14 -1
  60. package/lib/esm/enums/caseSearch.d.ts +2 -0
  61. package/lib/esm/enums/caseSearch.d.ts.map +1 -1
  62. package/lib/esm/enums/caseSearch.js +1 -0
  63. package/lib/esm/enums/filters.d.ts +3 -1
  64. package/lib/esm/enums/filters.d.ts.map +1 -1
  65. package/lib/esm/enums/filters.js +2 -0
  66. package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
  67. package/lib/esm/hooks/useExportCaseListCSV.js +1 -9
  68. package/lib/esm/models/caseList.d.ts +0 -2
  69. package/lib/esm/models/caseList.d.ts.map +1 -1
  70. package/lib/esm/test-utils/mockData.js +1 -1
  71. package/lib/esm/utils/caseListGraphQLUtils.d.ts +16 -0
  72. package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -0
  73. package/lib/esm/utils/caseListGraphQLUtils.js +193 -0
  74. package/lib/esm/utils/caseListMapper.d.ts +6 -0
  75. package/lib/esm/utils/caseListMapper.d.ts.map +1 -0
  76. package/lib/esm/utils/caseListMapper.js +36 -0
  77. package/lib/esm/utils/caseListVariablesBuilder.d.ts +13 -0
  78. package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -0
  79. package/lib/esm/utils/caseListVariablesBuilder.js +160 -0
  80. package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
  81. package/lib/esm/utils/caseSearchUtils.js +51 -10
  82. package/lib/esm/utils/constants.d.ts +2 -0
  83. package/lib/esm/utils/constants.d.ts.map +1 -1
  84. package/lib/esm/utils/constants.js +14 -0
  85. package/lib/esm/utils/mockSolrResponse.js +1 -1
  86. package/lib/esm/utils/statusUtils.d.ts +3 -0
  87. package/lib/esm/utils/statusUtils.d.ts.map +1 -0
  88. package/lib/esm/utils/statusUtils.js +22 -0
  89. package/package.json +7 -7
@@ -1,18 +1,11 @@
1
1
  import '../../css/caseList.css';
2
2
  import '../../css/caseSearch.css';
3
- import { IFacetResponse } from '@rh-support/types/shared';
4
- import { ISolrResponseToPivotFields } from '@rh-support/utils';
5
3
  import React from 'react';
6
4
  import { RouteComponentProps } from 'react-router-dom';
7
5
  import { ICasesRouteURLParams } from '..';
8
- import { IFacetPivot } from '../../models/caseList';
9
6
  interface IProps {
10
7
  routeProps: RouteComponentProps<ICasesRouteURLParams>;
11
8
  }
12
- export interface IProductVersionPivotMap extends IFacetResponse {
13
- case_version: IFacetResponse[];
14
- }
15
- export type IPivotValues = ISolrResponseToPivotFields<IFacetPivot, IProductVersionPivotMap>;
16
9
  export interface IChipsNameSsoMap {
17
10
  [sso: string]: IChipsNameSso;
18
11
  }
@@ -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;AA4BlC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAKH,0BAA0B,EAI7B,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAK1C,OAAO,EAAgB,WAAW,EAA2B,MAAM,uBAAuB,CAAC;AAmC3F,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC3D,YAAY,EAAE,cAAc,EAAE,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,0BAA0B,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;AAM5F,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,qBAqgBrC"}
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;AAEvE,OAAO,EAAE,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAwB1C,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,qBA6drC"}
@@ -9,23 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import '../../css/caseList.css';
11
11
  import '../../css/caseSearch.css';
12
+ import { useApolloClient } from '@apollo/client/react';
12
13
  import { Alert, AlertActionCloseButton, AlertVariant, Button } from '@patternfly/react-core';
13
14
  import OpenDrawerRightIcon from '@patternfly/react-icons/dist/js/icons/open-drawer-right-icon';
14
- import { ErrorBoundary, ToastNotification, useBreakpoint, useDocumentTitle, useForceUpdate, usePrevious, } from '@rh-support/components';
15
- import { CSSUserModal, fetchAllStatuses, fetchCaseGroupsForSSO, fetchCaseSeverities, fetchCaseTypes, fetchProducts, GlobalMetadataDispatchContext, GlobalMetadataStateContext, setUserPreferences, updateCaseListTraditionalSupportAgreed, updateUserPreferences, useGlobalDispatchContext, UserPreferencesKeys, } from '@rh-support/react-context';
16
- import { getStringifiedParams, getUrlParsedParams, haventLoadedMetadata, haventLoadedProductsMetadata, pendoTrackEvent, solrResponseToFacetFields, solrResponseToPivotFields, } from '@rh-support/utils';
17
- import get from 'lodash/get';
15
+ import { ErrorBoundary, ToastNotification, useBreakpoint, useDocumentTitle, useForceUpdate, } from '@rh-support/components';
16
+ import { CSSUserModal, fetchAllStatuses, fetchCaseGroupsForAccount, fetchCaseGroupsForSSO, fetchCaseRecordTypes, fetchCaseSeverities, fetchCaseTypes, fetchProducts, GlobalMetadataDispatchContext, GlobalMetadataStateContext, setUserPreferences, updateCaseListTraditionalSupportAgreed, updateUserPreferences, useGlobalDispatchContext, UserPreferencesKeys, } from '@rh-support/react-context';
17
+ import { getStringifiedParams, getUrlParsedParams, haventLoadedMetadata, haventLoadedProductsMetadata, pendoTrackEvent, } from '@rh-support/utils';
18
18
  import isEmpty from 'lodash/isEmpty';
19
- import mapValues from 'lodash/mapValues';
20
19
  import some from 'lodash/some';
21
20
  import React, { useContext, useEffect, useRef, useState } from 'react';
22
21
  import { Trans, useTranslation } from 'react-i18next';
23
22
  import { useLocation } from 'react-router-dom';
24
23
  import { CaseSearchQueryType } from '../../enums/caseSearch';
25
- import { SolrPivotKeys } from '../../enums/filters';
26
24
  import { PageTitle } from '../../enums/pageTitle';
27
25
  import { useFilterStateOnLoad } from '../../hooks/useFilterStateOnLoad';
28
- import { getCaseList } from '../../utils/caseListUtils';
26
+ import { clearPageCursors, getCaseListFromGraphQL } from '../../utils/caseListGraphQLUtils';
29
27
  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';
30
28
  import { UpdatedCaseDataEvent } from '../../utils/constants';
31
29
  import { NewCaseButton } from '../case/NewCaseButton';
@@ -34,20 +32,21 @@ import { CaseListFilters } from './case-list-filters/CaseListFilters';
34
32
  import { CaseListTable } from './case-list-table/CaseListTable';
35
33
  import { CaseSearch } from './case-search/CaseSearch';
36
34
  import { useCaseListDispatchContext, useCaseListStateContext } from './CaseListContext';
37
- import { CaseListFilterDispatchContext, CaseListFilterStateContext, initialCaseFilterState, } from './CaseListFilterContext';
38
- import { eligibleSFDCFiltersMultipleValues, isNoFilterApplied, isOnlyDefaultFilterApplied, } from './CaseListFilterHelpers';
35
+ import { CaseListFilterDispatchContext, CaseListFilterStateContext } from './CaseListFilterContext';
36
+ import { isNoFilterApplied, isOnlyDefaultFilterApplied } from './CaseListFilterHelpers';
39
37
  import { updateFilterState } from './CaseListFilterReducer';
40
- import { setCaseList, setCurrentQuery, setFilterValuesFromFacetResponse, setIsFetching, setPivotValues, } from './CaseListReducer';
38
+ import { setCaseList, setCurrentQuery, setIsFetching } from './CaseListReducer';
41
39
  export function CaseList(props) {
42
40
  var _a, _b;
43
41
  const { t } = useTranslation();
44
42
  useDocumentTitle(PageTitle.CASE_LIST);
45
43
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
46
- const { caseList, pivotValues, isFetching, filterValuesFromFacetResponse, currentQuery } = useCaseListStateContext();
44
+ const { caseList, isFetching, currentQuery } = useCaseListStateContext();
47
45
  const CaseListDispatch = useCaseListDispatchContext();
48
46
  const breakPoint = useBreakpoint();
49
- const { globalMetadataState, globalMetadataState: { caseGroups, loggedInUserJwtToken, loggedInUserRights, loggedInUsersAccount, userPreferences, managedAccounts, bookmarkedAccounts, allCaseTypes, allCaseSeverities, allCaseStatuses, allProducts, caseListTraditionalSupportAgreed, }, } = useContext(GlobalMetadataStateContext);
47
+ const { globalMetadataState, globalMetadataState: { caseGroups, loggedInUserJwtToken, loggedInUserRights, loggedInUsersAccount, userPreferences, managedAccounts, bookmarkedAccounts, allCaseTypes, allCaseSeverities, allCaseStatuses, allProducts, caseRecordTypes, caseListTraditionalSupportAgreed, }, } = useContext(GlobalMetadataStateContext);
50
48
  const globalDispatchContext = useGlobalDispatchContext();
49
+ const apolloClient = useApolloClient();
51
50
  const location = useLocation();
52
51
  const searchParams = getUrlParsedParams(location.search);
53
52
  const queryFromUrl = searchParams[FILTER_URL_QUERY_SEARCH_PARAM];
@@ -55,6 +54,7 @@ export function CaseList(props) {
55
54
  const currentPageFromUrl = parseInt(searchParams[FILTER_URL_CURRENT_PAGE_SEARCH_PARAM]);
56
55
  const searchType = searchParams[FILTER_URL_QUERY_TYPE];
57
56
  const abortControllerRef = useRef(undefined);
57
+ const lastPushedQueryRef = useRef('');
58
58
  const isXLScreen = breakPoint.xl;
59
59
  const isFirstMount = useRef(true);
60
60
  const filterSectionRef = useRef(null);
@@ -63,43 +63,39 @@ export function CaseList(props) {
63
63
  const forceUpdate = useForceUpdate();
64
64
  const isCaseListFilterPanelExanded = userPreferences.data.isCaseListFilterPanelExanded;
65
65
  const useFilterStateInit = useFilterStateOnLoad();
66
- const isBasicSearchMode = filterState.filterQueryInfo.type === CaseSearchQueryType.BASIC ||
67
- (filterState.filterQueryInfo.type === CaseSearchQueryType.ADVANCED && loggedInUserRights.data.isExternal());
68
- const prevSearchType = usePrevious(filterState.filterQueryInfo.type);
69
- let isSearchTypeChanged = filterState.filterQueryInfo.type !== prevSearchType;
70
66
  const [hasError, setHasError] = useState(null);
71
- const [isSolrSearchDown, setSolrSearchDown] = useState(false);
72
67
  const [defaultSavedSearchName, setDefaultSavedSearchName] = useState('');
73
68
  const [RHCDValue, setRHCDValue] = useState('');
74
69
  const [isRHCDAlertShown, setIsRHCDAlertShown] = useState(true);
75
70
  function getCases(currentFilterState) {
76
71
  return __awaiter(this, void 0, void 0, function* () {
77
- let showError;
72
+ var _a;
78
73
  try {
79
- setIsFetching(CaseListDispatch, true);
80
- setHasError(false);
81
- if (abortControllerRef.current !== undefined) {
82
- // Cancel the previous request
74
+ if (abortControllerRef.current) {
83
75
  abortControllerRef.current.abort();
84
76
  }
85
- // recreate a new AbortController for each call
86
- let controller = new AbortController();
77
+ const controller = new AbortController();
87
78
  abortControllerRef.current = controller;
88
- const { caseListResponse, isSolrSearchDownSFDCUp, showErrorMessage } = yield getCaseList(currentFilterState, loggedInUserRights.data, loggedInUsersAccount.data, controller.signal);
89
- showError = showErrorMessage;
90
- setSolrSearchDown(isSolrSearchDownSFDCUp);
91
- setFilterValuesFromFacetResponse(CaseListDispatch, solrResponseToFacetFields(caseListResponse));
92
- setPivotValues(CaseListDispatch, solrResponseToPivotFields(caseListResponse));
79
+ setIsFetching(CaseListDispatch, true);
80
+ setHasError(false);
81
+ const { caseListResponse, showErrorMessage } = yield getCaseListFromGraphQL(currentFilterState, apolloClient, undefined, controller.signal);
82
+ if (controller.signal.aborted) {
83
+ return;
84
+ }
93
85
  setCaseList(CaseListDispatch, caseListResponse.response);
94
86
  setIsFetching(CaseListDispatch, false);
87
+ if (showErrorMessage) {
88
+ setHasError(true);
89
+ ToastNotification.addDangerMessage(t('There was an error loading case data. Please try again.'));
90
+ }
95
91
  }
96
92
  catch (err) {
97
- const isAbortError = err.message && err.message.toLowerCase().indexOf('abort') > -1;
98
- if (!isAbortError) {
99
- setIsFetching(CaseListDispatch, false);
100
- setHasError(true);
101
- showError && ToastNotification.addXHRErrorMessage(err);
93
+ 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'))) {
94
+ return;
102
95
  }
96
+ setIsFetching(CaseListDispatch, false);
97
+ setHasError(true);
98
+ ToastNotification.addXHRErrorMessage(err);
103
99
  }
104
100
  });
105
101
  }
@@ -109,25 +105,6 @@ export function CaseList(props) {
109
105
  filterSectionRef.current.expanded = isExpanded;
110
106
  forceUpdate();
111
107
  };
112
- function saveFilterQueryInUserPreferences() {
113
- if (isNoFilterApplied(filterState))
114
- return;
115
- const type = filterState.filterQueryInfo.type;
116
- const recentSerach = {
117
- filterState: type === CaseSearchQueryType.BASIC ? filterState.filterInfo : {},
118
- sortState: filterState.sortInfo,
119
- queryString: type === CaseSearchQueryType.BASIC
120
- ? filterState.filterQueryInfo.queryString
121
- : filterState.filterQueryInfo.parsedQuery,
122
- type,
123
- };
124
- try {
125
- updateUserPreferences(dispatchToGlobalMetadataReducer, loggedInUserRights.data.getSSOUsername(), [{ key: UserPreferencesKeys.mostRecentSearch, value: JSON.stringify(recentSerach) }], 'add');
126
- }
127
- catch (e) {
128
- console.error('Could not save filter query in user preferences');
129
- }
130
- }
131
108
  const onToggleFilterBtnClick = () => {
132
109
  var _a, _b;
133
110
  toggleFilterSection(!((_a = filterSectionRef.current) === null || _a === void 0 ? void 0 : _a.expanded));
@@ -137,8 +114,7 @@ export function CaseList(props) {
137
114
  };
138
115
  const checkNewCases = () => __awaiter(this, void 0, void 0, function* () {
139
116
  try {
140
- const { caseListResponse, isSolrSearchDownSFDCUp } = yield getCaseList(filterState, loggedInUserRights.data, loggedInUsersAccount.data, null);
141
- setSolrSearchDown(isSolrSearchDownSFDCUp);
117
+ const { caseListResponse } = yield getCaseListFromGraphQL(filterState, apolloClient);
142
118
  let changed = false;
143
119
  if (caseListResponse.response.numFound <= filterState.paginationInfo.pageSize &&
144
120
  caseListResponse.response.numFound !== caseList.numFound) {
@@ -147,11 +123,11 @@ export function CaseList(props) {
147
123
  else {
148
124
  const caseIDModifiedDateObj = {};
149
125
  caseListResponse.response.docs.forEach((res) => {
150
- caseIDModifiedDateObj[res.case_number] = res.case_lastModifiedDate;
126
+ caseIDModifiedDateObj[res.case_number] = res.case_last_public_update_date;
151
127
  });
152
128
  changed = some(caseList.docs, (doc) => {
153
129
  if (caseIDModifiedDateObj[doc.case_number]) {
154
- return caseIDModifiedDateObj[doc.case_number] !== doc.case_lastModifiedDate;
130
+ return caseIDModifiedDateObj[doc.case_number] !== doc.case_last_public_update_date;
155
131
  }
156
132
  else {
157
133
  return true;
@@ -169,72 +145,94 @@ export function CaseList(props) {
169
145
  }
170
146
  });
171
147
  useEffect(() => {
148
+ var _a;
172
149
  if (haventLoadedMetadata(caseGroups, (data) => data === undefined)) {
173
- fetchCaseGroupsForSSO(dispatchToGlobalMetadataReducer, loggedInUserJwtToken.username);
150
+ if ((_a = loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.isInternal) {
151
+ fetchCaseGroupsForAccount(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.accountNumber);
152
+ }
153
+ else {
154
+ fetchCaseGroupsForSSO(dispatchToGlobalMetadataReducer, loggedInUserJwtToken.preferred_username);
155
+ }
174
156
  }
175
- }, [caseGroups, dispatchToGlobalMetadataReducer, loggedInUserJwtToken]);
157
+ }, [caseGroups, dispatchToGlobalMetadataReducer, loggedInUserJwtToken, loggedInUsersAccount.data]);
176
158
  useEffect(() => {
177
- if (haventLoadedMetadata(allCaseTypes)) {
178
- fetchCaseTypes(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.secureSupport);
179
- }
180
- // when solr is down, we use hydra metadata api to populated filter dropdowns
181
- if (isSolrSearchDown) {
159
+ const loadMetadata = () => __awaiter(this, void 0, void 0, function* () {
160
+ if (haventLoadedMetadata(caseRecordTypes)) {
161
+ yield fetchCaseRecordTypes(dispatchToGlobalMetadataReducer, apolloClient);
162
+ }
163
+ if (haventLoadedMetadata(allCaseTypes)) {
164
+ fetchCaseTypes(dispatchToGlobalMetadataReducer, apolloClient);
165
+ }
182
166
  if (haventLoadedMetadata(allCaseSeverities)) {
183
- fetchCaseSeverities(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.secureSupport);
167
+ fetchCaseSeverities(dispatchToGlobalMetadataReducer, apolloClient);
184
168
  }
185
169
  if (haventLoadedMetadata(allCaseStatuses)) {
186
- fetchAllStatuses(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.secureSupport);
170
+ fetchAllStatuses(dispatchToGlobalMetadataReducer, apolloClient);
187
171
  }
188
172
  if (haventLoadedProductsMetadata(allProducts)) {
189
- fetchProducts(dispatchToGlobalMetadataReducer);
173
+ fetchProducts(dispatchToGlobalMetadataReducer, apolloClient);
190
174
  }
191
- // on sfdc fields that only one value is allowed, set filter to first item
192
- const sfdcFilterState = mapValues(filterState.filterInfo, (value, key) => {
193
- //@ts-ignore
194
- if (eligibleSFDCFiltersMultipleValues.includes(key))
195
- return value;
196
- return value[0] ? [value[0]] : [];
197
- });
198
- updateFilterState(filterDispatch, {
199
- //@ts-ignore
200
- filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), sfdcFilterState),
201
- });
202
- }
175
+ });
176
+ loadMetadata();
203
177
  // eslint-disable-next-line react-hooks/exhaustive-deps
204
178
  }, [
205
179
  allCaseTypes,
206
180
  allCaseSeverities,
207
181
  allCaseStatuses,
208
182
  allProducts,
183
+ caseRecordTypes,
209
184
  dispatchToGlobalMetadataReducer,
210
- loggedInUsersAccount.data.secureSupport,
211
- isSolrSearchDown,
185
+ apolloClient,
212
186
  ]);
187
+ function saveFilterQueryInUserPreferences() {
188
+ if (isNoFilterApplied(filterState))
189
+ return;
190
+ const type = filterState.filterQueryInfo.type;
191
+ const recentSearch = {
192
+ filterState: type === CaseSearchQueryType.BASIC ? filterState.filterInfo : {},
193
+ sortState: filterState.sortInfo,
194
+ queryString: type === CaseSearchQueryType.BASIC
195
+ ? filterState.filterQueryInfo.queryString
196
+ : filterState.filterQueryInfo.parsedQuery,
197
+ type,
198
+ };
199
+ try {
200
+ updateUserPreferences(dispatchToGlobalMetadataReducer, loggedInUserRights.data.getSSOUsername(), [{ key: UserPreferencesKeys.mostRecentSearch, value: JSON.stringify(recentSearch) }], 'add');
201
+ }
202
+ catch (e) {
203
+ console.error('Could not save filter query in user preferences');
204
+ }
205
+ }
213
206
  // effect to update url query and call get case api whenever filter state changes
214
207
  useEffect(() => {
215
- var _a, _b, _c;
208
+ var _a, _b, _c, _d, _e, _f, _g;
216
209
  if (!isFirstMount.current) {
217
210
  const urlQuery = (isNoFilterApplied(filterState) || isOnlyDefaultFilterApplied(filterState)) &&
218
211
  !((_a = filterState.filterQueryInfo) === null || _a === void 0 ? void 0 : _a.queryString) &&
219
212
  !filterState.sortInfo.column
220
213
  ? ''
221
214
  : createURLQueryFromFilterState(filterState);
215
+ const paginationKey = `p${(_b = filterState.paginationInfo) === null || _b === void 0 ? void 0 : _b.currentPage}_s${(_c = filterState.paginationInfo) === null || _c === void 0 ? void 0 : _c.pageSize}`;
216
+ const fullQueryKey = `${urlQuery}_${paginationKey}`;
217
+ if (fullQueryKey === lastPushedQueryRef.current) {
218
+ return;
219
+ }
220
+ const prevQueryKey = lastPushedQueryRef.current;
221
+ const prevBaseQuery = prevQueryKey.substring(0, prevQueryKey.lastIndexOf('_p'));
222
+ const prevPageSize = (_d = prevQueryKey.match(/_s(\d+)$/)) === null || _d === void 0 ? void 0 : _d[1];
223
+ if (urlQuery !== prevBaseQuery || String((_e = filterState.paginationInfo) === null || _e === void 0 ? void 0 : _e.pageSize) !== prevPageSize) {
224
+ clearPageCursors();
225
+ }
222
226
  setCurrentQuery(CaseListDispatch, urlQuery);
227
+ lastPushedQueryRef.current = fullQueryKey;
223
228
  searchParams[FILTER_URL_QUERY_SEARCH_PARAM] = encodeURIComponent(urlQuery);
224
- searchParams[FILTER_URL_CURRENT_PAGE_SEARCH_PARAM] = (_b = filterState.paginationInfo) === null || _b === void 0 ? void 0 : _b.currentPage.toString();
225
- searchParams[FILTER_URL_PAGE_SIZE_SEARCH_PARAM] = (_c = filterState.paginationInfo) === null || _c === void 0 ? void 0 : _c.pageSize.toString();
229
+ searchParams[FILTER_URL_CURRENT_PAGE_SEARCH_PARAM] = (_f = filterState.paginationInfo) === null || _f === void 0 ? void 0 : _f.currentPage.toString();
230
+ searchParams[FILTER_URL_PAGE_SIZE_SEARCH_PARAM] = (_g = filterState.paginationInfo) === null || _g === void 0 ? void 0 : _g.pageSize.toString();
226
231
  searchParams[FILTER_URL_QUERY_TYPE] = filterState.filterQueryInfo.type;
227
232
  props.routeProps.history.push({
228
233
  search: getStringifiedParams(searchParams),
229
234
  });
230
235
  saveFilterQueryInUserPreferences();
231
- // so that we don't call get cases every time user switches between basic and advanced without any filters applied
232
- if (isSearchTypeChanged &&
233
- !filterState.filterQueryInfo.queryString &&
234
- isNoFilterApplied(filterState) &&
235
- filterValuesFromFacetResponse // if this is null, it means it is the first page load so get cases anyway
236
- )
237
- return;
238
236
  getCases(filterState);
239
237
  }
240
238
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -244,11 +242,13 @@ export function CaseList(props) {
244
242
  if (bookmarkedAccounts.isFetching ||
245
243
  managedAccounts.isFetching ||
246
244
  caseGroups.isFetching ||
247
- caseGroups.data === undefined)
245
+ caseGroups.data === undefined ||
246
+ caseRecordTypes.isFetching ||
247
+ isEmpty(caseRecordTypes.data))
248
248
  return;
249
249
  // when user manually changes url and hit enter, new result is fetched without refreshing the page
250
250
  if (!isFirstMount.current) {
251
- if (queryFromUrl !== currentQuery) {
251
+ if (queryFromUrl !== currentQuery && queryFromUrl !== lastPushedQueryRef.current) {
252
252
  const filterStateFromQueryUrl = createFilterStateFromUrlQuery(queryFromUrl, globalMetadataState, pageSizeFromUrl, currentPageFromUrl, searchType);
253
253
  updateFilterState(filterDispatch, filterStateFromQueryUrl);
254
254
  }
@@ -277,7 +277,12 @@ export function CaseList(props) {
277
277
  setRHCDValue(searchParams.rhcd);
278
278
  }
279
279
  // set filter state based on url or default saved search
280
- const { initFilterState, defaultSearchName } = useFilterStateInit.set(decodeURIComponent(queryFromUrl), pageSizeFromUrl, currentPageFromUrl, searchType);
280
+ // Remove when we get OFFSET field from SCT
281
+ // Always reset to page 1 on fresh load — cursor-based pagination
282
+ // has no stored cursors after refresh, so page > 1 would cause a mismatch
283
+ const { initFilterState, defaultSearchName } = useFilterStateInit.set(decodeURIComponent(queryFromUrl), pageSizeFromUrl,
284
+ // currentPageFromUrl,
285
+ 1, searchType);
281
286
  // to set default saved search name
282
287
  setDefaultSavedSearchName(defaultSearchName);
283
288
  // set default params when they are empty
@@ -290,14 +295,20 @@ export function CaseList(props) {
290
295
  updateFilterState(filterDispatch, initFilterState);
291
296
  }
292
297
  // eslint-disable-next-line react-hooks/exhaustive-deps
293
- }, [managedAccounts, bookmarkedAccounts, caseGroups, queryFromUrl, pageSizeFromUrl, currentPageFromUrl]);
294
- // effect to initially set the filter state to expanded and when we switch from advanced to basic mode
298
+ }, [
299
+ managedAccounts,
300
+ bookmarkedAccounts,
301
+ caseGroups,
302
+ caseRecordTypes,
303
+ queryFromUrl,
304
+ pageSizeFromUrl,
305
+ currentPageFromUrl,
306
+ ]);
307
+ // effect to initially set the filter state to expanded on load
295
308
  useEffect(() => {
296
- // currently there is no easy way to set the panel as expanded on initial load
297
- // also we only use the standalone panel and manually change the panel state on toggle btn click
298
- isCaseListFilterPanelExanded && isXLScreen && isBasicSearchMode && toggleFilterSection(true);
309
+ isCaseListFilterPanelExanded && isXLScreen && toggleFilterSection(true);
299
310
  // eslint-disable-next-line react-hooks/exhaustive-deps
300
- }, [isBasicSearchMode]);
311
+ }, []);
301
312
  const onConfirmTraditionalSupportAgreement = () => {
302
313
  updateCaseListTraditionalSupportAgreed(globalDispatchContext, true);
303
314
  };
@@ -323,12 +334,6 @@ export function CaseList(props) {
323
334
  return (React.createElement(React.Fragment, null,
324
335
  React.createElement(CSSUserModal, { onConfirmTraditionalSupportAgreement: onConfirmTraditionalSupportAgreement, display: !caseListTraditionalSupportAgreed }),
325
336
  React.createElement("article", { id: "rh-support-cases", className: "cases-main" },
326
- isSolrSearchDown && (React.createElement(Alert, { isInline: true, variant: AlertVariant.warning, component: "p", title: React.createElement(Trans, null,
327
- "Case search is working with limited functionality. Please check",
328
- ' ',
329
- React.createElement("a", { href: "https://status.redhat.com", target: "_blank", rel: "noreferrer", "data-tracking-id": "caselist-redirect-status-page" }, "status page"),
330
- ' ',
331
- "for details.") })),
332
337
  React.createElement("section", { className: "case-search-top" },
333
338
  !isEmpty(RHCDValue) && isRHCDAlertShown && React.createElement("div", { className: "push-bottom" }, displayRHCDAlert()),
334
339
  React.createElement("div", { className: "search-wrapper" },
@@ -336,17 +341,17 @@ export function CaseList(props) {
336
341
  React.createElement(NewCaseButton, { routeProps: props.routeProps })),
337
342
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading case search input') } },
338
343
  React.createElement(CaseSearch, { defaultSavedSearchName: defaultSavedSearchName }))),
339
- isBasicSearchMode && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading filter chips') } },
340
- React.createElement(CaseListFilterChips, { productVersionPivotValues: get(pivotValues, SolrPivotKeys.product_version, []), isSolrSearchDown: isSolrSearchDown })))),
344
+ React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading filter chips') } },
345
+ React.createElement(CaseListFilterChips, null))),
341
346
  React.createElement("section", { className: "case-search-bottom" },
342
- isBasicSearchMode && (React.createElement("aside", { className: `case-search-filters ${((_a = filterSectionRef.current) === null || _a === void 0 ? void 0 : _a.expanded) ? '' : 'collapsed'}` },
347
+ React.createElement("aside", { className: `case-search-filters ${((_a = filterSectionRef.current) === null || _a === void 0 ? void 0 : _a.expanded) ? '' : 'collapsed'}` },
343
348
  React.createElement("h2", { className: "filter-header pf-v6-u-display-flex" }, ((_b = filterSectionRef.current) === null || _b === void 0 ? void 0 : _b.expanded) ? (React.createElement(React.Fragment, null,
344
349
  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" }) },
345
350
  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")))),
346
351
  React.createElement("div", { className: "filter-wrapper" },
347
352
  React.createElement("pfe-collapse-panel", { id: "case-filters-panel", "pfe-animation": "false", ref: filterSectionRef },
348
353
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading filters') } },
349
- React.createElement(CaseListFilters, { filterValues: filterValuesFromFacetResponse, allCaseTypes: allCaseTypes, allCaseStatuses: allCaseStatuses, allCaseSeverities: allCaseSeverities, allProducts: allProducts, isSolrSearchDown: isSolrSearchDown })))))),
354
+ React.createElement(CaseListFilters, { allCaseTypes: allCaseTypes, allCaseStatuses: allCaseStatuses, allCaseSeverities: allCaseSeverities, allProducts: allProducts }))))),
350
355
  React.createElement("section", { className: "case-search-table pf-v6-u-display-flex pf-v6-u-flex-direction-column" },
351
- React.createElement(CaseListTable, { caseList: caseList, caseGroups: caseGroups.data || [], loggedInUserRights: loggedInUserRights.data, sortInfo: filterState.sortInfo, paginationInfo: filterState.paginationInfo, isCaseListPageLoading: isFetching, hasError: hasError, isSolrDown: isSolrSearchDown }))))));
356
+ React.createElement(CaseListTable, { caseList: caseList, caseGroups: caseGroups.data || [], loggedInUserRights: loggedInUserRights.data, sortInfo: filterState.sortInfo, paginationInfo: filterState.paginationInfo, isCaseListPageLoading: isFetching, hasError: hasError }))))));
352
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseListContext.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAmB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,oBAAoB,EAAE,cAWlC,CAAC;AAIF,QAAA,MAAM,oBAAoB,+BAA4C,CAAC;AAEvE,QAAA,MAAM,uBAAuB,qCAAmE,CAAC;AAEjG,QAAA,MAAM,uBAAuB,sBAAyC,CAAC;AACvE,QAAA,MAAM,0BAA0B,4BAA4C,CAAC;AAE7E,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE;;CAAA,qBAOrC;AAED,OAAO,EACH,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAC7B,CAAC"}
1
+ {"version":3,"file":"CaseListContext.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAmB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,oBAAoB,EAAE,cASlC,CAAC;AAIF,QAAA,MAAM,oBAAoB,+BAA4C,CAAC;AAEvE,QAAA,MAAM,uBAAuB,qCAAmE,CAAC;AAEjG,QAAA,MAAM,uBAAuB,sBAAyC,CAAC;AACvE,QAAA,MAAM,0BAA0B,4BAA4C,CAAC;AAE7E,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE;;CAAA,qBAOrC;AAED,OAAO,EACH,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAC7B,CAAC"}
@@ -8,8 +8,6 @@ export const initialCaseListState = {
8
8
  },
9
9
  isFetching: false,
10
10
  chipsNameSsoMap: {},
11
- filterValuesFromFacetResponse: null,
12
- pivotValues: null,
13
11
  currentQuery: undefined,
14
12
  };
15
13
  const initalDispatchContext = null;
@@ -26,8 +26,12 @@ export interface IFilterQueryInfo {
26
26
  type: CaseSearchQueryType;
27
27
  parsedQuery?: string;
28
28
  }
29
+ export interface IVersionFilterValue extends IFieldValue {
30
+ productId?: string;
31
+ }
29
32
  export interface IProductFilter extends IFieldValue {
30
- [SolrKeys.version]: IFieldValue[];
33
+ [SolrKeys.version]: IVersionFilterValue[];
34
+ productId?: string;
31
35
  }
32
36
  export interface IFilterInfo {
33
37
  [SolrPivotKeys.product_version]: IProductFilter[];
@@ -43,6 +47,7 @@ export interface IFilterInfo {
43
47
  [SolrKeys.caseSummary]: Array<string>;
44
48
  [SolrKeys.modifiedBy]: Array<string>;
45
49
  [SolrKeys.alternateId]: Array<string>;
50
+ [SolrKeys.isPrivate]: Array<IKeyValue<string>>;
46
51
  }
47
52
  export declare const emptyFilters: IFilterInfo;
48
53
  export interface ICaseListFilterState {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseListFilterReducer.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListFilterReducer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseListFilterReducer.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListFilterReducer.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export const initialFilterInfo = {
11
11
  [SolrKeys.createdBySsoUsername]: [],
12
12
  [SolrKeys.caseContactSSO]: [],
13
13
  [SolrKeys.type]: [],
14
+ [SolrKeys.isPrivate]: [],
14
15
  };
15
16
  var CaseListReducerEnum;
16
17
  (function (CaseListReducerEnum) {
@@ -38,6 +39,7 @@ export const emptyFilters = {
38
39
  [SolrKeys.caseSummary]: [],
39
40
  [SolrKeys.modifiedBy]: [],
40
41
  [SolrKeys.alternateId]: [],
42
+ [SolrKeys.isPrivate]: [],
41
43
  };
42
44
  const caseListFilterReducer = (pState, action) => {
43
45
  switch (action.type) {
@@ -52,7 +54,8 @@ const caseListFilterReducer = (pState, action) => {
52
54
  return Object.assign(Object.assign({}, pState), { filterInfo: newFilters, paginationInfo: newPaginationInfo });
53
55
  }
54
56
  case CaseListReducerEnum.updateSort: {
55
- return Object.assign(Object.assign({}, pState), { sortInfo: action.payload.sortInfo });
57
+ const newPaginationInfo = Object.assign(Object.assign({}, pState.paginationInfo), { currentPage: 1 });
58
+ return Object.assign(Object.assign({}, pState), { sortInfo: action.payload.sortInfo, paginationInfo: newPaginationInfo });
56
59
  }
57
60
  case CaseListReducerEnum.updatePagination: {
58
61
  return Object.assign(Object.assign({}, pState), { paginationInfo: action.payload.paginationInfo });
@@ -1,13 +1,9 @@
1
1
  import { IAction, ISolrResponse } from '@rh-support/types/shared';
2
- import { ISolrResponseToFacetFields, ISolrResponseToPivotFields } from '@rh-support/utils';
3
- import { ICaseListResponse, IFacetFields, IFacetPivot } from '../../models/caseList';
4
- import { IPivotValues, IProductVersionPivotMap } from './CaseList';
2
+ import { ICaseListResponse } from '../../models/caseList';
5
3
  export interface ICaseListState {
6
4
  caseList: ISolrResponse<ICaseListResponse>;
7
5
  isFetching: boolean;
8
6
  chipsNameSsoMap?: IChipsNameSsoMap;
9
- filterValuesFromFacetResponse: ISolrResponseToFacetFields<IFacetFields>;
10
- pivotValues: ISolrResponseToPivotFields<IFacetPivot, IProductVersionPivotMap>;
11
7
  currentQuery: string;
12
8
  }
13
9
  export interface IChipsNameSso {
@@ -29,8 +25,6 @@ declare const caseListReducer: (state: ICaseListState, action: IActionType) => I
29
25
  declare const setCaseList: (dispatch: CaseListDispatchType, caseList: ISolrResponse<ICaseListResponse>) => void;
30
26
  declare const setChipsNameSsoMap: (dispatch: CaseListDispatchType, chipsNameSsoMap: IChipsNameSsoMap) => void;
31
27
  declare const setIsFetching: (dispatch: CaseListDispatchType, isFetching: boolean) => void;
32
- declare const setFilterValuesFromFacetResponse: (dispatch: CaseListDispatchType, filterValuesFromFacetResponse: ISolrResponseToFacetFields<IFacetFields>) => void;
33
- declare const setPivotValues: (dispatch: CaseListDispatchType, pivotValues: IPivotValues) => void;
34
28
  declare const setCurrentQuery: (dispatch: CaseListDispatchType, currentQuery: string) => void;
35
- export { caseListReducer, setCaseList, setChipsNameSsoMap, setIsFetching, setFilterValuesFromFacetResponse, setPivotValues, setCurrentQuery, };
29
+ export { caseListReducer, setCaseList, setChipsNameSsoMap, setIsFetching, setCurrentQuery };
36
30
  //# sourceMappingURL=CaseListReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaseListReducer.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListReducer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,6BAA6B,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;IACxE,WAAW,EAAE,0BAA0B,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC9E,YAAY,EAAE,MAAM,CAAC;CACxB;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,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AAED,aAAK,mBAAmB;IACpB,WAAW,cAAc;CAC5B;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEhE,QAAA,MAAM,eAAe,GAAI,OAAO,cAAc,EAAE,QAAQ,WAAW,KAAG,cAMrE,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,UAAU,oBAAoB,EAAE,UAAU,aAAa,CAAC,iBAAiB,CAAC,SAK9F,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAI,UAAU,oBAAoB,EAAE,iBAAiB,gBAAgB,SAK5F,CAAC;AACF,QAAA,MAAM,aAAa,GAAI,UAAU,oBAAoB,EAAE,YAAY,OAAO,SAKzE,CAAC;AACF,QAAA,MAAM,gCAAgC,GAClC,UAAU,oBAAoB,EAC9B,+BAA+B,0BAA0B,CAAC,YAAY,CAAC,SAM1E,CAAC;AACF,QAAA,MAAM,cAAc,GAAI,UAAU,oBAAoB,EAAE,aAAa,YAAY,SAKhF,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,UAAU,oBAAoB,EAAE,cAAc,MAAM,SAK5E,CAAC;AAEF,OAAO,EACH,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,gCAAgC,EAChC,cAAc,EACd,eAAe,GAClB,CAAC"}
1
+ {"version":3,"file":"CaseListReducer.d.ts","sourceRoot":"","sources":["../../../../src/components/case-list/CaseListReducer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACxB;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,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AAED,aAAK,mBAAmB;IACpB,WAAW,cAAc;CAC5B;AAED,KAAK,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAEhE,QAAA,MAAM,eAAe,GAAI,OAAO,cAAc,EAAE,QAAQ,WAAW,KAAG,cAMrE,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,UAAU,oBAAoB,EAAE,UAAU,aAAa,CAAC,iBAAiB,CAAC,SAK9F,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAI,UAAU,oBAAoB,EAAE,iBAAiB,gBAAgB,SAK5F,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,UAAU,oBAAoB,EAAE,YAAY,OAAO,SAKzE,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,UAAU,oBAAoB,EAAE,cAAc,MAAM,SAK5E,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
@@ -27,22 +27,10 @@ const setIsFetching = (dispatch, isFetching) => {
27
27
  payload: { isFetching },
28
28
  });
29
29
  };
30
- const setFilterValuesFromFacetResponse = (dispatch, filterValuesFromFacetResponse) => {
31
- dispatch({
32
- type: CaseListReducerEnum.updateState,
33
- payload: { filterValuesFromFacetResponse },
34
- });
35
- };
36
- const setPivotValues = (dispatch, pivotValues) => {
37
- dispatch({
38
- type: CaseListReducerEnum.updateState,
39
- payload: { pivotValues },
40
- });
41
- };
42
30
  const setCurrentQuery = (dispatch, currentQuery) => {
43
31
  dispatch({
44
32
  type: CaseListReducerEnum.updateState,
45
33
  payload: { currentQuery },
46
34
  });
47
35
  };
48
- export { caseListReducer, setCaseList, setChipsNameSsoMap, setIsFetching, setFilterValuesFromFacetResponse, setPivotValues, setCurrentQuery, };
36
+ export { caseListReducer, setCaseList, setChipsNameSsoMap, setIsFetching, setCurrentQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/AccountsFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAQ1F,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,UAAU,MAAM;IACZ,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,gCAAgC,GAAI,SAAS,QAAQ,WAMjE,CAAC;AACF,eAAO,MAAM,+BAA+B,GAAI,SAAS,OAAO,CAAC,sBAAsB,CAAC,WAEvF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,cAAS,EAAE,eAAU,QACgC,CAAC;AAE/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBA+F3C"}
1
+ {"version":3,"file":"AccountsFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-list-filters/AccountsFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAO1F,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,UAAU,MAAM;IACZ,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,eAAO,MAAM,gCAAgC,GAAI,SAAS,QAAQ,WAMjE,CAAC;AACF,eAAO,MAAM,+BAA+B,GAAI,SAAS,OAAO,CAAC,sBAAsB,CAAC,WAEvF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,cAAS,EAAE,eAAU,QACgC,CAAC;AAE/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAqG3C"}