@rh-support/troubleshoot 2.6.353 → 2.6.357
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/AccountInfo/AccountSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.js +19 -29
- package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/OwnerSelector.js +91 -16
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +6 -2
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +61 -32
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +8 -0
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +18 -0
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +60 -33
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +19 -9
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +15 -4
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +82 -55
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +2 -0
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +1 -2
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +8 -6
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +76 -45
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +203 -109
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +0 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +5 -5
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +1 -3
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +5 -9
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +18 -17
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +51 -47
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +49 -44
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +4 -0
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +23 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +51 -45
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +23 -10
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +0 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +3 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +132 -57
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +10 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +110 -65
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +16 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +40 -26
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +2 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +122 -148
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +4 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +76 -145
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +22 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +9 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +8 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +29 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +29 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +17 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +60 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +1 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +13 -8
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +9 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +217 -271
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +6 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +3 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +35 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +63 -224
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +4 -5
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +18 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +7 -2
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +38 -52
- package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseGroup.js +168 -61
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +10 -9
- package/lib/esm/components/CaseInformation/CaseLabels.d.ts +3 -0
- package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +1 -0
- package/lib/esm/components/CaseInformation/CaseLabels.js +103 -0
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +108 -31
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
- package/lib/esm/components/CaseInformation/Description.js +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.js +2 -5
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +31 -17
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +21 -13
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +36 -55
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +4 -0
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +1 -0
- package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +110 -0
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -8
- package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseManagement.js +13 -10
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +11 -9
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +2 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +22 -3
- package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +15 -22
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +34 -40
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
- package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +5 -4
- package/lib/esm/components/EditDescription/EditDescription.js +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +16 -18
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +4 -2
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +3 -15
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -37
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +37 -50
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +3 -0
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +1 -0
- package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +9 -0
- package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +1 -3
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +9 -1
- package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/AsideResults.js +5 -5
- package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +1 -4
- package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -4
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +10 -8
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +25 -19
- package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestore.js +3 -1
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +104 -62
- package/lib/esm/components/shared/Constants.d.ts +1 -0
- package/lib/esm/components/shared/Constants.d.ts.map +1 -1
- package/lib/esm/components/shared/Constants.js +1 -0
- package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
- package/lib/esm/components/shared/fileUpload/FileUpload.js +2 -3
- package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileUploader.js +3 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +1 -0
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +4 -3
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +21 -5
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +207 -34
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +5 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +36 -1
- package/lib/esm/components/shared/fileUpload/types/index.d.ts +5 -1
- package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
- package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/useFileUploader.js +116 -47
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +22 -57
- package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
- package/lib/esm/components/shared/usePostComment.js +16 -28
- package/lib/esm/components/shared/utils.d.ts +1 -0
- package/lib/esm/components/shared/utils.d.ts.map +1 -1
- package/lib/esm/components/shared/utils.js +9 -3
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +178 -38
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +2 -4
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +9 -13
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +7 -0
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +13 -10
- package/lib/esm/constants/caseDetailsConstants.d.ts +5 -0
- package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
- package/lib/esm/constants/caseDetailsConstants.js +5 -0
- package/lib/esm/context/CaseContext.d.ts.map +1 -1
- package/lib/esm/css/app.css +28 -0
- package/lib/esm/css/case.css +60 -209
- package/lib/esm/graphql/index.d.ts +4 -0
- package/lib/esm/graphql/index.d.ts.map +1 -0
- package/lib/esm/graphql/index.js +3 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +2 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +1 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.js +24 -0
- package/lib/esm/graphql/mutations/index.d.ts +2 -0
- package/lib/esm/graphql/mutations/index.d.ts.map +1 -0
- package/lib/esm/graphql/mutations/index.js +1 -0
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts +2 -0
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -0
- package/lib/esm/graphql/queries/getEscalationDetails.js +31 -0
- package/lib/esm/graphql/queries/index.d.ts +2 -0
- package/lib/esm/graphql/queries/index.d.ts.map +1 -0
- package/lib/esm/graphql/queries/index.js +1 -0
- package/lib/esm/graphql/schemas/escalation.d.ts +66 -0
- package/lib/esm/graphql/schemas/escalation.d.ts.map +1 -0
- package/lib/esm/graphql/schemas/escalation.js +1 -0
- package/lib/esm/graphql/schemas/index.d.ts +2 -0
- package/lib/esm/graphql/schemas/index.d.ts.map +1 -0
- package/lib/esm/graphql/schemas/index.js +1 -0
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +4 -0
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +52 -0
- package/lib/esm/hooks/useCaseComments/index.d.ts +7 -0
- package/lib/esm/hooks/useCaseComments/index.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/index.js +5 -0
- package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +25 -0
- package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/mapCaseComment.js +75 -0
- package/lib/esm/hooks/useCaseComments/types.d.ts +85 -0
- package/lib/esm/hooks/useCaseComments/types.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/types.js +1 -0
- package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +17 -0
- package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/useCaseComments.js +38 -0
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +19 -0
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +33 -0
- package/lib/esm/hooks/useCaseGroupUiState.d.ts +3 -0
- package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseGroupUiState.js +10 -0
- package/lib/esm/hooks/useCaseHistory.d.ts +26 -0
- package/lib/esm/hooks/useCaseHistory.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseHistory.js +98 -0
- package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +21 -0
- package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +1 -0
- package/lib/esm/hooks/useCaseLabelLinkMutations.js +91 -0
- package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -1
- package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
- package/lib/esm/hooks/useCaseUpdateErrorMessage.js +21 -11
- package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
- package/lib/esm/hooks/useResetCaseCreate.js +18 -11
- package/lib/esm/hooks/useS3Upload.d.ts +5 -4
- package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
- package/lib/esm/hooks/useS3Upload.js +28 -30
- package/lib/esm/i18n/template-de.d.ts +2 -2
- package/lib/esm/i18n/template-de.js +2 -2
- package/lib/esm/i18n/template-es.d.ts +2 -2
- package/lib/esm/i18n/template-es.js +2 -2
- package/lib/esm/i18n/template-fr.d.ts +2 -2
- package/lib/esm/i18n/template-fr.js +2 -2
- package/lib/esm/i18n/template-it.d.ts +2 -2
- package/lib/esm/i18n/template-it.js +2 -2
- package/lib/esm/i18n/template-jp.d.ts +2 -2
- package/lib/esm/i18n/template-jp.js +2 -2
- package/lib/esm/i18n/template-ko.d.ts +2 -2
- package/lib/esm/i18n/template-ko.js +2 -2
- package/lib/esm/i18n/template-pt.d.ts +2 -2
- package/lib/esm/i18n/template-pt.js +2 -2
- package/lib/esm/i18n/template-ru.d.ts +2 -2
- package/lib/esm/i18n/template-ru.js +2 -2
- package/lib/esm/i18n/template-zh.d.ts +2 -2
- package/lib/esm/i18n/template-zh.js +2 -2
- package/lib/esm/index.js +1 -0
- package/lib/esm/models/cache.d.ts +0 -2
- package/lib/esm/models/cache.d.ts.map +1 -1
- package/lib/esm/models/caseHistory.d.ts +80 -0
- package/lib/esm/models/caseHistory.d.ts.map +1 -0
- package/lib/esm/models/caseHistory.js +1 -0
- package/lib/esm/reducers/CaseConstNTypes.d.ts +123 -9
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +31 -7
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +7 -5
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseDetailsPageReducer.js +58 -26
- package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +11 -12
- package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseDiscussionTabReducer.js +63 -70
- package/lib/esm/reducers/CaseHelpers.d.ts +11 -1
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +117 -17
- package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
- package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
- package/lib/esm/reducers/CaseReducer.d.ts +56 -11
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +279 -99
- package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
- package/lib/esm/reducers/RecommendationsReducer.js +16 -19
- package/lib/esm/scss/_main.scss +9 -0
- package/lib/esm/utils/TimelineUtils.d.ts +41 -0
- package/lib/esm/utils/TimelineUtils.d.ts.map +1 -0
- package/lib/esm/utils/TimelineUtils.js +135 -0
- package/lib/esm/utils/caseHistoryUtils.d.ts +66 -0
- package/lib/esm/utils/caseHistoryUtils.d.ts.map +1 -0
- package/lib/esm/utils/caseHistoryUtils.js +165 -0
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +1 -2
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +6 -0
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +1 -0
- package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +26 -0
- package/package.json +9 -8
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +0 -25
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +0 -88
|
@@ -7,11 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { useApolloClient } from '@apollo/client/react';
|
|
11
11
|
import { Button, Dropdown, DropdownItem, DropdownList, Flex, FlexItem, MenuToggle, Modal, ModalBody, ModalFooter, ModalHeader, Spinner, TextArea, } from '@patternfly/react-core';
|
|
12
|
-
import { ToastNotification
|
|
12
|
+
import { ToastNotification } from '@rh-support/components';
|
|
13
13
|
import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
|
|
14
|
-
import { autoEnableFtsOnCaseViewEditPage,
|
|
14
|
+
import { autoEnableFtsOnCaseViewEditPage, isPremiumEntitlement, isSev1, PreviousCaseTypes, severitySort, showFtsOnCreateCasePage, } from '@rh-support/utils';
|
|
15
15
|
import { isUndefined } from 'lodash';
|
|
16
16
|
import find from 'lodash/find';
|
|
17
17
|
import includes from 'lodash/includes';
|
|
@@ -21,13 +21,11 @@ import map from 'lodash/map';
|
|
|
21
21
|
import React, { useContext, useEffect, useReducer, useRef, useState } from 'react';
|
|
22
22
|
import { Trans, useTranslation } from 'react-i18next';
|
|
23
23
|
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
24
|
-
import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
|
|
25
|
-
import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../context/CaseDiscussionTabContext';
|
|
26
24
|
import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
|
|
27
|
-
import { updateDiscussionStateComments } from '../../reducers/CaseDiscussionTabReducer';
|
|
28
25
|
import { getNewSeverityStringDef, getSeverityDescription } from '../../reducers/CaseHelpers';
|
|
29
26
|
import { caseOverviewReducer, initialCaseViewState, setSeverityUpdating } from '../../reducers/CaseOverviewReducer';
|
|
30
|
-
import { checkForCaseStatusToggleOnAttachOrComment, setCaseState,
|
|
27
|
+
import { checkForCaseStatusToggleOnAttachOrComment, setCaseState, updateCaseSeverityAndFtsGraphQL, } from '../../reducers/CaseReducer';
|
|
28
|
+
import { usePostComment } from '../shared/usePostComment';
|
|
31
29
|
export default function UpdateSeverityModal(props) {
|
|
32
30
|
const { show, onClose, isDisabled, isFetching } = props;
|
|
33
31
|
const { t } = useTranslation();
|
|
@@ -40,12 +38,7 @@ export default function UpdateSeverityModal(props) {
|
|
|
40
38
|
const [isUpdateClickedToShowError, setIsUpdateClickedToShowError] = useState(false);
|
|
41
39
|
const [isSeverityInValid, setIsSeverityInValid] = useState(false);
|
|
42
40
|
const [seviritiesOptions, setSeveritiesOptions] = useState([]);
|
|
43
|
-
const
|
|
44
|
-
propgateErrors: true,
|
|
45
|
-
});
|
|
46
|
-
const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
|
|
47
|
-
const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
|
|
48
|
-
const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
|
|
41
|
+
const client = useApolloClient();
|
|
49
42
|
const { globalMetadataState: { allCaseSeverities, allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
50
43
|
const caseState = useCaseSelector((state) => ({
|
|
51
44
|
caseDetails: {
|
|
@@ -61,19 +54,30 @@ export default function UpdateSeverityModal(props) {
|
|
|
61
54
|
phoneCountryCode: state.caseDetails.phoneCountryCode,
|
|
62
55
|
phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber || '',
|
|
63
56
|
},
|
|
57
|
+
existingCaseDetails: state.caseDetails,
|
|
64
58
|
isCaseUpdating: state.isCaseUpdating,
|
|
65
59
|
versionsDetails: state.versionsDetails,
|
|
66
60
|
ownersEntitlements: state.ownersEntitlements,
|
|
67
61
|
ftsContactSameAsOwner: state.ftsContactSameAsOwner,
|
|
68
62
|
}), isEqual);
|
|
69
|
-
const {
|
|
63
|
+
const { postComment, isPostingComment } = usePostComment({
|
|
64
|
+
caseNumber: caseState.caseDetails.caseNumber,
|
|
65
|
+
});
|
|
66
|
+
const { caseDetails, existingCaseDetails, isCaseUpdating, ownersEntitlements, versionsDetails, ftsContactSameAsOwner, } = caseState;
|
|
70
67
|
const { entitlementSla, fts, contactInfo24x7, caseType, phoneAreaCodePrefixLineNumber, phoneCountryCode } = caseDetails;
|
|
71
68
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
72
69
|
const [currentSeverity, setCurrentSeverity] = useState(caseDetails.caseSeverity);
|
|
70
|
+
const updateSeverityViaGraphQL = (payload) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
yield updateCaseSeverityAndFtsGraphQL(caseDispatch, client, caseDetails.caseNumber, payload, (_b = (_a = payload.severity) !== null && _a !== void 0 ? _a : currentSeverity) !== null && _b !== void 0 ? _b : caseDetails.caseSeverity, { existingCaseDetails });
|
|
73
|
+
});
|
|
73
74
|
const [localFtsContact, setLocalFtsContact] = useState(contactInfo24x7 || '');
|
|
74
75
|
const [localFts, setLocalFts] = useState(isUndefined(fts) ? true : fts);
|
|
75
76
|
const initialContactSameAsOwnerRef = useRef(ftsContactSameAsOwner !== null && ftsContactSameAsOwner !== void 0 ? ftsContactSameAsOwner : false);
|
|
76
|
-
const
|
|
77
|
+
const hasPremiumSla = isPremiumEntitlement(entitlementSla || '');
|
|
78
|
+
const severityForFts = String(currentSeverity !== null && currentSeverity !== void 0 ? currentSeverity : '').trim();
|
|
79
|
+
const shouldShowFts = isSev1(severityForFts) && hasPremiumSla;
|
|
80
|
+
const isPreviousSeveritySelected = isEqual(caseDetails.caseSeverity, currentSeverity);
|
|
77
81
|
const [isOpen, setIsOpen] = useState(false);
|
|
78
82
|
const onToggleClick = () => {
|
|
79
83
|
setIsOpen(!isOpen);
|
|
@@ -148,25 +152,34 @@ export default function UpdateSeverityModal(props) {
|
|
|
148
152
|
const getFtsUpdateComment = () => {
|
|
149
153
|
if (isIdea)
|
|
150
154
|
return '';
|
|
151
|
-
|
|
155
|
+
// 24x7 fields are only shown for severity 1; do not report contact changes the user could not make.
|
|
156
|
+
if (!shouldShowFts)
|
|
152
157
|
return '';
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
+
const normalize24x7Contact = (value) => (value !== null && value !== void 0 ? value : '').trim();
|
|
159
|
+
const savedContact = normalize24x7Contact(caseDetails.contactInfo24x7);
|
|
160
|
+
const localContact = normalize24x7Contact(localFtsContact);
|
|
161
|
+
if (isEqual(caseDetails.fts, localFts) && isEqual(savedContact, localContact))
|
|
162
|
+
return '';
|
|
163
|
+
if (caseDetails.fts && !localFts) {
|
|
164
|
+
return '<h4>Contact Support Update</h4><p>User disabled 24x7 contact support</p>';
|
|
165
|
+
}
|
|
166
|
+
if (!caseDetails.fts && localFts) {
|
|
167
|
+
return '<h4>Contact Support Update</h4><p>User enabled 24x7 contact support</p>';
|
|
168
|
+
}
|
|
169
|
+
return '<h4>Contact Support Update</h4><p>User updated 24x7 contact information</p>';
|
|
158
170
|
};
|
|
159
171
|
const updateCaseFtsInfo = () => __awaiter(this, void 0, void 0, function* () {
|
|
160
172
|
try {
|
|
161
|
-
const ftsUpdateComment = `${getFtsUpdateComment()}
|
|
162
|
-
yield
|
|
173
|
+
const ftsUpdateComment = `${getFtsUpdateComment()}<h4>Description</h4><p>${descriptionValue.trim()}</p>`;
|
|
174
|
+
yield updateSeverityViaGraphQL({
|
|
175
|
+
severity: currentSeverity || caseDetails.caseSeverity,
|
|
163
176
|
fts: localFts,
|
|
164
177
|
contactInfo24x7: localFtsContact,
|
|
165
178
|
});
|
|
166
|
-
yield
|
|
167
|
-
caseNumber: caseDetails.caseNumber,
|
|
179
|
+
yield postComment({
|
|
168
180
|
commentBody: ftsUpdateComment === null || ftsUpdateComment === void 0 ? void 0 : ftsUpdateComment.trim(),
|
|
169
181
|
contentType: 'markdown',
|
|
182
|
+
updateDiscussionState: true,
|
|
170
183
|
});
|
|
171
184
|
ToastNotification.addSuccessMessage(t(`Case has been successfully updated`));
|
|
172
185
|
}
|
|
@@ -190,46 +203,53 @@ export default function UpdateSeverityModal(props) {
|
|
|
190
203
|
}
|
|
191
204
|
const ftsUpdateComment = getFtsUpdateComment();
|
|
192
205
|
// Severity update successful comment body
|
|
193
|
-
const severityUpdateComment = t(
|
|
206
|
+
const severityUpdateComment = t(`<h4>Severity update</h4><p>Severity changed from {{oldSeverity}} to {{newSeverity}}</p>${isEmpty(ftsUpdateComment) ? '' : ftsUpdateComment}<h4>Description</h4><p>{{description}}</p>`, {
|
|
194
207
|
oldSeverity: caseDetails.caseSeverity,
|
|
195
208
|
newSeverity: updatedCaseDetails['severity'],
|
|
196
209
|
description: descriptionValue === null || descriptionValue === void 0 ? void 0 : descriptionValue.trim(),
|
|
197
210
|
});
|
|
198
211
|
// Severity update failed comment body
|
|
199
|
-
const severityUpdateFailedComment = t('
|
|
212
|
+
const severityUpdateFailedComment = t('<h4>Severity update</h4><p>Failed to change severity from {{oldSeverity}} to {{newSeverity}}. Please try again</p>', {
|
|
200
213
|
oldSeverity: caseDetails.caseSeverity,
|
|
201
|
-
|
|
214
|
+
newSeverity: updatedCaseDetails['severity'],
|
|
202
215
|
});
|
|
203
216
|
try {
|
|
204
217
|
setSeverityUpdating(caseOverviewDispatch, true);
|
|
205
|
-
yield
|
|
218
|
+
yield updateSeverityViaGraphQL(updatedCaseDetails);
|
|
206
219
|
try {
|
|
207
|
-
yield
|
|
208
|
-
caseNumber: caseDetails.caseNumber,
|
|
220
|
+
yield postComment({
|
|
209
221
|
commentBody: severityUpdateComment === null || severityUpdateComment === void 0 ? void 0 : severityUpdateComment.trim(),
|
|
210
222
|
contentType: 'markdown',
|
|
223
|
+
updateDiscussionState: true,
|
|
211
224
|
});
|
|
212
225
|
try {
|
|
213
|
-
checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), caseDetails.caseStatus
|
|
226
|
+
yield checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), caseDetails.caseStatus, {
|
|
227
|
+
apolloClient: client,
|
|
228
|
+
caseNumber: caseDetails.caseNumber,
|
|
229
|
+
existingCaseDetails,
|
|
230
|
+
});
|
|
214
231
|
setCurrentSeverity(updatedCaseDetails['severity']);
|
|
215
232
|
onSuccessfulSubmit();
|
|
216
233
|
ToastNotification.addSuccessMessage(t('Severity has been successfully updated'));
|
|
217
234
|
}
|
|
218
235
|
catch (e) {
|
|
219
|
-
yield
|
|
220
|
-
caseNumber: caseDetails.caseNumber,
|
|
236
|
+
yield postComment({
|
|
221
237
|
commentBody: severityUpdateFailedComment === null || severityUpdateFailedComment === void 0 ? void 0 : severityUpdateFailedComment.trim(),
|
|
222
238
|
contentType: 'markdown',
|
|
239
|
+
updateDiscussionState: true,
|
|
223
240
|
});
|
|
224
241
|
onClose();
|
|
225
242
|
caseUpdateError.showError(e, t(`Failed to update case status. Please try again`));
|
|
226
|
-
yield
|
|
243
|
+
yield updateSeverityViaGraphQL({
|
|
244
|
+
status: 'Waiting on Customer Action Required',
|
|
245
|
+
severity: updatedCaseDetails['severity'],
|
|
246
|
+
});
|
|
227
247
|
}
|
|
228
248
|
}
|
|
229
249
|
catch (e) {
|
|
230
250
|
onClose();
|
|
231
251
|
caseUpdateError.showError(e, t(`Couldn't post severity update comment. Please try again`));
|
|
232
|
-
yield
|
|
252
|
+
yield updateSeverityViaGraphQL({
|
|
233
253
|
severity: caseDetails.caseSeverity,
|
|
234
254
|
});
|
|
235
255
|
setDescriptionValue(descriptionValue === null || descriptionValue === void 0 ? void 0 : descriptionValue.trim());
|
|
@@ -240,14 +260,13 @@ export default function UpdateSeverityModal(props) {
|
|
|
240
260
|
catch (e) {
|
|
241
261
|
onClose();
|
|
242
262
|
caseUpdateError.showError(e, t('Severity failed to update'));
|
|
243
|
-
yield
|
|
263
|
+
yield updateSeverityViaGraphQL({
|
|
244
264
|
severity: caseDetails.caseSeverity,
|
|
245
265
|
});
|
|
246
266
|
reUpdateSeverity(caseDetails.caseSeverity);
|
|
247
267
|
setDescriptionValue(descriptionValue === null || descriptionValue === void 0 ? void 0 : descriptionValue.trim());
|
|
248
268
|
}
|
|
249
269
|
finally {
|
|
250
|
-
yield updateDiscussionStateComments(dispatchDiscussion, caseDispatch, caseDetails.caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
|
|
251
270
|
setIsUpdateClickedToShowError(false);
|
|
252
271
|
setDescriptionValue('');
|
|
253
272
|
}
|
|
@@ -265,14 +284,12 @@ export default function UpdateSeverityModal(props) {
|
|
|
265
284
|
if (isEmpty(updatedCaseDetails)) {
|
|
266
285
|
return false;
|
|
267
286
|
}
|
|
268
|
-
|
|
287
|
+
if (isEqual(caseDetails.caseSeverity, currentSeverity) &&
|
|
269
288
|
isEqual(caseDetails.fts, localFts) &&
|
|
270
289
|
isEqual(caseDetails.contactInfo24x7, localFtsContact)) {
|
|
271
290
|
return false;
|
|
272
291
|
}
|
|
273
|
-
|
|
274
|
-
return true;
|
|
275
|
-
}
|
|
292
|
+
return true;
|
|
276
293
|
};
|
|
277
294
|
const onFtsChange = (e) => {
|
|
278
295
|
if (canEditCase.alert())
|
|
@@ -287,8 +304,9 @@ export default function UpdateSeverityModal(props) {
|
|
|
287
304
|
if (!e.target.checked) {
|
|
288
305
|
return;
|
|
289
306
|
}
|
|
290
|
-
|
|
291
|
-
|
|
307
|
+
const ownerPhone = `${phoneCountryCode}-${phoneAreaCodePrefixLineNumber}`;
|
|
308
|
+
setUpdatedCaseDetails((pre) => (Object.assign(Object.assign({}, pre), { contactInfo24x7: ownerPhone })));
|
|
309
|
+
setLocalFtsContact(ownerPhone);
|
|
292
310
|
};
|
|
293
311
|
const onFtsContactChange = (e) => {
|
|
294
312
|
if (canEditCase.alert())
|
|
@@ -296,21 +314,46 @@ export default function UpdateSeverityModal(props) {
|
|
|
296
314
|
setLocalFtsContact(e.target.value);
|
|
297
315
|
setUpdatedCaseDetails((pre) => (Object.assign(Object.assign({}, pre), { contactInfo24x7: e.target.value.trim() })));
|
|
298
316
|
};
|
|
299
|
-
|
|
300
|
-
const
|
|
317
|
+
const isUpdateValid = checkIsUpdateValid();
|
|
318
|
+
const isDescriptionDisabled = (caseOverviewState.caseSeverityUpdating && isCaseUpdating) || isPostingComment || !isUpdateValid;
|
|
319
|
+
const isSubmitButtonDisabled = !(isUpdateValid && isTextAreaValid());
|
|
301
320
|
// To handle the severity change
|
|
302
|
-
const onSeverityChange = (
|
|
321
|
+
const onSeverityChange = (_event, value) => {
|
|
303
322
|
if (canEditCase.alert())
|
|
304
323
|
return;
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
324
|
+
const option = typeof value === 'object' && value !== null && 'name' in value
|
|
325
|
+
? value
|
|
326
|
+
: filteredSeverities.find((s) => s.name === value) || {
|
|
327
|
+
name: String(value),
|
|
328
|
+
disabled: false,
|
|
329
|
+
label: String(value),
|
|
330
|
+
additionalInfo: '',
|
|
331
|
+
};
|
|
332
|
+
// Re-selecting the previously saved severity: reset and keep description/Update disabled
|
|
333
|
+
if (isEqual(caseDetails.caseSeverity, option.name)) {
|
|
334
|
+
setCurrentSeverity(option.name);
|
|
335
|
+
setUpdatedCaseDetails({});
|
|
336
|
+
setLocalFts(isUndefined(fts) ? true : !!fts);
|
|
337
|
+
setLocalFtsContact(contactInfo24x7 || '');
|
|
338
|
+
setCaseState(caseDispatch, { ftsContactSameAsOwner: initialContactSameAsOwnerRef.current });
|
|
339
|
+
setDescriptionValue('');
|
|
340
|
+
setIsUpdateClickedToShowError(false);
|
|
341
|
+
setIsSeverityInValidLocal(option);
|
|
342
|
+
setIsOpen(false);
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (isSev1(option.name) && (hasPremiumSla || isEmpty(entitlementSla))) {
|
|
308
346
|
setLocalFts(true);
|
|
309
347
|
setLocalFtsContact('');
|
|
310
348
|
setCaseState(caseDispatch, { ftsContactSameAsOwner: false });
|
|
311
|
-
setUpdatedCaseDetails(
|
|
349
|
+
setUpdatedCaseDetails({
|
|
350
|
+
severity: option.name,
|
|
351
|
+
fts: !isIdea,
|
|
352
|
+
contactInfo24x7: '',
|
|
353
|
+
});
|
|
312
354
|
}
|
|
313
355
|
else {
|
|
356
|
+
setLocalFts(false);
|
|
314
357
|
setUpdatedCaseDetails({ severity: option.name, fts: false });
|
|
315
358
|
}
|
|
316
359
|
setCurrentSeverity(option.name);
|
|
@@ -360,8 +403,8 @@ export default function UpdateSeverityModal(props) {
|
|
|
360
403
|
]);
|
|
361
404
|
useEffect(() => {
|
|
362
405
|
const phone = `${phoneCountryCode}-${phoneAreaCodePrefixLineNumber}`;
|
|
363
|
-
setLocalFts(fts);
|
|
364
|
-
setLocalFtsContact(contactInfo24x7);
|
|
406
|
+
setLocalFts(isUndefined(fts) ? true : fts);
|
|
407
|
+
setLocalFtsContact(contactInfo24x7 || '');
|
|
365
408
|
if (contactInfo24x7 === phone) {
|
|
366
409
|
setCaseState(caseDispatch, { ftsContactSameAsOwner: true });
|
|
367
410
|
}
|
|
@@ -383,23 +426,21 @@ export default function UpdateSeverityModal(props) {
|
|
|
383
426
|
React.createElement(FlexItem, null, selectedSeverity.label || t(`Select a severity`)),
|
|
384
427
|
React.createElement(FlexItem, null, isFetching || versionsDetails.isFetching ? React.createElement(Spinner, { size: "md" }) : '')))), shouldFocusToggleOnSelect: true, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
|
|
385
428
|
React.createElement(DropdownList, null, allCaseSeverities.data
|
|
386
|
-
? filteredSeverities.map((option) => (React.createElement(DropdownItem, { value: option, key: option.name, description: option.additionalInfo }, option.label)))
|
|
429
|
+
? filteredSeverities.map((option) => (React.createElement(DropdownItem, { value: option.name, key: option.name, description: option.additionalInfo }, option.label)))
|
|
387
430
|
: []))),
|
|
388
431
|
React.createElement("div", null,
|
|
389
432
|
React.createElement("label", { htmlFor: "date-input", className: "pf-v6-u-mt-md" },
|
|
390
433
|
React.createElement(Trans, null, "Describe update"),
|
|
391
434
|
React.createElement("span", { className: "form-required", "aria-hidden": "true" }, "*")),
|
|
392
|
-
React.createElement(TextArea, { placeholder: t('How has the business impact changed? If you have increased severity, please explain why.'), isDisabled: (
|
|
393
|
-
isPostingComment ||
|
|
394
|
-
!checkIsUpdateValid(), value: descriptionValue, onChange: (_event, value) => handleTextAreaChange(value), resizeOrientation: "vertical", "aria-label": "severity-update-descritpion", validated: isEmpty(descriptionValue) && isUpdateClickedToShowError ? 'error' : 'default', isRequired: true }),
|
|
435
|
+
React.createElement(TextArea, { placeholder: t('How has the business impact changed? If you have increased severity, please explain why.'), isDisabled: isDescriptionDisabled, value: descriptionValue, onChange: (_event, value) => handleTextAreaChange(value), resizeOrientation: "vertical", "aria-label": "severity-update-descritpion", validated: isEmpty(descriptionValue) && isUpdateClickedToShowError ? 'error' : 'default', isRequired: true }),
|
|
395
436
|
React.createElement("div", { className: "pf-v6-u-mt-xs" },
|
|
396
437
|
React.createElement(Trans, null, "To view your comment, go to the Discussion tab."))),
|
|
397
|
-
|
|
438
|
+
shouldShowFts && (React.createElement("div", { className: "pf-v6-u-mt-md pf-v6-u-mb-sm" },
|
|
398
439
|
React.createElement("div", null,
|
|
399
440
|
React.createElement("input", { type: "checkbox", id: "update-severity-fts", "data-tracking-id": "update-severity-fts", name: "update-severity-fts", checked: localFts, onChange: onFtsChange }),
|
|
400
441
|
React.createElement("label", { htmlFor: "update-severity-fts" },
|
|
401
442
|
React.createElement(Trans, null, "24x7 Support"))),
|
|
402
|
-
localFts && (React.createElement("div", null,
|
|
443
|
+
(localFts || isSev1(currentSeverity)) && (React.createElement("div", null,
|
|
403
444
|
React.createElement("label", { htmlFor: "update-severity-24-7-contact", className: "pf-v6-u-mt-xs" },
|
|
404
445
|
React.createElement(Trans, null, "Contact for 24x7 support")),
|
|
405
446
|
React.createElement("div", null,
|
|
@@ -419,8 +460,9 @@ export default function UpdateSeverityModal(props) {
|
|
|
419
460
|
React.createElement("p", { className: "pf-v6-u-text-color-subtle pf-v6-u-font-size-sm pf-v6-u-mb-md" }, t('Describing your update helps us better assist you.')),
|
|
420
461
|
modalBody()),
|
|
421
462
|
React.createElement(ModalFooter, null,
|
|
422
|
-
React.createElement(Button, { key: "submit", variant: "primary", onClick: onSubmit, isLoading: isCaseUpdating || isPostingComment, "data-tracking-id": "update-severity-submit", isDisabled:
|
|
423
|
-
|
|
424
|
-
|
|
463
|
+
React.createElement(Button, { key: "submit", variant: "primary", onClick: onSubmit, isLoading: isCaseUpdating || isPostingComment, "data-tracking-id": "update-severity-submit", isDisabled: (isPreviousSeveritySelected && !onlyFtsInfoChanged) ||
|
|
464
|
+
(!isUpdateClickedToShowError && isUpdateValid
|
|
465
|
+
? false
|
|
466
|
+
: isSubmitButtonDisabled || isCaseUpdating || isPostingComment) }, t('Update')),
|
|
425
467
|
React.createElement(Button, { key: "back", variant: "link", onClick: onCancel, "data-tracking-id": "update-severity-cancel", isDisabled: isCaseUpdating || isPostingComment }, t('Cancel')))));
|
|
426
468
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/Constants.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/Constants.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1B,wBAgCE;AAEF;;GAEG;AACH,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,iBAAiB;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,8BAA8B;IACnC,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,kBAAkB,yBAAyB;CAC9C;AAED,eAAO,MAAM,8BAA8B,oDAAoD,CAAC;AAEhG,eAAO,MAAM,oCAAoC,wDAAwD,CAAC;AAC1G,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,sBAAsB,2CAA2C,CAAC;AAE/E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;CAKtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FileLister.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileLister.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuB1B,OAAO,EAAiB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGxE,eAAO,MAAM,qBAAqB,2FAAyC,CAAC;AAiB5E,UAAU,MAAM;IACZ,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACtG,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,qBAqS/C"}
|
|
@@ -11,7 +11,7 @@ import React from 'react';
|
|
|
11
11
|
import { Trans, useTranslation } from 'react-i18next';
|
|
12
12
|
import { useCaseSelector } from '../../../context/CaseContext';
|
|
13
13
|
import { ATTACHMENT_DESCRIPTION_LENGTH_LIMIT } from '../../../reducers/CaseConstNTypes';
|
|
14
|
-
import { isAnalysingFile, isAnalysisFailed, isFileDeleted, isUploadAborted, isUploadedAndAnalysisFailed, isUploadedAndAnalysisSkipped, isUploadedAndAnalyzed, isUploadFailed, isUploading, isUploadingAttachment, isUploadingOnCase, isUploadingOnSession, isUploadOnTrack, isVerifyingUpload, shouldHideDescription, } from './reducer/AttachmentHelper';
|
|
14
|
+
import { isAnalysingFile, isAnalysisFailed, isFileDeleted, isUploadAborted, isUploadedAndAnalysisFailed, isUploadedAndAnalysisSkipped, isUploadedAndAnalyzed, isUploadFailed, isUploading, isUploadingAttachment, isUploadingOnCase, isUploadingOnSession, isUploadOnTrack, isVerifyingUpload, shouldHideDescription, shouldShowUploadProgressIndicator, } from './reducer/AttachmentHelper';
|
|
15
15
|
import { FileStatusHelper } from './reducer/FileStatusHelper';
|
|
16
16
|
export const CaseDiagnosticsStatus = pcm.preCase.diag.CaseDiagnosticsStatus;
|
|
17
17
|
const analysisSteps = [
|
|
@@ -108,7 +108,7 @@ export default function FileLister(props) {
|
|
|
108
108
|
!isUploadOnTrack(localFile) && (React.createElement("i", { className: "icon-warning pf-v6-u-mr-sm", title: getUploadErrorMessage(localFile, localFile.uploadability), "aria-label": getUploadErrorMessage(localFile, localFile.uploadability) })),
|
|
109
109
|
isUploadedAndAnalysisFailed(localFile) && (React.createElement("i", { className: "icon-warning text-danger pf-v6-u-mr-sm", title: getUploadErrorMessage(localFile, localFile.uploadability), "aria-label": getUploadErrorMessage(localFile, localFile.uploadability) })),
|
|
110
110
|
isUploadedAndAnalyzed(localFile) && (React.createElement("i", { className: "icon-check-alt text-green pf-v6-u-mr-sm", title: t('File uploaded and analyzed'), "aria-label": t('File uploaded and analyzed') })),
|
|
111
|
-
|
|
111
|
+
shouldShowUploadProgressIndicator(localFile, props.isSessionId) && (React.createElement("div", { className: "pf-v6-u-mr-sm pf-v6-u-display-inline-block", style: { height: '20px', width: '20px' } },
|
|
112
112
|
React.createElement(CircularProgressbar, { title: getRadialProgressTitle(localFile), strokeWidth: 13, value: localFile.uploadProgress.percentUploaded }))),
|
|
113
113
|
React.createElement("span", null, `${localFile.name} (${humanizeSize(localFile.size)})`),
|
|
114
114
|
!localFile.uploadability.ableToUpload && (React.createElement("span", { className: "file-error" },
|
|
@@ -122,7 +122,7 @@ export default function FileLister(props) {
|
|
|
122
122
|
React.createElement(HistoryIcon, null))),
|
|
123
123
|
!isVerifyingUpload(localFile.uploadProgress.uploadStatus) &&
|
|
124
124
|
!isAnalysingFile(localFile.analysisMetadata.analysisStatus) && (React.createElement(React.Fragment, null,
|
|
125
|
-
canShowAbortBtn(localFile.uploadProgress.uploadStatus) && (React.createElement(Button, { variant: ButtonVariant.link, isDanger: true, "aria-label": t('Cancel Upload'), title: t('Cancel Upload'), className: "btn btn-link btn-app remove-file", "data-tracking-id": "file-lister-abort", onClick: onAbortClick(localFile, index), hidden: !localFile.uploadability.ableToUpload, isDisabled: !
|
|
125
|
+
canShowAbortBtn(localFile.uploadProgress.uploadStatus) && (React.createElement(Button, { variant: ButtonVariant.link, isDanger: true, "aria-label": t('Cancel Upload'), title: t('Cancel Upload'), className: "btn btn-link btn-app remove-file", "data-tracking-id": "file-lister-abort", onClick: onAbortClick(localFile, index), hidden: !localFile.uploadability.ableToUpload, isDisabled: !localFile.uploadProgress.onAbort },
|
|
126
126
|
React.createElement(Trans, null, "Cancel"))),
|
|
127
127
|
showDeleteBtn(localFile.uploadProgress.uploadStatus, localFile) && (React.createElement(Button, { variant: ButtonVariant.link, isDanger: true, "aria-label": t('Delete file'), title: t('Delete file'), className: "btn btn-link btn-app remove-file", "data-tracking-id": "file-lister-delete", onClick: onRemoveClick(localFile, index), hidden: !localFile.uploadability.ableToUpload },
|
|
128
128
|
React.createElement(Trans, null, "Remove")))))),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
2
|
import { Trans } from 'react-i18next';
|
|
3
3
|
import FileLister from './FileLister';
|
|
4
|
-
import { isUploadingAttachment } from './reducer/AttachmentHelper';
|
|
4
|
+
import { hasSomeSelectedFiles, isUploadingAttachment } from './reducer/AttachmentHelper';
|
|
5
5
|
import { AttachmentStateContext } from './reducer/AttachmentReducerContext';
|
|
6
6
|
import { FileUploadButton } from './UploadButton';
|
|
7
7
|
import { useFileUploader } from './useFileUploader';
|
|
@@ -14,12 +14,11 @@ const defaultProps = {
|
|
|
14
14
|
showDescriptionInfoMsg: false,
|
|
15
15
|
};
|
|
16
16
|
function FileUpload(props) {
|
|
17
|
-
var _a, _b, _c;
|
|
18
17
|
// Attachment Reducer Related
|
|
19
18
|
const { attachmentState } = useContext(AttachmentStateContext);
|
|
20
19
|
const { editFile, removeFile, retryUpload, uploadAll, retryAnalysis } = useFileUploader(props);
|
|
21
20
|
return (React.createElement("section", { className: `${props.className}`, id: `${props.id}` },
|
|
22
|
-
(
|
|
21
|
+
hasSomeSelectedFiles(attachmentState.caseFiles.selectedLocalFiles) && (React.createElement(React.Fragment, null,
|
|
23
22
|
!props.isSessionId ? (React.createElement("h4", null,
|
|
24
23
|
React.createElement(Trans, null, "Uploading attachment(s)"))) : null,
|
|
25
24
|
React.createElement(FileLister, { onRetryAnalysis: retryAnalysis, selectedLocalFiles: attachmentState.caseFiles.selectedLocalFiles, onFileEdit: editFile, onFileRemove: removeFile, onRetry: retryUpload, isSessionId: props.isSessionId, showSlowUploadMsg: attachmentState.showUploadingOnSlowConnectionMsg }))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileUploader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileUploader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGnD,UAAU,MAAO,SAAQ,wBAAwB;CAAG;AAQpD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBA+ClC;kBA/CQ,YAAY;;;AAiDrB,eAAe,YAAY,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useApolloClient } from '@apollo/client/react';
|
|
1
2
|
import React, { useContext, useEffect } from 'react';
|
|
2
3
|
import { Trans } from 'react-i18next';
|
|
3
4
|
import { SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
|
|
@@ -18,13 +19,14 @@ function FileUploader(props) {
|
|
|
18
19
|
const dispatchToAttachmentReducer = useContext(AttachmentDispatchContext);
|
|
19
20
|
const { sessionRestore: { activeSessionId }, } = useContext(SessionRestoreStateContext);
|
|
20
21
|
const { editFile, removeFile, retryUpload, uploadFile } = useFileUploader(props);
|
|
22
|
+
const apolloClient = useApolloClient();
|
|
21
23
|
useEffect(() => {
|
|
22
24
|
attachmentState.caseFiles.selectedLocalFiles.forEach((file, index) => {
|
|
23
25
|
if (file.uploadProgress.uploadStatus === UploadStatusConstants.attachedOnSession) {
|
|
24
26
|
uploadFile(index);
|
|
25
27
|
}
|
|
26
28
|
else if (isSessionUploadComplete(file.uploadProgress.uploadStatus)) {
|
|
27
|
-
moveSessionAttachmentToCase(dispatchToAttachmentReducer, props.idToUploadTo, activeSessionId, file, index);
|
|
29
|
+
moveSessionAttachmentToCase(dispatchToAttachmentReducer, props.idToUploadTo, activeSessionId, file, index, apolloClient, props.caseSalesforceId);
|
|
28
30
|
}
|
|
29
31
|
});
|
|
30
32
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -6,6 +6,7 @@ interface IProps extends IFileUploaderCommonProps, IDClassNameProps {
|
|
|
6
6
|
isSessionId: boolean;
|
|
7
7
|
isPrivate: boolean;
|
|
8
8
|
isIdea?: boolean;
|
|
9
|
+
isSecureSupport?: boolean;
|
|
9
10
|
}
|
|
10
11
|
declare function WidgetFileUploader(props: IProps): React.JSX.Element;
|
|
11
12
|
declare namespace WidgetFileUploader {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/WidgetFileUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AA0B/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAInD,UAAU,MAAO,SAAQ,wBAAwB,EAAE,gBAAgB;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/WidgetFileUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AA0B/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAInD,UAAU,MAAO,SAAQ,wBAAwB,EAAE,gBAAgB;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAYD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,MAAM,qBAkPxC;kBAlPQ,kBAAkB;;;AAsP3B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -42,7 +42,7 @@ function WidgetFileUploader(props) {
|
|
|
42
42
|
const [unallowedLocalFileExists, setUnallowedLocalFileExists] = useState(false);
|
|
43
43
|
const [fileExceedInfo, setfileExceedInfo] = useState({ show: false, fileName: [] });
|
|
44
44
|
useEffect(() => {
|
|
45
|
-
if (rulesState.triggerRuleNotification) {
|
|
45
|
+
if (rulesState.triggerRuleNotification && !props.isSecureSupport) {
|
|
46
46
|
!showViewRecBtn && setShowViewRecBtn(true);
|
|
47
47
|
}
|
|
48
48
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -161,13 +161,14 @@ function WidgetFileUploader(props) {
|
|
|
161
161
|
' '))) : (React.createElement(React.Fragment, null,
|
|
162
162
|
unallowedLocalFileExists && (React.createElement(Alert, { variant: "danger", title: t('File type is not allowed on this support type. Please remove file to proceed.') })),
|
|
163
163
|
React.createElement(FileLister, { selectedLocalFiles: attachmentState.caseFiles.selectedLocalFiles, onFileEdit: editFile, onFileRemove: removeFile, onRetry: retryUpload, onRetryAnalysis: retryAnalysis, isSessionId: props.isSessionId, showSlowUploadMsg: attachmentState.showUploadingOnSlowConnectionMsg, setfileExceedInfo: setfileExceedInfo }),
|
|
164
|
-
hasUploadedSomeAttachments(selectedLocalFiles) && !props.isIdea && (React.createElement("p", null,
|
|
164
|
+
hasUploadedSomeAttachments(selectedLocalFiles) && !props.isIdea && !props.isSecureSupport && (React.createElement("p", null,
|
|
165
165
|
React.createElement(Trans, null, "If you can't find a solution, all files are moved to your case."))))),
|
|
166
166
|
React.createElement(FileUploadButton, { className: "file-buttons", onUploadAll: uploadAll, uploadAnotherBtn: false, isSessionId: props.isSessionId }),
|
|
167
|
-
isAnalysingAnyAttachment(attachmentState.caseFiles.selectedLocalFiles) && (React.createElement(Button, { isDisabled: true },
|
|
167
|
+
!props.isSecureSupport && isAnalysingAnyAttachment(attachmentState.caseFiles.selectedLocalFiles) && (React.createElement(Button, { isDisabled: true },
|
|
168
168
|
React.createElement(Trans, null, "Analyzing..."))),
|
|
169
169
|
showViewRecBtn &&
|
|
170
170
|
!props.isIdea &&
|
|
171
|
+
!props.isSecureSupport &&
|
|
171
172
|
!isAnalysingAnyAttachment(attachmentState.caseFiles.selectedLocalFiles) &&
|
|
172
173
|
hasAnalysedSomeAttachments(attachmentState.caseFiles.selectedLocalFiles) &&
|
|
173
174
|
rulesState.allResults.length > 0 && (React.createElement(Button, { "data-tracking-id": "widget-file-uploader-view-recs", onClick: onViewRecBtnClick },
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
interface IProps extends React.HTMLProps<HTMLButtonElement> {
|
|
3
3
|
isSessionId: boolean;
|
|
4
4
|
isPrivate?: boolean;
|
|
5
|
-
buttonLabel?:
|
|
5
|
+
buttonLabel?: React.ReactNode;
|
|
6
6
|
isDisabled?: boolean;
|
|
7
7
|
}
|
|
8
8
|
declare function FileSelectorButton({ isSessionId, id, className, buttonLabel, isPrivate, isDisabled, ...btnProps }: IProps): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSelectorButton.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/fileSelectors/FileSelectorButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAO1C,UAAU,MAAO,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACvD,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"FileSelectorButton.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/fileSelectors/FileSelectorButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAO1C,UAAU,MAAO,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACvD,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,iBAAS,kBAAkB,CAAC,EACxB,WAAW,EACX,EAAO,EACP,SAA4B,EAC5B,WAA6B,EAC7B,SAAiB,EACjB,UAAkB,EAClB,GAAG,QAAQ,EACd,EAAE,MAAM,qBA8BR;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CaseDiagnosticsStatus } from '@cee-eng/hydrajs/@types/api/pcm/preCaseDiagnostics';
|
|
2
2
|
import { ISlowUploadDetectionConfig } from '@cee-eng/hydrajs/@types/models/attachment';
|
|
3
|
+
import { ApolloQueryClient } from '@rh-support/utils';
|
|
3
4
|
import { AnalysisStatusConstants, AttachmentReducerDispatchType, IAnalysisResults, ICaseFiles, IFileLocal, IUploadMetadata, UploadStatusConstants } from './AttachmentReducer';
|
|
4
5
|
export declare const onDrop: (dispatchToAttachmentReducer: AttachmentReducerDispatchType, isSessionId: boolean, isPrivate?: boolean) => (acceptedFiles: File[]) => void;
|
|
5
6
|
export declare const isUploadingOnSession: (status: string) => status is UploadStatusConstants.uploadingOnSession;
|
|
6
7
|
export declare const isUploadingOnCase: (status: string) => status is UploadStatusConstants.uploadingOnCase;
|
|
8
|
+
export declare const isAttachedOnCase: (status: string) => status is UploadStatusConstants.attachedOnCase;
|
|
7
9
|
export declare const isVerifyingSessionUpload: (status: string) => status is UploadStatusConstants.verifyingSessionUpload;
|
|
8
10
|
export declare const isVerifyingCaseUpload: (status: string) => status is UploadStatusConstants.verifyingCaseUpload;
|
|
9
11
|
export declare const isRestoredFromSession: (status: string) => status is UploadStatusConstants.restoredFromSession;
|
|
@@ -26,10 +28,20 @@ export declare const isFileDeleted: (status: string) => status is UploadStatusCo
|
|
|
26
28
|
export declare const hasUploadedSomeAttachments: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
27
29
|
export declare const hasAnalysedSomeAttachments: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
28
30
|
export declare const hasSomeUnUploadedAttachments: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Files still queued to start uploading. Aborted/failed are terminal and must not
|
|
33
|
+
* block post-upload discussion refresh when other files in the batch succeeded.
|
|
34
|
+
*/
|
|
35
|
+
export declare const hasQueuedAttachmentUploads: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
36
|
+
/** Aborted/failed rows should stay in the upload panel until the user clicks Remove. */
|
|
37
|
+
export declare const hasAbortedOrFailedAttachments: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
38
|
+
/** True when at least one non-deleted file remains in the upload queue (UI visibility). */
|
|
29
39
|
export declare const hasSomeSelectedFiles: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
30
40
|
export declare const isUploadingAttachment: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
31
41
|
export declare const isAnalysingAnyAttachment: (selectedLocalFiles: IFileLocal[]) => boolean;
|
|
32
42
|
export declare const canShowProgressBar: (file: IFileLocal) => boolean;
|
|
43
|
+
/** Case discussion: show radial progress while queued (attachedOnCase) or actively uploading. */
|
|
44
|
+
export declare const shouldShowUploadProgressIndicator: (file: IFileLocal, isSessionUpload: boolean) => boolean;
|
|
33
45
|
export declare const shouldHideDescription: (file: IFileLocal, isSessionUpload: boolean) => boolean;
|
|
34
46
|
export declare const isUploadOnTrack: (file: IFileLocal) => boolean;
|
|
35
47
|
export declare const isUploadedAndAnalyzed: (file: IFileLocal) => boolean;
|
|
@@ -37,30 +49,34 @@ export declare const isUploadedAndAnalysisFailed: (file: IFileLocal) => boolean;
|
|
|
37
49
|
export declare const isUploadedSuccessfully: (file: IFileLocal) => string;
|
|
38
50
|
export declare const isUploadedAndAnalysisSkipped: (file: IFileLocal) => boolean;
|
|
39
51
|
export declare const updateUploadMetadata: (dispatch: AttachmentReducerDispatchType, fileIndexToEdit: number, newUploadMetadata: Partial<IUploadMetadata>) => void;
|
|
40
|
-
export declare const uploadAllFiles: ({ dispatch, idToUploadTo, caseFiles,
|
|
52
|
+
export declare const uploadAllFiles: ({ dispatch, idToUploadTo, caseFiles, needsAnalyzing, isSessionId, slowUploadConfig, apolloClient, caseSalesforceId, onCaseFileUploaded, }: {
|
|
41
53
|
dispatch: AttachmentReducerDispatchType;
|
|
42
54
|
idToUploadTo: string;
|
|
43
55
|
caseFiles: ICaseFiles;
|
|
44
|
-
isSecureSupport: boolean;
|
|
45
56
|
needsAnalyzing?: boolean;
|
|
46
57
|
isSessionId?: boolean;
|
|
47
58
|
slowUploadConfig?: ISlowUploadDetectionConfig;
|
|
59
|
+
apolloClient?: ApolloQueryClient;
|
|
60
|
+
caseSalesforceId?: string;
|
|
61
|
+
onCaseFileUploaded?: () => void;
|
|
48
62
|
}) => Promise<void>;
|
|
49
|
-
export declare const uploadFile: ({ dispatch, idToUploadTo, localFile, originalFile, index,
|
|
63
|
+
export declare const uploadFile: ({ dispatch, idToUploadTo, localFile, originalFile, index, needsAnalyzing, isSessionId, slowUploadConfig, apolloClient, caseSalesforceId, onCaseFileUploaded, }: {
|
|
50
64
|
dispatch: AttachmentReducerDispatchType;
|
|
51
65
|
idToUploadTo: string;
|
|
52
66
|
localFile: IFileLocal;
|
|
53
67
|
originalFile: File;
|
|
54
68
|
index: number;
|
|
55
|
-
isSecureSupport: boolean;
|
|
56
69
|
needsAnalyzing?: boolean;
|
|
57
70
|
isSessionId?: boolean;
|
|
58
71
|
slowUploadConfig?: ISlowUploadDetectionConfig;
|
|
72
|
+
apolloClient?: ApolloQueryClient;
|
|
73
|
+
caseSalesforceId?: string;
|
|
74
|
+
onCaseFileUploaded?: () => void;
|
|
59
75
|
}) => Promise<void>;
|
|
60
76
|
export declare function doSosReportAnalysisForAllFiles(dispatch: any, idToUploadTo: string, localFiles: IFileLocal[], isSessionId: boolean): Promise<void>;
|
|
61
77
|
export declare function doSosReportAnalysisForFile(dispatch: any, idToUploadTo: string, attachmentId: string, localFile: IFileLocal, isSessionId: boolean, fileIndex: number, fileUploadStatus?: UploadStatusConstants): Promise<void>;
|
|
62
78
|
export declare function computeAnalysisResults(idToUploadTo: string, attachmentId: string, fileSize: number, isSessionId: boolean, listener: (status: CaseDiagnosticsStatus) => void): Promise<IAnalysisResults>;
|
|
63
|
-
export declare function moveSessionAttachmentToCase(dispatch: any, caseNumber: string, sessionId: string, localFile: IFileLocal, fileIndex: number): Promise<void>;
|
|
79
|
+
export declare function moveSessionAttachmentToCase(dispatch: any, caseNumber: string, sessionId: string, localFile: IFileLocal, fileIndex: number, apolloClient?: ApolloQueryClient, caseSalesforceId?: string): Promise<void>;
|
|
64
80
|
export declare function restoreFilesFromSession(dispatch: any, sessionId: string): Promise<void>;
|
|
65
81
|
export declare function isFileAnalysisFailedForAllFiles(localFiles: IFileLocal[]): boolean;
|
|
66
82
|
export declare function isAnyFileAttached(localFiles: IFileLocal[]): boolean;
|