@rh-support/troubleshoot 2.6.361 → 2.6.364

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +29 -19
  3. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  4. package/lib/esm/components/AccountInfo/OwnerSelector.js +17 -92
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -6
  7. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +32 -61
  9. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/Case.js +33 -60
  11. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -19
  13. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +7 -28
  15. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +57 -88
  17. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +0 -2
  18. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  19. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
  20. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +2 -3
  21. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +11 -24
  23. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  24. package/lib/esm/components/CaseEditView/CaseOverview/index.js +57 -92
  25. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  26. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +109 -203
  27. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -0
  28. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  29. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +5 -5
  30. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +3 -1
  31. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  32. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +9 -5
  33. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  34. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +17 -18
  35. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  36. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +49 -55
  37. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  38. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +46 -53
  39. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  40. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -6
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +46 -52
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +17 -63
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +2 -0
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +3 -4
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +56 -131
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +6 -11
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts.map +1 -1
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.js +1 -3
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +71 -111
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  60. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +10 -17
  61. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts.map +1 -1
  62. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +2 -4
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +25 -0
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +1 -0
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +102 -0
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +26 -42
  68. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +4 -2
  69. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  70. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +148 -152
  71. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +2 -10
  72. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  73. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +146 -252
  74. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  75. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +9 -22
  76. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  77. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +2 -9
  78. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  79. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +1 -8
  80. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +2 -2
  81. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  82. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +7 -18
  83. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +3 -9
  84. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  85. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +271 -215
  86. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  87. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +4 -6
  88. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  89. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +2 -7
  90. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
  91. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +3 -36
  92. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  93. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +230 -62
  94. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +5 -4
  95. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  96. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +8 -24
  97. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  98. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +2 -8
  99. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  100. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +52 -38
  101. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  102. package/lib/esm/components/CaseInformation/CaseGroup.js +62 -173
  103. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  104. package/lib/esm/components/CaseInformation/CaseInformation.js +9 -10
  105. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  106. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +31 -108
  107. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
  108. package/lib/esm/components/CaseInformation/Description.js +1 -1
  109. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  110. package/lib/esm/components/CaseInformation/FileDiag.js +5 -2
  111. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  112. package/lib/esm/components/CaseInformation/Fts.js +19 -33
  113. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  114. package/lib/esm/components/CaseInformation/Severity.js +24 -33
  115. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  116. package/lib/esm/components/CaseInformation/SupportLevel.js +55 -36
  117. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  118. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +8 -2
  119. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  120. package/lib/esm/components/CaseManagement/CaseManagement.js +10 -13
  121. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  122. package/lib/esm/components/CaseManagement/Cep.js +10 -12
  123. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -2
  124. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  125. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -20
  126. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  127. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
  128. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -0
  129. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  130. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +32 -19
  131. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  132. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +2 -4
  133. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  134. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +2 -4
  135. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  136. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +40 -34
  137. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  138. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +4 -8
  139. package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
  140. package/lib/esm/components/EditDescription/EditDescription.js +2 -4
  141. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  142. package/lib/esm/components/IdeaInformation/IdeaInformation.js +17 -23
  143. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  144. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +2 -4
  145. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
  146. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  147. package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
  148. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  149. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
  150. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  151. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +50 -37
  152. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  153. package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
  154. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  155. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +1 -9
  156. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  157. package/lib/esm/components/Recommendations/AsideResults.js +3 -4
  158. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  159. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +4 -1
  160. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  161. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  162. package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
  163. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  164. package/lib/esm/components/Recommendations/Recommendations.js +9 -3
  165. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  166. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +8 -10
  167. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  168. package/lib/esm/components/Review/Review.js +19 -25
  169. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  170. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
  171. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  172. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
  173. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -2
  174. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  175. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +93 -141
  176. package/lib/esm/components/shared/Constants.d.ts +0 -5
  177. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  178. package/lib/esm/components/shared/Constants.js +0 -5
  179. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  180. package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
  181. package/lib/esm/components/shared/fileUpload/FileUpload.js +3 -2
  182. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  183. package/lib/esm/components/shared/fileUpload/FileUploader.js +1 -3
  184. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +0 -1
  185. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  186. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -4
  187. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
  188. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  189. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +5 -22
  190. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  191. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +59 -307
  192. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +1 -5
  193. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  194. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +1 -36
  195. package/lib/esm/components/shared/fileUpload/types/index.d.ts +1 -5
  196. package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
  197. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
  198. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  199. package/lib/esm/components/shared/fileUpload/useFileUploader.js +47 -119
  200. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  201. package/lib/esm/components/shared/useIsSectionValid.js +57 -22
  202. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  203. package/lib/esm/components/shared/usePostComment.js +28 -16
  204. package/lib/esm/components/shared/utils.d.ts +0 -1
  205. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  206. package/lib/esm/components/shared/utils.js +3 -9
  207. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  208. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +38 -178
  209. package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
  210. package/lib/esm/components/wizardLayout/MainSection.js +1 -2
  211. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  212. package/lib/esm/components/wizardLayout/WizardAside.js +4 -2
  213. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  214. package/lib/esm/components/wizardLayout/WizardLayout.js +13 -12
  215. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  216. package/lib/esm/components/wizardLayout/WizardMain.js +0 -7
  217. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  218. package/lib/esm/components/wizardLayout/WizardNavigation.js +11 -14
  219. package/lib/esm/constants/caseDetailsConstants.d.ts +0 -5
  220. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  221. package/lib/esm/constants/caseDetailsConstants.js +0 -5
  222. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  223. package/lib/esm/css/app.css +0 -28
  224. package/lib/esm/css/case.css +212 -209
  225. package/lib/esm/hooks/useAB.d.ts.map +1 -1
  226. package/lib/esm/hooks/useAB.js +23 -45
  227. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -9
  228. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  229. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +11 -108
  230. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  231. package/lib/esm/hooks/useResetCaseCreate.js +11 -18
  232. package/lib/esm/hooks/useS3Upload.d.ts +4 -5
  233. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  234. package/lib/esm/hooks/useS3Upload.js +30 -28
  235. package/lib/esm/i18n/template-de.d.ts +2 -2
  236. package/lib/esm/i18n/template-de.js +2 -2
  237. package/lib/esm/i18n/template-es.d.ts +2 -2
  238. package/lib/esm/i18n/template-es.js +2 -2
  239. package/lib/esm/i18n/template-fr.d.ts +2 -2
  240. package/lib/esm/i18n/template-fr.js +2 -2
  241. package/lib/esm/i18n/template-it.d.ts +2 -2
  242. package/lib/esm/i18n/template-it.js +2 -2
  243. package/lib/esm/i18n/template-jp.d.ts +2 -2
  244. package/lib/esm/i18n/template-jp.js +2 -2
  245. package/lib/esm/i18n/template-ko.d.ts +2 -2
  246. package/lib/esm/i18n/template-ko.js +2 -2
  247. package/lib/esm/i18n/template-pt.d.ts +2 -2
  248. package/lib/esm/i18n/template-pt.js +2 -2
  249. package/lib/esm/i18n/template-ru.d.ts +2 -2
  250. package/lib/esm/i18n/template-ru.js +2 -2
  251. package/lib/esm/i18n/template-zh.d.ts +2 -2
  252. package/lib/esm/i18n/template-zh.js +2 -2
  253. package/lib/esm/index.js +0 -1
  254. package/lib/esm/models/cache.d.ts +2 -0
  255. package/lib/esm/models/cache.d.ts.map +1 -1
  256. package/lib/esm/reducers/CaseConstNTypes.d.ts +9 -123
  257. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  258. package/lib/esm/reducers/CaseConstNTypes.js +7 -31
  259. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -7
  260. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  261. package/lib/esm/reducers/CaseDetailsPageReducer.js +26 -58
  262. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +12 -12
  263. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  264. package/lib/esm/reducers/CaseDiscussionTabReducer.js +73 -88
  265. package/lib/esm/reducers/CaseHelpers.d.ts +1 -11
  266. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  267. package/lib/esm/reducers/CaseHelpers.js +17 -119
  268. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
  269. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  270. package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
  271. package/lib/esm/reducers/CaseReducer.d.ts +11 -56
  272. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  273. package/lib/esm/reducers/CaseReducer.js +100 -284
  274. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  275. package/lib/esm/reducers/RecommendationsReducer.js +18 -15
  276. package/lib/esm/scss/_main.scss +0 -9
  277. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +2 -1
  278. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  279. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  280. package/package.json +8 -10
  281. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +0 -8
  282. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +0 -1
  283. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +0 -18
  284. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +0 -10
  285. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +0 -1
  286. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +0 -31
  287. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +0 -29
  288. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +0 -1
  289. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +0 -29
  290. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +0 -17
  291. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +0 -1
  292. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +0 -62
  293. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +0 -3
  294. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +0 -1
  295. package/lib/esm/components/CaseInformation/CaseLabels.js +0 -108
  296. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +0 -4
  297. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +0 -1
  298. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +0 -141
  299. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +0 -3
  300. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +0 -1
  301. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +0 -9
  302. package/lib/esm/graphql/index.d.ts +0 -4
  303. package/lib/esm/graphql/index.d.ts.map +0 -1
  304. package/lib/esm/graphql/index.js +0 -3
  305. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +0 -2
  306. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +0 -1
  307. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +0 -24
  308. package/lib/esm/graphql/mutations/index.d.ts +0 -2
  309. package/lib/esm/graphql/mutations/index.d.ts.map +0 -1
  310. package/lib/esm/graphql/mutations/index.js +0 -1
  311. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +0 -2
  312. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +0 -1
  313. package/lib/esm/graphql/queries/getEscalationDetails.js +0 -36
  314. package/lib/esm/graphql/queries/index.d.ts +0 -2
  315. package/lib/esm/graphql/queries/index.d.ts.map +0 -1
  316. package/lib/esm/graphql/queries/index.js +0 -1
  317. package/lib/esm/graphql/schemas/escalation.d.ts +0 -66
  318. package/lib/esm/graphql/schemas/escalation.d.ts.map +0 -1
  319. package/lib/esm/graphql/schemas/escalation.js +0 -1
  320. package/lib/esm/graphql/schemas/index.d.ts +0 -2
  321. package/lib/esm/graphql/schemas/index.d.ts.map +0 -1
  322. package/lib/esm/graphql/schemas/index.js +0 -1
  323. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +0 -4
  324. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +0 -1
  325. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +0 -57
  326. package/lib/esm/hooks/useCaseComments/index.d.ts +0 -8
  327. package/lib/esm/hooks/useCaseComments/index.d.ts.map +0 -1
  328. package/lib/esm/hooks/useCaseComments/index.js +0 -5
  329. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +0 -25
  330. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +0 -1
  331. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +0 -75
  332. package/lib/esm/hooks/useCaseComments/types.d.ts +0 -93
  333. package/lib/esm/hooks/useCaseComments/types.d.ts.map +0 -1
  334. package/lib/esm/hooks/useCaseComments/types.js +0 -1
  335. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +0 -26
  336. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +0 -1
  337. package/lib/esm/hooks/useCaseComments/useCaseComments.js +0 -113
  338. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +0 -19
  339. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +0 -1
  340. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +0 -33
  341. package/lib/esm/hooks/useCaseGroupUiState.d.ts +0 -3
  342. package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +0 -1
  343. package/lib/esm/hooks/useCaseGroupUiState.js +0 -10
  344. package/lib/esm/hooks/useCaseHistory.d.ts +0 -26
  345. package/lib/esm/hooks/useCaseHistory.d.ts.map +0 -1
  346. package/lib/esm/hooks/useCaseHistory.js +0 -107
  347. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +0 -23
  348. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +0 -1
  349. package/lib/esm/hooks/useCaseLabelLinkMutations.js +0 -84
  350. package/lib/esm/models/caseHistory.d.ts +0 -86
  351. package/lib/esm/models/caseHistory.d.ts.map +0 -1
  352. package/lib/esm/models/caseHistory.js +0 -1
  353. package/lib/esm/utils/TimelineUtils.d.ts +0 -41
  354. package/lib/esm/utils/TimelineUtils.d.ts.map +0 -1
  355. package/lib/esm/utils/TimelineUtils.js +0 -135
  356. package/lib/esm/utils/caseHistoryUtils.d.ts +0 -85
  357. package/lib/esm/utils/caseHistoryUtils.d.ts.map +0 -1
  358. package/lib/esm/utils/caseHistoryUtils.js +0 -196
  359. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +0 -6
  360. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +0 -1
  361. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +0 -26
  362. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts +0 -8
  363. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts.map +0 -1
  364. package/lib/esm/utils/linkifyHtmlTextNodes.js +0 -37
@@ -7,9 +7,8 @@ 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 { useApolloClient } from '@apollo/client/react';
11
10
  import { CoverSpinner, ErrorBoundary, OverviewContentLoader, ToastNotification, useDocumentTitle, usePrevious, } from '@rh-support/components';
12
- import { CaseStatusProvider, fetchCaseDetails, GlobalMetadataStateContext, HostnameAwarenessModal, } from '@rh-support/react-context';
11
+ import { GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
13
12
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
14
13
  import { getUrlParsedParams, isValidCaseNumber } from '@rh-support/utils';
15
14
  import isEmpty from 'lodash/isEmpty';
@@ -20,12 +19,8 @@ import { Route, Switch, useLocation, useParams, useRouteMatch } from 'react-rout
20
19
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
21
20
  import { useCaseDetailsPageDispatchContext } from '../../context/CaseDetailsPageContext';
22
21
  import { CaseReducerConstants } from '../../reducers/CaseConstNTypes';
23
- import { fetchAttachments, fetchCaseEscalations,
24
- // fetchExternalTrackers,
25
- // fetchFeedbacks,
26
- } from '../../reducers/CaseDetailsPageReducer';
27
- import { setCaseAccountNumber } from '../../reducers/CaseReducer';
28
- import { ArchivedCaseBanner } from './ArchivedCaseBanner';
22
+ import { fetchAttachments, fetchCaseEscalations, fetchExternalTrackers, fetchFeedbacks, } from '../../reducers/CaseDetailsPageReducer';
23
+ import { fetchCaseDetails, setCaseAccountNumber } from '../../reducers/CaseReducer';
29
24
  import { CaseDetailsAside } from './CaseDetailsAside';
30
25
  import { CaseDetailsErrorMessage } from './CaseDetailsErrorMessage';
31
26
  import CaseDetailsModals from './CaseDetailsModals';
@@ -33,11 +28,8 @@ import { CaseDetailsTabs } from './CaseDetailsTabs';
33
28
  import CaseOverview from './CaseOverview';
34
29
  import { PDFContext } from './PDFContainer';
35
30
  export default function Case(props) {
36
- var _a;
37
- const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
31
+ const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, loggedInUser }, } = useContext(GlobalMetadataStateContext);
38
32
  const caseDetailsPageDispatch = useCaseDetailsPageDispatchContext();
39
- const apolloClient = useApolloClient();
40
- const includeSecureSupportCases = Boolean((_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport);
41
33
  const { t } = useTranslation();
42
34
  // The `path` lets us build <Route> paths that are
43
35
  // relative to the parent route, while the `url` lets
@@ -51,18 +43,11 @@ export default function Case(props) {
51
43
  const canSeeFeedbackButtons = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_FEEDBACK_BUTTONS);
52
44
  const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
53
45
  const canManageCase = ability.can(resourceActions.UPDATE, resources.CASE_DETAILS);
54
- // TODO: Re-enable after GraphQL migration of external trackers
55
- // const canSeeExternalTracker = ability.can(
56
- // resourceActions.PATCH,
57
- // resources.CASE_DETAILS,
58
- // CaseDetailsFields.CASE_DETAILS_EXTERNAL_TRACKER
59
- // );
60
- // TODO: Re-enable after GraphQL migration of attachments
46
+ const canSeeExternalTracker = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_EXTERNAL_TRACKER);
61
47
  const canSeeAttachments = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEE_ATTACHMENTS);
62
48
  const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
63
- const { product, status, isFetchingCaseDetails, isFetchingCaseDetailsError, caseDetailsError, selectedAccountDetails, } = useCaseSelector((state) => ({
49
+ const { product, isFetchingCaseDetails, isFetchingCaseDetailsError, caseDetailsError, selectedAccountDetails } = useCaseSelector((state) => ({
64
50
  product: state.caseDetails.product,
65
- status: state.caseDetails.status,
66
51
  isFetchingCaseDetails: state.isFetchingCaseDetails,
67
52
  isFetchingCaseDetailsError: state.isFetchingCaseDetailsError,
68
53
  caseDetailsError: state.caseDetailsError,
@@ -94,7 +79,6 @@ export default function Case(props) {
94
79
  useEffect(() => {
95
80
  if (!isEmpty(loggedInUsersAccount.data) &&
96
81
  !isEmpty(selectedAccountDetails.data) &&
97
- selectedAccountDetails.data.accountNumber &&
98
82
  loggedInUserRights.data.isAccountSameAsLoggedInAccount(selectedAccountDetails.data.accountNumber) &&
99
83
  !isEqual(loggedInUsersAccount.data, selectedAccountDetails.data)) {
100
84
  setCaseAccountNumber(caseDispatch, loggedInUsersAccount.data.accountNumber, true, loggedInUsersAccount.data);
@@ -123,30 +107,21 @@ export default function Case(props) {
123
107
  caseDispatch(action);
124
108
  }
125
109
  };
126
- const caseDetails = yield fetchCaseDetails(safeDispatch, apolloClient, targetCaseNumber, setCaseAccountNumber, includeSecureSupportCases);
110
+ yield fetchCaseDetails(safeDispatch, targetCaseNumber, loggedInUserRights.data, loggedInUser.data);
127
111
  if (currentCaseRef.current !== targetCaseNumber)
128
112
  return;
129
- const caseSalesforceId = typeof (caseDetails === null || caseDetails === void 0 ? void 0 : caseDetails.id) === 'string' ? caseDetails.id : undefined;
130
- if (canSeeRMEs && caseSalesforceId) {
131
- fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), caseSalesforceId, apolloClient, true, includeSecureSupportCases);
113
+ if (canSeeRMEs) {
114
+ fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, loggedInUserRights.data.getAccountNumber());
132
115
  }
133
116
  if (canSeeAttachments) {
134
- fetchAttachments((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, apolloClient, caseSalesforceId, includeSecureSupportCases);
117
+ fetchAttachments((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, loggedInUsersAccount.data.secureSupport);
118
+ }
119
+ if (canSeeExternalTracker) {
120
+ fetchExternalTrackers((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber);
121
+ }
122
+ if (canSeeFeedbackButtons) {
123
+ fetchFeedbacks((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber);
135
124
  }
136
- // TODO: Re-enable after GraphQL migration of external trackers
137
- // if (canSeeExternalTracker) {
138
- // fetchExternalTrackers(
139
- // (action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action),
140
- // targetCaseNumber
141
- // );
142
- // }
143
- // TODO: Re-enable after GraphQL migration of feedback
144
- // if (canSeeFeedbackButtons) {
145
- // fetchFeedbacks(
146
- // (action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action),
147
- // targetCaseNumber
148
- // );
149
- // }
150
125
  if (currentCaseRef.current === targetCaseNumber) {
151
126
  checkRemoteSessionFlag();
152
127
  }
@@ -170,24 +145,22 @@ export default function Case(props) {
170
145
  ]);
171
146
  return (React.createElement(React.Fragment, null,
172
147
  isExportingPDF && React.createElement(CoverSpinner, null),
173
- React.createElement(CaseStatusProvider, { caseStatus: status },
174
- React.createElement("div", { id: "rh-support-case" },
175
- React.createElement("div", { className: "support-grid-case-details support-case" }, isFetchingCaseDetails && !isFetchingCaseDetailsError ? (React.createElement(OverviewContentLoader, null)) : (React.createElement(React.Fragment, null,
176
- React.createElement("article", { className: "grid-main" },
177
- React.createElement("section", { className: "grid-main-section" },
178
- (isFetchingCaseDetailsError || !canReadCase || !canManageCase) && (React.createElement(CaseDetailsErrorMessage, { isError: isFetchingCaseDetailsError, errorDetails: caseDetailsError, canReadCase: canReadCase, canManageCase: canManageCase, caseNumber: caseNumber, isInlineError: true })),
179
- canReadCase &&
180
- (!isFetchingCaseDetails || !isEmpty(product)) &&
181
- !isFetchingCaseDetailsError && (React.createElement(React.Fragment, null,
182
- React.createElement(ArchivedCaseBanner, { caseStatus: status, caseNumber: caseNumber }),
183
- React.createElement(ErrorBoundary, { errorMsgInfo: {
184
- message: t('There was an error loading cases. Please try refreshing the page.'),
185
- } },
186
- React.createElement(CaseOverview, { caseNumber: caseNumber, tabsRef: caseDetailsTabsRef })),
187
- React.createElement(Switch, null,
188
- React.createElement(Route, { path: `${path}/:activeTab?` },
189
- React.createElement(CaseDetailsTabs, { basePath: url, caseNumber: caseNumber, routeProps: props.routeProps, tabdRef: caseDetailsTabsRef }))))))),
190
- !isFetchingCaseDetailsError && canReadCase && canManageCase && (React.createElement(CaseDetailsAside, { caseNumber: caseNumber })),
191
- React.createElement(CaseDetailsModals, { caseNumber: caseNumber, isSecureSupport: loggedInUsersAccount.data.secureSupport, loggedInUserRights: loggedInUserRights })))))),
148
+ React.createElement("div", { id: "rh-support-case" },
149
+ React.createElement("div", { className: "support-grid-case-details support-case" }, isFetchingCaseDetails && !isFetchingCaseDetailsError ? (React.createElement(OverviewContentLoader, null)) : (React.createElement(React.Fragment, null,
150
+ React.createElement("article", { className: "grid-main" },
151
+ React.createElement("section", { className: "grid-main-section" },
152
+ (isFetchingCaseDetailsError || !canReadCase || !canManageCase) && (React.createElement(CaseDetailsErrorMessage, { isError: isFetchingCaseDetailsError, errorDetails: caseDetailsError, canReadCase: canReadCase, canManageCase: canManageCase, caseNumber: caseNumber, isInlineError: true })),
153
+ canReadCase &&
154
+ (!isFetchingCaseDetails || !isEmpty(product)) &&
155
+ !isFetchingCaseDetailsError && (React.createElement(React.Fragment, null,
156
+ React.createElement(ErrorBoundary, { errorMsgInfo: {
157
+ message: t('There was an error loading cases. Please try refreshing the page.'),
158
+ } },
159
+ React.createElement(CaseOverview, { caseNumber: caseNumber, tabsRef: caseDetailsTabsRef })),
160
+ React.createElement(Switch, null,
161
+ React.createElement(Route, { path: `${path}/:activeTab?` },
162
+ React.createElement(CaseDetailsTabs, { basePath: url, caseNumber: caseNumber, routeProps: props.routeProps, tabdRef: caseDetailsTabsRef }))))))),
163
+ !isFetchingCaseDetailsError && canReadCase && canManageCase && (React.createElement(CaseDetailsAside, { caseNumber: caseNumber })),
164
+ React.createElement(CaseDetailsModals, { caseNumber: caseNumber, isSecureSupport: loggedInUsersAccount.data.secureSupport, loggedInUserRights: loggedInUserRights }))))),
192
165
  React.createElement(HostnameAwarenessModal, null)));
193
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA8Y7C"}
1
+ {"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAyY7C"}
@@ -30,10 +30,8 @@ import { CaseSolutions } from './CaseSolutions';
30
30
  import { PDFContext } from './PDFContainer';
31
31
  import { ESSRemoteSession, RemoteSessionAgreement } from './RequestRemoteSession';
32
32
  export function CaseDetailsAside(props) {
33
- var _a, _b, _c, _d;
33
+ var _a, _b;
34
34
  const { t } = useTranslation();
35
- const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts, loggedInUserRights }, } = useGlobalStateContext();
36
- const includeSecureSupportCases = Boolean((_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport);
37
35
  const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms, product, waitingOnCallback, groupNumber, ownersCaseGroups, } = useCaseSelector((state) => ({
38
36
  severity: state.caseDetails.severity,
39
37
  status: state.caseDetails.status,
@@ -52,9 +50,6 @@ export function CaseDetailsAside(props) {
52
50
  const { caseNumber } = props;
53
51
  const canCreateRME = ability.can(resourceActions.CREATE, resources.RME_ESCALATION);
54
52
  const canCreateICE = ability.can(resourceActions.CREATE, resources.ICE_ESCALATION);
55
- const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
56
- const shouldFetchEscalationDetails = canSeeRMEs || canCreateRME;
57
- const isEscalationsFetching = shouldFetchEscalationDetails && (caseEscalations.isFetching || isFetchingCaseDetails);
58
53
  const canSeeToggleCustomerView = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_TOGGLE_CUSTOMER_VIEW);
59
54
  const globalMetadataDispatchContext = useContext(GlobalMetadataDispatchContext);
60
55
  const caseDetailsAsidePanelRef = useRef(null);
@@ -66,8 +61,8 @@ export function CaseDetailsAside(props) {
66
61
  const isXLScreen = breakPoint.xl;
67
62
  const toggleCustomerViewRef = useRef(null);
68
63
  const isFirstMountRef = useRef(true);
69
- const isInternal = (_b = loggedInUserRights.data) === null || _b === void 0 ? void 0 : _b.isInternal();
70
- const isSecureSupportAccount = includeSecureSupportCases;
64
+ const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts }, } = useGlobalStateContext();
65
+ const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
71
66
  // To check if user has read only access
72
67
  const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
73
68
  const onToggleAside = (ev) => {
@@ -82,14 +77,9 @@ export function CaseDetailsAside(props) {
82
77
  const [viewAsInternalPref, setViewAsInternalPref] = useState();
83
78
  const [isDefaultBoxChecked, setIsDefaultBoxChecked] = useState(true);
84
79
  const { isExportingPDF } = useContext(PDFContext);
85
- // TODO: When casegroups is deployed on SCT stage, update this logic to properly gate on ownersCaseGroups.data
86
80
  const isWritePermissionforCase = useMemo(() => {
87
- if (isInternal || !groupNumber)
88
- return true;
89
- if (!ownersCaseGroups.data)
90
- return true;
91
- return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber);
92
- }, [groupNumber, ownersCaseGroups.data, isInternal]);
81
+ return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber) || groupNumber === '-1';
82
+ }, [groupNumber, ownersCaseGroups.data]);
93
83
  useEffect(() => {
94
84
  const userPreferredCaseView = () => __awaiter(this, void 0, void 0, function* () {
95
85
  try {
@@ -167,7 +157,7 @@ export function CaseDetailsAside(props) {
167
157
  setIsDefaultBoxChecked(!isDefaultBoxChecked);
168
158
  toggleViewAsCustomerFlag(globalMetadataDispatchContext);
169
159
  };
170
- const isSideBarExpanded = (_c = caseDetailsAsidePanelRef.current) === null || _c === void 0 ? void 0 : _c.expanded;
160
+ const isSideBarExpanded = (_a = caseDetailsAsidePanelRef.current) === null || _a === void 0 ? void 0 : _a.expanded;
171
161
  if (isFetchingCaseDetails || isFetchingCaseDetailsError)
172
162
  return null;
173
163
  const renderCasePrefPopoverText = () => {
@@ -179,7 +169,7 @@ export function CaseDetailsAside(props) {
179
169
  }
180
170
  };
181
171
  // To check if the user is ESS Customer and Product has ESS Support
182
- const isESSCustomer = isSpecialSupportOfferingEnabled((_d = allProducts.data) === null || _d === void 0 ? void 0 : _d.productsResult, selectedProduct);
172
+ const isESSCustomer = isSpecialSupportOfferingEnabled((_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult, selectedProduct);
183
173
  return (React.createElement("aside", { className: `grid-aside ${isSideBarExpanded ? '' : 'sidebar-collapsed'} ` },
184
174
  React.createElement("pfe-collapse-toggle", { "aria-label": `${isSideBarExpanded ? t('Collapse sidebar') : t('Expand sidebar')}`, "aria-controls": "case-details-aside-content", onClick: onToggleAside }, isSideBarExpanded ? (React.createElement("div", { className: `sidebar-header ${isExportingPDF ? 'hide-in-pdf' : ''}` },
185
175
  React.createElement("div", { className: "case-detail-collapse-panel" },
@@ -196,7 +186,7 @@ export function CaseDetailsAside(props) {
196
186
  !isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
197
187
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
198
188
  React.createElement(ListIcon, null)), variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn", "aria-label": t('Top recommendations') }))),
199
- !isEscalationsFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
189
+ !caseEscalations.isFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
200
190
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
201
191
  React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') }))))))),
202
192
  React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
@@ -223,6 +213,6 @@ export function CaseDetailsAside(props) {
223
213
  React.createElement(ESSRemoteSession, { waitingOnCallback: waitingOnCallback, remoteSessionTermsAcked: acceptedRemoteSessionTerms, caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, readOnly: canReadCase }))),
224
214
  !isESSCustomer && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
225
215
  React.createElement(RemoteSessionAgreement, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, waitingOnCallback: waitingOnCallback, acceptedRemoteSessionTerms: acceptedRemoteSessionTerms && waitingOnCallback, readOnly: canReadCase }))),
226
- !isEscalationsFetching && isWritePermissionforCase && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
216
+ !caseEscalations.isFetching && isWritePermissionforCase && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
227
217
  React.createElement(ActiveCustomerEscalation, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef })))))));
228
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsErrorMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsErrorMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,UAAU,MAAM;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA0GpD"}
1
+ {"version":3,"file":"CaseDetailsErrorMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsErrorMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,UAAU,MAAM;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA6EpD"}
@@ -1,46 +1,29 @@
1
1
  import { AlertMessage, AlertType, errorMessageTitle, formattedApiErrorMessage } from '@rh-support/components';
2
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
- import { CSS_ACCESS_RESTRICTION_ERROR_DETAIL, getCssPortalUrl, getSFDCSecureSupportCaseLink } from '@rh-support/utils';
3
+ import { getSFDCSecureSupportCaseLink } from '@rh-support/utils';
4
4
  import React, { useContext } from 'react';
5
5
  import { Trans, useTranslation } from 'react-i18next';
6
- // Here we need to use 'detailMessage' from case API if user is not authorized to see case detail
6
+ // Here we need to use 'detailMessage' from case API if user is not authorized to see case details
7
7
  const INVALID_CASE_GROUP_API_ERROR_DEFAULT_MESSAGE = 'Invalid group access';
8
- const NO_PERMISSION_PATTERN = /do not have permission|not authorized|don't have permission/i;
9
8
  export function CaseDetailsErrorMessage(props) {
10
9
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
11
10
  const { t } = useTranslation();
12
11
  // Initialize Default Props Below
13
12
  const { isInlineError = false, canReadCase, canManageCase, caseNumber, errorDetails } = props;
14
13
  const invalidCaseGroupErrorTitle = t('This case can only be viewed by a specific group');
15
- const cssAccessRestrictionErrorTitle = t('This case is only available in Confirmed Sovereign Support');
16
14
  /* There can be two condition for HTTP 403 error
17
15
  1. Account mismatch.
18
16
  2. Invalid case group
19
17
  */
20
18
  const isCaseGroupError = (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['detailMessage']) === INVALID_CASE_GROUP_API_ERROR_DEFAULT_MESSAGE;
21
- const isCssAccessRestrictionError = (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['detailMessage']) === CSS_ACCESS_RESTRICTION_ERROR_DETAIL;
22
- const rawErrorMessage = [errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['message'], errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['detailMessage']].filter(Boolean).join(' ');
23
- const isUnauthorizedAccessError = !isCaseGroupError && !isCssAccessRestrictionError && NO_PERMISSION_PATTERN.test(rawErrorMessage);
24
- const unauthorizedAccessTitle = t('You do not have permission to view this case');
25
19
  const getErrorMessage = () => {
26
20
  const { status, message = '' } = errorDetails || {};
27
- let customDefaultErrorMessage403 = t('You are not authorized to see this case.');
28
- if (isCaseGroupError) {
29
- customDefaultErrorMessage403 = t('Please contact your organization’s admin to request access to this case’s group.');
30
- }
31
- else if (isUnauthorizedAccessError) {
32
- customDefaultErrorMessage403 = t('You do not have permission to view this case. Please contact your organization administrator if you believe you should have access.');
33
- }
21
+ const customDefaultErrorMessage403 = isCaseGroupError
22
+ ? t('Please contact your organization’s admin to request access to this case’s group.')
23
+ : t('You are not authorized to see this case.');
34
24
  const errorMessage404 = t("Case number doesn't exist");
35
25
  let errorMessage403;
36
- if (isCssAccessRestrictionError) {
37
- errorMessage403 = (React.createElement(React.Fragment, null,
38
- "Open this case in the",
39
- ' ',
40
- React.createElement("a", { href: getCssPortalUrl(), "data-tracking-id": "css-access-restriction-portal-redirect" }, "Confirmed Sovereign Support portal"),
41
- "."));
42
- }
43
- else if (!canReadCase) {
26
+ if (!canReadCase) {
44
27
  errorMessage403 = customDefaultErrorMessage403;
45
28
  }
46
29
  else if (loggedInUserRights.data.isInternal() &&
@@ -65,12 +48,8 @@ export function CaseDetailsErrorMessage(props) {
65
48
  };
66
49
  return (React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mb-lg", show: true,
67
50
  // Here customizing title of alert based on case group error.
68
- title: errorMessageTitle(errorDetails, Object.assign(Object.assign(Object.assign({}, (isCaseGroupError && {
51
+ title: errorMessageTitle(errorDetails, Object.assign({}, (isCaseGroupError && {
69
52
  '403': { title: invalidCaseGroupErrorTitle },
70
- })), (isCssAccessRestrictionError && {
71
- '403': { title: cssAccessRestrictionErrorTitle },
72
- })), (isUnauthorizedAccessError && {
73
- '403': { title: unauthorizedAccessTitle },
74
53
  })), canManageCase), isInline: isInlineError },
75
54
  React.createElement(Trans, null, getErrorMessage())));
76
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAA0B,MAAM,kBAAkB,CAAC;AA+B/E,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBA0U5C"}
1
+ {"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AA0BlE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBAoS5C"}
@@ -1,57 +1,36 @@
1
- import { Content, ContentVariants, Popover, Tab, TabContent, Tabs, TabsComponent, TabTitleText, } from '@patternfly/react-core';
1
+ import { Content, ContentVariants, Label, Popover, Tab, TabContent, Tabs, TabsComponent, TabTitleText, } from '@patternfly/react-core';
2
2
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
3
3
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
4
4
  import { ErrorBoundary, LoadingIndicator } from '@rh-support/components';
5
5
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
6
6
  import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
7
- import { getConfigField, getUrlParsedParams, PCM_CONFIG_FIELD_TYPE } from '@rh-support/utils';
7
+ import { getConfigField, PCM_CONFIG_FIELD_TYPE } from '@rh-support/utils';
8
8
  import isEqual from 'lodash/isEqual';
9
9
  import React, { Suspense, useContext, useRef, useState } from 'react';
10
10
  import { Trans, useTranslation } from 'react-i18next';
11
- import { useLocation, useParams } from 'react-router-dom';
11
+ import { useParams } from 'react-router-dom';
12
12
  import { CaseDetailsTabsEnum } from '../../constants/caseDetailsConstants';
13
13
  import { useCaseSelector } from '../../context/CaseContext';
14
14
  import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
15
- import { useCaseDiscussionTabStateContext } from '../../context/CaseDiscussionTabContext';
16
- import { useCaseComments } from '../../hooks/useCaseComments';
17
15
  import { PDFContext } from './PDFContainer';
18
16
  import CaseDetailsManagement from './Tabs/CaseDetails/CaseDetailsManagement';
19
17
  import CaseHistory from './Tabs/CaseHistory/CaseHistory';
20
- // TODO: Re-enable AI Case Summary tab when ready
21
- // import { CaseSummary } from './Tabs/CaseSummary/CaseSummary';
22
- // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
23
- // const RelatedTasks = React.lazy(
24
- // () => import(/* webpackChunkName: 'CaseBugzilla' */ './Tabs/RelatedTasks/RelatedTasks')
25
- // );
26
- // TODO: Re-enable Action Plan tab when ready
27
- // const CaseActionPlan = React.lazy(
28
- // () => import(/* webpackChunkName: 'CaseActionPlan' */ './Tabs/CaseActionPlan/CaseActionPlan')
29
- // );
18
+ import { CaseSummary } from './Tabs/CaseSummary/CaseSummary';
19
+ const RelatedTasks = React.lazy(() => import(/* webpackChunkName: 'CaseBugzilla' */ './Tabs/RelatedTasks/RelatedTasks'));
20
+ const CaseActionPlan = React.lazy(() => import(/* webpackChunkName: 'CaseActionPlan' */ './Tabs/CaseActionPlan/CaseActionPlan'));
30
21
  const CasePrivateNotes = React.lazy(() => import(/* webpackChunkName: 'CasePrivateNotes' */ './Tabs/CasePrivateNotes/CasePrivateNotes'));
31
22
  const CaseDiscussion = React.lazy(() => import(/* webpackChunkName: 'CaseDiscussion' */ './Tabs/CaseDiscussion/CaseDiscussion'));
32
23
  const RMEEscalationList = React.lazy(() => import(/* webpackChunkName: 'RMEEscalationList' */ './Tabs/RMEEscalations/RMEEscalationList'));
33
24
  export function CaseDetailsTabs(props) {
34
25
  const { caseNumber } = props;
35
26
  const { activeTab } = useParams();
36
- const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
37
- const { accountNumber, status, caseSalesforceId, privateNotes } = useCaseSelector((state) => {
38
- var _a;
39
- return ({
40
- accountNumber: state.caseDetails.accountNumberRef,
41
- // TODO: Re-enable after GraphQL migration of chats
42
- // chats: state.caseDetails.chats,
43
- status: state.caseDetails.status,
44
- caseSalesforceId: state.caseDetails.id,
45
- privateNotes: (_a = state.caseDetails.notes) !== null && _a !== void 0 ? _a : '',
46
- });
47
- }, isEqual);
48
- const urlSearchParams = getUrlParsedParams(useLocation().search);
49
- const deepLinkCommentId = ((urlSearchParams === null || urlSearchParams === void 0 ? void 0 : urlSearchParams.commentId) || (urlSearchParams === null || urlSearchParams === void 0 ? void 0 : urlSearchParams.attachmentId));
50
- const { sort: discussionSort } = useCaseDiscussionTabStateContext();
51
- const graphqlOrderBy = {
52
- LastModifiedDate: { order: discussionSort.sortOrder === 'asc' ? 'ASC' : 'DESC' },
53
- };
54
- const { comments, loading: commentsLoading, error: commentsError, refetch: refetchComments, fetchMore, hasNextPage, isLoadingMore, loadMoreError, loadMoreRetryCount, retryLoadMore, } = useCaseComments(Object.assign({ caseId: caseSalesforceId, skip: !caseSalesforceId, orderBy: graphqlOrderBy }, (deepLinkCommentId ? { first: 2000 } : {})));
27
+ const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, pcmConfig, viewAsCustomer }, } = useContext(GlobalMetadataStateContext);
28
+ const { accountNumber, chats, comments, status } = useCaseSelector((state) => ({
29
+ accountNumber: state.caseDetails.accountNumberRef,
30
+ chats: state.caseDetails.chats,
31
+ comments: state.caseDetails.comments,
32
+ status: state.caseDetails.status,
33
+ }), isEqual);
55
34
  const { t } = useTranslation();
56
35
  const [activeTabKey, setActiveTabKey] = useState(0);
57
36
  const { caseDetailsPageState: { caseEscalations }, } = useCaseDetailsPageStateContext();
@@ -61,13 +40,8 @@ export function CaseDetailsTabs(props) {
61
40
  // resources.CASE_DETAILS,
62
41
  // CaseDetailsFields.CASE_DETAILS_BUGZILLAS
63
42
  // );
64
- // TODO: Re-enable AI Case Summary tab when ready
65
- // const caseSummaryViewConfig = getConfigField(
66
- // pcmConfig.data,
67
- // 'is_case_summary_view_active',
68
- // PCM_CONFIG_FIELD_TYPE.STRING
69
- // );
70
- // const isCaseSummaryViewActive = caseSummaryViewConfig === '1';
43
+ const caseSummaryViewConfig = getConfigField(pcmConfig.data, 'is_case_summary_view_active', PCM_CONFIG_FIELD_TYPE.STRING);
44
+ const isCaseSummaryViewActive = caseSummaryViewConfig === '1';
71
45
  const { isExportingPDF, pdfOption } = useContext(PDFContext);
72
46
  const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
73
47
  const [selectedTab, setSelectedTab] = useState(CaseDetailsTabsEnum.DISCUSSION);
@@ -75,18 +49,15 @@ export function CaseDetailsTabs(props) {
75
49
  // const bugZillaTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
76
50
  const managementTabRef = useRef(null);
77
51
  const privateNotesTabRef = useRef(null);
78
- // const actionPlanTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
52
+ const actionPlanTabRef = useRef(null);
79
53
  const escalationTabRef = useRef(null);
80
- // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
81
- // const relatedTasksRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
54
+ const relatedTasksRef = useRef(null);
82
55
  const caseHistoryTabRef = useRef(null);
83
- // TODO: Re-enable AI Case Summary tab when ready
84
- // const generateAiCaseSummaryTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
56
+ const generateAiCaseSummaryTabRef = useRef(null);
85
57
  const tabsToRender = [];
86
- const handleTabClick = (_event, tabIndex) => {
87
- const index = Number(tabIndex);
88
- setActiveTabKey(index);
89
- setSelectedTab(tabsToRender[index].title);
58
+ const handleTabClick = (event, tabIndex) => {
59
+ setActiveTabKey(tabIndex);
60
+ setSelectedTab(tabsToRender[tabIndex].title);
90
61
  };
91
62
  const isCaseHistoryEnabled = getConfigField(pcmConfig.data, 'isCaseHistoryEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
92
63
  tabsToRender.push({
@@ -95,10 +66,7 @@ export function CaseDetailsTabs(props) {
95
66
  title: CaseDetailsTabsEnum.DISCUSSION,
96
67
  ref: discussionTabRef,
97
68
  routePath: 'discussion',
98
- component: (React.createElement(CaseDiscussion, { caseNumber: caseNumber, tabRef: discussionTabRef, caseComments: comments, commentsLoading: commentsLoading, commentsError: commentsError,
99
- // TODO: Re-enable after GraphQL migration of chats
100
- // caseChats={chats}
101
- accountNumber: accountNumber, isDiscussionTab: selectedTab === CaseDetailsTabsEnum.DISCUSSION, refetchComments: refetchComments, fetchMore: fetchMore, hasNextPage: hasNextPage, isLoadingMore: isLoadingMore, loadMoreError: loadMoreError, loadMoreRetryCount: loadMoreRetryCount, retryLoadMore: retryLoadMore })),
69
+ component: (React.createElement(CaseDiscussion, { caseNumber: caseNumber, tabRef: discussionTabRef, caseComments: comments, caseChats: chats, accountNumber: accountNumber, isDiscussionTab: selectedTab === CaseDetailsTabsEnum.DISCUSSION })),
102
70
  });
103
71
  tabsToRender.push({
104
72
  'data-tracking-id': 'case-details-tab',
@@ -108,26 +76,24 @@ export function CaseDetailsTabs(props) {
108
76
  ref: managementTabRef,
109
77
  component: (React.createElement(CaseDetailsManagement, { caseNumber: caseNumber, routeProps: props.routeProps, tabRef: managementTabRef })),
110
78
  });
111
- // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
112
- // loggedInUserRights.data.isInternal() &&
113
- // !viewAsCustomer &&
114
- // tabsToRender.push({
115
- // 'data-tracking-id': 'case-details-related-tasks-tab',
116
- // key: 'relatedTasks',
117
- // ref: relatedTasksRef,
118
- // routePath: 'related-tasks',
119
- // title: CaseDetailsTabsEnum.RELATED_TASKS,
120
- // component: <RelatedTasks />,
121
- // });
122
- // TODO: Re-enable Action Plan tab when ready
123
- // tabsToRender.push({
124
- // 'data-tracking-id': 'case-details-actionplan-tab',
125
- // key: 'action plan',
126
- // ref: actionPlanTabRef,
127
- // title: CaseDetailsTabsEnum.ACTION_PLAN,
128
- // routePath: 'plan',
129
- // component: <CaseActionPlan caseNumber={caseNumber} />,
130
- // });
79
+ loggedInUserRights.data.isInternal() &&
80
+ !viewAsCustomer &&
81
+ tabsToRender.push({
82
+ 'data-tracking-id': 'case-details-related-tasks-tab',
83
+ key: 'relatedTasks',
84
+ ref: relatedTasksRef,
85
+ routePath: 'related-tasks',
86
+ title: CaseDetailsTabsEnum.RELATED_TASKS,
87
+ component: React.createElement(RelatedTasks, null),
88
+ });
89
+ tabsToRender.push({
90
+ 'data-tracking-id': 'case-details-actionplan-tab',
91
+ key: 'action plan',
92
+ ref: actionPlanTabRef,
93
+ title: CaseDetailsTabsEnum.ACTION_PLAN,
94
+ routePath: 'plan',
95
+ component: React.createElement(CaseActionPlan, { caseNumber: caseNumber }),
96
+ });
131
97
  canSeePrivateNotes &&
132
98
  tabsToRender.push({
133
99
  'data-tracking-id': 'case-details-pvtnotes-tab',
@@ -135,7 +101,7 @@ export function CaseDetailsTabs(props) {
135
101
  ref: privateNotesTabRef,
136
102
  title: CaseDetailsTabsEnum.PRIVATE_NOTES,
137
103
  routePath: 'notes',
138
- component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber, privateNotes: privateNotes }),
104
+ component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber }),
139
105
  });
140
106
  canSeeRMEs &&
141
107
  (caseEscalations.data || []).length > 0 &&
@@ -157,18 +123,17 @@ export function CaseDetailsTabs(props) {
157
123
  ref: caseHistoryTabRef,
158
124
  component: React.createElement(CaseHistory, { caseNumber: caseNumber }),
159
125
  });
160
- // TODO: Re-enable AI Case Summary tab when ready
161
- // !loggedInUsersAccount.data.secureSupport &&
162
- // !loggedInUsersAccount.data.hasConfirmedStatesideSupport &&
163
- // isCaseSummaryViewActive &&
164
- // tabsToRender.push({
165
- // 'data-tracking-id': 'generate-ai-case-summary-tab',
166
- // title: CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY,
167
- // key: 'generate ai case summary',
168
- // routePath: 'generate-ai-case-summary',
169
- // ref: generateAiCaseSummaryTabRef,
170
- // component: <CaseSummary caseNumber={caseNumber} />,
171
- // });
126
+ !loggedInUsersAccount.data.secureSupport &&
127
+ !loggedInUsersAccount.data.hasConfirmedStatesideSupport &&
128
+ isCaseSummaryViewActive &&
129
+ tabsToRender.push({
130
+ 'data-tracking-id': 'generate-ai-case-summary-tab',
131
+ title: CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY,
132
+ key: 'generate ai case summary',
133
+ routePath: 'generate-ai-case-summary',
134
+ ref: generateAiCaseSummaryTabRef,
135
+ component: React.createElement(CaseSummary, { caseNumber: caseNumber }),
136
+ });
172
137
  const getActiveTabKey = () => {
173
138
  if (!activeTab)
174
139
  return activeTabKey;
@@ -180,8 +145,12 @@ export function CaseDetailsTabs(props) {
180
145
  ? false
181
146
  : true;
182
147
  return (React.createElement("div", { className: "case-details-tabs", role: "region", ref: props.tabdRef },
183
- React.createElement(Tabs, { className: isExportingPDF ? 'hide-in-pdf' : '', activeKey: getActiveTabKey(), component: TabsComponent.nav, onSelect: handleTabClick, "aria-label": t('Case details tabs') }, tabsToRender.map((tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, key: tab.title, href: `#${props.basePath}/${tab.routePath}`, "data-tracking-id": tab['data-tracking-id'], title: React.createElement(TabTitleText, { className: tab.title === CaseDetailsTabsEnum.HISTORY ? 'tab-title-with-badge' : undefined },
148
+ React.createElement(Tabs, { className: isExportingPDF ? 'hide-in-pdf' : '', activeKey: getActiveTabKey(), component: TabsComponent.nav, onSelect: handleTabClick, "aria-label": t('Case details tabs') }, tabsToRender.map((tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, key: tab.title, href: `#${props.basePath}/${tab.routePath}`, "data-tracking-id": tab['data-tracking-id'], title: React.createElement(TabTitleText, { className: tab.title === CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY ||
149
+ tab.title === CaseDetailsTabsEnum.HISTORY
150
+ ? 'tab-title-with-badge'
151
+ : undefined },
184
152
  React.createElement(Trans, null, tab.title),
153
+ tab.title === CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY && (React.createElement(Label, { isCompact: true, variant: "outline", className: "preview-label" }, "Preview")),
185
154
  tab.title === CaseDetailsTabsEnum.HISTORY && (React.createElement(Popover, { "aria-label": "Track support case evolution with case history", triggerAction: "hover", bodyContent: React.createElement(React.Fragment, null,
186
155
  React.createElement("p", null, "Track support case evolution with case history"),
187
156
  React.createElement("a", { href: "https://access.redhat.com/articles/7120652", target: "_blank", rel: "noreferrer" },
@@ -3,8 +3,6 @@ import { IApiResponseDetails } from '@rh-support/types/shared';
3
3
  import React from 'react';
4
4
  interface IProps {
5
5
  owner: string;
6
- isLoading: boolean;
7
- isError: boolean;
8
6
  caseDetailsHydra: IApiResponseDetails<Partial<ICase>>;
9
7
  }
10
8
  export default function CaseOwnerInfo(props: IProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqElD"}
1
+ {"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqElD"}
@@ -8,9 +8,9 @@ export default function CaseOwnerInfo(props) {
8
8
  var _a, _b;
9
9
  const { isExportingPDF } = useContext(PDFContext);
10
10
  return (React.createElement("div", { className: `case-owner ${isExportingPDF ? 'hide-in-pdf' : ''}` },
11
- React.createElement(LoadingIndicator, { isInline: true, show: props.isLoading }),
12
- props.isError && React.createElement("div", null, "There was error loading case owner info"),
13
- !props.isLoading && !props.isError && (React.createElement("div", null,
11
+ React.createElement(LoadingIndicator, { isInline: true, show: props.caseDetailsHydra.isFetching }),
12
+ props.caseDetailsHydra.isError && React.createElement("div", null, "There was error loading case owner info"),
13
+ !props.caseDetailsHydra.isFetching && !props.caseDetailsHydra.isError && (React.createElement("div", null,
14
14
  React.createElement("h3", { className: "subheading subheading-sm" },
15
15
  React.createElement(Trans, null, "Assigned to")),
16
16
  props.owner,
@@ -2,12 +2,11 @@ import { IDClassNameProps } from '@rh-support/types/shared';
2
2
  import React from 'react';
3
3
  interface IProps extends IDClassNameProps {
4
4
  selectedStatus: string;
5
- onStatusChange: (portalStatus: string) => void | Promise<void>;
5
+ onStatusChange: (val: string) => void | Promise<void>;
6
6
  isDisabled: boolean;
7
+ allStatuses: string[];
7
8
  isFetching: boolean;
8
9
  hasError: boolean;
9
- isClosed: boolean;
10
- isInternal: boolean;
11
10
  }
12
11
  declare function CaseStatus(props: IProps): React.JSX.Element;
13
12
  declare namespace CaseStatus {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseStatus.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseStatus.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAAwC,MAAM,OAAO,CAAC;AAO7D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACvB;AAgBD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBAwEhC;kBAxEQ,UAAU;;;AA2EnB,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CaseStatus.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseStatus.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAA+B,MAAM,OAAO,CAAC;AAOpD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAOD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA8DhC;kBA9DQ,UAAU;;;AAiEnB,eAAe,UAAU,CAAC"}