@rh-support/troubleshoot 2.6.231 → 2.6.232

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 (29) hide show
  1. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  2. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  3. package/lib/esm/components/ConfirmationModals/PreCaseConfirmationModals.d.ts.map +1 -1
  4. package/lib/esm/components/Cve/CvePanel.js +1 -1
  5. package/lib/esm/components/Cve/CveSidebar.d.ts.map +1 -1
  6. package/lib/esm/components/Cve/CveSidebar.js +8 -9
  7. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  8. package/lib/esm/components/SessionRestore/SessionRestore.js +6 -16
  9. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +1 -1
  10. package/lib/esm/components/TroubleshootSection/AskRedHat.js +27 -2
  11. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  12. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +42 -9
  13. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  14. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +0 -4
  15. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  16. package/lib/esm/components/wizardLayout/WizardAside.js +1 -9
  17. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  18. package/lib/esm/components/wizardLayout/WizardNavigation.js +5 -2
  19. package/lib/esm/css/AskRedHat.css +31 -0
  20. package/lib/esm/hooks/useARHResponse.d.ts.map +1 -1
  21. package/lib/esm/hooks/useARHResponse.js +23 -13
  22. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +5 -0
  23. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
  24. package/lib/esm/reducers/AIResponseConstNTypes.js +6 -0
  25. package/lib/esm/scss/_main.scss +0 -5
  26. package/package.json +9 -9
  27. package/lib/esm/components/CaseInformation/AISureMessageCard.d.ts +0 -7
  28. package/lib/esm/components/CaseInformation/AISureMessageCard.d.ts.map +0 -1
  29. package/lib/esm/components/CaseInformation/AISureMessageCard.js +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAsZ7C"}
1
+ {"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA2Z7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,MAAM;CAAG;AAC1B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBAkCnD"}
1
+ {"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,MAAM;CAAG;AAC1B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBAiCnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"PreCaseConfirmationModals.d.ts","sourceRoot":"","sources":["../../../../src/components/ConfirmationModals/PreCaseConfirmationModals.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,oBAAY,6BAA6B;IACrC,SAAS,aAAa;IACtB,mBAAmB,sBAAsB;IACzC,UAAU,cAAc;IACxB,mBAAmB,sBAAsB;CAC5C;AAED,UAAU,MAAM;IACZ,qBAAqB,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAqB9D"}
1
+ {"version":3,"file":"PreCaseConfirmationModals.d.ts","sourceRoot":"","sources":["../../../../src/components/ConfirmationModals/PreCaseConfirmationModals.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,oBAAY,6BAA6B;IACrC,SAAS,aAAa;IACtB,mBAAmB,sBAAsB;IACzC,UAAU,cAAc;IACxB,mBAAmB,sBAAsB;CAC5C;AAED,UAAU,MAAM;IACZ,qBAAqB,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAsB9D"}
@@ -19,5 +19,5 @@ export const CvePanel = (props) => {
19
19
  React.createElement(AccordionContent, { id: `cve-content-${index}` },
20
20
  React.createElement(CveItem, { cve: cve, isExpanded: isExpanded, index: index }))));
21
21
  };
22
- return (React.createElement(Accordion, { isBordered: false, displaySize: 'default', asDefinitionList: false, className: `${props.className ? props.className : ''}` }, map(slice(cveWorkflowRecommendation, 0, 4), renderAccordionItem)));
22
+ return (React.createElement(Accordion, { isBordered: true, displaySize: 'default', asDefinitionList: false, className: `${props.className ? props.className : ''}` }, map(slice(cveWorkflowRecommendation, 0, 4), renderAccordionItem)));
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CveSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveSidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,UAAU,yBA+BtB,CAAC"}
1
+ {"version":3,"file":"CveSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveSidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,UAAU,yBA6BtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Badge, Card, CardBody, CardHeader, CardTitle, Flex, FlexItem } from '@patternfly/react-core';
1
+ import { Badge } from '@patternfly/react-core';
2
2
  import isEmpty from 'lodash/isEmpty';
3
3
  import isEqual from 'lodash/isEqual';
4
4
  import size from 'lodash/size';
@@ -13,12 +13,11 @@ export const CveSidebar = () => {
13
13
  if (isEmpty(cveWorkflowRecommendation)) {
14
14
  return null;
15
15
  }
16
- return (React.createElement(Card, { className: "pf-v6-u-mb-lg" },
17
- React.createElement(CardHeader, null,
18
- React.createElement(CardTitle, null,
19
- React.createElement(Flex, { alignItems: { default: 'alignItemsCenter' } },
20
- React.createElement(FlexItem, { spacer: { default: 'spacerSm' } }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
21
- React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))))),
22
- React.createElement(CardBody, null,
23
- React.createElement(CvePanel, null))));
16
+ return (React.createElement(React.Fragment, null,
17
+ React.createElement("div", { className: "card card-white card-support file-diag pf-v6-u-mb-lg" },
18
+ React.createElement("h3", { className: "card-heading popular-solutions green-card-heading card-header-bg" },
19
+ React.createElement("span", { className: "pf-v6-u-mr-sm" }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
20
+ React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))),
21
+ React.createElement("div", { className: "card-body" },
22
+ React.createElement(CvePanel, null)))));
24
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRestore.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/SessionRestore.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,OAAO,EAGH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAkBzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBA4W3C"}
1
+ {"version":3,"file":"SessionRestore.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/SessionRestore.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,OAAO,EAGH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAkBzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAiW3C"}
@@ -146,15 +146,11 @@ export function SessionRestore(props) {
146
146
  const userAgent = getUserAgentForCaseMode(isCaseCreate);
147
147
  // existingOriginatingSystem or If useragents are different then existingUserAgent or userAgent
148
148
  const userAgentAB = userAgent + (isEqual(ABTestVariation, 'A') ? '-A-1' : '-B-1');
149
- const mustReplaceForeignPcmTag = String(existingOriginatingSystem !== null && existingOriginatingSystem !== void 0 ? existingOriginatingSystem : '').toLowerCase() === 'aisure' ||
150
- String(existingUserAgent !== null && existingUserAgent !== void 0 ? existingUserAgent : '').toLowerCase() === 'aisure';
151
- const originatingSystem = mustReplaceForeignPcmTag
152
- ? userAgent
153
- : !isEmpty(existingOriginatingSystem)
154
- ? existingOriginatingSystem
155
- : !isEmpty(existingUserAgent) && existingUserAgent !== userAgent
156
- ? existingUserAgent
157
- : userAgent;
149
+ const originatingSystem = !isEmpty(existingOriginatingSystem)
150
+ ? existingOriginatingSystem
151
+ : !isEmpty(existingUserAgent) && existingUserAgent !== userAgent
152
+ ? existingUserAgent
153
+ : userAgent;
158
154
  let session = {
159
155
  userAgent: userAgentAB,
160
156
  originatingSystem: originatingSystem,
@@ -204,7 +200,6 @@ export function SessionRestore(props) {
204
200
  ], 500);
205
201
  /** Just update the URL with new sessionItem */
206
202
  const restoreSession = (sessionItem_1, ...args_1) => __awaiter(this, [sessionItem_1, ...args_1], void 0, function* (sessionItem, isAutoRestoringSession = false) {
207
- var _a, _b, _c, _d;
208
203
  if (isEmpty(sessionItem))
209
204
  return;
210
205
  try {
@@ -229,12 +224,7 @@ export function SessionRestore(props) {
229
224
  const v3ClusterName = reg.exec(sessionDetails.description) ? reg.exec(sessionDetails.description)[1] : '';
230
225
  setCaseState(caseDispatch, { v3ClusterName });
231
226
  yield updateCaseWithSession(caseDispatch, sessionItem, loggedInUserRights.data.getAccountNumber(), loggedInUserRights.data.getHydraContactFromLoggedInUser(), loggedInUsersAccount.data);
232
- const sessionOriginatingSystem = String((_b = (_a = sessionItem.session) === null || _a === void 0 ? void 0 : _a.originatingSystem) !== null && _b !== void 0 ? _b : '').toLowerCase();
233
- const sessionUserAgent = String((_d = (_c = sessionItem.session) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : '').toLowerCase();
234
- const isAISureSession = sessionOriginatingSystem === 'aisure' || sessionUserAgent === 'aisure';
235
- if (!isAISureSession) {
236
- restoreFilesFromSession(dispatchToAttachmentReducer, sessionItem.session.id);
237
- }
227
+ restoreFilesFromSession(dispatchToAttachmentReducer, sessionItem.session.id);
238
228
  // navigate to beginning section if submit case.
239
229
  if (isCaseSubmit) {
240
230
  const newParams = {
@@ -1 +1 @@
1
- {"version":3,"file":"AskRedHat.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/AskRedHat.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAmCvE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,SAAS,GAAI,uBAAuB,MAAM,sBA2ftD,CAAC"}
1
+ {"version":3,"file":"AskRedHat.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/AskRedHat.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAmChF,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,SAAS,GAAI,uBAAuB,MAAM,sBAoiBtD,CAAC"}
@@ -12,9 +12,9 @@ import { sendRHDirectMessageFeedback } from '@ifd-ui/ask-redhat-core';
12
12
  import { Button, Card, CardBody, CardHeader, Content, ContentVariants, EmptyState, EmptyStateBody, EmptyStateFooter, EmptyStateVariant, Icon, Label, Modal, ModalVariant, Skeleton, Spinner, } from '@patternfly/react-core';
13
13
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
14
14
  import { useFetch } from '@rh-support/components';
15
- import { dtmTrackEventAskRedhat } from '@rh-support/utils';
15
+ import { dtmTrackEventAskRedhat, isFunctionalCookieAccepted } from '@rh-support/utils';
16
16
  import isEqual from 'lodash/isEqual';
17
- import React, { useContext, useEffect, useRef, useState } from 'react';
17
+ import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
18
18
  import { Trans, useTranslation } from 'react-i18next';
19
19
  import { MODAL_MESSAGES, QUICK_RESPONSES, TOOLTIP_MESSAGES } from '../../constants/askRedHatMessages';
20
20
  import { useAIResponseDispatch, useAIResponseState } from '../../context/AIResponseContext';
@@ -208,6 +208,31 @@ export const AskRedHat = ({ onChatWithAIClick }) => {
208
208
  navigator.clipboard.writeText(answer);
209
209
  } }, TOOLTIP_MESSAGES.copy),
210
210
  };
211
+ const isFunctionalCookieEnabled = useMemo(() => isFunctionalCookieAccepted(), []);
212
+ const handleManagePreferences = () => {
213
+ var _a, _b;
214
+ if (typeof ((_b = (_a = window.truste) === null || _a === void 0 ? void 0 : _a.eu) === null || _b === void 0 ? void 0 : _b.clickListener) === 'function') {
215
+ window.truste.eu.clickListener();
216
+ }
217
+ };
218
+ if (!isFunctionalCookieEnabled) {
219
+ return (React.createElement("div", { className: "ask-redhat" },
220
+ React.createElement("p", { className: "ask-redhat-title" },
221
+ React.createElement(StarIcon, { width: 20, height: 20 }),
222
+ isCaseCreate ? t('Resolve your issue now with AI insights') : t('Troubleshoot with AI insights'),
223
+ React.createElement(Label, { variant: "outline" },
224
+ React.createElement(Trans, null, "PREVIEW"))),
225
+ React.createElement("div", { className: "ask-redhat-cookie-error" },
226
+ React.createElement("div", { className: "ask-redhat-cookie-error__heading" },
227
+ React.createElement(Icon, { iconSize: "md", status: "danger" },
228
+ React.createElement(ExclamationCircleIcon, null)),
229
+ React.createElement("h4", null,
230
+ React.createElement(Trans, null, "Functional cookies not enabled"))),
231
+ React.createElement("p", { className: "ask-redhat-cookie-error__body" },
232
+ React.createElement(Trans, null, "To access this feature, functional cookies must be turned on. After updating your preferences, you may need to refresh the page.")),
233
+ React.createElement(Button, { variant: "primary", onClick: handleManagePreferences },
234
+ React.createElement(Trans, null, "Manage preferences")))));
235
+ }
211
236
  if (aiResponseState.isRateLimited) {
212
237
  return (React.createElement("div", { className: "ask-redhat" },
213
238
  React.createElement("p", { className: "ask-redhat-title" },
@@ -1 +1 @@
1
- {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAkBrD,OAAO,KAA+D,MAAM,OAAO,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAmCpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2BAA2B,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9D,0BAA0B,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7D,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAWD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAgdzC;kBAhdQ,mBAAmB;;;AAmd5B,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAkBrD,OAAO,KAA+D,MAAM,OAAO,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAmCpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2BAA2B,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9D,0BAA0B,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7D,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAWD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAmfzC;kBAnfQ,mBAAmB;;;AAsf5B,eAAe,mBAAmB,CAAC"}
@@ -13,7 +13,7 @@ import { ARHEventName, AskRedHatChat, setAuthToken, } from '@ifd-ui/ask-redhat-c
13
13
  import { Button, Card, CardBody, CardHeader, Tooltip } from '@patternfly/react-core';
14
14
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
15
15
  import { ErrorBoundary, LoadingDots } from '@rh-support/components';
16
- import { PreviousCaseTypes } from '@rh-support/utils';
16
+ import { getValidUUID, isFunctionalCookieAccepted, PreviousCaseTypes } from '@rh-support/utils';
17
17
  import i18next from 'i18next';
18
18
  import isEmpty from 'lodash/isEmpty';
19
19
  import isEqual from 'lodash/isEqual';
@@ -25,10 +25,11 @@ import { RouteContext } from '../../context/RouteContext';
25
25
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
26
26
  import { TCStateContext } from '../../context/TopContentContext';
27
27
  import { useAB } from '../../hooks/useAB';
28
+ import { ARHConversationErrorType } from '../../reducers/AIResponseConstNTypes';
28
29
  import { setHasChunkReceived, updateConversationId } from '../../reducers/AIResponseReducer';
29
30
  import { appSourceId_ARH, excludedCaseTypesforARH } from '../../reducers/CaseConstNTypes';
30
31
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
31
- import { createOrUpdateSessionResources } from '../../reducers/SessionRestoreReducer';
32
+ import { createOrUpdateSessionResources, updateSession } from '../../reducers/SessionRestoreReducer';
32
33
  import { calculateEngagementWindow, DEFAULT_ENGAGEMENT_WINDOW } from '../../utils/engagementUtils';
33
34
  import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
34
35
  import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
@@ -103,7 +104,7 @@ function TroubleshootSection(props) {
103
104
  caseType: state.caseDetails.caseType,
104
105
  issue: state.caseDetails.issue,
105
106
  }), isEqual);
106
- const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
107
+ const { sessionRestore: { activeSessionId, sessionResourceTracking, previousSessions }, } = useContext(SessionRestoreStateContext);
107
108
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
108
109
  const canShowTopProducts = isEmpty(product);
109
110
  const canShowTopContent = !canShowTopProducts && ((_d = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _d === void 0 ? void 0 : _d.length) > 0;
@@ -130,13 +131,24 @@ function TroubleshootSection(props) {
130
131
  }
131
132
  }, [activeSessionId, product, version, summary, issue, sessionRestoreDispatch, sessionResourceTracking]);
132
133
  const handleARHEvent = useCallback((eventData) => {
133
- // Enable "See more resources" button when first chunk iss received
134
+ var _a;
135
+ const { conversationId } = eventData.payload;
136
+ if (isVariationA && conversationId && conversationId !== lastDispatchedConversationIdRef.current) {
137
+ lastDispatchedConversationIdRef.current = conversationId;
138
+ aiResponseDispatch(updateConversationId(conversationId));
139
+ // Store conversationId in session for persistence
140
+ if (activeSessionId) {
141
+ const sessionDetails = (_a = previousSessions.data[activeSessionId]) === null || _a === void 0 ? void 0 : _a.sessionDetails;
142
+ const newSession = { conversationId };
143
+ updateSession(sessionRestoreDispatch, activeSessionId, sessionDetails, newSession);
144
+ }
145
+ }
146
+ // Enable "See more resources" button when first chunk is received
134
147
  if (eventData.eventName === ARHEventName.FirstMessageReceived) {
135
148
  aiResponseDispatch(setHasChunkReceived(true));
136
149
  }
137
150
  // If message sent with conversationId, call API immediately (engagement happened)
138
151
  if (eventData.eventName === ARHEventName.MessageSent && isVariationA) {
139
- const { conversationId } = eventData.payload;
140
152
  if (conversationId === undefined || conversationId === null || conversationId === '') {
141
153
  hasFirstMessageSentRef.current = true;
142
154
  }
@@ -149,7 +161,7 @@ function TroubleshootSection(props) {
149
161
  }
150
162
  }
151
163
  if (eventData.eventName === ARHEventName.SourcePresented) {
152
- const { conversationId, sources } = eventData.payload;
164
+ const { sources } = eventData.payload;
153
165
  if (sources && Array.isArray(sources)) {
154
166
  sourcesRef.current = sources.map((source) => (Object.assign(Object.assign({}, source), { url: source.sourceUrl || source.url, link: source.sourceUrl || source.link })));
155
167
  }
@@ -190,7 +202,15 @@ function TroubleshootSection(props) {
190
202
  setHasAnswerReceived(true);
191
203
  }, 100);
192
204
  }
193
- }, [aiResponseDispatch, callResourceAPI, clearEngagementTimer, isVariationA]);
205
+ }, [
206
+ activeSessionId,
207
+ aiResponseDispatch,
208
+ callResourceAPI,
209
+ clearEngagementTimer,
210
+ isVariationA,
211
+ previousSessions.data,
212
+ sessionRestoreDispatch,
213
+ ]);
194
214
  const preprocessRequest = () => __awaiter(this, void 0, void 0, function* () {
195
215
  var _a;
196
216
  if (!keycloakSession) {
@@ -217,9 +237,22 @@ function TroubleshootSection(props) {
217
237
  (!isVariationA && ((_f = aiResponseState.aiResponse) === null || _f === void 0 ? void 0 : _f.conversationId) && ((_g = props.haveARHFieldsChangedForBRef) === null || _g === void 0 ? void 0 : _g.current))
218
238
  ? detailedQuestion
219
239
  : '';
220
- const firstUserMessage = isVariationA && !((_h = aiResponseState.aiResponse) === null || _h === void 0 ? void 0 : _h.conversationId) && !hasFirstMessageSentRef.current
240
+ const firstUserMessage = isVariationA &&
241
+ !((_h = aiResponseState.aiResponse) === null || _h === void 0 ? void 0 : _h.conversationId) &&
242
+ !hasFirstMessageSentRef.current &&
243
+ isFunctionalCookieAccepted()
221
244
  ? detailedQuestion
222
245
  : '';
246
+ useEffect(() => {
247
+ var _a;
248
+ if (!isFunctionalCookieAccepted() && activeSessionId) {
249
+ const sessionDetails = (_a = previousSessions.data[activeSessionId]) === null || _a === void 0 ? void 0 : _a.sessionDetails;
250
+ updateSession(sessionRestoreDispatch, activeSessionId, sessionDetails, {
251
+ conversationId: ARHConversationErrorType.FUNCTIONAL_COOKIE_NOT_ACCEPTED,
252
+ });
253
+ }
254
+ // eslint-disable-next-line react-hooks/exhaustive-deps
255
+ }, [activeSessionId]);
223
256
  // Reset haveNewARHFieldsChangedRef after 100ms on mount
224
257
  useEffect(() => {
225
258
  const timer = setTimeout(() => {
@@ -255,7 +288,7 @@ function TroubleshootSection(props) {
255
288
  appEnv: Env.getEnvName(),
256
289
  showWelcomeMessage: false,
257
290
  firstUserMessage: firstUserMessage,
258
- conversationId: (_l = (_k = aiResponseState.aiResponse) === null || _k === void 0 ? void 0 : _k.conversationId) !== null && _l !== void 0 ? _l : '',
291
+ conversationId: (_l = getValidUUID((_k = aiResponseState.aiResponse) === null || _k === void 0 ? void 0 : _k.conversationId)) !== null && _l !== void 0 ? _l : '',
259
292
  latestUserMessage: latestUserMessage,
260
293
  enableHeaderMenu: false,
261
294
  enableTheme: false,
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/reducer/AttachmentHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AttachmentHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/reducer/AttachmentHelper.ts"],"names":[],"mappings":"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"}
@@ -370,10 +370,6 @@ export function restoreFilesFromSession(dispatch, sessionId) {
370
370
  attachments.forEach((item) => {
371
371
  if (item.status !== 'COMPLETED')
372
372
  return;
373
- const attachmentSource = item.source;
374
- if (attachmentSource != null && String(attachmentSource).toLowerCase() === 'aisure') {
375
- return;
376
- }
377
373
  const localFile = {
378
374
  name: item.fileName,
379
375
  size: item.size,
@@ -1 +1 @@
1
- {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAGH,eAAe,EAIlB,MAAM,iCAAiC,CAAC;AAWzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBA4EjC;kBA5EQ,WAAW;;;AA8EpB,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAGH,eAAe,EAIlB,MAAM,iCAAiC,CAAC;AAUzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBAoEjC;kBApEQ,WAAW;;;AAsEpB,eAAe,WAAW,CAAC"}
@@ -1,4 +1,3 @@
1
- import { GlobalMetadataStateContext } from '@rh-support/react-context';
2
1
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
3
2
  import { PreviousCaseTypes } from '@rh-support/utils';
4
3
  import isEmpty from 'lodash/isEmpty';
@@ -10,7 +9,6 @@ import { RouteContext } from '../../context/RouteContext';
10
9
  import { TCStateContext } from '../../context/TopContentContext';
11
10
  import { useAB } from '../../hooks/useAB';
12
11
  import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
13
- import { AISureMessageCard } from '../CaseInformation/AISureMessageCard';
14
12
  import { FileDiag } from '../CaseInformation/FileDiag';
15
13
  import { CveSidebar } from '../Cve/CveSidebar';
16
14
  import { AsideResults } from '../Recommendations/AsideResults';
@@ -22,23 +20,18 @@ import EmptyTopContentSidebar from '../Suggestions/EmptyTopContentSidebar';
22
20
  import Suggestions from '../Suggestions/Suggestions';
23
21
  const defaultProps = {};
24
22
  function WizardAside(props) {
25
- var _a;
26
23
  const { isVariationA } = useAB();
27
24
  const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
28
25
  const { topContentState: { topContent }, } = useContext(TCStateContext);
29
- const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
30
26
  const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
31
- const { isCreatingCase, caseType, isCveModalOpened, version, product } = useCaseSelector((state) => ({
27
+ const { isCreatingCase, caseType, isCveModalOpened, version } = useCaseSelector((state) => ({
32
28
  isCreatingCase: state.isCreatingCase,
33
29
  caseType: state.caseDetails.caseType,
34
30
  isCveModalOpened: state.isCveModalOpened,
35
31
  version: state.caseDetails.version,
36
- product: state.caseDetails.product,
37
32
  }), isEqual);
38
33
  const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
39
34
  const canUseSessionManagement = ability.can(resourceActions.CREATE, resources.SESSION_TRACKING);
40
- const isSecureSupportOrCSS = loggedInUsersAccount.data.hasConfirmedStatesideSupport || loggedInUsersAccount.data.secureSupport;
41
- const isOpenShiftProduct = (_a = product === null || product === void 0 ? void 0 : product.toLowerCase().includes('openshift')) !== null && _a !== void 0 ? _a : false;
42
35
  const canShowFileUploadWidget = () => canAddAttachments &&
43
36
  !props.isAttachmentUploadModalOpen &&
44
37
  !isUndefined(activeSection) &&
@@ -59,7 +52,6 @@ function WizardAside(props) {
59
52
  canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
60
53
  canShowFileUploadWidget() && React.createElement(InsightsResults, null),
61
54
  canShowFileUploadWidget() && React.createElement(FileDiag, null),
62
- !isSecureSupportOrCSS && isOpenShiftProduct && React.createElement(AISureMessageCard, null),
63
55
  activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
64
56
  !isCveModalOpened && React.createElement(CveSidebar, null),
65
57
  activeSection === AppRouteSections.RESOURCES && React.createElement(CveSidebar, null),
@@ -1 +1 @@
1
- {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAmE,MAAM,OAAO,CAAC;AAExF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAM3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5E,kCAAkC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,gCAAgC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA+atC;kBA/aQ,gBAAgB;;;AAibzB,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAmE,MAAM,OAAO,CAAC;AAExF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAM3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5E,kCAAkC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,gCAAgC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAkbtC;kBAlbQ,gBAAgB;;;AAobzB,eAAe,gBAAgB,CAAC"}
@@ -11,7 +11,7 @@ import { pcm } from '@cee-eng/hydrajs';
11
11
  import { Button, ButtonVariant, WizardFooterWrapper } from '@patternfly/react-core';
12
12
  import { useFetch, usePrevious } from '@rh-support/components';
13
13
  import { GlobalMetadataStateContext, useCanCreateCase } from '@rh-support/react-context';
14
- import { dtmTrackEventCaseCreationStepEncountered, getResTypeFromUrl, PreviousToNewCaseTypeMap, scrollIntoView, } from '@rh-support/utils';
14
+ import { dtmTrackEventCaseCreationStepEncountered, getResTypeFromUrl, isFunctionalCookieAccepted, PreviousToNewCaseTypeMap, scrollIntoView, } from '@rh-support/utils';
15
15
  import find from 'lodash/find';
16
16
  import isEmpty from 'lodash/isEmpty';
17
17
  import isEqual from 'lodash/isEqual';
@@ -283,7 +283,10 @@ function WizardNavigation(props) {
283
283
  React.createElement(WizardFooterWrapper, null,
284
284
  shouldShowNewARHFlowFooterButtons ? (React.createElement(React.Fragment, null,
285
285
  props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack({}), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}`, type: "button" }, t('Go back'))),
286
- React.createElement("button", { onClick: props.onSeeMoreResources, className: "btn btn-app btn-primary main-nav-button", type: "button", disabled: props.aiServicesAvailable && !aiResponseState.hasChunkReceived && !aiResponseState.error }, t('See more resources')))) : props.isAIChatMode && activeSection === AppRouteSections.RESOURCES ? (isCaseCreate ? (React.createElement("span", null,
286
+ React.createElement("button", { onClick: props.onSeeMoreResources, className: "btn btn-app btn-primary main-nav-button", type: "button", disabled: isFunctionalCookieAccepted() &&
287
+ props.aiServicesAvailable &&
288
+ !aiResponseState.hasChunkReceived &&
289
+ !aiResponseState.error }, t('See more resources')))) : props.isAIChatMode && activeSection === AppRouteSections.RESOURCES ? (isCaseCreate ? (React.createElement("span", null,
287
290
  React.createElement(Trans, { i18nKey: "<span>Return to</span> <button>case creation</button>", components: {
288
291
  span: React.createElement("span", { className: "return-to-case-text" }),
289
292
  button: (React.createElement(Button, { className: "return-to-case-btn", variant: "link", component: "a", onClick: props.onReturnToCaseCreation })),
@@ -462,3 +462,34 @@ body:has(.pf-chatbot--embedded) .hide-for-askredhat {
462
462
  .ask-redhat-core .pf-chatbot__expand-collapse-button:focus .pf-v6-c-button__text {
463
463
  color: #151515 !important;
464
464
  }
465
+
466
+ .ask-redhat-cookie-error {
467
+ display: flex;
468
+ flex-direction: column;
469
+ align-items: center;
470
+ gap: 16px;
471
+ padding: 24px;
472
+ border: 1px solid var(--pf-v6-global--BorderColor--100, #c7c7c7);
473
+ border-radius: var(--pf-t--global--border--radius--small, 6px);
474
+ }
475
+
476
+ .ask-redhat-cookie-error__heading {
477
+ display: flex;
478
+ align-items: center;
479
+ justify-content: center;
480
+ gap: 8px;
481
+ }
482
+
483
+ .ask-redhat-cookie-error__heading h4 {
484
+ margin: 0;
485
+ font-size: 16px;
486
+ font-weight: 500;
487
+ }
488
+
489
+ .ask-redhat-cookie-error__body {
490
+ text-align: center;
491
+ font-size: 14px;
492
+ line-height: 21px;
493
+ max-width: 535px;
494
+ margin: 0;
495
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useARHResponse.d.ts","sourceRoot":"","sources":["../../../src/hooks/useARHResponse.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,wEAQ5B;IACC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;CACf;;CAgGA,CAAC"}
1
+ {"version":3,"file":"useARHResponse.d.ts","sourceRoot":"","sources":["../../../src/hooks/useARHResponse.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,wEAQ5B;IACC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;CACf;;CAoGA,CAAC"}
@@ -8,11 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { askRHDirectAIResponse, getRHDirectConversationQuota, } from '@ifd-ui/ask-redhat-core';
11
+ import { getValidUUID, isFunctionalCookieAccepted } from '@rh-support/utils';
11
12
  import i18n from 'i18next';
12
13
  import { useCallback, useContext } from 'react';
13
14
  import { generateAIQuestion } from '../components/wizardLayout/WizardMain';
14
15
  import { useAIResponseDispatch } from '../context/AIResponseContext';
15
16
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../context/SessionRestoreContext';
17
+ import { ARHConversationErrorType } from '../reducers/AIResponseConstNTypes';
16
18
  import { streamingChunkReceived, streamingCompleted, streamingError, streamingStarted, updateQuotaLimit, } from '../reducers/AIResponseReducer';
17
19
  import { updateSession } from '../reducers/SessionRestoreReducer';
18
20
  /**
@@ -22,9 +24,21 @@ export const useARHResponse = ({ activeSection, product, version, summary, issue
22
24
  const aiResponseDispatch = useAIResponseDispatch();
23
25
  const { sessionRestore } = useContext(SessionRestoreStateContext);
24
26
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
27
+ const persistConversationId = useCallback((conversationId) => __awaiter(void 0, void 0, void 0, function* () {
28
+ var _a;
29
+ if (!sessionRestore.activeSessionId)
30
+ return;
31
+ const sessionDetails = (_a = sessionRestore.previousSessions.data[sessionRestore.activeSessionId]) === null || _a === void 0 ? void 0 : _a.sessionDetails;
32
+ yield updateSession(sessionRestoreDispatch, sessionRestore.activeSessionId, sessionDetails, {
33
+ conversationId,
34
+ });
35
+ }), [sessionRestore.activeSessionId, sessionRestore.previousSessions.data, sessionRestoreDispatch]);
25
36
  const fetchARHResponse = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
26
37
  var _a;
27
38
  try {
39
+ if (!isFunctionalCookieAccepted()) {
40
+ return;
41
+ }
28
42
  // Check conversation quota
29
43
  const quotaResponse = yield getRHDirectConversationQuota(config);
30
44
  // Update quota limit in state
@@ -32,6 +46,7 @@ export const useARHResponse = ({ activeSection, product, version, summary, issue
32
46
  // Check if quota is exceeded
33
47
  if (quotaResponse.quota.used >= quotaResponse.quota.limit) {
34
48
  aiResponseDispatch(streamingError('Chat limit reached', true));
49
+ yield persistConversationId(ARHConversationErrorType.ARH_LIMIT_EXCEEDED);
35
50
  return;
36
51
  }
37
52
  }
@@ -46,26 +61,21 @@ export const useARHResponse = ({ activeSection, product, version, summary, issue
46
61
  aiResponseDispatch(streamingChunkReceived(chunk, accumulatedResponse));
47
62
  },
48
63
  onComplete: (finalResponse) => __awaiter(void 0, void 0, void 0, function* () {
49
- var _a;
50
64
  aiResponseDispatch(streamingCompleted(finalResponse));
51
- // Store conversationId in session for persistence
52
- if (finalResponse.conversationId && sessionRestore.activeSessionId) {
53
- const sessionDetails = (_a = sessionRestore.previousSessions.data[sessionRestore.activeSessionId]) === null || _a === void 0 ? void 0 : _a.sessionDetails;
54
- const newSession = {
55
- conversationId: finalResponse.conversationId,
56
- };
57
- yield updateSession(sessionRestoreDispatch, sessionRestore.activeSessionId, sessionDetails, newSession);
65
+ if (finalResponse.conversationId) {
66
+ yield persistConversationId(finalResponse.conversationId);
58
67
  }
59
68
  }),
60
- onError: (error) => {
69
+ onError: (error) => __awaiter(void 0, void 0, void 0, function* () {
61
70
  aiResponseDispatch(streamingError(error));
62
- },
71
+ yield persistConversationId(ARHConversationErrorType.AI_RESPONSE_ERROR);
72
+ }),
63
73
  };
64
74
  aiResponseDispatch(streamingStarted());
65
75
  try {
66
76
  // Get existing conversation ID from session
67
77
  const currentSessionItem = sessionRestore.previousSessions.data[sessionRestore.activeSessionId];
68
- const existingConversationId = (_a = currentSessionItem === null || currentSessionItem === void 0 ? void 0 : currentSessionItem.session) === null || _a === void 0 ? void 0 : _a.conversationId;
78
+ const existingConversationId = getValidUUID((_a = currentSessionItem === null || currentSessionItem === void 0 ? void 0 : currentSessionItem.session) === null || _a === void 0 ? void 0 : _a.conversationId);
69
79
  yield askRHDirectAIResponse(detailedQuestion, config, true, // response to be streamed or not
70
80
  existingConversationId, streamingCallbacks);
71
81
  }
@@ -81,10 +91,10 @@ export const useARHResponse = ({ activeSection, product, version, summary, issue
81
91
  issue,
82
92
  caseType,
83
93
  aiResponseDispatch,
94
+ persistConversationId,
95
+ config,
84
96
  sessionRestore.activeSessionId,
85
97
  sessionRestore.previousSessions.data,
86
- sessionRestoreDispatch,
87
- config,
88
98
  ]);
89
99
  return { fetchARHResponse };
90
100
  };
@@ -16,6 +16,11 @@ export interface IAIResponseState {
16
16
  hasChunkReceived?: boolean;
17
17
  }
18
18
  export declare const initialAIResponseState: IAIResponseState;
19
+ export declare enum ARHConversationErrorType {
20
+ AI_RESPONSE_ERROR = "error_in_arh_ai_response",
21
+ FUNCTIONAL_COOKIE_NOT_ACCEPTED = "functional_cookie_not_accepted",
22
+ ARH_LIMIT_EXCEEDED = "arh_limit_exceeded"
23
+ }
19
24
  export declare enum AIResponseConstants {
20
25
  clearAIResponse = "clearAIResponse",
21
26
  streamingStarted = "streamingStarted",
@@ -1 +1 @@
1
- {"version":3,"file":"AIResponseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAWpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IACrD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;CAC9C;AAGD,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,aAAa,EAAE,qBAAqB,CAAC;KACxC,CAAC;CACL;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACtD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,OAAO,EAAE;QACL,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,+BAAgC,SAAQ,WAAW;IAChE,IAAI,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;IACnD,OAAO,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAED,MAAM,WAAW,kCAAmC,SAAQ,WAAW;IACnE,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC5D,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAC/C,OAAO,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC3D,IAAI,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAC9C,OAAO,EAAE;QACL,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,GAClC,uBAAuB,GACvB,2BAA2B,GAC3B,0BAA0B,CAAC"}
1
+ {"version":3,"file":"AIResponseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAWpC,CAAC;AAEF,oBAAY,wBAAwB;IAChC,iBAAiB,6BAA6B;IAC9C,8BAA8B,mCAAmC;IACjE,kBAAkB,uBAAuB;CAC5C;AAGD,oBAAY,mBAAmB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IACrD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;CAC9C;AAGD,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,aAAa,EAAE,qBAAqB,CAAC;KACxC,CAAC;CACL;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACtD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,OAAO,EAAE;QACL,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,+BAAgC,SAAQ,WAAW;IAChE,IAAI,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;IACnD,OAAO,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAED,MAAM,WAAW,kCAAmC,SAAQ,WAAW;IACnE,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC5D,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAC/C,OAAO,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC3D,IAAI,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAC9C,OAAO,EAAE;QACL,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,GAClC,uBAAuB,GACvB,2BAA2B,GAC3B,0BAA0B,CAAC"}
@@ -11,6 +11,12 @@ export const initialAIResponseState = {
11
11
  quotaLimit: undefined,
12
12
  hasChunkReceived: false,
13
13
  };
14
+ export var ARHConversationErrorType;
15
+ (function (ARHConversationErrorType) {
16
+ ARHConversationErrorType["AI_RESPONSE_ERROR"] = "error_in_arh_ai_response";
17
+ ARHConversationErrorType["FUNCTIONAL_COOKIE_NOT_ACCEPTED"] = "functional_cookie_not_accepted";
18
+ ARHConversationErrorType["ARH_LIMIT_EXCEEDED"] = "arh_limit_exceeded";
19
+ })(ARHConversationErrorType || (ARHConversationErrorType = {}));
14
20
  // Action Constants
15
21
  export var AIResponseConstants;
16
22
  (function (AIResponseConstants) {
@@ -1323,8 +1323,3 @@ svg.pf-v6-u-ml-xs.icon-size {
1323
1323
  .send-notifications-add:disabled {
1324
1324
  color: var(--pf-v6-c-button--disabled--Color) !important;
1325
1325
  }
1326
-
1327
- .aisure-message-card {
1328
- border-radius: var(--global-border-radius-medium, 16px);
1329
- background: #f4f4f4;
1330
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.6.231",
3
+ "version": "2.6.232",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -21,7 +21,7 @@
21
21
  "lib/**/*"
22
22
  ],
23
23
  "peerDependencies": {
24
- "@cee-eng/hydrajs": "4.18.111",
24
+ "@cee-eng/hydrajs": "4.18.107",
25
25
  "@cee-eng/ui-toolkit": "1.1.9",
26
26
  "@patternfly/patternfly": "6.2.1",
27
27
  "@patternfly/react-core": "6.2.1",
@@ -45,9 +45,9 @@
45
45
  "react-virtualized": "^9.22.5"
46
46
  },
47
47
  "dependencies": {
48
- "@cee-eng/hydrajs": "4.18.111",
48
+ "@cee-eng/hydrajs": "4.18.107",
49
49
  "@cee-eng/ui-toolkit": "1.1.9",
50
- "@ifd-ui/ask-redhat-core": "^0.0.50",
50
+ "@ifd-ui/ask-redhat-core": "^0.0.55",
51
51
  "@patternfly/patternfly": "6.2.1",
52
52
  "@patternfly/react-core": "6.2.1",
53
53
  "@patternfly/react-table": "6.2.1",
@@ -55,11 +55,11 @@
55
55
  "@progress/kendo-licensing": "1.3.5",
56
56
  "@progress/kendo-react-pdf": "^5.16.0",
57
57
  "@redux-devtools/extension": "^3.3.0",
58
- "@rh-support/components": "2.5.140",
59
- "@rh-support/react-context": "2.5.230",
58
+ "@rh-support/components": "2.5.142",
59
+ "@rh-support/react-context": "2.5.232",
60
60
  "@rh-support/types": "2.0.15",
61
- "@rh-support/user-permissions": "2.5.100",
62
- "@rh-support/utils": "2.5.80",
61
+ "@rh-support/user-permissions": "2.5.102",
62
+ "@rh-support/utils": "2.5.82",
63
63
  "@types/react-redux": "^7.1.33",
64
64
  "@types/redux": "^3.6.0",
65
65
  "date-fns": "3.6.0",
@@ -129,5 +129,5 @@
129
129
  "defaults and supports es6-module",
130
130
  "maintained node versions"
131
131
  ],
132
- "gitHead": "4abc049d201b3eef5eb7c902a87758087353ad7a"
132
+ "gitHead": "ae327ab5b9d97683c58e26d6acbe0d6f84dca3f7"
133
133
  }
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface IProps {
3
- className?: string;
4
- }
5
- export declare function AISureMessageCard({ className }: IProps): React.JSX.Element;
6
- export {};
7
- //# sourceMappingURL=AISureMessageCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AISureMessageCard.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/AISureMessageCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,qBAiCtD"}
@@ -1,15 +0,0 @@
1
- import { Button, Card, CardBody, Title } from '@patternfly/react-core';
2
- import ExternalLinkAltIcon from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
3
- import React from 'react';
4
- import { Trans, useTranslation } from 'react-i18next';
5
- export function AISureMessageCard({ className }) {
6
- const { t } = useTranslation();
7
- const analyzeUrl = `${window.location.origin}${window.location.pathname}#/analyze`;
8
- return (React.createElement(Card, { className: `aisure-message-card pf-v6-u-mb-md${className ? ` ${className}` : ''}`, "data-testid": "aisure-message-card" },
9
- React.createElement(CardBody, null,
10
- React.createElement(Title, { headingLevel: "h3", size: "md", className: "pf-v6-u-mb-sm" },
11
- React.createElement(Trans, null, "Review OpenShift Cluster")),
12
- React.createElement("p", { className: "pf-v6-u-mb-md" }, t('Run a deep scan of your cluster to obtain AI generated Technical Supportability Review report, with criticality rating, impact, recommendations and actionable steps.')),
13
- React.createElement(Button, { variant: "primary", component: "a", href: analyzeUrl, target: "_blank", rel: "noopener noreferrer", icon: React.createElement(ExternalLinkAltIcon, null), iconPosition: "end", "data-tracking-id": "review-cluster-see-analyze-tab" },
14
- React.createElement(Trans, null, "See Analyze tab")))));
15
- }