@rh-support/troubleshoot 2.6.57 → 2.6.59

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 (34) hide show
  1. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  2. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +4 -4
  3. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +5 -3
  5. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +1 -1
  6. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +1 -1
  7. package/lib/esm/components/Recommendations/AsideResults.js +1 -1
  8. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  9. package/lib/esm/components/Recommendations/Recommendations.js +3 -5
  10. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +1 -1
  11. package/lib/esm/components/TroubleshootSection/AskRedHat.js +17 -5
  12. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  13. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -1
  14. package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts.map +1 -1
  15. package/lib/esm/components/TroubleshootSection/UserFeedback.js +1 -1
  16. package/lib/esm/components/TroubleshootSection/UserFeedbackComplete.d.ts.map +1 -1
  17. package/lib/esm/components/TroubleshootSection/UserFeedbackComplete.js +2 -2
  18. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +1 -1
  19. package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
  20. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  21. package/lib/esm/components/wizardLayout/WizardMain.js +6 -4
  22. package/lib/esm/constants/askRedHatMessages.d.ts +4 -4
  23. package/lib/esm/constants/askRedHatMessages.js +4 -4
  24. package/lib/esm/css/AskRedHat.css +21 -0
  25. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +14 -2
  26. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
  27. package/lib/esm/reducers/AIResponseConstNTypes.js +3 -0
  28. package/lib/esm/reducers/AIResponseReducer.d.ts +2 -0
  29. package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
  30. package/lib/esm/reducers/AIResponseReducer.js +13 -0
  31. package/lib/esm/scss/_main.scss +1 -1
  32. package/lib/esm/utils/caseDetailsCacheUtils.d.ts.map +1 -1
  33. package/lib/esm/utils/caseDetailsCacheUtils.js +1 -0
  34. package/package.json +7 -7
@@ -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,qBA6Y7C"}
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,qBAgZ7C"}
@@ -194,18 +194,18 @@ export function CaseDetailsAside(props) {
194
194
  React.createElement("div", { className: "case-detail-collapse-panel" },
195
195
  React.createElement("p", { className: "case-detail-collapse-label" },
196
196
  React.createElement(Trans, null, "Collapse")),
197
- React.createElement(OpenDrawerRightIcon, { className: "pf-v6-u-ml-auto" })))) : (React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-column sidebar-section-collapsed" },
197
+ React.createElement(OpenDrawerRightIcon, { className: "pf-v6-u-ml-auto" })))) : (React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-flex-direction-column sidebar-section-collapsed pf-v6-u-align-items-center pf-v6-u-justify-content-center" },
198
198
  React.createElement(Tooltip, { content: t('Expand sidebar'), position: "left" },
199
199
  React.createElement("div", { className: "case-detail-collapse-panel pf-v6-u-mb-xs" },
200
200
  React.createElement(OpenDrawerRightIcon, { className: "mirrored" }))),
201
201
  canSeeToggleCustomerView && (React.createElement(Tooltip, { content: viewAsCustomer ? t('External view') : t('Internal view'), position: "left" },
202
- React.createElement(Button, { icon: React.createElement(Icon, { size: "md", className: viewAsCustomer ? 'blueLock' : 'greyLock' },
202
+ React.createElement(Button, { icon: React.createElement(Icon, { size: "lg", className: `${viewAsCustomer ? 'blueLock' : 'greyLock'} pf-v6-u-p-sm` },
203
203
  React.createElement(LockIcon, null)), variant: "link", onClick: () => setSectionToScollRef(toggleCustomerViewRef), className: "sidebar-section-toggle-btn", "aria-label": viewAsCustomer ? t('External view') : t('Internal view') }))),
204
204
  !isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
205
- React.createElement(Button, { icon: React.createElement(Icon, { size: "md" },
205
+ React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
206
206
  React.createElement(ListIcon, null)), variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn", "aria-label": t('Top recommendations') }))),
207
207
  !caseEscalations.isFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
208
- React.createElement(Button, { icon: React.createElement(Icon, { size: "md" },
208
+ React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
209
209
  React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') })))))),
210
210
  React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
211
211
  React.createElement("div", { className: "grid-aside-content" },
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAwE3E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAUD,eAAO,MAAM,aAAa,+EAihBxB,CAAC"}
1
+ {"version":3,"file":"CaseSolutions.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseSolutions/CaseSolutions.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAwE3E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAUD,eAAO,MAAM,aAAa,+EAshBxB,CAAC"}
@@ -19,7 +19,7 @@ var __rest = (this && this.__rest) || function (s, e) {
19
19
  return t;
20
20
  };
21
21
  import { search } from '@cee-eng/hydrajs';
22
- import { Button, Card, CardBody, CardExpandableContent, CardHeader, Modal, ModalFooter, ModalVariant, } from '@patternfly/react-core';
22
+ import { Button, Card, CardBody, CardExpandableContent, CardHeader, Label, Modal, ModalFooter, ModalVariant, } from '@patternfly/react-core';
23
23
  import { PaginatedList, ToastNotification } from '@rh-support/components';
24
24
  import { useGlobalStateContext } from '@rh-support/react-context';
25
25
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -311,8 +311,10 @@ export const CaseSolutions = forwardRef((props, ref) => {
311
311
  ] })))))),
312
312
  pinnedRecommendations.length > 0 && (React.createElement(Card, { isExpanded: pinnedOpen },
313
313
  React.createElement(CardHeader, { className: "pf-v6-u-display-flex", onExpand: () => setPinnedOpen((pre) => !pre) },
314
- React.createElement("span", null, canLinkUnlink ? (React.createElement(Trans, null, "Pinned by customer")) : (React.createElement(Trans, null, "My pinned recommendations"))),
315
- React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm" }, pinnedRecommendations.length)),
314
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading" },
315
+ React.createElement("span", null, canLinkUnlink ? (React.createElement(Trans, null, "Pinned by customer")) : (React.createElement(Trans, null, "My pinned recommendations"))),
316
+ React.createElement("span", { className: "badge-item pf-v6-u-font-size-sm pf-v6-u-mx-sm", style: { lineHeight: '18px' } },
317
+ React.createElement(Label, null, pinnedRecommendations.length)))),
316
318
  React.createElement(CardExpandableContent, null,
317
319
  React.createElement(CardBody, null, !hasPin ? (!canLinkUnlink ? (React.createElement(Trans, null, "When you save a recommended article or solution, you'll see it here. Saved items display only in this case and are not saved for later.")) : (React.createElement(React.Fragment, null))) : (React.createElement(PaginatedList, { id: "case-details-pinned-recommendations", listItems: pinnedRecommendations.map((rec, index) => canLinkUnlink
318
320
  ? renderPinnedByCustomerRedhatterView(rec, index, 'pinned-recommendations')
@@ -24,7 +24,7 @@ export const ESSRemoteSession = forwardRef((props, ref) => {
24
24
  // ESS RS Aside Section Body
25
25
  const ESSRemoteSessionSectionBody = (React.createElement(Card, { className: "card-support escalations", ref: ref },
26
26
  React.createElement(CardHeader, null,
27
- React.createElement("h3", { className: "card-heading case-detail-panel-card-heading pf-v6-u-display-flex pf-v6-u-justify-content-space-between" },
27
+ React.createElement("h3", { className: "card-heading case-detail-panel-card-heading pf-v6-u-display-flex pf-v6-u-justify-content-space-between pf-v6-u-align-items-center" },
28
28
  t('Remote session request'),
29
29
  React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
30
30
  React.createElement(InfoCircleIcon, null)))),
@@ -24,7 +24,7 @@ export const RemoteSessionAgreement = forwardRef((props, ref) => {
24
24
  // RSA Aside Section Body
25
25
  const RemoteSessionAgreementSectionBody = (React.createElement(Card, { className: "card-support escalations", ref: ref },
26
26
  React.createElement(CardHeader, null,
27
- React.createElement("h3", { className: "card-heading pf-v6-u-display-flex pf-v6-u-justify-content-space-between case-detail-panel-card-heading" },
27
+ React.createElement("h3", { className: "card-heading pf-v6-u-display-flex pf-v6-u-justify-content-space-between case-detail-panel-card-heading pf-v6-u-align-items-center" },
28
28
  t('Remote session request'),
29
29
  React.createElement(Popover, { "aria-label": t('Remote Session Helper Info'), bodyContent: t('Before Red Hat logs into your systems to analyze your support issue during a remote session, Red Hat needs your approval and authorization for such remote access'), footerContent: React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "aria-label": t('Read more about remote sessions') }, t('Read more about remote sessions')) },
30
30
  React.createElement(InfoCircleIcon, null)))),
@@ -131,7 +131,7 @@ export function AsideResults(props) {
131
131
  const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
132
132
  if (!canShowSideRecommendations())
133
133
  return React.createElement(React.Fragment, null);
134
- return (React.createElement(Card, { className: "pf-v6-u-mt-lg pf-v6-u-mb-0" },
134
+ return (React.createElement(Card, { className: "pf-v6-u-mb-0" },
135
135
  React.createElement(CardHeader, null,
136
136
  React.createElement("h3", null, isIdea ? React.createElement(Trans, null, "Search recommendations") : React.createElement(Trans, null, "Recommended search results"))),
137
137
  React.createElement(CardBody, null,
@@ -1 +1 @@
1
- {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAevD,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYpF,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,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBA+YpD"}
1
+ {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAevD,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYpF,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,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBA8YpD"}
@@ -189,11 +189,9 @@ export default function Recommendations(props) {
189
189
  React.createElement("span", { className: "loading-text" },
190
190
  React.createElement(Spinner, { size: "sm", className: "pf-v6-u-mr-xs" }),
191
191
  ' ',
192
- React.createElement(Trans, null,
193
- recommendationState.visibleDocs.length
194
- ? 'Updating recommendations '
195
- : 'Recommending articles ',
196
- "using OpenShift AI"),
192
+ React.createElement(Trans, null, recommendationState.visibleDocs.length
193
+ ? 'Updating recommendations '
194
+ : 'Recommending articles '),
197
195
  ' ',
198
196
  React.createElement(InfoCircleIcon, { color: "black" })))) : (React.createElement(React.Fragment, null,
199
197
  React.createElement("span", { className: "ai-label-text" },
@@ -1 +1 @@
1
- {"version":3,"file":"AskRedHat.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/AskRedHat.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgC5D,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,SAAS,0BAA2B,MAAM,sBAuZtD,CAAC"}
1
+ {"version":3,"file":"AskRedHat.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/AskRedHat.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAiCvE,UAAU,MAAM;IACZ,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,SAAS,0BAA2B,MAAM,sBAqatD,CAAC"}
@@ -13,14 +13,15 @@ import { Button, Card, CardBody, CardHeader, Content, ContentVariants, EmptyStat
13
13
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
14
14
  import { useFetch } from '@rh-support/components';
15
15
  import isEqual from 'lodash/isEqual';
16
- import React, { useContext, useRef, useState } from 'react';
16
+ import React, { useContext, useEffect, useRef, useState } from 'react';
17
17
  import { MODAL_MESSAGES, QUICK_RESPONSES, TOOLTIP_MESSAGES } from '../../constants/askRedHatMessages';
18
- import { useAIResponseState } from '../../context/AIResponseContext';
18
+ import { useAIResponseDispatch, useAIResponseState } from '../../context/AIResponseContext';
19
19
  import { useCaseSelector } from '../../context/CaseContext';
20
20
  import { RouteContext } from '../../context/RouteContext';
21
21
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
22
22
  import { useARHResponse } from '../../hooks/useARHResponse';
23
23
  import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
24
+ import { addSubmittedFeedbackType, clearSubmittedFeedbackTypes } from '../../reducers/AIResponseReducer';
24
25
  import { appSourceId_ARH } from '../../reducers/CaseConstNTypes';
25
26
  import { createOrUpdateSessionResources } from '../../reducers/SessionRestoreReducer';
26
27
  import { CollapseIcon } from './icons/CollapseIcon';
@@ -46,10 +47,11 @@ export const AskRedHat = ({ onChatWithAIClick }) => {
46
47
  const [showFeedbackCard, setShowFeedbackCard] = useState(false);
47
48
  const [showFeedbackComplete, setShowFeedbackComplete] = useState(false);
48
49
  const [feedbackType, setFeedbackType] = useState('');
49
- const [submittedFeedbackTypes, setSubmittedFeedbackTypes] = useState([]);
50
50
  const [isSubmittingFeedback, setIsSubmittingFeedback] = useState(false);
51
51
  const aiResponseState = useAIResponseState();
52
52
  const contentRef = useRef(null);
53
+ const storedMessageIdRef = useRef(undefined);
54
+ const aiResponseDispatch = useAIResponseDispatch();
53
55
  const { routeState: { isCaseCreate, activeSection }, } = useContext(RouteContext);
54
56
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
55
57
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
@@ -117,6 +119,16 @@ export const AskRedHat = ({ onChatWithAIClick }) => {
117
119
  const aiResponse = aiResponseState.aiResponse;
118
120
  const messageId = aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.messageId;
119
121
  const conversationId = aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.conversationId;
122
+ useEffect(() => {
123
+ const previousStoredValue = storedMessageIdRef.current;
124
+ if (messageId !== storedMessageIdRef.current && messageId !== undefined) {
125
+ storedMessageIdRef.current = messageId;
126
+ }
127
+ if (previousStoredValue !== undefined) {
128
+ aiResponseDispatch(clearSubmittedFeedbackTypes());
129
+ }
130
+ // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ }, [messageId]);
120
132
  // Use accumulated response if streaming, otherwise use the final response
121
133
  const answer = aiResponseState.isStreaming && aiResponseState.accumulatedResponse
122
134
  ? aiResponseState.accumulatedResponse
@@ -138,7 +150,7 @@ export const AskRedHat = ({ onChatWithAIClick }) => {
138
150
  yield sendRHDirectMessageFeedback(conversationId, messageId, payload, config);
139
151
  setShowFeedbackCard(false);
140
152
  setShowFeedbackComplete(true);
141
- setSubmittedFeedbackTypes((prev) => [...prev, feedbackType]);
153
+ aiResponseDispatch(addSubmittedFeedbackType(feedbackType));
142
154
  }
143
155
  catch (error) {
144
156
  setShowFeedbackCard(false);
@@ -227,7 +239,7 @@ export const AskRedHat = ({ onChatWithAIClick }) => {
227
239
  React.createElement(CardBody, null,
228
240
  React.createElement("p", null, source.snippet)))))))),
229
241
  React.createElement("div", { className: "response-actions-wrapper" },
230
- React.createElement(ResponseActions, { actions: responseActions, submittedFeedbackTypes: submittedFeedbackTypes })))),
242
+ React.createElement(ResponseActions, { actions: responseActions, submittedFeedbackTypes: aiResponseState.submittedFeedbackTypes })))),
231
243
  React.createElement("div", { className: "ask-redhat-footer-wrapper" },
232
244
  React.createElement("div", { className: "ask-redhat-footer" },
233
245
  React.createElement("p", { className: "ask-redhat-footer-text" }, "Want to continue the conversation? Dive deeper with our AI assistant"),
@@ -1 +1 @@
1
- {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAUrD,OAAO,KAA6B,MAAM,OAAO,CAAC;AAclD,UAAU,MAAM;IACZ,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;CAC1C;AAUD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAuLzC;kBAvLQ,mBAAmB;;;AA0L5B,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AAUrD,OAAO,KAA6B,MAAM,OAAO,CAAC;AAclD,UAAU,MAAM;IACZ,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;CAC1C;AAUD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAwLzC;kBAxLQ,mBAAmB;;;AA2L5B,eAAe,mBAAmB,CAAC"}
@@ -107,6 +107,7 @@ function TroubleshootSection(props) {
107
107
  conversationId: ((_e = aiResponseState.aiResponse) === null || _e === void 0 ? void 0 : _e.conversationId) || undefined,
108
108
  enableHeaderMenu: false,
109
109
  enableTheme: false,
110
+ openLinkInNewTab: true,
110
111
  tokenAuth: {
111
112
  auth: {
112
113
  userInfo: (_h = (_g = (_f = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _f === void 0 ? void 0 : _f.getToken) === null || _g === void 0 ? void 0 : _g.call(_f)) !== null && _h !== void 0 ? _h : {},
@@ -125,7 +126,7 @@ function TroubleshootSection(props) {
125
126
  var _a, _b;
126
127
  (_b = (_a = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _a === void 0 ? void 0 : _a.login) === null || _b === void 0 ? void 0 : _b.call(_a);
127
128
  },
128
- onRefetchControlReady: (refetchControl) => {
129
+ onForceRefetchConversation: (refetchControl) => {
129
130
  refetchControlReady.current = refetchControl;
130
131
  },
131
132
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserFeedback.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/UserFeedback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMH,SAAS,EAET,SAAS,EAEZ,MAAM,wBAAwB,CAAC;AAChC,OAAc,EAAE,KAAK,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAGhE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS;IAC7E,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,QAAA,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,CA4EtD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"UserFeedback.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/UserFeedback.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMH,SAAS,EAET,SAAS,EAEZ,MAAM,wBAAwB,CAAC;AAChC,OAAc,EAAE,KAAK,iBAAiB,EAAY,MAAM,OAAO,CAAC;AAGhE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS;IAC7E,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,QAAA,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,CA8EtD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -21,7 +21,7 @@ const UserFeedback = (_a) => {
21
21
  React.createElement(CardHeader, { actions: {
22
22
  actions: React.createElement(CloseButton, { onClose: onClose }),
23
23
  } },
24
- React.createElement("h1", { className: "pf-chatbot__feedback-card-title" }, title)),
24
+ React.createElement("h1", { className: "pf-chatbot__feedback-card-title" }, typeof title === 'string' ? React.createElement("span", { dangerouslySetInnerHTML: { __html: title } }) : title)),
25
25
  React.createElement(CardBody, null,
26
26
  React.createElement(Form, { className: `pf-chatbot__feedback-card-form ${isCompact ? 'pf-m-compact' : ''}` },
27
27
  quickResponses && (React.createElement(QuickResponse, { quickResponses: quickResponses, onSelect: (id) => {
@@ -1 +1 @@
1
- {"version":3,"file":"UserFeedbackComplete.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/UserFeedbackComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAa,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAItD,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,yBAAyB,CAyEtE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"UserFeedbackComplete.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/UserFeedbackComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAa,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAItD,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,QAAA,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,yBAAyB,CA6EtE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -40,7 +40,7 @@ const UserFeedbackComplete = (_a) => {
40
40
  React.createElement("path", { d: "M37.8037 32.2373C42.1136 27.9273 42.1136 20.9395 37.8037 16.6295C33.4937 12.3196 26.5059 12.3196 22.196 16.6295C17.886 20.9395 17.886 27.9273 22.196 32.2373C26.5059 36.5472 33.4937 36.5472 37.8037 32.2373Z", fill: "#0066CC" }),
41
41
  React.createElement("path", { d: "M27.7803 30.1276C27.6098 30.1276 27.4497 30.0614 27.3298 29.9406L22.9465 25.5562C22.8267 25.4364 22.7595 25.2762 22.7595 25.1068C22.7595 24.9374 22.8256 24.7762 22.9465 24.6554L24.2379 23.364C24.3577 23.2442 24.5178 23.177 24.6883 23.177C24.8587 23.177 25.0168 23.2431 25.1377 23.363L27.7803 26.0056L34.861 18.9259C34.9808 18.8061 35.1409 18.7389 35.3103 18.7389C35.4798 18.7389 35.6389 18.8051 35.7597 18.9239L37.0531 20.2173C37.173 20.3361 37.2401 20.4962 37.2401 20.6677C37.2401 20.8392 37.174 20.9983 37.0531 21.1181L28.2317 29.9406C28.1119 30.0604 27.9518 30.1265 27.7823 30.1265L27.7803 30.1276Z", fill: "white" }))),
42
42
  React.createElement("div", { className: "pf-chatbot__feedback-complete-text" },
43
- React.createElement(CardTitle, { className: "pf-chatbot__feedback-complete-title" }, title),
44
- React.createElement(CardBody, { className: `pf-chatbot__feedback-complete-card-body` }, body)))));
43
+ React.createElement(CardTitle, { className: "pf-chatbot__feedback-complete-title" }, typeof title === 'string' ? React.createElement("span", { dangerouslySetInnerHTML: { __html: title } }) : title),
44
+ React.createElement(CardBody, { className: `pf-chatbot__feedback-complete-card-body` }, typeof body === 'string' ? React.createElement("span", { dangerouslySetInnerHTML: { __html: body } }) : body)))));
45
45
  };
46
46
  export default UserFeedbackComplete;
@@ -146,7 +146,7 @@ function WidgetFileUploader(props) {
146
146
  }
147
147
  }
148
148
  });
149
- return (React.createElement(Card, { id: "file-uploader-card", className: "file-diag pf-v6-u-mb-lg", onPaste: handlePaste },
149
+ return (React.createElement(Card, { id: "file-uploader-card", className: "file-diag pf-v6-u-mb-md", onPaste: handlePaste },
150
150
  React.createElement(CardHeader, { "aria-label": t('File uploader') },
151
151
  React.createElement("h3", { id: "file-uploader-title" }, props.isIdea || props.isSecureSupport ? (React.createElement(Trans, null, "File uploader")) : (React.createElement(Trans, null, "Upload a file for Red Hat to analyze")))),
152
152
  React.createElement(CardBody, { "aria-label": t('File upload area'), className: "file-upload-body" },
@@ -39,14 +39,14 @@ function WizardAside(props) {
39
39
  React.createElement("section", { className: "grid-aside-content" },
40
40
  canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
41
41
  canShowFileUploadWidget() && React.createElement(InsightsResults, null),
42
- canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-v6-u-mb-lg" }),
42
+ canShowFileUploadWidget() && React.createElement(FileDiag, null),
43
43
  activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
44
44
  !isCveModalOpened && React.createElement(CveSidebar, null),
45
45
  activeSection === AppRouteSections.RESOURCES && React.createElement(CveSidebar, null),
46
46
  canShowEARuleWidget && React.createElement(EARuleWidget, null),
47
- !(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-lg pf-v6-u-mt-0" })),
47
+ !(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-md" })),
48
48
  canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
49
- React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-lg pf-v6-u-mt-0" }))));
49
+ React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md" }))));
50
50
  }
51
51
  WizardAside.defaultProps = defaultProps;
52
52
  export default WizardAside;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAW9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcpF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,MAEpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,MAqB9F,CAAC;AAGF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,WACZ,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,YACf,MAAM,QACV,MAAM,KACb,MAwCF,CAAC;AACF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBAmWhC;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAW9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcpF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,MAEpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,MAqB9F,CAAC;AAGF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,WACZ,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,YACf,MAAM,QACV,MAAM,KACb,MAwCF,CAAC;AACF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBAqWhC;AACD,eAAe,UAAU,CAAC"}
@@ -131,6 +131,7 @@ function WizardMain(props) {
131
131
  summary: caseDetails.summary,
132
132
  issue: caseDetails.issue,
133
133
  });
134
+ const haveARHFieldsChangedRef = useRef(false);
134
135
  const handleChatWithAIClick = () => {
135
136
  props.setIsAIChatMode(true);
136
137
  };
@@ -161,7 +162,7 @@ function WizardMain(props) {
161
162
  // Check if user is not a secure support or confirmed stateside support user
162
163
  const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
163
164
  // Check if the ARH fields have changed
164
- const isARHFieldsChanged = haveARHFieldsChanged;
165
+ const isARHFieldsChanged = haveARHFieldsChangedRef.current;
165
166
  // Check if user is external and has invalid entitlements
166
167
  const isNotUnentitledExternalUser = !(props.isUserExternal && props.hasInvalidEntitlements);
167
168
  return (isRelevantSection &&
@@ -170,8 +171,8 @@ function WizardMain(props) {
170
171
  isARHFieldsChanged &&
171
172
  isNotUnentitledExternalUser);
172
173
  };
173
- // Check if any of the ARH-relevant fields have changed
174
- const haveARHFieldsChanged = React.useMemo(() => {
174
+ // Check if any of the ARH-related fields have changed
175
+ useEffect(() => {
175
176
  const hasChanged = previousARHFieldsRef.current.product !== caseDetails.product ||
176
177
  previousARHFieldsRef.current.version !== caseDetails.version ||
177
178
  previousARHFieldsRef.current.summary !== caseDetails.summary ||
@@ -183,8 +184,8 @@ function WizardMain(props) {
183
184
  summary: caseDetails.summary,
184
185
  issue: caseDetails.issue,
185
186
  };
187
+ haveARHFieldsChangedRef.current = true;
186
188
  }
187
- return hasChanged;
188
189
  }, [caseDetails.product, caseDetails.version, caseDetails.summary, caseDetails.issue]);
189
190
  useEffect(() => {
190
191
  if (!activeSection) {
@@ -300,6 +301,7 @@ function WizardMain(props) {
300
301
  // Fetch ARH response if conditions are met
301
302
  if (shouldEnableARHServices() && aiServicesAvailable) {
302
303
  yield fetchARHResponse();
304
+ haveARHFieldsChangedRef.current = false;
303
305
  }
304
306
  });
305
307
  return (React.createElement(WizardNavigation, { routeProps: props.routeProps, onNext: handleContinueClick, onBack: () => {
@@ -24,12 +24,12 @@ export declare const TOOLTIP_MESSAGES: {
24
24
  };
25
25
  export declare const MODAL_MESSAGES: {
26
26
  readonly feedback: {
27
- readonly positive: "Thank you. Any more feedback?";
28
- readonly negative: "Thank you. How can we improve?";
27
+ readonly positive: "<strong>Thank you. Any more feedback?</strong>";
28
+ readonly negative: "<strong>Thank you. How can we improve?</strong>";
29
29
  };
30
30
  readonly complete: {
31
- readonly title: "We appreciate your input.";
32
- readonly body: "It helps us improve this experience.";
31
+ readonly title: "<strong>Thank you</strong>";
32
+ readonly body: "We appreciate your input. <br />It helps us improve this experience.";
33
33
  };
34
34
  };
35
35
  //# sourceMappingURL=askRedHatMessages.d.ts.map
@@ -26,11 +26,11 @@ export const TOOLTIP_MESSAGES = {
26
26
  };
27
27
  export const MODAL_MESSAGES = {
28
28
  feedback: {
29
- positive: 'Thank you. Any more feedback?',
30
- negative: 'Thank you. How can we improve?',
29
+ positive: '<strong>Thank you. Any more feedback?</strong>',
30
+ negative: '<strong>Thank you. How can we improve?</strong>',
31
31
  },
32
32
  complete: {
33
- title: 'We appreciate your input.',
34
- body: 'It helps us improve this experience.',
33
+ title: '<strong>Thank you</strong>',
34
+ body: 'We appreciate your input. <br />It helps us improve this experience.',
35
35
  },
36
36
  };
@@ -386,6 +386,7 @@ body:has(.pf-chatbot--embedded) .pf-v6-c-wizard__main-body:last-child {
386
386
  color: #151515 !important;
387
387
  font-size: var(--global-font-size-body-sm, 12px) !important;
388
388
  align-items: center !important;
389
+ transition: background-color 0.15s ease, color 0.15s ease !important;
389
390
  }
390
391
 
391
392
  .pf-chatbot__expand-collapse-button .pf-v6-svg {
@@ -407,3 +408,23 @@ body:has(.pf-chatbot--embedded) .pf-v6-c-wizard__main-body:last-child {
407
408
  .ask-redhat-core .pf-chatbot__message-bar {
408
409
  background: #fff !important;
409
410
  }
411
+
412
+ .ask-redhat-core .pf-chatbot__message-and-actions .pf-v6-c-button__icon {
413
+ background: inherit !important;
414
+ padding-left: 0 !important;
415
+ }
416
+
417
+ .ask-redhat-core .pf-chatbot__expand-collapse-button:hover,
418
+ .ask-redhat-core .pf-chatbot__expand-collapse-button:focus {
419
+ background-color: #e6e6e6 !important;
420
+ }
421
+
422
+ .ask-redhat-core .pf-chatbot__expand-collapse-button:hover .pf-v6-c-button__text,
423
+ .ask-redhat-core .pf-chatbot__expand-collapse-button:focus .pf-v6-c-button__text {
424
+ color: #151515 !important;
425
+ }
426
+
427
+ .pf-chatbot__feedback-card-title strong,
428
+ .pf-chatbot__feedback-complete-title strong {
429
+ font-weight: 700 !important;
430
+ }
@@ -10,6 +10,7 @@ export interface IAIResponseState {
10
10
  streamingChunk?: string;
11
11
  accumulatedResponse?: string;
12
12
  isStreaming?: boolean;
13
+ submittedFeedbackTypes: string[];
13
14
  }
14
15
  export declare const initialAIResponseState: IAIResponseState;
15
16
  export declare enum AIResponseConstants {
@@ -17,7 +18,9 @@ export declare enum AIResponseConstants {
17
18
  streamingStarted = "streamingStarted",
18
19
  streamingChunkReceived = "streamingChunkReceived",
19
20
  streamingCompleted = "streamingCompleted",
20
- streamingError = "streamingError"
21
+ streamingError = "streamingError",
22
+ addSubmittedFeedbackType = "addSubmittedFeedbackType",
23
+ clearSubmittedFeedbackTypes = "clearSubmittedFeedbackTypes"
21
24
  }
22
25
  export interface IClearAIResponseAction extends IActionType {
23
26
  type: AIResponseConstants.clearAIResponse;
@@ -44,5 +47,14 @@ export interface IStreamingErrorAction extends IActionType {
44
47
  error: string;
45
48
  };
46
49
  }
47
- export type IAIResponseActionType = IClearAIResponseAction | IStreamingStartedAction | IStreamingChunkReceivedAction | IStreamingCompletedAction | IStreamingErrorAction;
50
+ export interface IAddSubmittedFeedbackTypeAction extends IActionType {
51
+ type: AIResponseConstants.addSubmittedFeedbackType;
52
+ payload: {
53
+ feedbackType: string;
54
+ };
55
+ }
56
+ export interface IClearSubmittedFeedbackTypesAction extends IActionType {
57
+ type: AIResponseConstants.clearSubmittedFeedbackTypes;
58
+ }
59
+ export type IAIResponseActionType = IClearAIResponseAction | IStreamingStartedAction | IStreamingChunkReceivedAction | IStreamingCompletedAction | IStreamingErrorAction | IAddSubmittedFeedbackTypeAction | IClearSubmittedFeedbackTypesAction;
48
60
  //# sourceMappingURL=AIResponseConstNTypes.d.ts.map
@@ -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;CACzB;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAOpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;CACpC;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,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,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;CACpC;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAQpC,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;CAC9D;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,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,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,CAAC"}
@@ -6,6 +6,7 @@ export const initialAIResponseState = {
6
6
  streamingChunk: '',
7
7
  accumulatedResponse: '',
8
8
  isStreaming: false,
9
+ submittedFeedbackTypes: [],
9
10
  };
10
11
  // Action Constants
11
12
  export var AIResponseConstants;
@@ -15,4 +16,6 @@ export var AIResponseConstants;
15
16
  AIResponseConstants["streamingChunkReceived"] = "streamingChunkReceived";
16
17
  AIResponseConstants["streamingCompleted"] = "streamingCompleted";
17
18
  AIResponseConstants["streamingError"] = "streamingError";
19
+ AIResponseConstants["addSubmittedFeedbackType"] = "addSubmittedFeedbackType";
20
+ AIResponseConstants["clearSubmittedFeedbackTypes"] = "clearSubmittedFeedbackTypes";
18
21
  })(AIResponseConstants || (AIResponseConstants = {}));
@@ -6,4 +6,6 @@ export declare const streamingStarted: () => IAIResponseActionType;
6
6
  export declare const streamingChunkReceived: (chunk: string, accumulatedResponse: string) => IAIResponseActionType;
7
7
  export declare const streamingCompleted: (finalResponse: IARHDirectAPIResponse) => IAIResponseActionType;
8
8
  export declare const streamingError: (error: string) => IAIResponseActionType;
9
+ export declare const addSubmittedFeedbackType: (feedbackType: string) => IAIResponseActionType;
10
+ export declare const clearSubmittedFeedbackTypes: () => IAIResponseActionType;
9
11
  //# sourceMappingURL=AIResponseReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIResponseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iBAAiB,UACnB,gBAAgB,UACf,qBAAqB,KAC9B,gBAgDF,CAAC;AAGF,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,gBAAgB,QAAO,qBAGL,CAAC;AAEhC,eAAO,MAAM,sBAAsB,UAAW,MAAM,uBAAuB,MAAM,KAAG,qBAIrD,CAAC;AAEhC,eAAO,MAAM,kBAAkB,kBAAmB,qBAAqB,KAAG,qBAI3C,CAAC;AAEhC,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,qBAIhB,CAAC"}
1
+ {"version":3,"file":"AIResponseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iBAAiB,UACnB,gBAAgB,UACf,qBAAqB,KAC9B,gBA4DF,CAAC;AAGF,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,gBAAgB,QAAO,qBAGL,CAAC;AAEhC,eAAO,MAAM,sBAAsB,UAAW,MAAM,uBAAuB,MAAM,KAAG,qBAIrD,CAAC;AAEhC,eAAO,MAAM,kBAAkB,kBAAmB,qBAAqB,KAAG,qBAI3C,CAAC;AAEhC,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,qBAIhB,CAAC;AAEhC,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,KAAG,qBAIjC,CAAC;AAEhC,eAAO,MAAM,2BAA2B,QAAO,qBAGhB,CAAC"}
@@ -16,6 +16,12 @@ export const aiResponseReducer = (state = initialAIResponseState, action) => {
16
16
  case AIResponseConstants.streamingError: {
17
17
  return Object.assign(Object.assign({}, state), { isStreaming: false, error: action.payload.error, lastUpdated: new Date(), streamingChunk: undefined, accumulatedResponse: undefined });
18
18
  }
19
+ case AIResponseConstants.addSubmittedFeedbackType: {
20
+ return Object.assign(Object.assign({}, state), { submittedFeedbackTypes: [...state.submittedFeedbackTypes, action.payload.feedbackType] });
21
+ }
22
+ case AIResponseConstants.clearSubmittedFeedbackTypes: {
23
+ return Object.assign(Object.assign({}, state), { submittedFeedbackTypes: [] });
24
+ }
19
25
  default: {
20
26
  return state;
21
27
  }
@@ -40,3 +46,10 @@ export const streamingError = (error) => ({
40
46
  type: AIResponseConstants.streamingError,
41
47
  payload: { error },
42
48
  });
49
+ export const addSubmittedFeedbackType = (feedbackType) => ({
50
+ type: AIResponseConstants.addSubmittedFeedbackType,
51
+ payload: { feedbackType },
52
+ });
53
+ export const clearSubmittedFeedbackTypes = () => ({
54
+ type: AIResponseConstants.clearSubmittedFeedbackTypes,
55
+ });
@@ -90,7 +90,7 @@ div.support-grid-case-details.support-case {
90
90
  }
91
91
 
92
92
  #case-details-top-recommendations-pagination-bottom-pagination {
93
- justify-content: flex-start;
93
+ justify-content: space-between;
94
94
  }
95
95
  }
96
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"caseDetailsCacheUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetailsCacheUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAStD,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,qBAAqB,oCAEhC,CAAC"}
1
+ {"version":3,"file":"caseDetailsCacheUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/caseDetailsCacheUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUtD,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AACjE,eAAO,MAAM,qBAAqB,oCAEhC,CAAC"}
@@ -4,6 +4,7 @@ import localForageCaseDetails from 'localforage';
4
4
  // if you need a new namespace say may be for troubleshoot package you can create a new cacheutils
5
5
  // with the new namespace. or you can use the same namespace.
6
6
  // packages can decide what namespace they want to create or share an existing namespace
7
+ // test
7
8
  export const CASE_DETAILS_CACHE_STORAGE_NAME = 'support-case-lf';
8
9
  export const CaseDetailsCacheUtils = new CacheUtilsService(localForageCaseDetails, {
9
10
  name: CASE_DETAILS_CACHE_STORAGE_NAME,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.6.57",
3
+ "version": "2.6.59",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -51,7 +51,7 @@
51
51
  "dependencies": {
52
52
  "@cee-eng/hydrajs": "4.18.84",
53
53
  "@cee-eng/ui-toolkit": "1.1.8",
54
- "@ifd-ui/ask-redhat-core": "^0.0.34",
54
+ "@ifd-ui/ask-redhat-core": "^0.0.36",
55
55
  "@patternfly/patternfly": "6.2.1",
56
56
  "@patternfly/react-core": "6.2.1",
57
57
  "@patternfly/react-table": "6.2.1",
@@ -59,11 +59,11 @@
59
59
  "@progress/kendo-licensing": "1.3.5",
60
60
  "@progress/kendo-react-pdf": "^5.16.0",
61
61
  "@redux-devtools/extension": "^3.3.0",
62
- "@rh-support/components": "2.5.46",
63
- "@rh-support/react-context": "2.5.61",
62
+ "@rh-support/components": "2.5.48",
63
+ "@rh-support/react-context": "2.5.63",
64
64
  "@rh-support/types": "2.0.5",
65
- "@rh-support/user-permissions": "2.5.21",
66
- "@rh-support/utils": "2.5.20",
65
+ "@rh-support/user-permissions": "2.5.23",
66
+ "@rh-support/utils": "2.5.21",
67
67
  "@types/react-redux": "^7.1.33",
68
68
  "@types/redux": "^3.6.0",
69
69
  "date-fns": "3.6.0",
@@ -135,5 +135,5 @@
135
135
  "defaults and supports es6-module",
136
136
  "maintained node versions"
137
137
  ],
138
- "gitHead": "6c4cd843a136a0df2fc9bb67dd13364a8660f6cf"
138
+ "gitHead": "0f76f76f7e066c4269ec85489f4575ecc122e324"
139
139
  }