@rh-support/troubleshoot 2.6.20 → 2.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts +0 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -31
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +34 -33
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +1 -2
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +0 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +96 -52
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +21 -24
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +2 -6
- package/lib/esm/components/CaseInformation/Severity.js +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +13 -1
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +8 -5
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +7 -7
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
- package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
- package/lib/esm/components/Cve/CveModal.js +3 -2
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
- package/lib/esm/components/Recommendations/AsideResults.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +7 -4
- package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
- package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/Suggestions.js +17 -12
- package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/TopContent.js +13 -13
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -5
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +12 -82
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
- package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
- package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +3 -1
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +4 -5
- package/lib/esm/components/wizardLayout/WizardMain.d.ts +1 -3
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +19 -126
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -4
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +16 -20
- package/lib/esm/components/wizardLayout/index.d.ts +0 -1
- package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/index.js +0 -1
- package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
- package/lib/esm/context/RootTroubleshootProvider.js +6 -8
- package/lib/esm/css/app.css +5 -4
- package/lib/esm/css/case.css +12 -0
- package/lib/esm/hooks/useWizard.d.ts +0 -4
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +1 -1
- package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -2
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +0 -2
- package/lib/esm/scss/_main.scss +13 -0
- package/lib/esm/scss/_pf-overrides.scss +10 -0
- package/package.json +6 -7
- package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts +0 -7
- package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +0 -1
- package/lib/esm/components/TroubleshootSection/AskRedHat.js +0 -73
- package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts +0 -9
- package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts.map +0 -1
- package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.js +0 -9
- package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts +0 -9
- package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts.map +0 -1
- package/lib/esm/components/TroubleshootSection/icons/StarIcon.js +0 -17
- package/lib/esm/context/AIResponseContext.d.ts +0 -10
- package/lib/esm/context/AIResponseContext.d.ts.map +0 -1
- package/lib/esm/context/AIResponseContext.js +0 -26
- package/lib/esm/css/AskRedHat.css +0 -283
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts +0 -48
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +0 -1
- package/lib/esm/reducers/AIResponseConstNTypes.js +0 -16
- package/lib/esm/reducers/AIResponseReducer.d.ts +0 -9
- package/lib/esm/reducers/AIResponseReducer.d.ts.map +0 -1
- package/lib/esm/reducers/AIResponseReducer.js +0 -43
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Button, Card, CardBody, CardHeader, Spinner } from '@patternfly/react-core';
|
|
2
|
-
import React, { useRef, useState } from 'react';
|
|
3
|
-
import { useAIResponseState } from '../../context/AIResponseContext';
|
|
4
|
-
import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
|
|
5
|
-
import { CollapseIcon } from './icons/CollapseIcon';
|
|
6
|
-
import { StarIcon } from './icons/StarIcon';
|
|
7
|
-
export const AskRedHat = ({ onChatWithAIClick }) => {
|
|
8
|
-
const [isExpanded, setIsExpanded] = useState(false);
|
|
9
|
-
const aiResponseState = useAIResponseState();
|
|
10
|
-
const contentRef = useRef(null);
|
|
11
|
-
const onToggle = () => {
|
|
12
|
-
if (isExpanded && contentRef.current) {
|
|
13
|
-
contentRef.current.scrollTop = 0;
|
|
14
|
-
}
|
|
15
|
-
setIsExpanded((prev) => !prev);
|
|
16
|
-
};
|
|
17
|
-
const handleChatWithAIClick = () => onChatWithAIClick === null || onChatWithAIClick === void 0 ? void 0 : onChatWithAIClick();
|
|
18
|
-
const aiResponse = aiResponseState.aiResponse;
|
|
19
|
-
const answer = (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.answer) || (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.content) || 'No AI response available yet.';
|
|
20
|
-
const sources = (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.sources) || (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.references) || [];
|
|
21
|
-
const sourcesCount = sources.length || 0;
|
|
22
|
-
const isLoading = aiResponseState.isLoading || !aiResponse;
|
|
23
|
-
const { parseMarkdown } = useParseRuleMarkdown();
|
|
24
|
-
if (isLoading) {
|
|
25
|
-
return (React.createElement("div", { className: "ask-redhat" },
|
|
26
|
-
React.createElement("p", { className: "ask-redhat-title" },
|
|
27
|
-
React.createElement(StarIcon, { width: 20, height: 20 }),
|
|
28
|
-
"AI Insights"),
|
|
29
|
-
React.createElement("div", { className: "ask-redhat-content-wrapper" },
|
|
30
|
-
React.createElement("div", { className: "ask-redhat-content", style: { textAlign: 'center', padding: '2rem' } },
|
|
31
|
-
React.createElement(Spinner, { size: "lg" }),
|
|
32
|
-
React.createElement("p", { style: { marginTop: '1rem' } }, "Getting AI insights..."))),
|
|
33
|
-
!aiResponseState.isLoading && (React.createElement("div", { className: "ask-redhat-toggle-button" },
|
|
34
|
-
React.createElement(Button, { variant: "link", onClick: handleChatWithAIClick, className: "ask-redhat-chat-button" }, "Chat with AI to get started")))));
|
|
35
|
-
}
|
|
36
|
-
if (aiResponseState.error) {
|
|
37
|
-
return (React.createElement("div", { className: "ask-redhat" },
|
|
38
|
-
React.createElement("p", { className: "ask-redhat-title" },
|
|
39
|
-
React.createElement(StarIcon, { width: 20, height: 20 }),
|
|
40
|
-
"AI Insights"),
|
|
41
|
-
React.createElement("div", { className: "ask-redhat-content-wrapper" },
|
|
42
|
-
React.createElement("div", { className: "ask-redhat-content", style: { textAlign: 'center', padding: '2rem' } },
|
|
43
|
-
React.createElement("p", { style: { color: '#d73502', marginBottom: '1rem' } }, "Unable to get AI insights. Please try again later."),
|
|
44
|
-
React.createElement(Button, { variant: "link", onClick: handleChatWithAIClick, className: "ask-redhat-chat-button", icon: React.createElement(StarIcon, null) }, "Try again with AI Chat")))));
|
|
45
|
-
}
|
|
46
|
-
return (React.createElement("div", { className: "ask-redhat" },
|
|
47
|
-
React.createElement("p", { className: "ask-redhat-title" },
|
|
48
|
-
React.createElement(StarIcon, { width: 20, height: 20 }),
|
|
49
|
-
"AI Insights"),
|
|
50
|
-
React.createElement("div", { className: "ask-redhat-content-wrapper" },
|
|
51
|
-
React.createElement("div", { ref: contentRef, className: `ask-redhat-content ${isExpanded ? 'ask-redhat-content--expanded' : ''}` },
|
|
52
|
-
React.createElement("div", { className: `ask-redhat-content-scrollable ${isExpanded ? 'ask-redhat-content--expanded-scrollable' : ''}` },
|
|
53
|
-
React.createElement("div", null,
|
|
54
|
-
React.createElement("div", { dangerouslySetInnerHTML: { __html: parseMarkdown(answer) } }),
|
|
55
|
-
sourcesCount > 0 && (React.createElement(React.Fragment, null,
|
|
56
|
-
React.createElement("p", null, "2 sources"),
|
|
57
|
-
React.createElement("div", { className: "ask-redhat-cards" }, sources.map((source, index) => (React.createElement(Card, { className: "ask-redhat-card", key: index },
|
|
58
|
-
React.createElement(CardHeader, null,
|
|
59
|
-
React.createElement("h3", { className: "ask-redhat-card-title" },
|
|
60
|
-
React.createElement("a", { href: source.link, target: "_blank", rel: "noopener noreferrer" }, source.title))),
|
|
61
|
-
React.createElement(CardBody, null,
|
|
62
|
-
React.createElement("p", null, source.snippet)))))))))),
|
|
63
|
-
React.createElement("div", { className: "ask-redhat-footer-wrapper" },
|
|
64
|
-
React.createElement("div", { className: "ask-redhat-footer" },
|
|
65
|
-
React.createElement("p", { className: "ask-redhat-footer-text" }, "Want to continue the conversation? Dive deeper with our AI assistant"),
|
|
66
|
-
React.createElement(Button, { onClick: handleChatWithAIClick, className: 'ask-redhat-chat-button', icon: React.createElement(StarIcon, null) }, "Chat with AI"))),
|
|
67
|
-
!isExpanded && React.createElement("div", { className: "ask-redhat-fade-overlay" }))),
|
|
68
|
-
React.createElement("div", { className: "ask-redhat-toggle-button-wrapper" },
|
|
69
|
-
React.createElement("div", { className: "ask-redhat-border-line" }),
|
|
70
|
-
React.createElement(Button, { onClick: onToggle, className: isExpanded ? 'ask-redhat-toggle-button-collapsed' : 'ask-redhat-toggle-button' },
|
|
71
|
-
isExpanded ? React.createElement(CollapseIcon, null) : React.createElement(StarIcon, { width: 20, height: 20 }),
|
|
72
|
-
isExpanded ? '' : 'Read more'))));
|
|
73
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CollapseIcon.d.ts","sourceRoot":"","sources":["../../../../../src/components/TroubleshootSection/icons/CollapseIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,UAAW,SAAS,sBAiB5C,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export const CollapseIcon = (props) => {
|
|
3
|
-
const { width = 18.118, height = 12 } = props;
|
|
4
|
-
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 19 11", fill: "none", style: {
|
|
5
|
-
flexShrink: 0,
|
|
6
|
-
} },
|
|
7
|
-
React.createElement("path", { d: "M9.05895 0L16.9042 7.07143H1.21367L9.05895 0Z", fill: "#9F549C" }),
|
|
8
|
-
React.createElement("path", { d: "M9.05895 1.57129L16.9042 8.64272H1.21367L9.05895 1.57129Z", fill: "white" })));
|
|
9
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StarIcon.d.ts","sourceRoot":"","sources":["../../../../../src/components/TroubleshootSection/icons/StarIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,UAAW,SAAS,sBAgDxC,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export const StarIcon = (props) => {
|
|
3
|
-
const { width = 16, height = 15.273 } = props;
|
|
4
|
-
return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 16 15.273", fill: "none", style: {
|
|
5
|
-
flexShrink: 0,
|
|
6
|
-
aspectRatio: '16.00/15.27',
|
|
7
|
-
} },
|
|
8
|
-
React.createElement("path", { d: "M16.197 9.21581L11.3573 8.18825L10.3297 3.34854C10.2937 3.16868 10.1345 3.04541 9.95463 3.04541C9.77478 3.04541 9.61558 3.17385 9.57958 3.34854L8.55202 8.18825L3.71231 9.21581C3.53245 9.25181 3.40918 9.41101 3.40918 9.59087C3.40918 9.77072 3.53762 9.92992 3.71231 9.96592L8.55202 10.9935L9.57958 15.8332C9.61558 16.013 9.77478 16.1363 9.95463 16.1363C10.1345 16.1363 10.2937 16.0079 10.3297 15.8332L11.3573 10.9935L16.197 9.96592C16.3768 9.92992 16.5001 9.77072 16.5001 9.59087C16.5001 9.41101 16.3717 9.25181 16.197 9.21581Z", fill: "url(#paint0_linear_5146_16767)" }),
|
|
9
|
-
React.createElement("path", { d: "M3.40909 6.68195C3.58647 6.68195 3.74356 6.55526 3.77905 6.38297L4.16931 4.53308L6.0192 4.14282C6.19658 4.10733 6.31818 3.95024 6.31818 3.77286C6.31818 3.59548 6.19149 3.43839 6.0192 3.4029L4.16931 3.01264L3.77905 1.16275C3.74356 0.98537 3.58647 0.86377 3.40909 0.86377C3.23171 0.86377 3.07462 0.990461 3.03913 1.16275L2.64887 3.01264L0.798982 3.4029C0.6216 3.43839 0.5 3.59548 0.5 3.77286C0.5 3.95024 0.626691 4.10733 0.798982 4.14282L2.64887 4.53308L3.03913 6.38297C3.07462 6.56035 3.23171 6.68195 3.40909 6.68195Z", fill: "url(#paint1_linear_5146_16767)" }),
|
|
10
|
-
React.createElement("defs", null,
|
|
11
|
-
React.createElement("linearGradient", { id: "paint0_linear_5146_16767", x1: "9.95463", y1: "3.04541", x2: "9.95463", y2: "16.1363", gradientUnits: "userSpaceOnUse" },
|
|
12
|
-
React.createElement("stop", { stopColor: "#F56E6E" }),
|
|
13
|
-
React.createElement("stop", { offset: "1", stopColor: "#5E40BE" })),
|
|
14
|
-
React.createElement("linearGradient", { id: "paint1_linear_5146_16767", x1: "3.40909", y1: "0.86377", x2: "3.40909", y2: "6.68195", gradientUnits: "userSpaceOnUse" },
|
|
15
|
-
React.createElement("stop", { stopColor: "#F56E6E" }),
|
|
16
|
-
React.createElement("stop", { offset: "1", stopColor: "#5E40BE" })))));
|
|
17
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { IAIResponseActionType, IAIResponseState } from '../reducers/AIResponseConstNTypes';
|
|
3
|
-
export declare const AIResponseStateContext: React.Context<IAIResponseState>;
|
|
4
|
-
export declare const AIResponseDispatchContext: React.Context<React.Dispatch<IAIResponseActionType>>;
|
|
5
|
-
export declare function AIResponseContextProvider({ children }: {
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
}): React.JSX.Element;
|
|
8
|
-
export declare const useAIResponseState: () => IAIResponseState;
|
|
9
|
-
export declare const useAIResponseDispatch: () => React.Dispatch<IAIResponseActionType>;
|
|
10
|
-
//# sourceMappingURL=AIResponseContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AIResponseContext.d.ts","sourceRoot":"","sources":["../../../src/context/AIResponseContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAA0B,MAAM,mCAAmC,CAAC;AAKpH,eAAO,MAAM,sBAAsB,iCAAgE,CAAC;AACpG,eAAO,MAAM,yBAAyB,sDACgD,CAAC;AAEvF,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAUpF;AAGD,eAAO,MAAM,kBAAkB,wBAM9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,6CAMjC,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React, { useReducer } from 'react';
|
|
2
|
-
import { initialAIResponseState } from '../reducers/AIResponseConstNTypes';
|
|
3
|
-
import { aiResponseReducer } from '../reducers/AIResponseReducer';
|
|
4
|
-
const initialDispatchContext = () => { };
|
|
5
|
-
export const AIResponseStateContext = React.createContext(initialAIResponseState);
|
|
6
|
-
export const AIResponseDispatchContext = React.createContext(initialDispatchContext);
|
|
7
|
-
export function AIResponseContextProvider({ children }) {
|
|
8
|
-
const [aiResponseState, aiResponseDispatch] = useReducer(aiResponseReducer, initialAIResponseState);
|
|
9
|
-
return (React.createElement(AIResponseStateContext.Provider, { value: aiResponseState },
|
|
10
|
-
React.createElement(AIResponseDispatchContext.Provider, { value: aiResponseDispatch }, children)));
|
|
11
|
-
}
|
|
12
|
-
// Custom hooks for easy access
|
|
13
|
-
export const useAIResponseState = () => {
|
|
14
|
-
const context = React.useContext(AIResponseStateContext);
|
|
15
|
-
if (context === undefined) {
|
|
16
|
-
throw new Error('useAIResponseState must be used within a AIResponseContextProvider');
|
|
17
|
-
}
|
|
18
|
-
return context;
|
|
19
|
-
};
|
|
20
|
-
export const useAIResponseDispatch = () => {
|
|
21
|
-
const context = React.useContext(AIResponseDispatchContext);
|
|
22
|
-
if (context === undefined) {
|
|
23
|
-
throw new Error('useAIResponseDispatch must be used within a AIResponseContextProvider');
|
|
24
|
-
}
|
|
25
|
-
return context;
|
|
26
|
-
};
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
.ask-redhat {
|
|
2
|
-
padding: 1rem 1rem 2rem;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.ask-redhat-title {
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: row;
|
|
8
|
-
width: 387.666px;
|
|
9
|
-
height: 24px;
|
|
10
|
-
flex-shrink: 0;
|
|
11
|
-
color: #000;
|
|
12
|
-
font-family: 'Red Hat Display';
|
|
13
|
-
font-size: 16px;
|
|
14
|
-
font-style: normal;
|
|
15
|
-
font-weight: 600;
|
|
16
|
-
line-height: normal;
|
|
17
|
-
align-items: center;
|
|
18
|
-
gap: 0.5rem;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.ask-redhat-content-wrapper {
|
|
22
|
-
position: relative;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.ask-redhat-content {
|
|
26
|
-
max-height: 120px;
|
|
27
|
-
color: #000;
|
|
28
|
-
font-family: 'Red Hat Text';
|
|
29
|
-
font-size: 16px;
|
|
30
|
-
font-style: normal;
|
|
31
|
-
font-weight: 400;
|
|
32
|
-
line-height: 24px;
|
|
33
|
-
overflow: hidden;
|
|
34
|
-
position: relative;
|
|
35
|
-
transition: max-height 0.8s ease;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.ask-redhat-content--expanded {
|
|
39
|
-
max-height: calc(100vh - 390px);
|
|
40
|
-
transition: max-height 0.8s ease !important;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.ask-redhat-content--expanded-scrollable {
|
|
44
|
-
max-height: calc(100vh - 500px);
|
|
45
|
-
overflow-y: auto;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.ask-redhat-list {
|
|
49
|
-
margin-left: 1.5rem;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.ask-redhat-cards {
|
|
53
|
-
display: flex;
|
|
54
|
-
gap: 1rem;
|
|
55
|
-
margin-top: 1rem;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.ask-redhat-card {
|
|
59
|
-
flex: 1;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.ask-redhat-card-title {
|
|
63
|
-
margin: 0;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.ask-redhat-footer-wrapper {
|
|
67
|
-
position: relative;
|
|
68
|
-
margin-top: 1rem;
|
|
69
|
-
padding-bottom: 3rem;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.ask-redhat-footer {
|
|
73
|
-
display: flex;
|
|
74
|
-
justify-content: space-between;
|
|
75
|
-
align-items: center;
|
|
76
|
-
margin: 1.5rem 0 2rem;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.ask-redhat-footer-text {
|
|
80
|
-
margin: 0;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
:root {
|
|
84
|
-
--color-red: var(--Core-color-palette-Red-red-40, #f56e6e);
|
|
85
|
-
--color-purple: var(--Secondary-color-palette-Purple-purple-50, #5e40be);
|
|
86
|
-
--gradient-red-purple: linear-gradient(90deg, var(--color-red), var(--color-purple));
|
|
87
|
-
--gorgey: #f56e6e;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.ask-redhat-chat-button {
|
|
91
|
-
width: 129px;
|
|
92
|
-
height: 30px;
|
|
93
|
-
justify-content: center;
|
|
94
|
-
align-items: center !important;
|
|
95
|
-
gap: 8px;
|
|
96
|
-
flex-shrink: 0;
|
|
97
|
-
border-radius: 40px;
|
|
98
|
-
background: var(--gradient-red-purple);
|
|
99
|
-
color: #000;
|
|
100
|
-
text-decoration: none;
|
|
101
|
-
transition: all 0.2s ease;
|
|
102
|
-
cursor: pointer;
|
|
103
|
-
position: relative;
|
|
104
|
-
display: flex;
|
|
105
|
-
padding: 1px;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.ask-redhat-chat-button svg {
|
|
109
|
-
display: flex;
|
|
110
|
-
align-items: center;
|
|
111
|
-
justify-content: center;
|
|
112
|
-
margin: 0;
|
|
113
|
-
padding: 0;
|
|
114
|
-
vertical-align: middle;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.ask-redhat-chat-button .pf-v6-c-button__text {
|
|
118
|
-
display: flex;
|
|
119
|
-
align-items: center;
|
|
120
|
-
justify-content: center;
|
|
121
|
-
line-height: 1;
|
|
122
|
-
color: #000;
|
|
123
|
-
margin: 0;
|
|
124
|
-
padding: 0;
|
|
125
|
-
height: 100%;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.ask-redhat-chat-button .pf-v6-c-button__icon {
|
|
129
|
-
display: flex;
|
|
130
|
-
align-items: center;
|
|
131
|
-
justify-content: center;
|
|
132
|
-
margin: 0;
|
|
133
|
-
padding: 0;
|
|
134
|
-
height: 100%;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.ask-redhat-chat-button::before {
|
|
138
|
-
content: '';
|
|
139
|
-
position: absolute;
|
|
140
|
-
top: 1px;
|
|
141
|
-
left: 1px;
|
|
142
|
-
right: 1px;
|
|
143
|
-
bottom: 1px;
|
|
144
|
-
background: #fff;
|
|
145
|
-
border-radius: 39px;
|
|
146
|
-
z-index: 1;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.ask-redhat-chat-button > * {
|
|
150
|
-
position: relative;
|
|
151
|
-
z-index: 2;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
.ask-redhat-chat-button:focus {
|
|
155
|
-
outline: none;
|
|
156
|
-
box-shadow: 0 0 0 2px rgba(94, 64, 190, 0.2);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.ask-redhat-fade-overlay {
|
|
160
|
-
position: absolute;
|
|
161
|
-
bottom: 0;
|
|
162
|
-
left: 0;
|
|
163
|
-
width: 1002px;
|
|
164
|
-
height: 147px;
|
|
165
|
-
flex-shrink: 0;
|
|
166
|
-
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 80%, #fff 100%);
|
|
167
|
-
pointer-events: none;
|
|
168
|
-
z-index: 1;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
.ask-redhat-toggle-button {
|
|
172
|
-
display: flex;
|
|
173
|
-
justify-content: center;
|
|
174
|
-
align-items: center;
|
|
175
|
-
gap: 8px;
|
|
176
|
-
flex-shrink: 0;
|
|
177
|
-
left: 50%;
|
|
178
|
-
width: 211.839px;
|
|
179
|
-
height: 40px;
|
|
180
|
-
transform: translateX(-50%);
|
|
181
|
-
background-color: #fff;
|
|
182
|
-
z-index: 3;
|
|
183
|
-
background: var(--gradient-red-purple);
|
|
184
|
-
padding: 2px;
|
|
185
|
-
color: #000;
|
|
186
|
-
border-radius: 40px;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
.ask-redhat-toggle-button .pf-v6-c-button__text {
|
|
190
|
-
display: flex;
|
|
191
|
-
align-items: center;
|
|
192
|
-
justify-content: center;
|
|
193
|
-
line-height: 1;
|
|
194
|
-
margin: 0;
|
|
195
|
-
padding: 0;
|
|
196
|
-
gap: 8px;
|
|
197
|
-
color: #000;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
.ask-redhat-toggle-button svg {
|
|
201
|
-
display: flex;
|
|
202
|
-
align-items: center;
|
|
203
|
-
justify-content: center;
|
|
204
|
-
margin: 0;
|
|
205
|
-
padding: 0;
|
|
206
|
-
vertical-align: middle;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.ask-redhat-toggle-button::before {
|
|
210
|
-
content: '';
|
|
211
|
-
position: absolute;
|
|
212
|
-
top: 2px;
|
|
213
|
-
left: 2px;
|
|
214
|
-
right: 2px;
|
|
215
|
-
bottom: 2px;
|
|
216
|
-
background: #fff;
|
|
217
|
-
border-radius: 38px;
|
|
218
|
-
z-index: 1;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.ask-redhat-toggle-button > * {
|
|
222
|
-
position: relative;
|
|
223
|
-
z-index: 2;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
.ask-redhat-toggle-button-collapsed {
|
|
227
|
-
display: flex;
|
|
228
|
-
width: 50px;
|
|
229
|
-
height: 24px;
|
|
230
|
-
padding: 6px 16px;
|
|
231
|
-
justify-content: center;
|
|
232
|
-
align-items: center;
|
|
233
|
-
gap: 8px;
|
|
234
|
-
flex-shrink: 0;
|
|
235
|
-
border-radius: 40px;
|
|
236
|
-
background: var(--gradient-red-purple);
|
|
237
|
-
color: #000;
|
|
238
|
-
position: absolute;
|
|
239
|
-
left: 50%;
|
|
240
|
-
transform: translateX(-50%);
|
|
241
|
-
z-index: 3;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
.ask-redhat-toggle-button-collapsed::before {
|
|
245
|
-
content: '';
|
|
246
|
-
position: absolute;
|
|
247
|
-
top: 1px;
|
|
248
|
-
left: 1px;
|
|
249
|
-
right: 1px;
|
|
250
|
-
bottom: 1px;
|
|
251
|
-
background: #fff;
|
|
252
|
-
border-radius: 39px;
|
|
253
|
-
z-index: 1;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.ask-redhat-toggle-button-collapsed > * {
|
|
257
|
-
position: relative;
|
|
258
|
-
z-index: 2;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
.ask-redhat-toggle-button-collapsed svg {
|
|
262
|
-
display: flex;
|
|
263
|
-
align-items: center;
|
|
264
|
-
justify-content: center;
|
|
265
|
-
margin: 0;
|
|
266
|
-
padding: 0;
|
|
267
|
-
vertical-align: middle;
|
|
268
|
-
line-height: 1;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
.ask-redhat-toggle-button-wrapper {
|
|
272
|
-
position: relative;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
.ask-redhat-border-line {
|
|
276
|
-
position: absolute;
|
|
277
|
-
top: 50%;
|
|
278
|
-
left: 0;
|
|
279
|
-
right: 0;
|
|
280
|
-
height: 1px;
|
|
281
|
-
background: #d2d2d2;
|
|
282
|
-
z-index: 1;
|
|
283
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { IARHDirectAPIResponse } from '@ifd-ui/ask-redhat-core';
|
|
2
|
-
export interface IActionType {
|
|
3
|
-
type: string;
|
|
4
|
-
payload?: any;
|
|
5
|
-
}
|
|
6
|
-
export interface IAIResponseState {
|
|
7
|
-
aiResponse: IARHDirectAPIResponse | null;
|
|
8
|
-
isLoading: boolean;
|
|
9
|
-
error: string | null;
|
|
10
|
-
lastUpdated: Date | null;
|
|
11
|
-
}
|
|
12
|
-
export declare const initialAIResponseState: IAIResponseState;
|
|
13
|
-
export declare enum AIResponseConstants {
|
|
14
|
-
requestAIResponse = "requestAIResponse",
|
|
15
|
-
receivedAIResponse = "receivedAIResponse",
|
|
16
|
-
receivedAIResponseError = "receivedAIResponseError",
|
|
17
|
-
clearAIResponse = "clearAIResponse",
|
|
18
|
-
setAIResponseLoading = "setAIResponseLoading"
|
|
19
|
-
}
|
|
20
|
-
export interface IRequestAIResponseAction extends IActionType {
|
|
21
|
-
type: AIResponseConstants.requestAIResponse;
|
|
22
|
-
payload: {
|
|
23
|
-
question: string;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export interface IReceivedAIResponseAction extends IActionType {
|
|
27
|
-
type: AIResponseConstants.receivedAIResponse;
|
|
28
|
-
payload: {
|
|
29
|
-
aiResponse: IARHDirectAPIResponse;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export interface IReceivedAIResponseErrorAction extends IActionType {
|
|
33
|
-
type: AIResponseConstants.receivedAIResponseError;
|
|
34
|
-
payload: {
|
|
35
|
-
error: string;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
export interface IClearAIResponseAction extends IActionType {
|
|
39
|
-
type: AIResponseConstants.clearAIResponse;
|
|
40
|
-
}
|
|
41
|
-
export interface ISetAIResponseLoadingAction extends IActionType {
|
|
42
|
-
type: AIResponseConstants.setAIResponseLoading;
|
|
43
|
-
payload: {
|
|
44
|
-
isLoading: boolean;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
export type IAIResponseActionType = IRequestAIResponseAction | IReceivedAIResponseAction | IReceivedAIResponseErrorAction | IClearAIResponseAction | ISetAIResponseLoadingAction;
|
|
48
|
-
//# sourceMappingURL=AIResponseConstNTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAKpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;CAChD;AAGD,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IACzD,IAAI,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;IAC5C,OAAO,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,UAAU,EAAE,qBAAqB,CAAC;KACrC,CAAC;CACL;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IAC/D,IAAI,EAAE,mBAAmB,CAAC,uBAAuB,CAAC;IAClD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC5D,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAC/C,OAAO,EAAE;QACL,SAAS,EAAE,OAAO,CAAC;KACtB,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,wBAAwB,GACxB,yBAAyB,GACzB,8BAA8B,GAC9B,sBAAsB,GACtB,2BAA2B,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// Initial State
|
|
2
|
-
export const initialAIResponseState = {
|
|
3
|
-
aiResponse: null,
|
|
4
|
-
isLoading: false,
|
|
5
|
-
error: null,
|
|
6
|
-
lastUpdated: null,
|
|
7
|
-
};
|
|
8
|
-
// Action Constants
|
|
9
|
-
export var AIResponseConstants;
|
|
10
|
-
(function (AIResponseConstants) {
|
|
11
|
-
AIResponseConstants["requestAIResponse"] = "requestAIResponse";
|
|
12
|
-
AIResponseConstants["receivedAIResponse"] = "receivedAIResponse";
|
|
13
|
-
AIResponseConstants["receivedAIResponseError"] = "receivedAIResponseError";
|
|
14
|
-
AIResponseConstants["clearAIResponse"] = "clearAIResponse";
|
|
15
|
-
AIResponseConstants["setAIResponseLoading"] = "setAIResponseLoading";
|
|
16
|
-
})(AIResponseConstants || (AIResponseConstants = {}));
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IARHDirectAPIResponse } from '@ifd-ui/ask-redhat-core';
|
|
2
|
-
import { IAIResponseActionType, IAIResponseState } from './AIResponseConstNTypes';
|
|
3
|
-
export declare const aiResponseReducer: (state: IAIResponseState, action: IAIResponseActionType) => IAIResponseState;
|
|
4
|
-
export declare const requestAIResponse: (question: string) => IAIResponseActionType;
|
|
5
|
-
export declare const receivedAIResponse: (aiResponse: IARHDirectAPIResponse) => IAIResponseActionType;
|
|
6
|
-
export declare const receivedAIResponseError: (error: string) => IAIResponseActionType;
|
|
7
|
-
export declare const clearAIResponse: () => IAIResponseActionType;
|
|
8
|
-
export declare const setAIResponseLoading: (isLoading: boolean) => IAIResponseActionType;
|
|
9
|
-
//# sourceMappingURL=AIResponseReducer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,gBA0CF,CAAC;AAGF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,qBAItB,CAAC;AAEhC,eAAO,MAAM,kBAAkB,eAAgB,qBAAqB,KAAG,qBAIxC,CAAC;AAEhC,eAAO,MAAM,uBAAuB,UAAW,MAAM,KAAG,qBAIzB,CAAC;AAEhC,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,oBAAoB,cAAe,OAAO,KAAG,qBAI3B,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { AIResponseConstants, initialAIResponseState, } from './AIResponseConstNTypes';
|
|
2
|
-
export const aiResponseReducer = (state = initialAIResponseState, action) => {
|
|
3
|
-
switch (action.type) {
|
|
4
|
-
case AIResponseConstants.requestAIResponse: {
|
|
5
|
-
return Object.assign(Object.assign({}, state), { isLoading: true, error: null });
|
|
6
|
-
}
|
|
7
|
-
case AIResponseConstants.receivedAIResponse: {
|
|
8
|
-
return Object.assign(Object.assign({}, state), { aiResponse: action.payload.aiResponse, isLoading: false, error: null, lastUpdated: new Date() });
|
|
9
|
-
}
|
|
10
|
-
case AIResponseConstants.receivedAIResponseError: {
|
|
11
|
-
return Object.assign(Object.assign({}, state), { aiResponse: null, isLoading: false, error: action.payload.error, lastUpdated: new Date() });
|
|
12
|
-
}
|
|
13
|
-
case AIResponseConstants.clearAIResponse: {
|
|
14
|
-
return Object.assign({}, initialAIResponseState);
|
|
15
|
-
}
|
|
16
|
-
case AIResponseConstants.setAIResponseLoading: {
|
|
17
|
-
return Object.assign(Object.assign({}, state), { isLoading: action.payload.isLoading });
|
|
18
|
-
}
|
|
19
|
-
default: {
|
|
20
|
-
return state;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
// Action Creators
|
|
25
|
-
export const requestAIResponse = (question) => ({
|
|
26
|
-
type: AIResponseConstants.requestAIResponse,
|
|
27
|
-
payload: { question },
|
|
28
|
-
});
|
|
29
|
-
export const receivedAIResponse = (aiResponse) => ({
|
|
30
|
-
type: AIResponseConstants.receivedAIResponse,
|
|
31
|
-
payload: { aiResponse },
|
|
32
|
-
});
|
|
33
|
-
export const receivedAIResponseError = (error) => ({
|
|
34
|
-
type: AIResponseConstants.receivedAIResponseError,
|
|
35
|
-
payload: { error },
|
|
36
|
-
});
|
|
37
|
-
export const clearAIResponse = () => ({
|
|
38
|
-
type: AIResponseConstants.clearAIResponse,
|
|
39
|
-
});
|
|
40
|
-
export const setAIResponseLoading = (isLoading) => ({
|
|
41
|
-
type: AIResponseConstants.setAIResponseLoading,
|
|
42
|
-
payload: { isLoading },
|
|
43
|
-
});
|