@rh-support/cases 0.2.42 → 0.2.56

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/README.md CHANGED
@@ -16,3 +16,5 @@ export default function CasesApp(routeProps: RouteComponentProps<ICasesRouteURLP
16
16
  return (<Cases routeProps={routeProps} basePath="/cases" />);
17
17
  }
18
18
  ```
19
+
20
+ .
@@ -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,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAM1C,OAAO,EAAgB,WAAW,EAA2B,MAAM,uBAAuB,CAAC;AA2B3F,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,eA4brC"}
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,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAM1C,OAAO,EAAgB,WAAW,EAA2B,MAAM,uBAAuB,CAAC;AA2B3F,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,eA+brC"}
@@ -70,6 +70,7 @@ export function CaseList(props) {
70
70
  let isSearchTypeChanged = filterState.filterQueryInfo.type !== prevSearchType;
71
71
  const [hasError, setHasError] = useState(null);
72
72
  const [isSolrSearchDown, setSolrSearchDown] = useState(false);
73
+ const [defaultSavedSearchName, setDefaultSavedSearchName] = useState('');
73
74
  function getCases(currentFilterState) {
74
75
  return __awaiter(this, void 0, void 0, function* () {
75
76
  let showError;
@@ -258,7 +259,8 @@ export function CaseList(props) {
258
259
  // move saved user data in localstorage to user preferences db - needs to be removed after a while
259
260
  useMoveCache.save();
260
261
  // set filter state based on url or default saved search
261
- const initFilterState = useFilterStateInit.set(queryFromUrl, pageSizeFromUrl, currentPageFromUrl, searchType);
262
+ const { initFilterState, defaultSearchName } = useFilterStateInit.set(queryFromUrl, pageSizeFromUrl, currentPageFromUrl, searchType);
263
+ setDefaultSavedSearchName(defaultSearchName);
262
264
  // set default params when they are empty
263
265
  if (!queryFromUrl) {
264
266
  searchParams[FILTER_URL_QUERY_SEARCH_PARAM] = ' orderBy lastModifiedDate desc';
@@ -304,7 +306,7 @@ export function CaseList(props) {
304
306
  React.createElement("div", { className: "open-case" },
305
307
  React.createElement(NewCaseButton, { routeProps: props.routeProps })),
306
308
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading case search input') } },
307
- React.createElement(CaseSearch, null))),
309
+ React.createElement(CaseSearch, { defaultSavedSearchName: defaultSavedSearchName }))),
308
310
  isBasicSearchMode && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading filter chips') } },
309
311
  React.createElement(CaseListFilterChips, { productVersionPivotValues: get(pivotValues, SolrPivotKeys.product_version, []), isSolrSearchDown: isSolrSearchDown })))),
310
312
  React.createElement("section", { className: "case-search-bottom" },
@@ -4,6 +4,7 @@ interface IProps {
4
4
  onSearchTypeChange?: (newType: CaseSearchQueryType) => void;
5
5
  onSearchClear?: () => void;
6
6
  onSearchSubmit: (parsedQuery: string) => void;
7
+ onAdvancedSearchValidation: (validation: boolean) => void;
7
8
  }
8
9
  export declare function AdvanceSearch(props: IProps): JSX.Element;
9
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AdvanceSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/AdvanceSearch.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,eAsV1C"}
1
+ {"version":3,"file":"AdvanceSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/AdvanceSearch.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,0BAA0B,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,eAwV1C"}
@@ -23,6 +23,7 @@ export function AdvanceSearch(props) {
23
23
  try {
24
24
  parse(queryString);
25
25
  setIsParsingSuccessful(true);
26
+ props.onAdvancedSearchValidation(true);
26
27
  try {
27
28
  // to trigger the autocomplete on a valid selection
28
29
  parse(queryString + ' ');
@@ -34,6 +35,7 @@ export function AdvanceSearch(props) {
34
35
  }
35
36
  catch (e) {
36
37
  setIsParsingSuccessful(false);
38
+ props.onAdvancedSearchValidation(false);
37
39
  parserErrorRef.current = e;
38
40
  autoCompleteSetup(e.expected, queryString.substring(e.location.start.offset, queryString.length));
39
41
  }
@@ -2,6 +2,8 @@ import { CaseSearchQueryType } from '../../../enums/caseSearch';
2
2
  interface IProps {
3
3
  currentCaseSearchString: string;
4
4
  currentSearchType: CaseSearchQueryType;
5
+ isAdvancedSearchValid: boolean;
6
+ defaultSavedSearchName: string;
5
7
  }
6
8
  export declare function BookmarkedSearchesSelector(props: IProps): JSX.Element;
7
9
  export {};
@@ -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;CAC1C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eA6MvD"}
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"}
@@ -10,6 +10,7 @@ import isEmpty from 'lodash/isEmpty';
10
10
  import isEqual from 'lodash/isEqual';
11
11
  import React, { useContext, useEffect, useRef, useState } from 'react';
12
12
  import { Trans, useTranslation } from 'react-i18next';
13
+ import { CaseSearchQueryType } from '../../../enums/caseSearch';
13
14
  import { CaseListFilterDispatchContext, CaseListFilterStateContext, initialCaseFilterState, } from '../CaseListFilterContext';
14
15
  import { isNoFilterApplied, isOnlyDefaultFilterApplied } from '../CaseListFilterHelpers';
15
16
  import { clearFilters, updateFilterQuery, updateFilterState, updateSort } from '../CaseListFilterReducer';
@@ -68,7 +69,7 @@ export function BookmarkedSearchesSelector(props) {
68
69
  setSelectedSearch(selectedItem);
69
70
  const { filterState: filterStateSaved, queryString, type, sortState } = searchQuery;
70
71
  // update filters with new value
71
- queryString && updateFilterQuery(dispatch, { queryString, type });
72
+ updateFilterQuery(dispatch, { queryString: queryString || '', type: type || CaseSearchQueryType.BASIC });
72
73
  updateFilterState(dispatch, { filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), filterStateSaved) });
73
74
  sortState && updateSort(dispatch, sortState);
74
75
  doToggle && toggleMenu(!isMenuOpen);
@@ -90,6 +91,9 @@ export function BookmarkedSearchesSelector(props) {
90
91
  setIsAddingBookmarkSearch(true);
91
92
  modalToggle();
92
93
  };
94
+ useEffect(() => {
95
+ !isEmpty(props.defaultSavedSearchName) && setSelectedSearch(props.defaultSavedSearchName);
96
+ }, [props.defaultSavedSearchName]);
93
97
  const renderSavedSearchItems = Object.keys(bookmarkedSearches)
94
98
  .sort()
95
99
  .map((bookmarkedSearch) => {
@@ -114,14 +118,16 @@ export function BookmarkedSearchesSelector(props) {
114
118
  ...(renderSavedSearchItems.length !== 0 ? [React.createElement(DropdownSeparator, { key: "separator" })] : []),
115
119
  ...(!isEmpty(mostRecentSearch) ? renderMostRecentSearch : []),
116
120
  ];
121
+ const advancedSearchPhraseIsNotValid = filterState.filterQueryInfo.type === CaseSearchQueryType.ADVANCED && !props.isAdvancedSearchValid;
122
+ const noFilterOrSearchQueryApplied = !props.currentCaseSearchString && (isOnlyDefaultFilterApplied(filterState) || isNoFilterApplied(filterState));
117
123
  return (React.createElement(React.Fragment, null,
118
124
  React.createElement("div", { className: "bookmark-search-dropdown-wrapper" },
119
125
  React.createElement(Dropdown, { className: "bookmark-search-dropdown", isOpen: isMenuOpen, dropdownItems: renderListItems, toggle: React.createElement(DropdownToggle, { splitButtonItems: [
120
126
  React.createElement(DropdownToggleAction, { onClick: onSaveForLaterClick, key: "action", isDisabled: !!selectedSearch ||
121
- (!props.currentCaseSearchString &&
122
- (isOnlyDefaultFilterApplied(filterState) || isNoFilterApplied(filterState))), "data-tracking-id": "case-list-bookmark-search-trigger" }, selectedSearch ? selectedSearch : React.createElement(Trans, null, "Save for later")),
127
+ noFilterOrSearchQueryApplied ||
128
+ advancedSearchPhraseIsNotValid, "data-tracking-id": "case-list-bookmark-search-trigger" }, selectedSearch ? selectedSearch : React.createElement(Trans, null, "Save for later")),
123
129
  ], splitButtonVariant: "action", onToggle: onMenuToggle, "aria-label": t(`${isMenuOpen ? 'Close' : 'Open'} bookmarked searches selector'`), isDisabled: !bookmarkedSearches }), disabled: hydraUserPreferences.isFetching || hydraUserPreferences.isError }),
124
130
  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" },
125
131
  React.createElement(Trans, null, "Restore most recent filters")))),
126
- React.createElement(ConfirmationServiceProvider, null, isSaveSearchModalOpen && (React.createElement(SaveCaseSearchModal, { isModalOpen: isSaveSearchModalOpen, modalToggle: modalToggle, isAdding: isAddingBookmarkSearch, selectedSearchNameToEdit: selectedSearchNameToEdit })))));
132
+ React.createElement(ConfirmationServiceProvider, null, isSaveSearchModalOpen && (React.createElement(SaveCaseSearchModal, { currentCaseSearchString: props.currentCaseSearchString, currentSearchType: props.currentSearchType, isModalOpen: isSaveSearchModalOpen, modalToggle: modalToggle, isAdding: isAddingBookmarkSearch, selectedSearchNameToEdit: selectedSearchNameToEdit })))));
127
133
  }
@@ -1,2 +1,6 @@
1
- export declare function CaseSearch(): JSX.Element;
1
+ interface IProps {
2
+ defaultSavedSearchName: string;
3
+ }
4
+ export declare function CaseSearch(props: IProps): JSX.Element;
5
+ export {};
2
6
  //# sourceMappingURL=CaseSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAeA,wBAAgB,UAAU,gBA8IzB"}
1
+ {"version":3,"file":"CaseSearch.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/CaseSearch.tsx"],"names":[],"mappings":"AAeA,UAAU,MAAM;IACZ,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,eAqJvC"}
@@ -11,7 +11,7 @@ import { CaseListFilterDispatchContext, CaseListFilterStateContext } from '../Ca
11
11
  import { initialFilterInfo, updateFilterQuery, updateFilterState } from '../CaseListFilterReducer';
12
12
  import { AdvanceSearch } from './AdvanceSearch';
13
13
  import { BookmarkedSearchesSelector } from './BookmarkedSearchesSelector';
14
- export function CaseSearch() {
14
+ export function CaseSearch(props) {
15
15
  const { t } = useTranslation();
16
16
  const ability = useContext(AbilityContext);
17
17
  const canUseAdvancedSearch = ability.can(resourceActions.PATCH, resources.CASE_LIST, CaseListFields.ADVANCED_SEARCH);
@@ -19,6 +19,7 @@ export function CaseSearch() {
19
19
  const { filterQueryInfo } = filterState;
20
20
  const [searchVal, setSearchVal] = useState(filterQueryInfo.queryString);
21
21
  const [searchType, setSearchType] = useState(CaseSearchQueryType.BASIC);
22
+ const [isAdvancedSearchValid, setIsAdvancedSearchValid] = useState(true);
22
23
  const dispatch = useContext(CaseListFilterDispatchContext);
23
24
  const { isFetching } = useCaseListStateContext();
24
25
  useEffect(() => {
@@ -90,10 +91,10 @@ export function CaseSearch() {
90
91
  };
91
92
  const renderAdvanceSearch = () => {
92
93
  return canUseAdvancedSearch ? (React.createElement(React.Fragment, null,
93
- React.createElement(AdvanceSearch, { onSearchValChange: onSearchValChange, onSearchClear: clearSearchVal, onSearchSubmit: onCaseSearch, onSearchTypeChange: onSearchTypeChange }))) : (React.createElement(React.Fragment, null));
94
+ React.createElement(AdvanceSearch, { onSearchValChange: onSearchValChange, onSearchClear: clearSearchVal, onSearchSubmit: onCaseSearch, onSearchTypeChange: onSearchTypeChange, onAdvancedSearchValidation: (isValid) => setIsAdvancedSearchValid(isValid) }))) : (React.createElement(React.Fragment, null));
94
95
  };
95
96
  return (React.createElement(React.Fragment, null,
96
97
  React.createElement("form", { onSubmit: handleSubmit, onKeyDown: handleSearchInputKeyDown },
97
98
  React.createElement("div", { className: "form-group case-search-form-group" }, CaseSearchQueryType.BASIC === searchType ? renderBasicSearch() : renderAdvanceSearch())),
98
- React.createElement(BookmarkedSearchesSelector, { currentCaseSearchString: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), currentSearchType: searchType })));
99
+ React.createElement(BookmarkedSearchesSelector, { currentCaseSearchString: searchVal === null || searchVal === void 0 ? void 0 : searchVal.trim(), currentSearchType: searchType, isAdvancedSearchValid: isAdvancedSearchValid, defaultSavedSearchName: props.defaultSavedSearchName })));
99
100
  }
@@ -3,7 +3,9 @@ interface IProps {
3
3
  modalToggle: () => void;
4
4
  isAdding: boolean;
5
5
  selectedSearchNameToEdit: string;
6
+ currentCaseSearchString: string;
7
+ currentSearchType: string;
6
8
  }
7
- export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit }: IProps): JSX.Element;
9
+ export declare function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, }: IProps): JSX.Element;
8
10
  export {};
9
11
  //# 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;CACpC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,MAAM,eA0Q3G"}
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"}
@@ -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 }) {
22
+ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, selectedSearchNameToEdit, currentCaseSearchString, currentSearchType, }) {
23
23
  const { t } = useTranslation();
24
24
  const [localSavedSearchName, setLocalSavedSearchName] = useState('');
25
25
  const [localDefaultChecked, setLocalDefaultChecked] = useState(false);
@@ -70,13 +70,12 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
70
70
  // need to remove old default search if there is any
71
71
  localDefaultChecked && setDefaultSearchToFalse();
72
72
  if (isAdding) {
73
- const type = filterState.filterQueryInfo.type;
74
73
  previousBookmarkedSearchesObj[localSavedSearchName] = {
75
74
  filterState: pickBy(filterState.filterInfo, (value) => value.length !== 0),
76
75
  sortState: sortInfo,
77
- type,
76
+ type: currentSearchType,
77
+ queryString: currentCaseSearchString,
78
78
  defaultChecked: localDefaultChecked,
79
- queryString: getQueryStr(),
80
79
  };
81
80
  }
82
81
  else {
@@ -129,11 +128,10 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
129
128
  const getQueryStr = () => {
130
129
  let queryStr = '';
131
130
  if (isAdding) {
132
- const type = filterState.filterQueryInfo.type;
133
131
  queryStr =
134
- type === CaseSearchQueryType.BASIC
135
- ? createUserFriendlyQueryFromFilterState(filterInfo, filterQueryInfo.queryString)
136
- : filterQueryInfo.queryString;
132
+ currentSearchType === CaseSearchQueryType.BASIC
133
+ ? createUserFriendlyQueryFromFilterState(filterInfo, currentCaseSearchString)
134
+ : currentCaseSearchString;
137
135
  }
138
136
  else if (selectedSearchNameToEdit && previousBookmarkedSearchesObj[selectedSearchNameToEdit]) {
139
137
  queryStr = createUserFriendlyQueryFromFilterState(previousBookmarkedSearchesObj[selectedSearchNameToEdit].filterState, previousBookmarkedSearchesObj[selectedSearchNameToEdit].queryString);
@@ -141,14 +139,14 @@ export function SaveCaseSearchModal({ isModalOpen, modalToggle, isAdding, select
141
139
  else {
142
140
  queryStr = previousBookmarkedSearchesObj[localSavedSearchName] || '';
143
141
  }
144
- return queryStr;
142
+ return queryStr || '';
145
143
  };
146
144
  useEffect(() => {
147
145
  var _a;
148
146
  setLocalSavedSearchName(selectedSearchNameToEdit);
149
147
  setLocalDefaultChecked(((_a = previousBookmarkedSearchesObj[selectedSearchNameToEdit]) === null || _a === void 0 ? void 0 : _a.defaultChecked) || false);
150
148
  // eslint-disable-next-line react-hooks/exhaustive-deps
151
- }, [filterInfo, filterQueryInfo.queryString, isAdding, selectedSearchNameToEdit]);
149
+ }, [filterInfo, filterQueryInfo.queryString, isAdding, selectedSearchNameToEdit, currentCaseSearchString]);
152
150
  return (React.createElement(Modal, { variant: ModalVariant.medium, title: isAdding ? t('Save search and filters') : t('Edit saved search and filters'), isOpen: isModalOpen, onClose: closeModal, style: { overflow: 'visible' }, actions: [
153
151
  React.createElement(Button, { key: "save", variant: ButtonVariant.primary, isLoading: isUpdating, spinnerAriaValueText: hydraUserPreferences.isFetching ? 'Saving' : undefined, isDisabled: hydraUserPreferences.isFetching ||
154
152
  (saveButtonIsClicked && (isEmpty(localSavedSearchName.trim()) || isDuplicateNameError)), "data-tracking-id": isAdding ? 'case-list-bookmark-search-saved' : 'case-list-bookmark-search-edited', onClick: save },
@@ -1 +1 @@
1
- {"version":3,"file":"useAdvanceSearchParser.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/useAdvanceSearchParser.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,MAAM,EAAE;;CAAA;yBASzB,MAAM;6BASF,MAAM;;EAwEzC"}
1
+ {"version":3,"file":"useAdvanceSearchParser.d.ts","sourceRoot":"","sources":["../../../../../src/components/case-list/case-search/useAdvanceSearchParser.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,MAAM,EAAE;;CAAA;yBASzB,MAAM;6BASF,MAAM;;EA4EzC"}
@@ -26,7 +26,12 @@ export default function useAdvanceSearchParser({ onInit }) {
26
26
  return '';
27
27
  };
28
28
  const initParser = () => {
29
- parserRef.current = PEG.generate(grammerStringRef.current);
29
+ try {
30
+ parserRef.current = PEG.generate(grammerStringRef.current);
31
+ }
32
+ catch (_a) {
33
+ parserRef.current = null;
34
+ }
30
35
  };
31
36
  // write products, severity and status to grammar string once we have the values from facets
32
37
  useEffect(() => {
@@ -1,5 +1,8 @@
1
1
  import { CaseSearchQueryType } from '../enums/caseSearch';
2
2
  export declare function useFilterStateOnLoad(): {
3
- set: (queryFromUrl: string, pageSizeFromUrl: number, currentPageFromUrl: number, searchType: CaseSearchQueryType) => any;
3
+ set: (queryFromUrl: string, pageSizeFromUrl: number, currentPageFromUrl: number, searchType: CaseSearchQueryType) => {
4
+ initFilterState: any;
5
+ defaultSearchName: string;
6
+ };
4
7
  };
5
8
  //# sourceMappingURL=useFilterStateOnLoad.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,sBACH,MAAM,cACd,mBAAmB;EAsDtC"}
1
+ {"version":3,"file":"useFilterStateOnLoad.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFilterStateOnLoad.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,oBAAoB;wBAkBd,MAAM,mBACH,MAAM,sBACH,MAAM,cACd,mBAAmB;;;;EAsDtC"}
@@ -1,10 +1,8 @@
1
1
  import { GlobalMetadataStateContext, UserPreferencesKeys } from '@rh-support/react-context';
2
2
  import find from 'lodash/find';
3
3
  import findKey from 'lodash/findKey';
4
- import isEmpty from 'lodash/isEmpty';
5
4
  import { useContext, useMemo } from 'react';
6
5
  import { CaseListFilterStateContext, initialCaseFilterState } from '../components/case-list/CaseListFilterContext';
7
- import { isArrayHashMapEmpty } from '../components/case-list/CaseListFilterHelpers';
8
6
  import { SolrKeys } from '../enums/filters';
9
7
  import { createFilterStateFromUrlQuery } from '../utils/caseSearchUtils';
10
8
  export function useFilterStateOnLoad() {
@@ -14,15 +12,13 @@ export function useFilterStateOnLoad() {
14
12
  const savedSearchesObj = useMemo(() => ((savesSearches === null || savesSearches === void 0 ? void 0 : savesSearches.value) ? JSON.parse(savesSearches.value) : {}), [savesSearches]);
15
13
  const set = (queryFromUrl, pageSizeFromUrl, currentPageFromUrl, searchType) => {
16
14
  const filterStateFromURL = createFilterStateFromUrlQuery(queryFromUrl, globalMetadataState, pageSizeFromUrl, currentPageFromUrl, searchType);
17
- const hasFilterStateFromURL = !isArrayHashMapEmpty(filterStateFromURL.filterInfo) &&
18
- !isEmpty(filterStateFromURL.filterQueryInfo.queryString);
19
15
  let savedSearchFilterState = null;
20
16
  const defaultSavedSearchKey = findKey(savedSearchesObj, { defaultChecked: true });
21
17
  if (defaultSavedSearchKey) {
22
18
  const { filterState: filterStateSaved, queryString, type, sortState, } = savedSearchesObj[defaultSavedSearchKey];
23
19
  savedSearchFilterState = Object.assign(Object.assign({}, filterState), { sortInfo: sortState, filterQueryInfo: Object.assign(Object.assign({}, filterState.filterQueryInfo), { queryString, type }), filterInfo: Object.assign(Object.assign({}, initialCaseFilterState.filterInfo), filterStateSaved) });
24
20
  }
25
- let defaultFilterState = hasFilterStateFromURL
21
+ let defaultFilterState = queryFromUrl
26
22
  ? filterStateFromURL
27
23
  : savedSearchFilterState
28
24
  ? savedSearchFilterState
@@ -32,7 +28,10 @@ export function useFilterStateOnLoad() {
32
28
  const updatedFilterInfo = Object.assign(Object.assign({}, filterState.filterInfo), { [SolrKeys.group]: [{ key: defaultGroup.groupNum, value: defaultGroup.name }] });
33
29
  defaultFilterState = Object.assign(Object.assign({}, filterState), { filterInfo: updatedFilterInfo });
34
30
  }
35
- return defaultFilterState;
31
+ return {
32
+ initFilterState: defaultFilterState,
33
+ defaultSearchName: defaultSavedSearchKey && !queryFromUrl ? defaultSavedSearchKey : '',
34
+ };
36
35
  };
37
36
  return {
38
37
  set,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/cases",
3
- "version": "0.2.42",
3
+ "version": "0.2.56",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -53,10 +53,10 @@
53
53
  "@patternfly/react-core": "4.194.0",
54
54
  "@patternfly/react-table": "4.63.0",
55
55
  "@rh-support/api": "0.3.10",
56
- "@rh-support/components": "1.1.29",
57
- "@rh-support/react-context": "0.2.32",
56
+ "@rh-support/components": "1.1.39",
57
+ "@rh-support/react-context": "0.2.40",
58
58
  "@rh-support/types": "0.2.0",
59
- "@rh-support/user-permissions": "0.2.23",
59
+ "@rh-support/user-permissions": "0.2.30",
60
60
  "@rh-support/utils": "0.2.21",
61
61
  "i18next": "^19.0.1",
62
62
  "localforage": "^1.7.3",
@@ -101,5 +101,5 @@
101
101
  "not ie <= 11",
102
102
  "not op_mini all"
103
103
  ],
104
- "gitHead": "8ce3e080eafb6dd8df726bed5b7f2d54acf8cc22"
104
+ "gitHead": "2717a54ca918fae7f6461e1e29c9bb869bf5f947"
105
105
  }