@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.
Files changed (339) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +19 -29
  3. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  4. package/lib/esm/components/AccountInfo/OwnerSelector.js +91 -16
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +6 -2
  7. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +61 -32
  9. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +8 -0
  10. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +1 -0
  11. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +18 -0
  12. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  13. package/lib/esm/components/CaseEditView/Case.js +60 -33
  14. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +19 -9
  16. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  17. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +15 -4
  18. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  19. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +82 -55
  20. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +2 -0
  21. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
  23. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +1 -2
  24. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  25. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +8 -6
  26. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  27. package/lib/esm/components/CaseEditView/CaseOverview/index.js +76 -45
  28. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  29. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +203 -109
  30. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +0 -1
  31. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  32. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +5 -5
  33. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +1 -3
  34. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  35. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +5 -9
  36. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  37. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +18 -17
  38. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  39. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +51 -47
  40. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  41. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +49 -44
  42. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +4 -0
  43. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +1 -0
  44. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +23 -0
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +51 -45
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +23 -10
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +1 -1
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +0 -2
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +3 -2
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +132 -57
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +10 -5
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +110 -65
  60. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  61. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +16 -9
  62. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +40 -26
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +2 -4
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +122 -148
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +4 -2
  68. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  69. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +76 -145
  70. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  71. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +22 -9
  72. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  73. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +9 -2
  74. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  75. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +8 -1
  76. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +29 -0
  77. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +1 -0
  78. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +29 -0
  79. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +17 -0
  80. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +1 -0
  81. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +60 -0
  82. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +1 -2
  83. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  84. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +13 -8
  85. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +9 -3
  86. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  87. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +217 -271
  88. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  89. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +6 -4
  90. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  91. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +3 -1
  92. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
  93. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +35 -3
  94. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  95. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +63 -224
  96. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +4 -5
  97. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  98. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +18 -5
  99. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  100. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +7 -2
  101. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  102. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +38 -52
  103. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  104. package/lib/esm/components/CaseInformation/CaseGroup.js +168 -61
  105. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  106. package/lib/esm/components/CaseInformation/CaseInformation.js +10 -9
  107. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +3 -0
  108. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +1 -0
  109. package/lib/esm/components/CaseInformation/CaseLabels.js +103 -0
  110. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  111. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +108 -31
  112. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
  113. package/lib/esm/components/CaseInformation/Description.js +1 -1
  114. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  115. package/lib/esm/components/CaseInformation/FileDiag.js +2 -5
  116. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  117. package/lib/esm/components/CaseInformation/Fts.js +31 -17
  118. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  119. package/lib/esm/components/CaseInformation/Severity.js +21 -13
  120. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  121. package/lib/esm/components/CaseInformation/SupportLevel.js +36 -55
  122. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +4 -0
  123. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +1 -0
  124. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +110 -0
  125. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  126. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -8
  127. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  128. package/lib/esm/components/CaseManagement/CaseManagement.js +13 -10
  129. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  130. package/lib/esm/components/CaseManagement/Cep.js +11 -9
  131. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +2 -1
  132. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  133. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +22 -3
  134. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
  135. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  136. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +15 -22
  137. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  138. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +34 -40
  139. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  140. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +5 -4
  141. package/lib/esm/components/EditDescription/EditDescription.js +1 -1
  142. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  143. package/lib/esm/components/IdeaInformation/IdeaInformation.js +16 -18
  144. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  145. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +4 -2
  146. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
  147. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  148. package/lib/esm/components/ProductSelector/AllProductsSelector.js +3 -15
  149. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  150. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -37
  151. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  152. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +37 -50
  153. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +3 -0
  154. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +1 -0
  155. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +9 -0
  156. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  157. package/lib/esm/components/ProductSelector/ProductSelector.js +1 -3
  158. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  159. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +9 -1
  160. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  161. package/lib/esm/components/Recommendations/AsideResults.js +5 -5
  162. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  163. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +1 -4
  164. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  165. package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -4
  166. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  167. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +10 -8
  168. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  169. package/lib/esm/components/Review/Review.js +25 -19
  170. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  171. package/lib/esm/components/SessionRestore/SessionRestore.js +3 -1
  172. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  173. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
  174. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  175. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +104 -62
  176. package/lib/esm/components/shared/Constants.d.ts +1 -0
  177. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  178. package/lib/esm/components/shared/Constants.js +1 -0
  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 +2 -3
  182. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  183. package/lib/esm/components/shared/fileUpload/FileUploader.js +3 -1
  184. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +1 -0
  185. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  186. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +4 -3
  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 +21 -5
  190. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  191. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +207 -34
  192. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +5 -1
  193. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  194. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +36 -1
  195. package/lib/esm/components/shared/fileUpload/types/index.d.ts +5 -1
  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 +116 -47
  200. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  201. package/lib/esm/components/shared/useIsSectionValid.js +22 -57
  202. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  203. package/lib/esm/components/shared/usePostComment.js +16 -28
  204. package/lib/esm/components/shared/utils.d.ts +1 -0
  205. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  206. package/lib/esm/components/shared/utils.js +9 -3
  207. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  208. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +178 -38
  209. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  210. package/lib/esm/components/wizardLayout/WizardAside.js +2 -4
  211. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  212. package/lib/esm/components/wizardLayout/WizardLayout.js +9 -13
  213. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  214. package/lib/esm/components/wizardLayout/WizardMain.js +7 -0
  215. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  216. package/lib/esm/components/wizardLayout/WizardNavigation.js +13 -10
  217. package/lib/esm/constants/caseDetailsConstants.d.ts +5 -0
  218. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  219. package/lib/esm/constants/caseDetailsConstants.js +5 -0
  220. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  221. package/lib/esm/css/app.css +28 -0
  222. package/lib/esm/css/case.css +60 -209
  223. package/lib/esm/graphql/index.d.ts +4 -0
  224. package/lib/esm/graphql/index.d.ts.map +1 -0
  225. package/lib/esm/graphql/index.js +3 -0
  226. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +2 -0
  227. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +1 -0
  228. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +24 -0
  229. package/lib/esm/graphql/mutations/index.d.ts +2 -0
  230. package/lib/esm/graphql/mutations/index.d.ts.map +1 -0
  231. package/lib/esm/graphql/mutations/index.js +1 -0
  232. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +2 -0
  233. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -0
  234. package/lib/esm/graphql/queries/getEscalationDetails.js +31 -0
  235. package/lib/esm/graphql/queries/index.d.ts +2 -0
  236. package/lib/esm/graphql/queries/index.d.ts.map +1 -0
  237. package/lib/esm/graphql/queries/index.js +1 -0
  238. package/lib/esm/graphql/schemas/escalation.d.ts +66 -0
  239. package/lib/esm/graphql/schemas/escalation.d.ts.map +1 -0
  240. package/lib/esm/graphql/schemas/escalation.js +1 -0
  241. package/lib/esm/graphql/schemas/index.d.ts +2 -0
  242. package/lib/esm/graphql/schemas/index.d.ts.map +1 -0
  243. package/lib/esm/graphql/schemas/index.js +1 -0
  244. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +4 -0
  245. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +1 -0
  246. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +52 -0
  247. package/lib/esm/hooks/useCaseComments/index.d.ts +7 -0
  248. package/lib/esm/hooks/useCaseComments/index.d.ts.map +1 -0
  249. package/lib/esm/hooks/useCaseComments/index.js +5 -0
  250. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +25 -0
  251. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +1 -0
  252. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +75 -0
  253. package/lib/esm/hooks/useCaseComments/types.d.ts +85 -0
  254. package/lib/esm/hooks/useCaseComments/types.d.ts.map +1 -0
  255. package/lib/esm/hooks/useCaseComments/types.js +1 -0
  256. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +17 -0
  257. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +1 -0
  258. package/lib/esm/hooks/useCaseComments/useCaseComments.js +38 -0
  259. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +19 -0
  260. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +1 -0
  261. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +33 -0
  262. package/lib/esm/hooks/useCaseGroupUiState.d.ts +3 -0
  263. package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +1 -0
  264. package/lib/esm/hooks/useCaseGroupUiState.js +10 -0
  265. package/lib/esm/hooks/useCaseHistory.d.ts +26 -0
  266. package/lib/esm/hooks/useCaseHistory.d.ts.map +1 -0
  267. package/lib/esm/hooks/useCaseHistory.js +98 -0
  268. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +21 -0
  269. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +1 -0
  270. package/lib/esm/hooks/useCaseLabelLinkMutations.js +91 -0
  271. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -1
  272. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  273. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +21 -11
  274. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  275. package/lib/esm/hooks/useResetCaseCreate.js +18 -11
  276. package/lib/esm/hooks/useS3Upload.d.ts +5 -4
  277. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  278. package/lib/esm/hooks/useS3Upload.js +28 -30
  279. package/lib/esm/i18n/template-de.d.ts +2 -2
  280. package/lib/esm/i18n/template-de.js +2 -2
  281. package/lib/esm/i18n/template-es.d.ts +2 -2
  282. package/lib/esm/i18n/template-es.js +2 -2
  283. package/lib/esm/i18n/template-fr.d.ts +2 -2
  284. package/lib/esm/i18n/template-fr.js +2 -2
  285. package/lib/esm/i18n/template-it.d.ts +2 -2
  286. package/lib/esm/i18n/template-it.js +2 -2
  287. package/lib/esm/i18n/template-jp.d.ts +2 -2
  288. package/lib/esm/i18n/template-jp.js +2 -2
  289. package/lib/esm/i18n/template-ko.d.ts +2 -2
  290. package/lib/esm/i18n/template-ko.js +2 -2
  291. package/lib/esm/i18n/template-pt.d.ts +2 -2
  292. package/lib/esm/i18n/template-pt.js +2 -2
  293. package/lib/esm/i18n/template-ru.d.ts +2 -2
  294. package/lib/esm/i18n/template-ru.js +2 -2
  295. package/lib/esm/i18n/template-zh.d.ts +2 -2
  296. package/lib/esm/i18n/template-zh.js +2 -2
  297. package/lib/esm/index.js +1 -0
  298. package/lib/esm/models/cache.d.ts +0 -2
  299. package/lib/esm/models/cache.d.ts.map +1 -1
  300. package/lib/esm/models/caseHistory.d.ts +80 -0
  301. package/lib/esm/models/caseHistory.d.ts.map +1 -0
  302. package/lib/esm/models/caseHistory.js +1 -0
  303. package/lib/esm/reducers/CaseConstNTypes.d.ts +123 -9
  304. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  305. package/lib/esm/reducers/CaseConstNTypes.js +31 -7
  306. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +7 -5
  307. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  308. package/lib/esm/reducers/CaseDetailsPageReducer.js +58 -26
  309. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +11 -12
  310. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  311. package/lib/esm/reducers/CaseDiscussionTabReducer.js +63 -70
  312. package/lib/esm/reducers/CaseHelpers.d.ts +11 -1
  313. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  314. package/lib/esm/reducers/CaseHelpers.js +117 -17
  315. package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
  316. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  317. package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
  318. package/lib/esm/reducers/CaseReducer.d.ts +56 -11
  319. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  320. package/lib/esm/reducers/CaseReducer.js +279 -99
  321. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  322. package/lib/esm/reducers/RecommendationsReducer.js +16 -19
  323. package/lib/esm/scss/_main.scss +9 -0
  324. package/lib/esm/utils/TimelineUtils.d.ts +41 -0
  325. package/lib/esm/utils/TimelineUtils.d.ts.map +1 -0
  326. package/lib/esm/utils/TimelineUtils.js +135 -0
  327. package/lib/esm/utils/caseHistoryUtils.d.ts +66 -0
  328. package/lib/esm/utils/caseHistoryUtils.d.ts.map +1 -0
  329. package/lib/esm/utils/caseHistoryUtils.js +165 -0
  330. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +1 -2
  331. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  332. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  333. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +6 -0
  334. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +1 -0
  335. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +26 -0
  336. package/package.json +9 -8
  337. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +0 -25
  338. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +0 -1
  339. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +0 -88
@@ -7,8 +7,9 @@ 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';
10
11
  import { CoverSpinner, ErrorBoundary, OverviewContentLoader, ToastNotification, useDocumentTitle, usePrevious, } from '@rh-support/components';
11
- import { GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
12
+ import { CaseStatusProvider, fetchCaseDetails, GlobalMetadataStateContext, HostnameAwarenessModal, } from '@rh-support/react-context';
12
13
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
13
14
  import { getUrlParsedParams, isValidCaseNumber } from '@rh-support/utils';
14
15
  import isEmpty from 'lodash/isEmpty';
@@ -19,8 +20,12 @@ import { Route, Switch, useLocation, useParams, useRouteMatch } from 'react-rout
19
20
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
20
21
  import { useCaseDetailsPageDispatchContext } from '../../context/CaseDetailsPageContext';
21
22
  import { CaseReducerConstants } from '../../reducers/CaseConstNTypes';
22
- import { fetchAttachments, fetchCaseEscalations, fetchExternalTrackers, fetchFeedbacks, } from '../../reducers/CaseDetailsPageReducer';
23
- import { fetchCaseDetails, setCaseAccountNumber } from '../../reducers/CaseReducer';
23
+ import { fetchAttachments, fetchCaseEscalations,
24
+ // fetchExternalTrackers,
25
+ // fetchFeedbacks,
26
+ } from '../../reducers/CaseDetailsPageReducer';
27
+ import { setCaseAccountNumber } from '../../reducers/CaseReducer';
28
+ import { ArchivedCaseBanner } from './ArchivedCaseBanner';
24
29
  import { CaseDetailsAside } from './CaseDetailsAside';
25
30
  import { CaseDetailsErrorMessage } from './CaseDetailsErrorMessage';
26
31
  import CaseDetailsModals from './CaseDetailsModals';
@@ -28,8 +33,11 @@ import { CaseDetailsTabs } from './CaseDetailsTabs';
28
33
  import CaseOverview from './CaseOverview';
29
34
  import { PDFContext } from './PDFContainer';
30
35
  export default function Case(props) {
31
- const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, loggedInUser }, } = useContext(GlobalMetadataStateContext);
36
+ var _a;
37
+ const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
32
38
  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);
33
41
  const { t } = useTranslation();
34
42
  // The `path` lets us build <Route> paths that are
35
43
  // relative to the parent route, while the `url` lets
@@ -43,11 +51,18 @@ export default function Case(props) {
43
51
  const canSeeFeedbackButtons = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_FEEDBACK_BUTTONS);
44
52
  const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
45
53
  const canManageCase = ability.can(resourceActions.UPDATE, resources.CASE_DETAILS);
46
- const canSeeExternalTracker = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_EXTERNAL_TRACKER);
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
47
61
  const canSeeAttachments = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEE_ATTACHMENTS);
48
62
  const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
49
- const { product, isFetchingCaseDetails, isFetchingCaseDetailsError, caseDetailsError, selectedAccountDetails } = useCaseSelector((state) => ({
63
+ const { product, status, isFetchingCaseDetails, isFetchingCaseDetailsError, caseDetailsError, selectedAccountDetails, } = useCaseSelector((state) => ({
50
64
  product: state.caseDetails.product,
65
+ status: state.caseDetails.status,
51
66
  isFetchingCaseDetails: state.isFetchingCaseDetails,
52
67
  isFetchingCaseDetailsError: state.isFetchingCaseDetailsError,
53
68
  caseDetailsError: state.caseDetailsError,
@@ -79,6 +94,7 @@ export default function Case(props) {
79
94
  useEffect(() => {
80
95
  if (!isEmpty(loggedInUsersAccount.data) &&
81
96
  !isEmpty(selectedAccountDetails.data) &&
97
+ selectedAccountDetails.data.accountNumber &&
82
98
  loggedInUserRights.data.isAccountSameAsLoggedInAccount(selectedAccountDetails.data.accountNumber) &&
83
99
  !isEqual(loggedInUsersAccount.data, selectedAccountDetails.data)) {
84
100
  setCaseAccountNumber(caseDispatch, loggedInUsersAccount.data.accountNumber, true, loggedInUsersAccount.data);
@@ -107,21 +123,30 @@ export default function Case(props) {
107
123
  caseDispatch(action);
108
124
  }
109
125
  };
110
- yield fetchCaseDetails(safeDispatch, targetCaseNumber, loggedInUserRights.data, loggedInUser.data);
126
+ const caseDetails = yield fetchCaseDetails(safeDispatch, apolloClient, targetCaseNumber, setCaseAccountNumber, includeSecureSupportCases);
111
127
  if (currentCaseRef.current !== targetCaseNumber)
112
128
  return;
113
- if (canSeeRMEs) {
114
- fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, loggedInUserRights.data.getAccountNumber());
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);
115
132
  }
116
133
  if (canSeeAttachments) {
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);
134
+ fetchAttachments((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, apolloClient, caseSalesforceId, includeSecureSupportCases);
124
135
  }
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
+ // }
125
150
  if (currentCaseRef.current === targetCaseNumber) {
126
151
  checkRemoteSessionFlag();
127
152
  }
@@ -145,22 +170,24 @@ export default function Case(props) {
145
170
  ]);
146
171
  return (React.createElement(React.Fragment, null,
147
172
  isExportingPDF && React.createElement(CoverSpinner, null),
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 }))))),
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 })))))),
165
192
  React.createElement(HostnameAwarenessModal, null)));
166
193
  }
@@ -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,qBAyY7C"}
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"}
@@ -30,8 +30,10 @@ 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;
33
+ var _a, _b, _c, _d;
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);
35
37
  const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms, product, waitingOnCallback, groupNumber, ownersCaseGroups, } = useCaseSelector((state) => ({
36
38
  severity: state.caseDetails.severity,
37
39
  status: state.caseDetails.status,
@@ -50,6 +52,9 @@ export function CaseDetailsAside(props) {
50
52
  const { caseNumber } = props;
51
53
  const canCreateRME = ability.can(resourceActions.CREATE, resources.RME_ESCALATION);
52
54
  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);
53
58
  const canSeeToggleCustomerView = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_TOGGLE_CUSTOMER_VIEW);
54
59
  const globalMetadataDispatchContext = useContext(GlobalMetadataDispatchContext);
55
60
  const caseDetailsAsidePanelRef = useRef(null);
@@ -61,8 +66,8 @@ export function CaseDetailsAside(props) {
61
66
  const isXLScreen = breakPoint.xl;
62
67
  const toggleCustomerViewRef = useRef(null);
63
68
  const isFirstMountRef = useRef(true);
64
- const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts }, } = useGlobalStateContext();
65
- const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
69
+ const isInternal = (_b = loggedInUserRights.data) === null || _b === void 0 ? void 0 : _b.isInternal();
70
+ const isSecureSupportAccount = includeSecureSupportCases;
66
71
  // To check if user has read only access
67
72
  const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
68
73
  const onToggleAside = (ev) => {
@@ -77,9 +82,14 @@ export function CaseDetailsAside(props) {
77
82
  const [viewAsInternalPref, setViewAsInternalPref] = useState();
78
83
  const [isDefaultBoxChecked, setIsDefaultBoxChecked] = useState(true);
79
84
  const { isExportingPDF } = useContext(PDFContext);
85
+ // TODO: When casegroups is deployed on SCT stage, update this logic to properly gate on ownersCaseGroups.data
80
86
  const isWritePermissionforCase = useMemo(() => {
81
- return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber) || groupNumber === '-1';
82
- }, [groupNumber, ownersCaseGroups.data]);
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]);
83
93
  useEffect(() => {
84
94
  const userPreferredCaseView = () => __awaiter(this, void 0, void 0, function* () {
85
95
  try {
@@ -157,7 +167,7 @@ export function CaseDetailsAside(props) {
157
167
  setIsDefaultBoxChecked(!isDefaultBoxChecked);
158
168
  toggleViewAsCustomerFlag(globalMetadataDispatchContext);
159
169
  };
160
- const isSideBarExpanded = (_a = caseDetailsAsidePanelRef.current) === null || _a === void 0 ? void 0 : _a.expanded;
170
+ const isSideBarExpanded = (_c = caseDetailsAsidePanelRef.current) === null || _c === void 0 ? void 0 : _c.expanded;
161
171
  if (isFetchingCaseDetails || isFetchingCaseDetailsError)
162
172
  return null;
163
173
  const renderCasePrefPopoverText = () => {
@@ -169,7 +179,7 @@ export function CaseDetailsAside(props) {
169
179
  }
170
180
  };
171
181
  // To check if the user is ESS Customer and Product has ESS Support
172
- const isESSCustomer = isSpecialSupportOfferingEnabled((_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult, selectedProduct);
182
+ const isESSCustomer = isSpecialSupportOfferingEnabled((_d = allProducts.data) === null || _d === void 0 ? void 0 : _d.productsResult, selectedProduct);
173
183
  return (React.createElement("aside", { className: `grid-aside ${isSideBarExpanded ? '' : 'sidebar-collapsed'} ` },
174
184
  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' : ''}` },
175
185
  React.createElement("div", { className: "case-detail-collapse-panel" },
@@ -186,7 +196,7 @@ export function CaseDetailsAside(props) {
186
196
  !isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
187
197
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
188
198
  React.createElement(ListIcon, null)), variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn", "aria-label": t('Top recommendations') }))),
189
- !caseEscalations.isFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
199
+ !isEscalationsFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
190
200
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
191
201
  React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') }))))))),
192
202
  React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
@@ -213,6 +223,6 @@ export function CaseDetailsAside(props) {
213
223
  React.createElement(ESSRemoteSession, { waitingOnCallback: waitingOnCallback, remoteSessionTermsAcked: acceptedRemoteSessionTerms, caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, readOnly: canReadCase }))),
214
224
  !isESSCustomer && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
215
225
  React.createElement(RemoteSessionAgreement, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, waitingOnCallback: waitingOnCallback, acceptedRemoteSessionTerms: acceptedRemoteSessionTerms && waitingOnCallback, readOnly: canReadCase }))),
216
- !caseEscalations.isFetching && isWritePermissionforCase && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
226
+ !isEscalationsFetching && isWritePermissionforCase && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
217
227
  React.createElement(ActiveCustomerEscalation, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef })))))));
218
228
  }
@@ -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;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA6EpD"}
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,qBA4FpD"}
@@ -1,9 +1,9 @@
1
1
  import { AlertMessage, AlertType, errorMessageTitle, formattedApiErrorMessage } from '@rh-support/components';
2
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
- import { getSFDCSecureSupportCaseLink } from '@rh-support/utils';
3
+ import { CSS_ACCESS_RESTRICTION_ERROR_DETAIL, CSS_PORTAL_URL, 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 details
6
+ // Here we need to use 'detailMessage' from case API if user is not authorized to see case detail
7
7
  const INVALID_CASE_GROUP_API_ERROR_DEFAULT_MESSAGE = 'Invalid group access';
8
8
  export function CaseDetailsErrorMessage(props) {
9
9
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
@@ -11,11 +11,13 @@ export function CaseDetailsErrorMessage(props) {
11
11
  // Initialize Default Props Below
12
12
  const { isInlineError = false, canReadCase, canManageCase, caseNumber, errorDetails } = props;
13
13
  const invalidCaseGroupErrorTitle = t('This case can only be viewed by a specific group');
14
+ const cssAccessRestrictionErrorTitle = t('This case is only available in Confirmed Sovereign Support');
14
15
  /* There can be two condition for HTTP 403 error
15
16
  1. Account mismatch.
16
17
  2. Invalid case group
17
18
  */
18
19
  const isCaseGroupError = (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['detailMessage']) === INVALID_CASE_GROUP_API_ERROR_DEFAULT_MESSAGE;
20
+ const isCssAccessRestrictionError = (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails['detailMessage']) === CSS_ACCESS_RESTRICTION_ERROR_DETAIL;
19
21
  const getErrorMessage = () => {
20
22
  const { status, message = '' } = errorDetails || {};
21
23
  const customDefaultErrorMessage403 = isCaseGroupError
@@ -23,7 +25,14 @@ export function CaseDetailsErrorMessage(props) {
23
25
  : t('You are not authorized to see this case.');
24
26
  const errorMessage404 = t("Case number doesn't exist");
25
27
  let errorMessage403;
26
- if (!canReadCase) {
28
+ if (isCssAccessRestrictionError) {
29
+ errorMessage403 = (React.createElement(React.Fragment, null,
30
+ "Open this case in the",
31
+ ' ',
32
+ React.createElement("a", { href: CSS_PORTAL_URL, "data-tracking-id": "css-access-restriction-portal-redirect" }, "Confirmed Sovereign Support portal"),
33
+ "."));
34
+ }
35
+ else if (!canReadCase) {
27
36
  errorMessage403 = customDefaultErrorMessage403;
28
37
  }
29
38
  else if (loggedInUserRights.data.isInternal() &&
@@ -48,8 +57,10 @@ export function CaseDetailsErrorMessage(props) {
48
57
  };
49
58
  return (React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mb-lg", show: true,
50
59
  // Here customizing title of alert based on case group error.
51
- title: errorMessageTitle(errorDetails, Object.assign({}, (isCaseGroupError && {
60
+ title: errorMessageTitle(errorDetails, Object.assign(Object.assign({}, (isCaseGroupError && {
52
61
  '403': { title: invalidCaseGroupErrorTitle },
62
+ })), (isCssAccessRestrictionError && {
63
+ '403': { title: cssAccessRestrictionErrorTitle },
53
64
  })), canManageCase), isInline: isInlineError },
54
65
  React.createElement(Trans, null, getErrorMessage())));
55
66
  }
@@ -1 +1 @@
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
+ {"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,EAAa,MAAM,kBAAkB,CAAC;AA8BlE,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,qBAoT5C"}
@@ -1,4 +1,4 @@
1
- import { Content, ContentVariants, Label, Popover, Tab, TabContent, Tabs, TabsComponent, TabTitleText, } from '@patternfly/react-core';
1
+ import { Content, ContentVariants, 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';
@@ -12,25 +12,42 @@ 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 { useCaseComments } from '../../hooks/useCaseComments';
15
16
  import { PDFContext } from './PDFContainer';
16
17
  import CaseDetailsManagement from './Tabs/CaseDetails/CaseDetailsManagement';
17
18
  import CaseHistory from './Tabs/CaseHistory/CaseHistory';
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'));
19
+ // TODO: Re-enable AI Case Summary tab when ready
20
+ // import { CaseSummary } from './Tabs/CaseSummary/CaseSummary';
21
+ // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
22
+ // const RelatedTasks = React.lazy(
23
+ // () => import(/* webpackChunkName: 'CaseBugzilla' */ './Tabs/RelatedTasks/RelatedTasks')
24
+ // );
25
+ // TODO: Re-enable Action Plan tab when ready
26
+ // const CaseActionPlan = React.lazy(
27
+ // () => import(/* webpackChunkName: 'CaseActionPlan' */ './Tabs/CaseActionPlan/CaseActionPlan')
28
+ // );
21
29
  const CasePrivateNotes = React.lazy(() => import(/* webpackChunkName: 'CasePrivateNotes' */ './Tabs/CasePrivateNotes/CasePrivateNotes'));
22
30
  const CaseDiscussion = React.lazy(() => import(/* webpackChunkName: 'CaseDiscussion' */ './Tabs/CaseDiscussion/CaseDiscussion'));
23
31
  const RMEEscalationList = React.lazy(() => import(/* webpackChunkName: 'RMEEscalationList' */ './Tabs/RMEEscalations/RMEEscalationList'));
24
32
  export function CaseDetailsTabs(props) {
25
33
  const { caseNumber } = props;
26
34
  const { activeTab } = useParams();
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);
35
+ const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
36
+ const { accountNumber, status, caseSalesforceId, privateNotes } = useCaseSelector((state) => {
37
+ var _a;
38
+ return ({
39
+ accountNumber: state.caseDetails.accountNumberRef,
40
+ // TODO: Re-enable after GraphQL migration of chats
41
+ // chats: state.caseDetails.chats,
42
+ status: state.caseDetails.status,
43
+ caseSalesforceId: state.caseDetails.id,
44
+ privateNotes: (_a = state.caseDetails.notes) !== null && _a !== void 0 ? _a : '',
45
+ });
46
+ }, isEqual);
47
+ const { comments, loading: commentsLoading, error: commentsError, refetch: refetchComments, } = useCaseComments({
48
+ caseId: caseSalesforceId,
49
+ skip: !caseSalesforceId,
50
+ });
34
51
  const { t } = useTranslation();
35
52
  const [activeTabKey, setActiveTabKey] = useState(0);
36
53
  const { caseDetailsPageState: { caseEscalations }, } = useCaseDetailsPageStateContext();
@@ -40,8 +57,13 @@ export function CaseDetailsTabs(props) {
40
57
  // resources.CASE_DETAILS,
41
58
  // CaseDetailsFields.CASE_DETAILS_BUGZILLAS
42
59
  // );
43
- const caseSummaryViewConfig = getConfigField(pcmConfig.data, 'is_case_summary_view_active', PCM_CONFIG_FIELD_TYPE.STRING);
44
- const isCaseSummaryViewActive = caseSummaryViewConfig === '1';
60
+ // TODO: Re-enable AI Case Summary tab when ready
61
+ // const caseSummaryViewConfig = getConfigField(
62
+ // pcmConfig.data,
63
+ // 'is_case_summary_view_active',
64
+ // PCM_CONFIG_FIELD_TYPE.STRING
65
+ // );
66
+ // const isCaseSummaryViewActive = caseSummaryViewConfig === '1';
45
67
  const { isExportingPDF, pdfOption } = useContext(PDFContext);
46
68
  const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
47
69
  const [selectedTab, setSelectedTab] = useState(CaseDetailsTabsEnum.DISCUSSION);
@@ -49,15 +71,18 @@ export function CaseDetailsTabs(props) {
49
71
  // const bugZillaTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
50
72
  const managementTabRef = useRef(null);
51
73
  const privateNotesTabRef = useRef(null);
52
- const actionPlanTabRef = useRef(null);
74
+ // const actionPlanTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
53
75
  const escalationTabRef = useRef(null);
54
- const relatedTasksRef = useRef(null);
76
+ // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
77
+ // const relatedTasksRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
55
78
  const caseHistoryTabRef = useRef(null);
56
- const generateAiCaseSummaryTabRef = useRef(null);
79
+ // TODO: Re-enable AI Case Summary tab when ready
80
+ // const generateAiCaseSummaryTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
57
81
  const tabsToRender = [];
58
- const handleTabClick = (event, tabIndex) => {
59
- setActiveTabKey(tabIndex);
60
- setSelectedTab(tabsToRender[tabIndex].title);
82
+ const handleTabClick = (_event, tabIndex) => {
83
+ const index = Number(tabIndex);
84
+ setActiveTabKey(index);
85
+ setSelectedTab(tabsToRender[index].title);
61
86
  };
62
87
  const isCaseHistoryEnabled = getConfigField(pcmConfig.data, 'isCaseHistoryEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
63
88
  tabsToRender.push({
@@ -66,7 +91,10 @@ export function CaseDetailsTabs(props) {
66
91
  title: CaseDetailsTabsEnum.DISCUSSION,
67
92
  ref: discussionTabRef,
68
93
  routePath: 'discussion',
69
- component: (React.createElement(CaseDiscussion, { caseNumber: caseNumber, tabRef: discussionTabRef, caseComments: comments, caseChats: chats, accountNumber: accountNumber, isDiscussionTab: selectedTab === CaseDetailsTabsEnum.DISCUSSION })),
94
+ component: (React.createElement(CaseDiscussion, { caseNumber: caseNumber, tabRef: discussionTabRef, caseComments: comments, commentsLoading: commentsLoading, commentsError: commentsError,
95
+ // TODO: Re-enable after GraphQL migration of chats
96
+ // caseChats={chats}
97
+ accountNumber: accountNumber, isDiscussionTab: selectedTab === CaseDetailsTabsEnum.DISCUSSION, refetchComments: refetchComments })),
70
98
  });
71
99
  tabsToRender.push({
72
100
  'data-tracking-id': 'case-details-tab',
@@ -76,24 +104,26 @@ export function CaseDetailsTabs(props) {
76
104
  ref: managementTabRef,
77
105
  component: (React.createElement(CaseDetailsManagement, { caseNumber: caseNumber, routeProps: props.routeProps, tabRef: managementTabRef })),
78
106
  });
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
- });
107
+ // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
108
+ // loggedInUserRights.data.isInternal() &&
109
+ // !viewAsCustomer &&
110
+ // tabsToRender.push({
111
+ // 'data-tracking-id': 'case-details-related-tasks-tab',
112
+ // key: 'relatedTasks',
113
+ // ref: relatedTasksRef,
114
+ // routePath: 'related-tasks',
115
+ // title: CaseDetailsTabsEnum.RELATED_TASKS,
116
+ // component: <RelatedTasks />,
117
+ // });
118
+ // TODO: Re-enable Action Plan tab when ready
119
+ // tabsToRender.push({
120
+ // 'data-tracking-id': 'case-details-actionplan-tab',
121
+ // key: 'action plan',
122
+ // ref: actionPlanTabRef,
123
+ // title: CaseDetailsTabsEnum.ACTION_PLAN,
124
+ // routePath: 'plan',
125
+ // component: <CaseActionPlan caseNumber={caseNumber} />,
126
+ // });
97
127
  canSeePrivateNotes &&
98
128
  tabsToRender.push({
99
129
  'data-tracking-id': 'case-details-pvtnotes-tab',
@@ -101,7 +131,7 @@ export function CaseDetailsTabs(props) {
101
131
  ref: privateNotesTabRef,
102
132
  title: CaseDetailsTabsEnum.PRIVATE_NOTES,
103
133
  routePath: 'notes',
104
- component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber }),
134
+ component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber, privateNotes: privateNotes }),
105
135
  });
106
136
  canSeeRMEs &&
107
137
  (caseEscalations.data || []).length > 0 &&
@@ -123,17 +153,18 @@ export function CaseDetailsTabs(props) {
123
153
  ref: caseHistoryTabRef,
124
154
  component: React.createElement(CaseHistory, { caseNumber: caseNumber }),
125
155
  });
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
- });
156
+ // TODO: Re-enable AI Case Summary tab when ready
157
+ // !loggedInUsersAccount.data.secureSupport &&
158
+ // !loggedInUsersAccount.data.hasConfirmedStatesideSupport &&
159
+ // isCaseSummaryViewActive &&
160
+ // tabsToRender.push({
161
+ // 'data-tracking-id': 'generate-ai-case-summary-tab',
162
+ // title: CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY,
163
+ // key: 'generate ai case summary',
164
+ // routePath: 'generate-ai-case-summary',
165
+ // ref: generateAiCaseSummaryTabRef,
166
+ // component: <CaseSummary caseNumber={caseNumber} />,
167
+ // });
137
168
  const getActiveTabKey = () => {
138
169
  if (!activeTab)
139
170
  return activeTabKey;
@@ -145,12 +176,8 @@ export function CaseDetailsTabs(props) {
145
176
  ? false
146
177
  : true;
147
178
  return (React.createElement("div", { className: "case-details-tabs", role: "region", ref: props.tabdRef },
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 },
179
+ 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 },
152
180
  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")),
154
181
  tab.title === CaseDetailsTabsEnum.HISTORY && (React.createElement(Popover, { "aria-label": "Track support case evolution with case history", triggerAction: "hover", bodyContent: React.createElement(React.Fragment, null,
155
182
  React.createElement("p", null, "Track support case evolution with case history"),
156
183
  React.createElement("a", { href: "https://access.redhat.com/articles/7120652", target: "_blank", rel: "noreferrer" },
@@ -3,6 +3,8 @@ 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;
6
8
  caseDetailsHydra: IApiResponseDetails<Partial<ICase>>;
7
9
  }
8
10
  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,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,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"}
@@ -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.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,
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,
14
14
  React.createElement("h3", { className: "subheading subheading-sm" },
15
15
  React.createElement(Trans, null, "Assigned to")),
16
16
  props.owner,
@@ -2,9 +2,8 @@ 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: (val: string) => void | Promise<void>;
5
+ onStatusChange: (portalStatus: string) => void | Promise<void>;
6
6
  isDisabled: boolean;
7
- allStatuses: string[];
8
7
  isFetching: boolean;
9
8
  hasError: boolean;
10
9
  }
@@ -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;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"}
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;CACrB;AAOD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBAmEhC;kBAnEQ,UAAU;;;AAsEnB,eAAe,UAAU,CAAC"}