@rh-support/troubleshoot 0.2.86 → 0.2.89

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 (49) hide show
  1. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  2. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +6 -4
  3. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +169 -63
  5. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +3 -1
  7. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +4 -0
  9. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  10. package/lib/esm/components/CaseManagement/Cep.js +13 -13
  11. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -0
  12. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  13. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +1 -1
  14. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts +3 -0
  15. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  16. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +3 -3
  17. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -0
  18. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  19. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +2 -2
  20. package/lib/esm/components/Recommendations/AsideResults.d.ts +1 -4
  21. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  22. package/lib/esm/components/Recommendations/AsideResults.js +17 -14
  23. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  24. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +11 -6
  25. package/lib/esm/components/Recommendations/EARules/EARule.d.ts.map +1 -1
  26. package/lib/esm/components/Recommendations/EARules/EARule.js +10 -6
  27. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.d.ts.map +1 -1
  28. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +13 -2
  29. package/lib/esm/components/Recommendations/EARules/EARuleWidget.d.ts.map +1 -1
  30. package/lib/esm/components/Recommendations/EARules/EARuleWidget.js +26 -1
  31. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  32. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +3 -5
  33. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  34. package/lib/esm/components/Recommendations/Recommendations.js +8 -7
  35. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  36. package/lib/esm/components/Recommendations/RulesModal.js +9 -2
  37. package/lib/esm/components/shared/Constants.d.ts +8 -4
  38. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  39. package/lib/esm/components/shared/Constants.js +8 -4
  40. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  41. package/lib/esm/reducers/CaseReducer.js +2 -0
  42. package/lib/esm/reducers/SessionRestoreReducer.d.ts +3 -2
  43. package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
  44. package/lib/esm/reducers/SessionRestoreReducer.js +35 -52
  45. package/lib/esm/scss/_main.scss +13 -0
  46. package/package.json +8 -8
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftDropdownV4.d.ts +0 -22
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftDropdownV4.d.ts.map +0 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftDropdownV4.js +0 -228
@@ -12,7 +12,7 @@ import { useDebounce } from '@rh-support/components';
12
12
  import { computeRecommendationAbstract, computeRecommendationTitle, getSolrParams, replaceHighlightingData, } from '@rh-support/utils';
13
13
  import isEmpty from 'lodash/isEmpty';
14
14
  import isEqual from 'lodash/isEqual';
15
- import React, { useContext, useRef } from 'react';
15
+ import React, { useContext, useEffect, useRef } from 'react';
16
16
  import { Trans } from 'react-i18next';
17
17
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
18
18
  import { RecommendationDispatchContext, RecommendationStateContext } from '../../context/RecommendationContext';
@@ -22,10 +22,10 @@ import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
22
22
  import { setCaseRecommendations } from '../../reducers/CaseReducer';
23
23
  import { RecommendationsConstants } from '../../reducers/RecommendationsReducer';
24
24
  import { showSidebarRecommendationsSections } from '../../reducers/RouteConstNTypes';
25
- import { createOrUpdateSessionResources, getRecToSave } from '../../reducers/SessionRestoreReducer';
25
+ import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
26
26
  import RouteUtils from '../../utils/routeUtils';
27
- const { SessionResourceSource } = pcm.preCase.session;
28
- export function AsideResults(props) {
27
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
28
+ export function AsideResults() {
29
29
  /*
30
30
  * Sidebar recommendation logic
31
31
  */
@@ -48,6 +48,12 @@ export function AsideResults(props) {
48
48
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
49
49
  const { routeState: { activeSection }, } = useContext(RouteContext);
50
50
  const PAGE_SIZE = 5;
51
+ const payload = JSON.stringify({
52
+ product: product,
53
+ version: version,
54
+ summary: summary,
55
+ description: getDescriptionWOQues(issue, environment, periodicityOfIssue, timeFramesAndUrgency),
56
+ });
51
57
  // abort controller ref
52
58
  const controllerRef = useRef(new AbortController());
53
59
  useDebounce(() => {
@@ -106,16 +112,13 @@ export function AsideResults(props) {
106
112
  const canShowSideRecommendations = () => showSidebarRecommendationsSections.includes(activeSection) &&
107
113
  recommendationState.sideRecommendation.length > 0 &&
108
114
  !recommendationState.sideRecommendationError;
109
- const onResourceClick = (doc) => (event) => {
110
- const payload = JSON.stringify({
111
- product: product,
112
- version: version,
113
- summary: summary,
114
- description: getDescriptionWOQues(issue, environment, periodicityOfIssue, timeFramesAndUrgency),
115
- });
116
- const resourcesToSave = getRecToSave(doc, recommendationState.sideRecommendation);
117
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS_ASIDE, resourcesToSave, payload);
115
+ const onResourceClick = (doc, index) => (event) => {
116
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS_ASIDE, [getSessResFromRec(doc, SessionResourceVisibility.VISITED, index)], payload);
118
117
  };
118
+ useEffect(() => {
119
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS_ASIDE, getSessResFromRecs(recommendationState.sideRecommendation, SessionResourceVisibility.PRESENTED), JSON.stringify(payload));
120
+ // eslint-disable-next-line react-hooks/exhaustive-deps
121
+ }, [recommendationState.sideRecommendation, activeSessionId]);
119
122
  if (!canShowSideRecommendations())
120
123
  return React.createElement(React.Fragment, null);
121
124
  return (React.createElement("div", { className: "card card-white card-support top-recommendations" },
@@ -126,7 +129,7 @@ export function AsideResults(props) {
126
129
  var _a, _b;
127
130
  return (React.createElement("li", { className: "result", key: doc.id },
128
131
  React.createElement("header", { className: "result-header" },
129
- React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS_ASIDE]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS_ASIDE)}`, className: "se-recommended ts-result-aside", "data-tracking-id": `se-recommended-sidebar-recommendations-${index}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc), dangerouslySetInnerHTML: computeRecommendationTitle(doc) })),
132
+ React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS_ASIDE]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS_ASIDE)}`, className: "se-recommended ts-result-aside", "data-tracking-id": `se-recommended-sidebar-recommendations-${index}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, index), dangerouslySetInnerHTML: computeRecommendationTitle(doc) })),
130
133
  React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 150) })));
131
134
  })))));
132
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAW5F,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eAiFvD"}
1
+ {"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAe5F,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,eAiGvD"}
@@ -1,34 +1,39 @@
1
1
  import { pcm } from '@cee-eng/hydrajs';
2
2
  import { Label } from '@patternfly/react-core';
3
3
  import isEqual from 'lodash/isEqual';
4
- import React, { useContext } from 'react';
4
+ import React, { useContext, useEffect } from 'react';
5
5
  import { Trans } from 'react-i18next';
6
6
  import { useCaseSelector } from '../../context/CaseContext';
7
7
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
8
8
  import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
9
- import { createOrUpdateSessionResources, getRulesToSave } from '../../reducers/SessionRestoreReducer';
9
+ import { createOrUpdateSessionResources, getRulesToSave, getSessResFromRules, } from '../../reducers/SessionRestoreReducer';
10
10
  import { riskLabels } from '../shared/Constants';
11
11
  export function ClusterRecommendationItems(props) {
12
12
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
13
13
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
14
- const { SessionResourceSource } = pcm.preCase.session;
15
- const { version, product } = useCaseSelector((state) => ({
14
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
15
+ const { version, product, openshiftClusterID } = useCaseSelector((state) => ({
16
16
  version: state.caseDetails.version,
17
17
  product: state.caseDetails.product,
18
+ openshiftClusterID: state.caseDetails.openshiftClusterID,
18
19
  }), isEqual);
19
20
  const { parseDotMarkdownWithTracking } = useParseRuleMarkdown();
20
21
  const onResourceClick = (e, rule) => {
21
22
  if (e.target.tagName.toLowerCase() === 'a') {
22
23
  const visitedUrl = e.target.href.split('?')[0];
23
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, getRulesToSave(visitedUrl, rule, props.clusterRecommendations), JSON.stringify({ product, version }));
24
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, [getSessResFromRules(visitedUrl, SessionResourceVisibility.VISITED, rule.rule_id)], JSON.stringify({ product, version, openshiftClusterID }));
24
25
  }
25
26
  };
27
+ useEffect(() => {
28
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, getRulesToSave('', '', props.clusterRecommendations), JSON.stringify({ product, version, openshiftClusterID }));
29
+ // eslint-disable-next-line react-hooks/exhaustive-deps
30
+ }, [props.clusterRecommendations, activeSessionId]);
26
31
  return (React.createElement("pfe-accordion", null, props.clusterRecommendations.map((rule) => (React.createElement(React.Fragment, null,
27
32
  React.createElement("pfe-accordion-header", null,
28
33
  React.createElement("h3", null, rule.description)),
29
34
  React.createElement("pfe-accordion-panel", null,
30
35
  React.createElement("p", null,
31
- React.createElement(Label, { color: riskLabels[rule.total_risk].color },
36
+ React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
32
37
  React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
33
38
  React.createElement("p", null, rule.details || ''),
34
39
  rule.reason && (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"EARule.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,UAAU,cAAc;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAClG;AAGD,eAAO,MAAM,aAAa,+BAGxB,CAAC;AAEH,wBAAgB,gBAAgB,mBAM/B;AACD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;CAAA,eA0BxC;AAED,iBAAS,WAAW,gBAGnB;AAED,iBAAS,iBAAiB,gBAsBzB;AAED,iBAAS,aAAa,CAAC,EAAE,SAA6B,EAAE,SAAc,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,eA4BnH;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"EARule.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARule.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,UAAU,cAAc;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAClG;AAGD,eAAO,MAAM,aAAa,+BAGxB,CAAC;AAEH,wBAAgB,gBAAgB,mBAM/B;AACD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;CAAA,eAmCxC;AAED,iBAAS,WAAW,gBAGnB;AAED,iBAAS,iBAAiB,gBAsBzB;AAED,iBAAS,aAAa,CAAC,EAAE,SAA6B,EAAE,SAAc,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,eA4BnH;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC"}
@@ -1,13 +1,14 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
2
  import { pcm } from '@cee-eng/hydrajs';
3
3
  import CaretRightIcon from '@patternfly/react-icons/dist/js/icons/caret-right-icon';
4
+ import isEqual from 'lodash/isEqual';
4
5
  import React, { useContext } from 'react';
5
6
  import { Trans } from 'react-i18next';
6
- import { RulesStateContext } from '../../../context/RulesContext';
7
+ import { useCaseSelector } from '../../../context/CaseContext';
7
8
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
8
9
  import { useParseRuleMarkdown } from '../../../hooks/useParseRuleMarkdown';
9
- import { createOrUpdateSessionResources, getRulesToSave } from '../../../reducers/SessionRestoreReducer';
10
- const { SessionResourceSource } = pcm.preCase.session;
10
+ import { createOrUpdateSessionResources, getSessResFromEA } from '../../../reducers/SessionRestoreReducer';
11
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
11
12
  export const EARuleContext = React.createContext({
12
13
  rule: {},
13
14
  onCtaClick: null,
@@ -21,10 +22,13 @@ export function useEARuleContext() {
21
22
  }
22
23
  export function EARule({ children, rule }) {
23
24
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
25
+ const { product, version } = useCaseSelector((state) => ({
26
+ product: state.caseDetails.product,
27
+ version: state.caseDetails.version,
28
+ }), isEqual);
24
29
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
25
- const { rulesState } = useContext(RulesStateContext);
26
- const onCtaClick = (link) => (event) => {
27
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, getRulesToSave(link, rule, rulesState.EARules.rules));
30
+ const onCtaClick = (link) => () => {
31
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, [getSessResFromEA(link, SessionResourceVisibility.VISITED, rule.rule_id)], JSON.stringify({ product, version }));
28
32
  };
29
33
  return (React.createElement(EARuleContext.Provider, { value: {
30
34
  rule,
@@ -1 +1 @@
1
- {"version":3,"file":"EARuleInfoInline.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleInfoInline.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAkD,MAAM,gCAAgC,CAAC;AAM/G,UAAU,MAAM;IACZ,OAAO,EAAE,aAAa,EAAE,CAAC;CAC5B;AACD,wBAAgB,gBAAgB,CAAC,EAAE,OAAY,EAAE,EAAE,MAAM,eAiIxD"}
1
+ {"version":3,"file":"EARuleInfoInline.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleInfoInline.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAkD,MAAM,gCAAgC,CAAC;AAO/G,UAAU,MAAM;IACZ,OAAO,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAY,EAAE,EAAE,MAAM,eAuJxD"}
@@ -15,15 +15,18 @@ import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-ic
15
15
  import { PaginationCompact, useFetch } from '@rh-support/components';
16
16
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
17
17
  import { getResTypeFromUrl, getStyleVariantColor, StyleVariants } from '@rh-support/utils';
18
+ import isEqual from 'lodash/isEqual';
18
19
  import some from 'lodash/some';
19
20
  import React, { useContext, useEffect, useState } from 'react';
20
21
  import { Trans, useTranslation } from 'react-i18next';
22
+ import { useCaseSelector } from '../../../context/CaseContext';
21
23
  import { RulesDispatchContext } from '../../../context/RulesContext';
22
- import { SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
24
+ import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
23
25
  import { markEARuleResolved, setEARulesVisibilityChange } from '../../../reducers/RulesReducer';
26
+ import { createOrUpdateSessionResources, getSessResFromRules } from '../../../reducers/SessionRestoreReducer';
24
27
  import { RecommendationFeedbackModal } from '../RecommendationFeedbackModal';
25
28
  import { EARule, EARuleArticle, EARuleDescription, EARuleTitle } from './EARule';
26
- const { SessionResourceSource } = pcm.preCase.session;
29
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
27
30
  export function EARuleInfoInline({ eaRules = [] }) {
28
31
  const { t } = useTranslation();
29
32
  const [currentPage, setCurrentPage] = useState(1);
@@ -32,6 +35,11 @@ export function EARuleInfoInline({ eaRules = [] }) {
32
35
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
33
36
  const [isModalVisible, setIsModalVisible] = useState(false);
34
37
  const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
38
+ const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
39
+ const { product, version } = useCaseSelector((state) => ({
40
+ product: state.caseDetails.product,
41
+ version: state.caseDetails.version,
42
+ }), isEqual);
35
43
  const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
36
44
  const validEARulesLength = eaRules.length;
37
45
  const isAnyRuleResolved = some(eaRules, (item) => item.resolved);
@@ -43,6 +51,9 @@ export function EARuleInfoInline({ eaRules = [] }) {
43
51
  // eslint-disable-next-line react-hooks/exhaustive-deps
44
52
  }, [validEARulesLength]);
45
53
  const onPaginationChange = (currentPage) => {
54
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, [
55
+ getSessResFromRules(null, SessionResourceVisibility.PRESENTED, eaRules[currentPage - 1].rule_id, currentPage),
56
+ ], JSON.stringify({ product, version }));
46
57
  setCurrentPage(currentPage);
47
58
  };
48
59
  const onIgnoreBtnClick = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"EARuleWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleWidget.tsx"],"names":[],"mappings":"AAOA,wBAAgB,YAAY,gBAO3B"}
1
+ {"version":3,"file":"EARuleWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleWidget.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,YAAY,gBA2C3B"}
@@ -1,10 +1,35 @@
1
+ import { pcm } from '@cee-eng/hydrajs';
2
+ import differenceBy from 'lodash/differenceBy';
1
3
  import filter from 'lodash/filter';
2
- import React, { useContext } from 'react';
4
+ import isEmpty from 'lodash/isEmpty';
5
+ import isEqual from 'lodash/isEqual';
6
+ import React, { useContext, useEffect } from 'react';
7
+ import { useCaseSelector } from '../../../context/CaseContext';
3
8
  import { RulesStateContext } from '../../../context/RulesContext';
9
+ import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
10
+ import { createOrUpdateSessionResources, getSessResFromRules } from '../../../reducers/SessionRestoreReducer';
4
11
  import { EARuleInfoInline } from './EARuleInfoInline';
12
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
5
13
  export function EARuleWidget() {
6
14
  const { rulesState: { isEARuleWidgetVisible, EARules }, } = useContext(RulesStateContext);
15
+ const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
16
+ const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
17
+ const { product, version } = useCaseSelector((state) => ({
18
+ product: state.caseDetails.product,
19
+ version: state.caseDetails.version,
20
+ }), isEqual);
7
21
  const validEARules = filter(EARules.rules, (r) => r.visible && r.rule_sub_type !== 'attachment');
22
+ useEffect(() => {
23
+ var _a;
24
+ const presentedIds = (((_a = sessionResourceTracking[SessionResourceSource.EDMOUND_ABOTT]) === null || _a === void 0 ? void 0 : _a.presentedResources) || []).map((p) => p.resourceEntityId);
25
+ const visibleValidEARules = validEARules.find((r) => r.visible === true);
26
+ if (visibleValidEARules &&
27
+ differenceBy([visibleValidEARules === null || visibleValidEARules === void 0 ? void 0 : visibleValidEARules.rule_id], presentedIds).length > 0 &&
28
+ !isEmpty(activeSessionId)) {
29
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, [getSessResFromRules(null, SessionResourceVisibility.PRESENTED, visibleValidEARules.rule_id, 1)], JSON.stringify({ product, version }));
30
+ }
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ }, [validEARules, activeSessionId]);
8
33
  if (!isEARuleWidgetVisible || validEARules.length < 1)
9
34
  return null;
10
35
  return React.createElement(EARuleInfoInline, { eaRules: validEARules });
@@ -1 +1 @@
1
- {"version":3,"file":"InsightsRuleInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsRuleInfo.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,UAAU,MAAM;IACZ,GAAG,EAAE,wBAAwB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,eA8J1E"}
1
+ {"version":3,"file":"InsightsRuleInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsRuleInfo.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,UAAU,MAAM;IACZ,GAAG,EAAE,wBAAwB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,eA2J1E"}
@@ -6,12 +6,11 @@ import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-ic
6
6
  import { getRuleReasonHtml } from '@rh-support/utils';
7
7
  import React, { useContext, useEffect, useRef, useState } from 'react';
8
8
  import { Trans } from 'react-i18next';
9
- import { RulesStateContext } from '../../context/RulesContext';
10
9
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
11
10
  import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
12
- import { createOrUpdateSessionResources, getInsightRulesToSave } from '../../reducers/SessionRestoreReducer';
11
+ import { createOrUpdateSessionResources, getSessResFromRules } from '../../reducers/SessionRestoreReducer';
13
12
  import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
14
- const { SessionResourceSource } = pcm.preCase.session;
13
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
15
14
  export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
16
15
  var _a, _b, _c, _d, _e, _f, _g;
17
16
  const [ruleData, setRuleData] = useState(null);
@@ -20,7 +19,6 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
20
19
  const [isIssueExpanded, setIsIssueExpanded] = useState(true);
21
20
  const [isAdditionalExpanded, setIsAdditionalExpanded] = useState(false);
22
21
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
23
- const { rulesState: { insightRules }, } = useContext(RulesStateContext);
24
22
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
25
23
  const { parseDotMarkdownWithTracking, getTrackingULRWithQueryParams } = useParseRuleMarkdown();
26
24
  const { attachmentState: { caseFiles: { selectedLocalFiles }, }, } = useContext(AttachmentStateContext);
@@ -38,7 +36,7 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
38
36
  setRuleData(rules[ruleId]);
39
37
  }, [setRuleData, doc.attachmentId, doc.id, selectedLocalFiles, duplicateKeys]);
40
38
  const onCtaClick = (link) => (event) => {
41
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, getInsightRulesToSave(link, doc, insightRules.rules));
39
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, [getSessResFromRules(link, SessionResourceVisibility.VISITED, ruleData.rule_id)]);
42
40
  };
43
41
  const parseMoreInfo = (moreInfo, reportDetails) => {
44
42
  return parseDotMarkdownWithTracking(moreInfo, reportDetails, SessionResourceSource.INSIGHTS, 'ts-result-insights', 'se-recommended-insights-rule');
@@ -1 +1 @@
1
- {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AA0CA,MAAM,CAAC,OAAO,UAAU,eAAe,gBAyNtC"}
1
+ {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AA8CA,MAAM,CAAC,OAAO,UAAU,eAAe,gBAmOtC"}
@@ -18,11 +18,11 @@ import { getRecommendationObject } from '../../reducers/CaseHelpers';
18
18
  import { setCaseRecommendations } from '../../reducers/CaseReducer';
19
19
  import { fetchRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
20
20
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
21
- import { createOrUpdateSessionResources, getRecToSave } from '../../reducers/SessionRestoreReducer';
21
+ import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
22
22
  import RouteUtils from '../../utils/routeUtils';
23
23
  import Issue from '../Issue/Issue';
24
24
  import { EARuleWidget } from './EARules/EARuleWidget';
25
- const { SessionResourceSource } = pcm.preCase.session;
25
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
26
26
  export default function Recommendations() {
27
27
  var _a, _b, _c;
28
28
  const { product, version, environment, summary, caseResourceLinks } = useCaseSelector((state) => ({
@@ -101,7 +101,9 @@ export default function Recommendations() {
101
101
  if (newRecommendations.length > 0) {
102
102
  setCaseRecommendations(caseDispatch, recommendationState.visibleDocs, caseResourceLinks);
103
103
  }
104
- }, [caseDispatch, recommendationState.visibleDocs, caseResourceLinks]);
104
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS, getSessResFromRecs(recommendationState.visibleDocs, SessionResourceVisibility.PRESENTED), JSON.stringify(payload));
105
+ // eslint-disable-next-line react-hooks/exhaustive-deps
106
+ }, [caseDispatch, recommendationState.visibleDocs, caseResourceLinks, activeSessionId]);
105
107
  useEffect(() => {
106
108
  // added the numFound !-==0 for when user click on back/continue button and we have no solution result
107
109
  // in this case we don't want to scroll to start of the solution result div
@@ -123,9 +125,8 @@ export default function Recommendations() {
123
125
  const onPageSizeChanged = (_, number) => {
124
126
  setPageSize(number);
125
127
  };
126
- const onResourceClick = (doc) => (event) => {
127
- const resourcesToSave = getRecToSave(doc, recommendationState.visibleDocs, recommendationState.allDocs);
128
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS, resourcesToSave, JSON.stringify(payload));
128
+ const onResourceClick = (doc, index) => (event) => {
129
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS, [getSessResFromRec(doc, SessionResourceVisibility.VISITED, index)], JSON.stringify(payload));
129
130
  };
130
131
  return (React.createElement(React.Fragment, null,
131
132
  React.createElement(Issue, null),
@@ -136,7 +137,7 @@ export default function Recommendations() {
136
137
  var _a, _b;
137
138
  return (React.createElement("li", { className: "result", key: doc.id },
138
139
  React.createElement("header", { className: "result-header" },
139
- React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS)}`, className: "se-recommended ts-result", "data-tracking-id": `se-recommended-main-recommendations-${i}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc), dangerouslySetInnerHTML: computeRecommendationTitle(doc) }),
140
+ React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS)}`, className: "se-recommended ts-result", "data-tracking-id": `se-recommended-main-recommendations-${i}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, i), dangerouslySetInnerHTML: computeRecommendationTitle(doc) }),
140
141
  React.createElement("div", { className: "header-meta" },
141
142
  doc.kcsState === 'verified' && (React.createElement(React.Fragment, null,
142
143
  React.createElement("span", { className: "status-verified" }, "verified"),
@@ -1 +1 @@
1
- {"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eAmI/C"}
1
+ {"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eAgJ/C"}
@@ -13,13 +13,15 @@ import { useFetch } from '@rh-support/components';
13
13
  import { getResTypeFromUrl } from '@rh-support/utils';
14
14
  import React, { useContext, useEffect, useState } from 'react';
15
15
  import { useTranslation } from 'react-i18next';
16
- import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
16
+ import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
17
+ import { createOrUpdateSessionResources, getSessResFromRecs } from '../../reducers/SessionRestoreReducer';
17
18
  import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
18
19
  import { EARuleInfoAccordion } from './EARules/EARuleInfoAccordion';
19
20
  import { InsightsRuleInfo } from './InsightsRuleInfo';
20
21
  import { RecommendationFeedbackModal } from './RecommendationFeedbackModal';
21
22
  export function InsightResultModal(props) {
22
23
  const { t } = useTranslation();
24
+ const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
23
25
  const potentialDuplicate = {};
24
26
  props.insightResults.map((value) => {
25
27
  if (potentialDuplicate.hasOwnProperty(value.id)) {
@@ -34,7 +36,7 @@ export function InsightResultModal(props) {
34
36
  });
35
37
  const { attachmentState: { caseFiles: { selectedLocalFiles }, }, } = useContext(AttachmentStateContext);
36
38
  const [canShowNewTag, setCanShowNewTag] = useState(false);
37
- const { SessionResourceSource } = pcm.preCase.session;
39
+ const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
38
40
  const { request: resolveSessionRequest, isFetching } = useFetch(pcm.preCase.session.resolveSession);
39
41
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
40
42
  const [isModalVisible, setIsModalVisible] = useState(false);
@@ -57,6 +59,11 @@ export function InsightResultModal(props) {
57
59
  const onModalToggle = () => {
58
60
  setIsModalVisible((visible) => !visible);
59
61
  };
62
+ useEffect(() => {
63
+ props.isOpen &&
64
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, getSessResFromRecs(props.insightResults, SessionResourceVisibility.PRESENTED));
65
+ // eslint-disable-next-line react-hooks/exhaustive-deps
66
+ }, [props.insightResults, activeSessionId, props.isOpen]);
60
67
  useEffect(() => {
61
68
  let total = props.EARule.length;
62
69
  let trueValues = 0;
@@ -52,20 +52,24 @@ export declare const markdownInlineFileSelectEvent = "PCM-Next > Markdown-toolba
52
52
  export declare const markdownFilePasteEvent = "PCM-Next > Markdown-toolbar-file-paste";
53
53
  export declare const riskLabels: {
54
54
  1: {
55
+ icon: import("react").ComponentClass<import("@patternfly/react-icons/dist/js/createIcon").SVGIconProps, any>;
55
56
  label: string;
56
- color: string;
57
+ className: string;
57
58
  };
58
59
  2: {
60
+ icon: import("react").ComponentClass<import("@patternfly/react-icons/dist/js/createIcon").SVGIconProps, any>;
59
61
  label: string;
60
- color: string;
62
+ className: string;
61
63
  };
62
64
  3: {
65
+ icon: import("react").ComponentClass<import("@patternfly/react-icons/dist/js/createIcon").SVGIconProps, any>;
63
66
  label: string;
64
- color: string;
67
+ className: string;
65
68
  };
66
69
  4: {
70
+ icon: import("react").ComponentClass<import("@patternfly/react-icons/dist/js/createIcon").SVGIconProps, any>;
67
71
  label: string;
68
- color: string;
72
+ className: string;
69
73
  };
70
74
  };
71
75
  //# sourceMappingURL=Constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/Constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA+BE;AAEF;;GAEG;AACH,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,cAAc;IAClB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,sBAAsB;IAC3B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,kBAAkB,yBAAyB;CAC9C;AAED,eAAO,MAAM,8BAA8B,oDAAoD,CAAC;AAEhG,eAAO,MAAM,oCAAoC,wDAAwD,CAAC;AAC1G,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,sBAAsB,2CAA2C,CAAC;AAE/E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAKtB,CAAC"}
1
+ {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/Constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wBA+BE;AAEF;;GAEG;AACH,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,cAAc;IAClB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,sBAAsB;IAC3B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,kBAAkB,yBAAyB;CAC9C;AAED,eAAO,MAAM,8BAA8B,oDAAoD,CAAC;AAEhG,eAAO,MAAM,oCAAoC,wDAAwD,CAAC;AAC1G,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,sBAAsB,2CAA2C,CAAC;AAE/E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;CAKtB,CAAC"}
@@ -1,3 +1,7 @@
1
+ import AngleDoubleDownIcon from '@patternfly/react-icons/dist/js/icons/angle-double-down-icon';
2
+ import AngleDoubleUpIcon from '@patternfly/react-icons/dist/js/icons/angle-double-up-icon';
3
+ import CriticalRiskIcon from '@patternfly/react-icons/dist/js/icons/critical-risk-icon';
4
+ import EqualsIcon from '@patternfly/react-icons/dist/js/icons/equals-icon';
1
5
  export default {
2
6
  languagesMap: {
3
7
  en: 'English',
@@ -51,8 +55,8 @@ export const recsViewedFromNoAttachmentModalEvent = 'PCM-Next > No-Attachment-mo
51
55
  export const markdownInlineFileSelectEvent = 'PCM-Next > Markdown-toolbar-file-select';
52
56
  export const markdownFilePasteEvent = 'PCM-Next > Markdown-toolbar-file-paste';
53
57
  export const riskLabels = {
54
- 1: { label: 'Low', color: 'blue' },
55
- 2: { label: 'Moderate', color: 'orange' },
56
- 3: { label: 'Important', color: 'red' },
57
- 4: { label: 'Critical', color: 'red' },
58
+ 1: { icon: AngleDoubleDownIcon, label: 'Low', className: 'risk-label-low' },
59
+ 2: { icon: EqualsIcon, label: 'Moderate', className: 'risk-label-moderate' },
60
+ 3: { icon: AngleDoubleUpIcon, label: 'Important', className: 'risk-label-important' },
61
+ 4: { icon: CriticalRiskIcon, label: 'Critical', className: 'risk-label-critical' },
58
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
@@ -501,6 +501,8 @@ export const fetchCaseDetails = (dispatch, caseNumber, loggedInUserRights, refre
501
501
  secondCaseInactivityWarningSentAt: (data === null || data === void 0 ? void 0 : data.secondCaseInactivityWarningSentAt) || undefined,
502
502
  groupName: data.groupName || '',
503
503
  remoteSessionTermsAcked: (_h = data.remoteSessionTermsAcked) !== null && _h !== void 0 ? _h : false,
504
+ noClusterIdReason: data.noClusterIdReason || '',
505
+ noClusterIdReasonExplanation: data.noClusterIdReasonExplanation || '',
504
506
  };
505
507
  caseDetails.chats = data === null || data === void 0 ? void 0 : data.chats;
506
508
  caseDetails.comments = data === null || data === void 0 ? void 0 : data.comments;
@@ -13,6 +13,7 @@ export interface IResourceTracking {
13
13
  isCreating: boolean;
14
14
  isUpdating: boolean;
15
15
  visitedResources: ISessionResource[];
16
+ presentedResources: ISessionResource[];
16
17
  }
17
18
  export interface ISessionResourcesTracking {
18
19
  [source: string]: IResourceTracking;
@@ -32,9 +33,8 @@ export interface ISessionRestorePayloadType extends ISessionRestoreState {
32
33
  resourceSource: string;
33
34
  resourceOriginId: string;
34
35
  payload: string;
35
- isCreatingResourceOrigin: boolean;
36
- isUpdatingResourceOrigin: boolean;
37
36
  visitedResources: ISessionResource[];
37
+ presentedResources: ISessionResource[];
38
38
  }
39
39
  declare type IActionType = IAction<SessionRestoreConstants, ISessionRestorePayloadType>;
40
40
  export declare type SessionReducerDispatchType = (value: IActionType) => void;
@@ -70,6 +70,7 @@ export declare const getRulesToSave: (visiterUrl: any, visitedRec: any, allPrese
70
70
  export declare const getInsightRulesToSave: (visiterUrl: any, visitedRec: any, allPresentedRec: any) => ISessionResource[];
71
71
  export declare const getSessResFromEA: (cta: string, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: any) => ISessionResource;
72
72
  export declare const getSessResFromClusterRecommendation: (cta: string, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: any) => ISessionResource;
73
+ export declare function getSessResFromClusterRecommendations(recs: any, visibilityStatus: ISessionResourceVisibility): ISessionResource[];
73
74
  export declare const getRecToSave: (visitedRec: ISolrRecommendation, allPresentedRec: ISolrRecommendation[], allDocs?: ISolrRecommendation[]) => ISessionResource[];
74
75
  export {};
75
76
  //# sourceMappingURL=SessionRestoreReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRestoreReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/SessionRestoreReducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionRestoreReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/SessionRestoreReducer.ts"],"names":[],"mappings":"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"}