@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.
- package/lib/esm/components/case-list/CaseList.d.ts +0 -7
- package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +116 -111
- package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListContext.js +0 -2
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +6 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +4 -1
- package/lib/esm/components/case-list/CaseListReducer.d.ts +2 -8
- package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListReducer.js +1 -13
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +18 -11
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +28 -3
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +1 -7
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +7 -15
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -5
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.js +14 -14
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +1 -3
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +2 -2
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +5 -4
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +15 -54
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +18 -44
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +0 -3
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +14 -44
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +1 -3
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +61 -32
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +0 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +9 -8
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +0 -5
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +38 -68
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +5 -15
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.js +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/TableActionsDropdown.js +2 -3
- package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearch.js +2 -2
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +1 -0
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +6 -6
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +4 -1
- package/lib/esm/css/caseList.css +0 -2
- package/lib/esm/enums/case.d.ts +2 -1
- package/lib/esm/enums/case.d.ts.map +1 -1
- package/lib/esm/enums/case.js +14 -1
- package/lib/esm/enums/caseSearch.d.ts +2 -0
- package/lib/esm/enums/caseSearch.d.ts.map +1 -1
- package/lib/esm/enums/caseSearch.js +1 -0
- package/lib/esm/enums/filters.d.ts +3 -1
- package/lib/esm/enums/filters.d.ts.map +1 -1
- package/lib/esm/enums/filters.js +2 -0
- package/lib/esm/hooks/useExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/hooks/useExportCaseListCSV.js +1 -9
- package/lib/esm/models/caseList.d.ts +0 -2
- package/lib/esm/models/caseList.d.ts.map +1 -1
- package/lib/esm/test-utils/mockData.js +1 -1
- package/lib/esm/utils/caseListGraphQLUtils.d.ts +16 -0
- package/lib/esm/utils/caseListGraphQLUtils.d.ts.map +1 -0
- package/lib/esm/utils/caseListGraphQLUtils.js +193 -0
- package/lib/esm/utils/caseListMapper.d.ts +6 -0
- package/lib/esm/utils/caseListMapper.d.ts.map +1 -0
- package/lib/esm/utils/caseListMapper.js +36 -0
- package/lib/esm/utils/caseListVariablesBuilder.d.ts +13 -0
- package/lib/esm/utils/caseListVariablesBuilder.d.ts.map +1 -0
- package/lib/esm/utils/caseListVariablesBuilder.js +160 -0
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +51 -10
- package/lib/esm/utils/constants.d.ts +2 -0
- package/lib/esm/utils/constants.d.ts.map +1 -1
- package/lib/esm/utils/constants.js +14 -0
- package/lib/esm/utils/mockSolrResponse.js +1 -1
- package/lib/esm/utils/statusUtils.d.ts +3 -0
- package/lib/esm/utils/statusUtils.d.ts.map +1 -0
- package/lib/esm/utils/statusUtils.js +22 -0
- 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;
|
|
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,
|
|
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,
|
|
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 {
|
|
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
|
|
38
|
-
import {
|
|
35
|
+
import { CaseListFilterDispatchContext, CaseListFilterStateContext } from './CaseListFilterContext';
|
|
36
|
+
import { isNoFilterApplied, isOnlyDefaultFilterApplied } from './CaseListFilterHelpers';
|
|
39
37
|
import { updateFilterState } from './CaseListFilterReducer';
|
|
40
|
-
import { setCaseList, setCurrentQuery,
|
|
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,
|
|
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
|
-
|
|
72
|
+
var _a;
|
|
78
73
|
try {
|
|
79
|
-
|
|
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
|
-
|
|
86
|
-
let controller = new AbortController();
|
|
77
|
+
const controller = new AbortController();
|
|
87
78
|
abortControllerRef.current = controller;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
98
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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,
|
|
167
|
+
fetchCaseSeverities(dispatchToGlobalMetadataReducer, apolloClient);
|
|
184
168
|
}
|
|
185
169
|
if (haventLoadedMetadata(allCaseStatuses)) {
|
|
186
|
-
fetchAllStatuses(dispatchToGlobalMetadataReducer,
|
|
170
|
+
fetchAllStatuses(dispatchToGlobalMetadataReducer, apolloClient);
|
|
187
171
|
}
|
|
188
172
|
if (haventLoadedProductsMetadata(allProducts)) {
|
|
189
|
-
fetchProducts(dispatchToGlobalMetadataReducer);
|
|
173
|
+
fetchProducts(dispatchToGlobalMetadataReducer, apolloClient);
|
|
190
174
|
}
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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] = (
|
|
225
|
-
searchParams[FILTER_URL_PAGE_SIZE_SEARCH_PARAM] = (
|
|
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
|
-
|
|
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
|
-
}, [
|
|
294
|
-
|
|
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
|
-
|
|
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
|
-
}, [
|
|
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
|
-
|
|
340
|
-
React.createElement(CaseListFilterChips,
|
|
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
|
-
|
|
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, {
|
|
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
|
|
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,
|
|
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"}
|
|
@@ -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]:
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,WAAW,
|
|
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
|
-
|
|
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 {
|
|
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,
|
|
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;
|
|
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,
|
|
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;
|
|
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"}
|