@rh-support/cases 0.2.87 → 0.2.90

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;AA4BlC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAKH,0BAA0B,EAI7B,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAM1C,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,oBAAY,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,eA6crC"}
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;AAO3B,OAAO,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAM1C,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,oBAAY,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,eAsfrC"}
@@ -9,7 +9,7 @@ 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 { Alert, AlertVariant, Button } from '@patternfly/react-core';
12
+ import { Alert, AlertActionCloseButton, AlertVariant, Button } from '@patternfly/react-core';
13
13
  import AngleDoubleDownIcon from '@patternfly/react-icons/dist/js/icons/angle-double-down-icon';
14
14
  import AngleDoubleLeftIcon from '@patternfly/react-icons/dist/js/icons/angle-double-left-icon';
15
15
  import AngleDoubleRightIcon from '@patternfly/react-icons/dist/js/icons/angle-double-right-icon';
@@ -17,6 +17,7 @@ import AngleDoubleUpIcon from '@patternfly/react-icons/dist/js/icons/angle-doubl
17
17
  import { ErrorBoundary, ToastNotification, useBreakpoint, useDocumentTitle, useForceUpdate, usePrevious, } from '@rh-support/components';
18
18
  import { fetchAllStatuses, fetchCaseGroupsForSSO, fetchCaseSeverities, fetchCaseTypes, fetchProducts, GlobalMetadataDispatchContext, GlobalMetadataStateContext, setUserPreferences, updateUserPreferences, UserPreferencesKeys, } from '@rh-support/react-context';
19
19
  import { getStringifiedParams, getUrlParsedParams, haventLoadedMetadata, haventLoadedProductsMetadata, pendoTrackEvent, solrResponseToFacetFields, solrResponseToPivotFields, } from '@rh-support/utils';
20
+ import { isEmpty } from 'lodash';
20
21
  import get from 'lodash/get';
21
22
  import mapValues from 'lodash/mapValues';
22
23
  import some from 'lodash/some';
@@ -52,6 +53,7 @@ export function CaseList(props) {
52
53
  const { globalMetadataState, globalMetadataState: { caseGroups, loggedInUserJwtToken, loggedInUserRights, loggedInUsersAccount, userPreferences, managedAccounts, bookmarkedAccounts, bookmarkedGroupAccounts, allCaseTypes, allCaseSeverities, allCaseStatuses, allProducts, }, } = useContext(GlobalMetadataStateContext);
53
54
  const location = useLocation();
54
55
  const searchParams = getUrlParsedParams(location.search);
56
+ const queryParams = getUrlParsedParams(useLocation().search);
55
57
  const queryFromUrl = searchParams[FILTER_URL_QUERY_SEARCH_PARAM];
56
58
  const pageSizeFromUrl = parseInt(searchParams[FILTER_URL_PAGE_SIZE_SEARCH_PARAM]);
57
59
  const currentPageFromUrl = parseInt(searchParams[FILTER_URL_CURRENT_PAGE_SEARCH_PARAM]);
@@ -72,6 +74,8 @@ export function CaseList(props) {
72
74
  const [hasError, setHasError] = useState(null);
73
75
  const [isSolrSearchDown, setSolrSearchDown] = useState(false);
74
76
  const [defaultSavedSearchName, setDefaultSavedSearchName] = useState('');
77
+ const [RHCDValue, setRHCDValue] = useState('');
78
+ const [isRHCDAlertShown, setIsRHCDAlertShown] = useState(true);
75
79
  function getCases(currentFilterState) {
76
80
  return __awaiter(this, void 0, void 0, function* () {
77
81
  let showError;
@@ -270,6 +274,10 @@ export function CaseList(props) {
270
274
  return;
271
275
  }
272
276
  /*** user comes to this point on first time app load landing on case list ***/
277
+ if (queryParams.rhcd) {
278
+ // this is to check if rhcd is passed on first load
279
+ setRHCDValue(queryParams.rhcd);
280
+ }
273
281
  // move saved user data in localstorage to user preferences db - needs to be removed after a while
274
282
  useMoveCache.save();
275
283
  // set filter state based on url or default saved search
@@ -301,6 +309,19 @@ export function CaseList(props) {
301
309
  isCaseListFilterPanelExanded && isXLScreen && isBasicSearchMode && toggleFilterSection(true);
302
310
  // eslint-disable-next-line react-hooks/exhaustive-deps
303
311
  }, [isBasicSearchMode]);
312
+ const displayRHCDAlert = () => {
313
+ const openClosedCopy = `Only showing cases that were ${RHCDValue} during the selected time range specified in
314
+ customer dashboard. Case counts may vary slightly based on data retention and availability
315
+ policies.`;
316
+ if (RHCDValue !== 'active') {
317
+ return (React.createElement(Alert, { variant: AlertVariant.info, title: 'Notice', isInline: true, actionClose: React.createElement(AlertActionCloseButton, { onClose: () => setIsRHCDAlertShown(false) }) },
318
+ React.createElement(Trans, null, openClosedCopy)));
319
+ }
320
+ else if (RHCDValue === 'active') {
321
+ return (React.createElement(Alert, { variant: AlertVariant.info, title: 'Notice', isInline: true, actionClose: React.createElement(AlertActionCloseButton, { onClose: () => setIsRHCDAlertShown(false) }) },
322
+ React.createElement(Trans, null, "All cases that may have been in an open state during the selected time range specified in customer dashboard. Case counts may vary slightly based on data retention and availability policies.")));
323
+ }
324
+ };
304
325
  useEffect(() => {
305
326
  if (isFirstMount.current)
306
327
  return;
@@ -316,6 +337,7 @@ export function CaseList(props) {
316
337
  ' ',
317
338
  "for details.") }))),
318
339
  React.createElement("section", { className: "case-search-top" },
340
+ !isEmpty(RHCDValue) && isRHCDAlertShown && React.createElement("div", { className: "push-bottom" }, displayRHCDAlert()),
319
341
  React.createElement("div", { className: "search-wrapper" },
320
342
  React.createElement("div", { className: "open-case" },
321
343
  React.createElement(NewCaseButton, { routeProps: props.routeProps })),
@@ -1 +1 @@
1
- {"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAWhE,UAAU,MAAM;IACZ,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eAyNvD"}
1
+ {"version":3,"file":"BookmarkedSearchesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/BookmarkedSearchesSelector.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAWhE,UAAU,MAAM;IACZ,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eA+NvD"}
@@ -113,6 +113,10 @@ export function BookmarkedSearchesSelector(props) {
113
113
  React.createElement(DropdownItem, { key: "most-recent-search", component: "button", onClick: onBookmarkSelectorChange('', mostRecentSearch, true) },
114
114
  React.createElement(Trans, null, "Restore latest")),
115
115
  ];
116
+ const clearSearchName = () => {
117
+ setSelectedSearch('');
118
+ return selectedSearch;
119
+ };
116
120
  const renderListItems = [
117
121
  ...renderSavedSearchItems,
118
122
  ...(renderSavedSearchItems.length !== 0 ? [React.createElement(DropdownSeparator, { key: "separator" })] : []),
@@ -129,5 +133,5 @@ export function BookmarkedSearchesSelector(props) {
129
133
  ], splitButtonVariant: "action", onToggle: onMenuToggle, "aria-label": t(`${isMenuOpen ? 'Close' : 'Open'} bookmarked searches selector'`), isDisabled: !bookmarkedSearches }), disabled: hydraUserPreferences.isFetching || hydraUserPreferences.isError }),
130
134
  flatMap(filterInfo).length === 0 && (React.createElement(Button, { variant: "link", onClick: onBookmarkSelectorChange('', mostRecentSearch, false), "data-tracking-id": "case-most-recent-search-button", className: "most-recent-search-button" },
131
135
  React.createElement(Trans, null, "Restore most recent filters")))),
132
- React.createElement(ConfirmationServiceProvider, null, isSaveSearchModalOpen && (React.createElement(SaveCaseSearchModal, { currentCaseSearchString: props.currentCaseSearchString, currentSearchType: props.currentSearchType, isModalOpen: isSaveSearchModalOpen, modalToggle: modalToggle, isAdding: isAddingBookmarkSearch, selectedSearchNameToEdit: selectedSearchNameToEdit })))));
136
+ React.createElement(ConfirmationServiceProvider, null, isSaveSearchModalOpen && (React.createElement(SaveCaseSearchModal, { currentCaseSearchString: props.currentCaseSearchString, currentSearchType: props.currentSearchType, isModalOpen: isSaveSearchModalOpen, modalToggle: modalToggle, isAdding: isAddingBookmarkSearch, selectedSearchNameToEdit: selectedSearchNameToEdit, clearSearchName: clearSearchName })))));
133
137
  }
@@ -5,7 +5,8 @@ interface IProps {
5
5
  selectedSearchNameToEdit: string;
6
6
  currentCaseSearchString: string;
7
7
  currentSearchType: string;
8
+ clearSearchName: () => void;
8
9
  }
9
- export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, }: IProps): JSX.Element;
10
+ export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, clearSearchName, }: IProps): JSX.Element;
10
11
  export {};
11
12
  //# sourceMappingURL=SaveCaseSearchModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA4BA,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,GACpB,EAAE,MAAM,eAwQR"}
1
+ {"version":3,"file":"SaveCaseSearchModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/SaveCaseSearchModal.tsx"],"names":[],"mappings":"AA4BA,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAgB,mBAAmB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,QAAQ,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,GAClB,EAAE,MAAM,eAyQR"}
@@ -19,7 +19,7 @@ import { Trans, useTranslation } from 'react-i18next';
19
19
  import { CaseSearchQueryType } from '../../../enums/caseSearch';
20
20
  import { createUserFriendlyQueryFromFilterState } from '../../../utils/caseSearchUtils';
21
21
  import { CaseListFilterStateContext } from '../CaseListFilterContext';
22
- export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, }) {
22
+ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, clearSearchName, }) {
23
23
  const { t } = useTranslation();
24
24
  const [localSavedSearchName, setLocalSavedSearchName] = useState('');
25
25
  const [localDefaultChecked, setLocalDefaultChecked] = useState(false);
@@ -110,6 +110,7 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
110
110
  delete previousBookmarkedSearchesObj[localSavedSearchName];
111
111
  setLocalSavedSearchName('');
112
112
  yield preferencesApiCall(previousBookmarkedSearchesObj);
113
+ clearSearchName();
113
114
  ToastNotification.addSuccessMessage(t('Saved search has been removed successfully'));
114
115
  }
115
116
  catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/cases",
3
- "version": "0.2.87",
3
+ "version": "0.2.90",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -26,7 +26,7 @@
26
26
  "lib/**/*"
27
27
  ],
28
28
  "peerDependencies": {
29
- "@cee-eng/hydrajs": "4.10.2",
29
+ "@cee-eng/hydrajs": "4.12.6",
30
30
  "@patternfly/patternfly": "4.185.1",
31
31
  "@patternfly/pfe-collapse": "1.12.3",
32
32
  "@patternfly/react-core": "4.202.16",
@@ -47,17 +47,17 @@
47
47
  "solr-query-builder": "1.0.1"
48
48
  },
49
49
  "dependencies": {
50
- "@cee-eng/hydrajs": "4.10.2",
50
+ "@cee-eng/hydrajs": "4.12.6",
51
51
  "@patternfly/patternfly": "4.185.1",
52
52
  "@patternfly/pfe-collapse": "1.12.3",
53
53
  "@patternfly/react-core": "4.202.16",
54
54
  "@patternfly/react-table": "4.71.16",
55
- "@rh-support/api": "0.3.21",
56
- "@rh-support/components": "1.1.69",
57
- "@rh-support/react-context": "0.2.74",
55
+ "@rh-support/api": "0.3.24",
56
+ "@rh-support/components": "1.1.72",
57
+ "@rh-support/react-context": "0.2.77",
58
58
  "@rh-support/types": "0.2.0",
59
- "@rh-support/user-permissions": "0.2.58",
60
- "@rh-support/utils": "0.2.43",
59
+ "@rh-support/user-permissions": "0.2.61",
60
+ "@rh-support/utils": "0.2.46",
61
61
  "i18next": "^19.0.1",
62
62
  "localforage": "^1.7.3",
63
63
  "lodash": "^4.17.15",
@@ -101,5 +101,5 @@
101
101
  "not ie <= 11",
102
102
  "not op_mini all"
103
103
  ],
104
- "gitHead": "1b7928a0e111e756b4fe781c440d3c859299bebf"
104
+ "gitHead": "1d8c25adcf1bc30eb2560bf210f96994b63237e3"
105
105
  }