@rh-support/troubleshoot 2.2.50 → 2.4.10-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.js +4 -4
- package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -2
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +19 -22
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -14
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +13 -18
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +8 -8
- package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.js +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +38 -66
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -4
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +4 -6
- package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +11 -17
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +6 -7
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +10 -11
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +2 -2
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +10 -11
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +7 -7
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +6 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +4 -6
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +1 -18
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +3 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +3 -3
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +1 -1
- package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Description.js +3 -3
- package/lib/esm/components/CaseInformation/Fts.js +3 -3
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +3 -5
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +3 -4
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -3
- package/lib/esm/components/CaseManagement/CaseManagement.js +2 -2
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +14 -30
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +12 -13
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -3
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +1 -1
- package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +3 -4
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +2 -2
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +14 -15
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +3 -3
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +3 -3
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +5 -5
- package/lib/esm/components/ImproveCase/KtQuestions.d.ts.map +1 -1
- package/lib/esm/components/ImproveCase/KtQuestions.js +7 -7
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +15 -12
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +5 -6
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +2 -2
- package/lib/esm/components/ProductSelector/ProductSelector.js +2 -2
- package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts +0 -3
- package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AlertToastWrapper.js +2 -2
- package/lib/esm/components/Recommendations/AsideResults.d.ts +7 -1
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +17 -4
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +1 -1
- package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +7 -7
- package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +7 -7
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
- package/lib/esm/components/Recommendations/Recommendations.d.ts +3 -0
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +19 -6
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +1 -2
- package/lib/esm/components/Recommendations/ShowRank.d.ts +12 -0
- package/lib/esm/components/Recommendations/ShowRank.d.ts.map +1 -0
- package/lib/esm/components/Recommendations/ShowRank.js +27 -0
- package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
- package/lib/esm/components/Review/Review.js +2 -2
- package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestore.js +14 -9
- package/lib/esm/components/SessionRestore/SessionRestoreCard.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestoreCard.js +16 -9
- package/lib/esm/components/SubmitCase/ResubmitToast.d.ts +0 -3
- package/lib/esm/components/SubmitCase/ResubmitToast.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/ResubmitToast.js +1 -3
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts +7 -1
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +17 -19
- package/lib/esm/components/Suggestions/Suggestions.js +1 -1
- package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/TopContent.js +12 -58
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +6 -6
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +4 -4
- package/lib/esm/components/shared/Rule.js +6 -6
- package/lib/esm/components/shared/fileUpload/FileLister.js +6 -6
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +2 -2
- package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
- package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +2 -2
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +2 -2
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +0 -6
- package/lib/esm/components/wizardLayout/MainSection.js +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +37 -6
- package/lib/esm/components/wizardLayout/WizardMain.js +2 -2
- package/lib/esm/components/wizardLayout/WizardNavigation.js +1 -1
- package/lib/esm/constants/caseDetailsConstants.d.ts +1 -7
- package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
- package/lib/esm/constants/caseDetailsConstants.js +0 -7
- package/lib/esm/css/app.css +7 -7
- package/lib/esm/css/case.css +3 -3
- package/lib/esm/hooks/useWizard.js +1 -1
- package/lib/esm/reducers/CaseConstNTypes.d.ts +4 -4
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +4 -4
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +0 -2
- package/lib/esm/reducers/CaseReducer.d.ts +2 -1
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +14 -20
- package/lib/esm/reducers/RecommendationsReducer.d.ts +2 -1
- package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
- package/lib/esm/reducers/RecommendationsReducer.js +30 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts +2 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.d.ts +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.js +1 -7
- package/lib/esm/scss/_main.scss +43 -109
- package/lib/esm/scss/_pf4-imports.scss +30 -0
- package/lib/esm/scss/{_pf-overrides.scss → _pf4-overrides.scss} +85 -214
- package/lib/esm/scss/index.scss +2 -1
- package/package.json +14 -13
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts +0 -13
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.js +0 -76
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts +0 -3
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.js +0 -118
|
@@ -15,7 +15,7 @@ export default function SupportTypeSelectorPage() {
|
|
|
15
15
|
const globalDispatch = useGlobalDispatchContext();
|
|
16
16
|
const [selectedSupportType, setSelectedSupportType] = useState('');
|
|
17
17
|
const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
|
|
18
|
-
const { caseType, isFetchingSelectedAccountDetails } = useCaseSelector((state) => ({
|
|
18
|
+
const { caseType, isFetchingSelectedAccountDetails, selectedAccountDetails } = useCaseSelector((state) => ({
|
|
19
19
|
caseType: state.caseDetails.caseType,
|
|
20
20
|
isFetchingSelectedAccountDetails: state.selectedAccountDetails.isFetching,
|
|
21
21
|
selectedAccountDetails: state.selectedAccountDetails,
|
|
@@ -122,15 +122,18 @@ export default function SupportTypeSelectorPage() {
|
|
|
122
122
|
React.createElement(Trans, null, "What can we help you with?"),
|
|
123
123
|
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
124
124
|
(allCaseTypes.isFetching || (isFetchingSelectedAccountDetails && haventLoadedMetadata(allCaseTypes))) && (React.createElement(LoadingIndicator, { size: "lg", show: true })),
|
|
125
|
-
React.createElement(Gallery, { hasGutter: true, className: "pf-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
125
|
+
React.createElement(Gallery, { hasGutter: true, className: "pf-u-mt-sm" }, SupportTypesArray.map((supportTypesArrayValues) => {
|
|
126
|
+
var _a;
|
|
127
|
+
return (React.createElement(GalleryItem, { key: supportTypesArrayValues.id },
|
|
128
|
+
React.createElement(Card, { id: supportTypesArrayValues.oldSupportType, key: supportTypesArrayValues.oldSupportType, className: `support-types-card${isNextBtnClickedToShowValidationError && !caseType ? ' support-types-invalid' : ''}`, onKeyDown: onKeyDown, onClick: onSupportTypeClick, onSelectableInputChange: onChange, isSelected: !!caseType && supportTypesArrayValues.oldSupportType === caseType, hasSelectableInput: true, isSelectable: true, isSelectableRaised: true, isFullHeight: true, isDisabledRaised: ((_a = selectedAccountDetails === null || selectedAccountDetails === void 0 ? void 0 : selectedAccountDetails.data) === null || _a === void 0 ? void 0 : _a.subscriptionAbuse) || false, selectableInputAriaLabel: t(supportTypesArrayValues.supportTypeHeading), "data-tracking-id": supportTypesArrayValues.dataTrackingID },
|
|
129
|
+
React.createElement(CardBody, null, supportTypesArrayValues.icon ? (React.createElement(Split, null,
|
|
130
|
+
React.createElement(SplitItem, { className: "pf-u-pr-lg" },
|
|
131
|
+
React.createElement(Bullseye, null, supportTypesArrayValues.icon && supportTypesArrayValues.icon)),
|
|
132
|
+
React.createElement(SplitItem, { isFilled: true },
|
|
133
|
+
React.createElement("header", { className: "pf-u-font-family-redhatVF-heading-sans-serif" },
|
|
134
|
+
React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading)),
|
|
135
|
+
React.createElement(Trans, null, supportTypesArrayValues.supportTypeDescription)))) : (React.createElement(Bullseye, null,
|
|
136
|
+
React.createElement("header", { className: "pf-u-font-family-redhatVF-heading-sans-serif" },
|
|
137
|
+
React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading))))))));
|
|
138
|
+
}))));
|
|
136
139
|
}
|
|
@@ -82,7 +82,7 @@ const AllProductsSelector = forwardRef((props, ref) => {
|
|
|
82
82
|
React.createElement(OpenCaseIssue, { inlineEditable: false, required: true })),
|
|
83
83
|
React.createElement("div", { className: "all-product-selector-dropdown" },
|
|
84
84
|
React.createElement(ProductVersionDropdownSelector, { isLoading: allProducts.isFetching, products: props.checkEntitledProduct ? entitledProducts : allProducts.data.productsResult, onProductChange: onProductChange, onVersionChange: onVersionChange, ref: ref }))),
|
|
85
|
-
React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-
|
|
85
|
+
React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-u-mt-lg", title: t(`${loggedInUserRights.data.isSSOUsernameSameAsLoggedInUser(contactSSOName)
|
|
86
86
|
? 'You are'
|
|
87
87
|
: 'Selected owner is'} not allowed to create case on this product.`), show: !allProducts.isFetching && props.checkEntitledProduct && !isEntitledProduct && !isEmpty(product) }),
|
|
88
88
|
React.createElement(LoadingIndicator, { show: topContent.isFetching && props.loadTCOnChange }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAUpE,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,gBAuGvD,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Divider } from '@patternfly/react-core';
|
|
2
|
-
import { Select, SelectGroup, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
|
|
1
|
+
import { Divider, Select, SelectGroup, SelectOption, SelectVariant } from '@patternfly/react-core';
|
|
3
2
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
4
3
|
import isEmpty from 'lodash/isEmpty';
|
|
5
4
|
import isEqual from 'lodash/isEqual';
|
|
@@ -19,7 +18,7 @@ export const NewProductDropdownSelector = (props) => {
|
|
|
19
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
20
19
|
}, [props.isNextBtnClickedToShowValidationError]);
|
|
21
20
|
const createOption = (product, id, type) => {
|
|
22
|
-
return (React.createElement(SelectOption, { key: `${type}-${id}`, value: product.name, className: "pf-
|
|
21
|
+
return (React.createElement(SelectOption, { key: `${type}-${id}`, value: product.name, className: "pf-c-select__menu-wrapper", "data-tracking-id": `${product.name ? product.name.replace(/\s+/g, '') : ''}-${type}-dropdown` }));
|
|
23
22
|
};
|
|
24
23
|
const onToggle = (isOpen) => {
|
|
25
24
|
setIsOpen(isOpen);
|
|
@@ -32,10 +31,10 @@ export const NewProductDropdownSelector = (props) => {
|
|
|
32
31
|
const productOptions = props.products.map((p, id) => createOption(p, id, 'product'));
|
|
33
32
|
const allProductsTroubleshootOptions = allProducts.data.productsResult.map((p, id) => createOption(p, id, 'product'));
|
|
34
33
|
return [
|
|
35
|
-
React.createElement(SelectGroup, { label: t('Top products'), key: "topProducts", value: ''
|
|
34
|
+
React.createElement(SelectGroup, { label: t('Top products'), key: "topProducts", value: '' }),
|
|
36
35
|
...topProductOptions,
|
|
37
36
|
React.createElement(Divider, { key: "all-product-divider" }),
|
|
38
|
-
React.createElement(SelectGroup, { label: t('All products'), key: "AllProducts", value: ''
|
|
37
|
+
React.createElement(SelectGroup, { label: t('All products'), key: "AllProducts", value: '' }),
|
|
39
38
|
...(props.isCaseCreate ? productOptions : allProductsTroubleshootOptions),
|
|
40
39
|
];
|
|
41
40
|
};
|
|
@@ -63,5 +62,5 @@ export const NewProductDropdownSelector = (props) => {
|
|
|
63
62
|
setIsOpen(false);
|
|
64
63
|
};
|
|
65
64
|
return (React.createElement("div", null,
|
|
66
|
-
React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle:
|
|
65
|
+
React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle: onToggle, onSelect: onSelect, isOpen: isOpen, placeholderText: t('Search for or select a product'), "aria-labelledby": t('Product-selector'), onFilter: onFilter, selections: product, validated: isEmpty(product) && showValidationLocal ? 'error' : 'default', "data-tracking-id": "get-support-product-dropdown-selector" }, getOptions())));
|
|
67
66
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Select, SelectOption, SelectVariant } from '@patternfly/react-core
|
|
1
|
+
import { Select, SelectOption, SelectVariant } from '@patternfly/react-core';
|
|
2
2
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
3
3
|
import { getUniqueSortedVersions } from '@rh-support/utils';
|
|
4
4
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -91,5 +91,5 @@ export const NewProductVersionSelector = (props) => {
|
|
|
91
91
|
setIsOpen(false);
|
|
92
92
|
};
|
|
93
93
|
const titleId = 'version-selector';
|
|
94
|
-
return (React.createElement(Select, Object.assign({ variant: SelectVariant.single, onToggle:
|
|
94
|
+
return (React.createElement(Select, Object.assign({ variant: SelectVariant.single, onToggle: onToggle, onSelect: onSelect, isOpen: isOpen, placeholderText: t('Select a version'), "aria-labelledby": titleId, selections: version, validated: isEmpty(version) && showValidationLocal ? 'error' : 'default', isDisabled: isEmpty(product), "data-tracking-id": "get-support-version-dropdown-selector" }, (isSEProductApiIsDown && versionsDetails.isFetching && { loadingVariant: 'spinner' })), selectVersionOptions.map((version, index) => (React.createElement(SelectOption, { key: index, value: version })))));
|
|
95
95
|
};
|
|
@@ -35,7 +35,7 @@ export default function ProductSelector(props) {
|
|
|
35
35
|
const productSelectorRef = useRef(null);
|
|
36
36
|
return (React.createElement(React.Fragment, null,
|
|
37
37
|
allProducts.isFetching && React.createElement(ProductSelectorLoader, null),
|
|
38
|
-
React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-
|
|
38
|
+
React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
|
|
39
39
|
!allProducts.isFetching && !allProducts.isError && (React.createElement(React.Fragment, null,
|
|
40
40
|
React.createElement("form", null,
|
|
41
41
|
React.createElement(AllProductsSelector, { routeProps: props.routeProps, checkEntitledProduct: isCaseCreate ? true : false, ref: productSelectorRef }),
|
|
@@ -52,5 +52,5 @@ export default function ProductSelector(props) {
|
|
|
52
52
|
React.createElement(EARuleWidget, null)),
|
|
53
53
|
React.createElement("div", { className: "suggestions-result-section" },
|
|
54
54
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
|
|
55
|
-
React.createElement(Recommendations,
|
|
55
|
+
React.createElement(Recommendations, { routeProps: props.routeProps })))))))));
|
|
56
56
|
}
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
* We need to wrap Critical solution toast notification and Cluster recommendation toast notification so they don't get overlapped.
|
|
3
3
|
*/
|
|
4
4
|
import { FC } from 'react';
|
|
5
|
-
import { RouteComponentProps } from 'react-router-dom';
|
|
6
|
-
import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
|
|
7
5
|
interface IProps {
|
|
8
6
|
submitCaseAndNavigate: (isReSubmitting: boolean) => void;
|
|
9
|
-
routeProps: RouteComponentProps<IRouteUrlParams>;
|
|
10
7
|
}
|
|
11
8
|
declare const AlertToastWrapper: FC<IProps>;
|
|
12
9
|
export default AlertToastWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertToastWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AlertToastWrapper.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertToastWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AlertToastWrapper.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAWnE,UAAU,MAAM;IACZ,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5D;AAED,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAuCjC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -13,7 +13,7 @@ import { AttachmentStateContext } from '../shared/fileUpload';
|
|
|
13
13
|
import { ResubmitToast } from '../SubmitCase/ResubmitToast';
|
|
14
14
|
import ClusterRecommendationToast from './ClusterRecommendationToast';
|
|
15
15
|
import CriticalSolutionsToast from './CriticalSolutionsToast';
|
|
16
|
-
const AlertToastWrapper = ({ submitCaseAndNavigate
|
|
16
|
+
const AlertToastWrapper = ({ submitCaseAndNavigate }) => {
|
|
17
17
|
const { routeState: { activeSection }, } = useContext(RouteContext);
|
|
18
18
|
const [isCriticalSolutionsVisible, setIsCriticalSolutionsVisible] = useState(true);
|
|
19
19
|
const { caseType } = useCaseSelector((state) => ({
|
|
@@ -33,6 +33,6 @@ const AlertToastWrapper = ({ submitCaseAndNavigate, routeProps }) => {
|
|
|
33
33
|
return (React.createElement(AlertGroup, { isToast: true },
|
|
34
34
|
isCriticalSolutionsVisible && isNotAnIdea && React.createElement(CriticalSolutionsToast, { userClosed: userClosed }),
|
|
35
35
|
!hideClusterIdReportModal && isNotAnIdea && React.createElement(ClusterRecommendationToast, null),
|
|
36
|
-
React.createElement(ResubmitToast, { submitCaseAndNavigate: submitCaseAndNavigate
|
|
36
|
+
React.createElement(ResubmitToast, { submitCaseAndNavigate: submitCaseAndNavigate })));
|
|
37
37
|
};
|
|
38
38
|
export default AlertToastWrapper;
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { RouteComponentProps } from 'react-router-dom';
|
|
2
|
+
import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
|
|
3
|
+
interface IProps {
|
|
4
|
+
routeProps: RouteComponentProps<IRouteUrlParams>;
|
|
5
|
+
}
|
|
6
|
+
export declare function AsideResults(props: IProps): JSX.Element;
|
|
7
|
+
export {};
|
|
2
8
|
//# sourceMappingURL=AsideResults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAWtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,eAuOzC"}
|
|
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { pcm, search } from '@cee-eng/hydrajs';
|
|
11
11
|
import { useDebounce } from '@rh-support/components';
|
|
12
|
-
import {
|
|
12
|
+
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
13
|
+
import { computeRecommendationAbstract, computeRecommendationTitle, getConfigField, getSolrParams, getTrimmedSpecialCharacters, PCM_CONFIG_FIELD_TYPE, PreviousCaseTypes, replaceHighlightingData, } from '@rh-support/utils';
|
|
13
14
|
import isEmpty from 'lodash/isEmpty';
|
|
14
15
|
import isEqual from 'lodash/isEqual';
|
|
15
16
|
import React, { useContext, useEffect, useRef } from 'react';
|
|
@@ -18,18 +19,22 @@ import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
|
18
19
|
import { RecommendationDispatchContext, RecommendationStateContext } from '../../context/RecommendationContext';
|
|
19
20
|
import { RouteContext } from '../../context/RouteContext';
|
|
20
21
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
22
|
+
import { WATSONX_DESCRIPTION_LIMIT, WATSONX_SUMMARY_LIMIT } from '../../reducers/CaseConstNTypes';
|
|
21
23
|
import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
|
|
22
24
|
import { setCaseRecommendations } from '../../reducers/CaseReducer';
|
|
23
25
|
import { RecommendationsConstants } from '../../reducers/RecommendationsReducer';
|
|
24
26
|
import { showSidebarRecommendationsSections } from '../../reducers/RouteConstNTypes';
|
|
25
27
|
import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
|
|
26
28
|
import RouteUtils from '../../utils/routeUtils';
|
|
29
|
+
import { ShowRank } from './ShowRank';
|
|
27
30
|
const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
|
|
28
|
-
export function AsideResults() {
|
|
31
|
+
export function AsideResults(props) {
|
|
29
32
|
/*
|
|
30
33
|
* Sidebar recommendation logic
|
|
31
34
|
*/
|
|
32
|
-
const {
|
|
35
|
+
const { globalMetadataState: { loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
|
|
36
|
+
const isRerankEnabled = getConfigField(pcmConfig.data, 'isRerankEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
|
|
37
|
+
const { isSelectedAccounntSecureSupport, product, version, caseResourceLinks, summary, issue, environment, periodicityOfIssue, timeFramesAndUrgency, caseType, isFetchingRecommendationsFromWatsonX, } = useCaseSelector((state) => ({
|
|
33
38
|
isSelectedAccounntSecureSupport: state.selectedAccountDetails.data.secureSupport,
|
|
34
39
|
product: state.caseDetails.product,
|
|
35
40
|
version: state.caseDetails.version,
|
|
@@ -40,6 +45,7 @@ export function AsideResults() {
|
|
|
40
45
|
periodicityOfIssue: state.caseDetails.periodicityOfIssue,
|
|
41
46
|
timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
|
|
42
47
|
caseType: state.caseDetails.caseType,
|
|
48
|
+
isFetchingRecommendationsFromWatsonX: state.isFetchingRecommendationsFromWatsonX,
|
|
43
49
|
}), isEqual);
|
|
44
50
|
const caseDispatch = useCaseDispatch();
|
|
45
51
|
// getting recommendation dispatch and state via context
|
|
@@ -75,7 +81,13 @@ export function AsideResults() {
|
|
|
75
81
|
const queryFilters = {
|
|
76
82
|
id: { values: recommendationState.insightsKcsIds, exclude: true },
|
|
77
83
|
};
|
|
78
|
-
const response =
|
|
84
|
+
const response = isFetchingRecommendationsFromWatsonX && !loggedInUsersAccount.data.secureSupport
|
|
85
|
+
? yield search.getWatsonXRecommendationsForCase(Object.assign(Object.assign(Object.assign(Object.assign({ product: product, version: version }, ((payload === null || payload === void 0 ? void 0 : payload.summary) && {
|
|
86
|
+
summary: getTrimmedSpecialCharacters(payload.summary, WATSONX_SUMMARY_LIMIT),
|
|
87
|
+
})), ((payload === null || payload === void 0 ? void 0 : payload.description) && {
|
|
88
|
+
description: getTrimmedSpecialCharacters(payload === null || payload === void 0 ? void 0 : payload.description, WATSONX_DESCRIPTION_LIMIT),
|
|
89
|
+
})), { rerank: isRerankEnabled }), getSolrParams(PAGE_SIZE, 129, queryFilters)), controllerRef.current.signal)
|
|
90
|
+
: yield search.getRecommendationsForCase(payload, getSolrParams(PAGE_SIZE, 129, queryFilters), controllerRef.current.signal);
|
|
79
91
|
const sideDocs = replaceHighlightingData(response.response.docs, response.highlighting);
|
|
80
92
|
recommendationDispatch({
|
|
81
93
|
type: RecommendationsConstants.receiveSidebarRecommendation,
|
|
@@ -136,6 +148,7 @@ export function AsideResults() {
|
|
|
136
148
|
return (React.createElement("li", { className: "result", key: doc.id },
|
|
137
149
|
React.createElement("header", { className: "result-header" },
|
|
138
150
|
React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS_ASIDE]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS_ASIDE)}`, className: "se-recommended ts-result-aside", "data-tracking-id": `se-recommended-sidebar-recommendations-${index}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, index), dangerouslySetInnerHTML: computeRecommendationTitle(doc) })),
|
|
151
|
+
isFetchingRecommendationsFromWatsonX && (React.createElement(ShowRank, { index: index, originalRank: doc.original_rank, routeProps: props.routeProps })),
|
|
139
152
|
React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 150) })));
|
|
140
153
|
})))));
|
|
141
154
|
}
|
|
@@ -32,7 +32,7 @@ export function ClusterRecommendationItems(props) {
|
|
|
32
32
|
React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
|
|
33
33
|
React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
|
|
34
34
|
React.createElement("p", null, rule.details || ''),
|
|
35
|
-
React.createElement("a", { onClick: (e) => onResourceClick(e, rule), className: "pf-
|
|
35
|
+
React.createElement("a", { onClick: (e) => onResourceClick(e, rule), className: "pf-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: `https://console.redhat.com/openshift/insights/advisor/clusters/${openshiftClusterID}`, target: "_blank", rel: "noopener noreferrer" },
|
|
36
36
|
React.createElement(Trans, null,
|
|
37
37
|
"View details and remediation steps ",
|
|
38
38
|
React.createElement(ArrowRightIcon, { "aria-hidden": "true" })))))))));
|
|
@@ -36,7 +36,7 @@ export default function ClusterRecommendations(props) {
|
|
|
36
36
|
React.createElement(Trans, null, "Cluster recommendations")),
|
|
37
37
|
React.createElement("div", null,
|
|
38
38
|
React.createElement(ClusterRecommendationItems, { clusterRecommendations: clusterRecommendations.data.slice(0, NUMBER_OF_RULES_TO_DISPLAY) }),
|
|
39
|
-
clusterRecommendations.data.length > NUMBER_OF_RULES_TO_DISPLAY && (React.createElement(Button, { className: "pf-
|
|
39
|
+
clusterRecommendations.data.length > NUMBER_OF_RULES_TO_DISPLAY && (React.createElement(Button, { className: "pf-u-p-md", variant: "link", isBlock: true, onClick: onViewMoreRecommendation, "data-tracking-id": "cluster-recs-view-more" },
|
|
40
40
|
React.createElement(Trans, null, "View more recommendations")))))),
|
|
41
41
|
showClusterRecommendationsModal && React.createElement(ClusterRecommendationsModal, null)));
|
|
42
42
|
}
|
|
@@ -10,7 +10,7 @@ export function EARuleInfoAccordion({ rule, showNewTag }) {
|
|
|
10
10
|
React.createElement(AccordionToggle, { isExpanded: isExpanded, id: "ea-rule-accordion-toggle", onClick: () => {
|
|
11
11
|
setIsExpanded(!isExpanded);
|
|
12
12
|
} },
|
|
13
|
-
showNewTag && ((_a = rule === null || rule === void 0 ? void 0 : rule.isNew) !== null && _a !== void 0 ? _a : false) && (React.createElement(Label, { color: "green", className: "pf-
|
|
13
|
+
showNewTag && ((_a = rule === null || rule === void 0 ? void 0 : rule.isNew) !== null && _a !== void 0 ? _a : false) && (React.createElement(Label, { color: "green", className: "pf-u-mr-md" },
|
|
14
14
|
React.createElement(Trans, null, "NEW"))),
|
|
15
15
|
React.createElement("span", null,
|
|
16
16
|
React.createElement(EARuleTitle, null))),
|
|
@@ -93,18 +93,18 @@ export function EARuleInfoInline({ eaRules = [] }) {
|
|
|
93
93
|
return (React.createElement(React.Fragment, null,
|
|
94
94
|
React.createElement(RecommendationFeedbackModal, { isModalOpen: isModalVisible, handleModalToggle: onModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
95
95
|
React.createElement(EARule, { rule: visibleRule },
|
|
96
|
-
React.createElement("div", { className: "pf-
|
|
97
|
-
React.createElement("div", { className: "pf-
|
|
96
|
+
React.createElement("div", { className: "pf-c-alert pf-m-info pf-m-inline pf-u-mb-md", "aria-label": "Success alert" },
|
|
97
|
+
React.createElement("div", { className: "pf-c-alert__icon" },
|
|
98
98
|
React.createElement(InfoCircleIcon, null)),
|
|
99
|
-
React.createElement("p", { className: "pf-
|
|
99
|
+
React.createElement("p", { className: "pf-c-alert__title" },
|
|
100
100
|
React.createElement("strong", null,
|
|
101
101
|
React.createElement(EARuleTitle, null))),
|
|
102
|
-
React.createElement("div", { className: "pf-
|
|
102
|
+
React.createElement("div", { className: "pf-c-alert__action" },
|
|
103
103
|
React.createElement(Button, { style: { fontSize: 15 }, variant: ButtonVariant.link, "data-tracking-id": "se-recommended-asa-ignore", type: "button", onClick: onIgnoreBtnClick }, validEARulesLength > 1 ? React.createElement(Trans, null, "Skip") : React.createElement(CloseIcon, null))),
|
|
104
|
-
React.createElement("div", { className: "pf-
|
|
104
|
+
React.createElement("div", { className: "pf-c-alert__description" },
|
|
105
105
|
React.createElement(EARuleDescription, null)),
|
|
106
|
-
React.createElement("div", { className: "pf-
|
|
107
|
-
React.createElement(EARuleArticle, { className: "pf-
|
|
106
|
+
React.createElement("div", { className: "pf-c-alert__action-group pf-u-display-flex" },
|
|
107
|
+
React.createElement(EARuleArticle, { className: "pf-u-align-self-center pf-u-mr-sm", linkTitle: "View details" }),
|
|
108
108
|
!isSecureSupportAccount && resolvedMyIssue(),
|
|
109
109
|
validEARulesLength > 1 && (React.createElement(PaginationCompact, { maxPage: validEARulesLength, onPageChange: onPaginationChange, dataTrackingId: 'se-recommended-asa-widget' })))))));
|
|
110
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsResults.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAgC,MAAM,0CAA0C,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwB5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"InsightsResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsResults.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAgC,MAAM,0CAA0C,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwB5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,eAyPrC;kBAzPQ,eAAe;;;AA4PxB,eAAe,eAAe,CAAC"}
|
|
@@ -87,7 +87,7 @@ function InsightsResults(props) {
|
|
|
87
87
|
payload: { isRuleModalVisible: isVisible },
|
|
88
88
|
});
|
|
89
89
|
};
|
|
90
|
-
function
|
|
90
|
+
function fetchFileRecommendations(localFile) {
|
|
91
91
|
var _a, _b, _c;
|
|
92
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
93
|
const analysisResults = (_a = localFile === null || localFile === void 0 ? void 0 : localFile.analysisMetadata) === null || _a === void 0 ? void 0 : _a.analysisResults;
|
|
@@ -190,7 +190,7 @@ function InsightsResults(props) {
|
|
|
190
190
|
!(insightResultsMap[localFile.attachmentId] || recommendedResultsMap[localFile.attachmentId]) &&
|
|
191
191
|
isAnalysisComplete(localFile.analysisMetadata.analysisStatus) &&
|
|
192
192
|
((_b = (_a = localFile.analysisMetadata.analysisResults) === null || _a === void 0 ? void 0 : _a.kcs_ids) !== null && _b !== void 0 ? _b : []).length > 0 &&
|
|
193
|
-
|
|
193
|
+
fetchFileRecommendations(localFile);
|
|
194
194
|
});
|
|
195
195
|
}
|
|
196
196
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -240,7 +240,7 @@ function InsightsResults(props) {
|
|
|
240
240
|
}
|
|
241
241
|
return (React.createElement(React.Fragment, null,
|
|
242
242
|
!rulesState.triggerRuleNotification && caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT && (React.createElement(Alert, { isInline: true, title: t('File recommendations are ready to view'), "data-tracking-id": "inline-view-critical-solution-alert", children: React.createElement("p", null,
|
|
243
|
-
React.createElement(Trans, null, "Troubleshooting specific for your uploaded files."))
|
|
243
|
+
React.createElement(Trans, null, "Troubleshooting specific for your uploaded files.")) })),
|
|
244
244
|
React.createElement(InsightResultModal, { EARule: validEARules, onModalToggle: insightsModalToggle, isOpen: isRuleModalVisible, insightResults: allResults })));
|
|
245
245
|
}
|
|
246
246
|
InsightsResults.defaultProps = defaultProps;
|
|
@@ -55,19 +55,19 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
|
55
55
|
React.createElement(AccordionToggle, { isExpanded: isParentExpanded, id: doc.id + doc.attachmentId, onClick: () => {
|
|
56
56
|
setIsParentExpanded(!isParentExpanded);
|
|
57
57
|
} },
|
|
58
|
-
showNewTag && ((_b = (_a = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _a === void 0 ? void 0 : _a.isNew) !== null && _b !== void 0 ? _b : false) && (React.createElement(Label, { color: "green", className: "pf-
|
|
58
|
+
showNewTag && ((_b = (_a = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _a === void 0 ? void 0 : _a.isNew) !== null && _b !== void 0 ? _b : false) && (React.createElement(Label, { color: "green", className: "pf-u-mr-md" },
|
|
59
59
|
React.createElement(Trans, null, "NEW"))),
|
|
60
60
|
React.createElement("div", null,
|
|
61
61
|
React.createElement("div", null, ruleData === null || ruleData === void 0 ? void 0 : ruleData.summary),
|
|
62
|
-
React.createElement("div", { className: "pf-
|
|
62
|
+
React.createElement("div", { className: "pf-u-mb-sm pf-u-text-align-left" }, ((_d = (_c = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : false) && (React.createElement(Label, null,
|
|
63
63
|
React.createElement(Trans, null, insightsReport.current.name)))),
|
|
64
|
-
React.createElement("div", { className: "pf-
|
|
65
|
-
React.createElement(LabelGroup, { numLabels: 5 }, ((doc === null || doc === void 0 ? void 0 : doc.tag) || []).map((tag) => (React.createElement(Label, { color: "gold", className: "pf-
|
|
64
|
+
React.createElement("div", { className: "pf-u-text-align-left" },
|
|
65
|
+
React.createElement(LabelGroup, { numLabels: 5 }, ((doc === null || doc === void 0 ? void 0 : doc.tag) || []).map((tag) => (React.createElement(Label, { color: "gold", className: "pf-u-mr-sm" }, tag))))))),
|
|
66
66
|
React.createElement(AccordionContent, { isHidden: !isParentExpanded },
|
|
67
67
|
React.createElement(Accordion, { asDefinitionList: false, className: "push-bottom-narrow" },
|
|
68
68
|
React.createElement(AccordionItem, null,
|
|
69
69
|
React.createElement(AccordionToggle, { isExpanded: isIssueExpanded, onClick: () => setIsIssueExpanded(!isIssueExpanded), id: `${doc.id}-detected-issue` },
|
|
70
|
-
React.createElement(BullseyeIcon, { className: "pf-
|
|
70
|
+
React.createElement(BullseyeIcon, { className: "pf-u-mr-sm" }),
|
|
71
71
|
React.createElement(Trans, null, "Detected issues")),
|
|
72
72
|
React.createElement(AccordionContent, { isHidden: !isIssueExpanded },
|
|
73
73
|
React.createElement("p", { dangerouslySetInnerHTML: {
|
|
@@ -76,11 +76,11 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
|
76
76
|
} }))),
|
|
77
77
|
((_f = ruleData === null || ruleData === void 0 ? void 0 : ruleData.more_info) !== null && _f !== void 0 ? _f : false) && (React.createElement(AccordionItem, null,
|
|
78
78
|
React.createElement(AccordionToggle, { isExpanded: isAdditionalExpanded, onClick: () => setIsAdditionalExpanded(!isAdditionalExpanded), id: `${doc.id}-additional-info` },
|
|
79
|
-
React.createElement(InfoCircleIcon, { className: "pf-
|
|
79
|
+
React.createElement(InfoCircleIcon, { className: "pf-u-mr-sm" }),
|
|
80
80
|
React.createElement(Trans, null, "Additional info")),
|
|
81
81
|
React.createElement(AccordionContent, { isHidden: !isAdditionalExpanded },
|
|
82
82
|
React.createElement("p", { onClick: onAdditionalInfoElemClick, dangerouslySetInnerHTML: parseMoreInfo(ruleData === null || ruleData === void 0 ? void 0 : ruleData.more_info, (_g = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _g === void 0 ? void 0 : _g.details) }))))),
|
|
83
83
|
React.createElement("pfe-cta", null,
|
|
84
|
-
React.createElement("a", { className: "se-recommended ts-result-insights pf-
|
|
84
|
+
React.createElement("a", { className: "se-recommended ts-result-insights pf-u-font-size-sm", rel: "noopener noreferrer", target: "_blank", onClick: onCtaClick(doc.view_uri), "data-tracking-id": "get-support-recommended-insights-rule", "aria-label": "Related article", role: "button", href: getTrackingULRWithQueryParams(doc.view_uri, SessionResourceSource.INSIGHTS) },
|
|
85
85
|
React.createElement(Trans, null, "Related article"))))))));
|
|
86
86
|
}
|
|
@@ -4,7 +4,7 @@ import { Trans } from 'react-i18next';
|
|
|
4
4
|
import { Link } from 'react-router-dom';
|
|
5
5
|
export function RecommendationFeedbackModal({ isModalOpen, handleModalToggle, modalContent }) {
|
|
6
6
|
return (React.createElement(Modal, { variant: ModalVariant.small, id: "resolved-feedback-modal", "aria-describedby": "rec-feedback-modal", "aria-label": "Feedback modal", isOpen: isModalOpen, onClose: handleModalToggle, actions: [
|
|
7
|
-
React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-
|
|
7
|
+
React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-c-button pf-m-primary", to: "/case/list" },
|
|
8
8
|
React.createElement(Trans, null, "View your cases")),
|
|
9
9
|
React.createElement(Button, { "data-tracking-id": "resolved-feedback-continue", key: "continue", variant: "link", onClick: handleModalToggle },
|
|
10
10
|
React.createElement(Trans, null, "Continue troubleshooting")),
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { RouteComponentProps } from 'react-router-dom';
|
|
2
|
+
import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
|
|
1
3
|
interface IProps {
|
|
4
|
+
routeProps: RouteComponentProps<IRouteUrlParams>;
|
|
2
5
|
}
|
|
3
6
|
export default function Recommendations(props: IProps): JSX.Element;
|
|
4
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,eAwQpD"}
|
|
@@ -2,7 +2,7 @@ import { pcm } from '@cee-eng/hydrajs';
|
|
|
2
2
|
import { Pagination, PaginationVariant } from '@patternfly/react-core';
|
|
3
3
|
import { LoadingDots, useDebounce, usePrevious } from '@rh-support/components';
|
|
4
4
|
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
5
|
-
import { computeRecommendationAbstract, computeRecommendationTitle, formatDate, scrollIntoView, } from '@rh-support/utils';
|
|
5
|
+
import { computeRecommendationAbstract, computeRecommendationTitle, formatDate, getConfigField, PCM_CONFIG_FIELD_TYPE, scrollIntoView, } from '@rh-support/utils';
|
|
6
6
|
import differenceBy from 'lodash/differenceBy';
|
|
7
7
|
import isEmpty from 'lodash/isEmpty';
|
|
8
8
|
import isEqual from 'lodash/isEqual';
|
|
@@ -16,10 +16,11 @@ import { RouteContext } from '../../context/RouteContext';
|
|
|
16
16
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
17
17
|
import { getRecommendationObject } from '../../reducers/CaseHelpers';
|
|
18
18
|
import { setCaseRecommendations } from '../../reducers/CaseReducer';
|
|
19
|
-
import { fetchRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
|
|
19
|
+
import { fetchRecommendations, fetchWatsonXRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
|
|
20
20
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
21
21
|
import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
|
|
22
22
|
import RouteUtils from '../../utils/routeUtils';
|
|
23
|
+
import { ShowRank } from './ShowRank';
|
|
23
24
|
const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
|
|
24
25
|
export default function Recommendations(props) {
|
|
25
26
|
var _a, _b, _c;
|
|
@@ -33,7 +34,10 @@ export default function Recommendations(props) {
|
|
|
33
34
|
const caseDispatch = useCaseDispatch();
|
|
34
35
|
// Use Case Number
|
|
35
36
|
const { caseNumber } = useParams();
|
|
36
|
-
const { globalMetadataState: { navBarRef, loggedInUsersAccount }, } = useGlobalStateContext();
|
|
37
|
+
const { globalMetadataState: { navBarRef, loggedInUsersAccount, pcmConfig }, } = useGlobalStateContext();
|
|
38
|
+
const { isFetchingRecommendationsFromWatsonX } = useCaseSelector((state) => ({
|
|
39
|
+
isFetchingRecommendationsFromWatsonX: state.isFetchingRecommendationsFromWatsonX,
|
|
40
|
+
}), isEqual);
|
|
37
41
|
const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
|
|
38
42
|
const { routeState: { activeSection }, } = useContext(RouteContext);
|
|
39
43
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
@@ -42,7 +46,9 @@ export default function Recommendations(props) {
|
|
|
42
46
|
const [pageSize, setPageSize] = useState(null);
|
|
43
47
|
const { recommendationState } = useContext(RecommendationStateContext);
|
|
44
48
|
const prevMainRecommendations = usePrevious((_a = recommendationState === null || recommendationState === void 0 ? void 0 : recommendationState.visibleDocs) !== null && _a !== void 0 ? _a : []);
|
|
49
|
+
const prevIsFetchingRecommendationsFromWatsonX = usePrevious(isFetchingRecommendationsFromWatsonX);
|
|
45
50
|
const recommendationDispatch = useContext(RecommendationDispatchContext);
|
|
51
|
+
const isRerankEnabled = getConfigField(pcmConfig.data, 'isRerankEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
|
|
46
52
|
const DEFAULTPAGESIZE = 8;
|
|
47
53
|
const MAXROW = 24;
|
|
48
54
|
const recPageSize = pageSize !== null && pageSize !== void 0 ? pageSize : DEFAULTPAGESIZE;
|
|
@@ -65,7 +71,10 @@ export default function Recommendations(props) {
|
|
|
65
71
|
* Also, log the newly presented resources on the session
|
|
66
72
|
*/
|
|
67
73
|
useDebounce(() => {
|
|
68
|
-
if (activeSection !== AppRouteSections.SUMMARIZE ||
|
|
74
|
+
if (activeSection !== AppRouteSections.SUMMARIZE ||
|
|
75
|
+
!summary ||
|
|
76
|
+
(isRecSearchPayloadSame &&
|
|
77
|
+
prevIsFetchingRecommendationsFromWatsonX === isFetchingRecommendationsFromWatsonX)) {
|
|
69
78
|
return;
|
|
70
79
|
}
|
|
71
80
|
setCurrentPage(recommendationDispatch, 1);
|
|
@@ -79,7 +88,9 @@ export default function Recommendations(props) {
|
|
|
79
88
|
// recreate a new AbortController for each call
|
|
80
89
|
let controller = new AbortController();
|
|
81
90
|
abortControllerRef.current = controller;
|
|
82
|
-
|
|
91
|
+
isFetchingRecommendationsFromWatsonX && !loggedInUsersAccount.data.secureSupport
|
|
92
|
+
? fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal, isRerankEnabled)
|
|
93
|
+
: fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
|
|
83
94
|
}, [
|
|
84
95
|
activeSection,
|
|
85
96
|
environment,
|
|
@@ -89,6 +100,7 @@ export default function Recommendations(props) {
|
|
|
89
100
|
summary,
|
|
90
101
|
version,
|
|
91
102
|
recommendationState.insightsKcsIds,
|
|
103
|
+
isFetchingRecommendationsFromWatsonX,
|
|
92
104
|
], 1000);
|
|
93
105
|
useEffect(() => {
|
|
94
106
|
const visibleRecs = [];
|
|
@@ -129,7 +141,7 @@ export default function Recommendations(props) {
|
|
|
129
141
|
};
|
|
130
142
|
return (React.createElement(React.Fragment, null,
|
|
131
143
|
React.createElement(LoadingDots, { show: recommendationState.isLoadingRecommendations && !isEmpty(summary) }),
|
|
132
|
-
React.createElement("div", { className: "recommendation-list pf-
|
|
144
|
+
React.createElement("div", { className: "recommendation-list pf-u-mt-lg", ref: resultRowRef },
|
|
133
145
|
React.createElement("ul", { className: "list-flat" }, map(recommendationState.visibleDocs, (doc, i) => {
|
|
134
146
|
var _a, _b;
|
|
135
147
|
return (React.createElement("li", { className: "result", key: doc.id },
|
|
@@ -142,6 +154,7 @@ export default function Recommendations(props) {
|
|
|
142
154
|
React.createElement("span", { className: "meta" }, doc.documentKind),
|
|
143
155
|
React.createElement("span", { className: "list-separator" }, "\u2013"),
|
|
144
156
|
React.createElement("time", { className: "moment_date meta", title: doc.lastModifiedDate.toString() }, formatDate(doc.lastModifiedDate)))),
|
|
157
|
+
isFetchingRecommendationsFromWatsonX && (React.createElement(ShowRank, { index: i, originalRank: doc.original_rank, routeProps: props.routeProps, perPage: recPageSize, pageNo: recommendationState.currentPage })),
|
|
145
158
|
React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 300) })));
|
|
146
159
|
})),
|
|
147
160
|
recommendationState.numFound !== 0 && recommendationState.numFound > DEFAULTPAGESIZE && (React.createElement("div", { className: "pagination-footer" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eA8M/C"}
|
|
@@ -95,13 +95,12 @@ export function InsightResultModal(props) {
|
|
|
95
95
|
}, [selectedLocalFiles, props.EARule]);
|
|
96
96
|
if (props.isRenderedMain) {
|
|
97
97
|
setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
|
|
98
|
-
return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations pf-
|
|
98
|
+
return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations pf-u-mt-md", isExpanded: isExpanded, isCompact: true },
|
|
99
99
|
React.createElement(CardHeader, { onExpand: onExpand, toggleButtonProps: {
|
|
100
100
|
id: 'toggle-button1',
|
|
101
101
|
'aria-label': t('File recommendations'),
|
|
102
102
|
'aria-labelledby': 'expandable-card-title toggle-button1',
|
|
103
103
|
'aria-expanded': isExpanded,
|
|
104
|
-
className: 'popular-solutions-toggle-button',
|
|
105
104
|
}, className: "popular-solutions" },
|
|
106
105
|
React.createElement(CardTitle, { id: "expandable-card-title", className: "card-title" },
|
|
107
106
|
React.createElement(Trans, null, "File recommendations"))),
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RouteComponentProps } from 'react-router-dom';
|
|
2
|
+
import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
|
|
3
|
+
interface IProps {
|
|
4
|
+
index: number;
|
|
5
|
+
originalRank: number;
|
|
6
|
+
routeProps: RouteComponentProps<IRouteUrlParams>;
|
|
7
|
+
perPage?: number;
|
|
8
|
+
pageNo?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function ShowRank(props: IProps): JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ShowRank.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShowRank.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ShowRank.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,eAuBrC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
2
|
+
import React, { useContext } from 'react';
|
|
3
|
+
import RouteUtils from '../../utils/routeUtils';
|
|
4
|
+
export function ShowRank(props) {
|
|
5
|
+
const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
6
|
+
const urlQueryParams = RouteUtils.getQueryParams(props.routeProps);
|
|
7
|
+
const rerankingFromUrl = urlQueryParams.reranking;
|
|
8
|
+
const isShowRerankingForInternalUsers = rerankingFromUrl === 'true' || rerankingFromUrl === 'false';
|
|
9
|
+
const getCurrentRank = () => {
|
|
10
|
+
if (props.perPage && props.pageNo) {
|
|
11
|
+
return props.perPage * (props.pageNo - 1) + props.index + 1;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return props.index + 1;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
if (!loggedInUserRights.data.isInternal() || !isShowRerankingForInternalUsers)
|
|
18
|
+
return React.createElement(React.Fragment, null);
|
|
19
|
+
return (React.createElement("div", { className: "result-body" },
|
|
20
|
+
React.createElement("strong", null, "New rank:"),
|
|
21
|
+
" ",
|
|
22
|
+
getCurrentRank(),
|
|
23
|
+
" ",
|
|
24
|
+
React.createElement("strong", null, "Old rank:"),
|
|
25
|
+
" ",
|
|
26
|
+
props.originalRank));
|
|
27
|
+
}
|
|
@@ -33,7 +33,7 @@ export function RemoteRiderBanner(props) {
|
|
|
33
33
|
setIsRemoteRiderModalVisible(false);
|
|
34
34
|
};
|
|
35
35
|
return (React.createElement(React.Fragment, null,
|
|
36
|
-
React.createElement(Alert, { isInline: true, className: "pf-
|
|
36
|
+
React.createElement(Alert, { isInline: true, className: "pf-u-mb-md", variant: areTermsAccepted ? AlertVariant.success : AlertVariant.info, title: "Remote support", actionLinks: areTermsAccepted ? (React.createElement("a", { href: "/articles/3566571", target: "_blank", rel: "noopener noreferrer", "data-tracking-id": "remote-rider-kbase" },
|
|
37
37
|
t('Learn how to join a remote session'),
|
|
38
38
|
" ",
|
|
39
39
|
React.createElement(ExternalLinkAltIcon, null))) : (React.createElement(React.Fragment, null,
|