@rh-support/troubleshoot 2.6.340 → 2.6.349

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 (331) 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 +16 -91
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +1 -1
  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 +10 -39
  13. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +4 -15
  15. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +55 -82
  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 -1
  21. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +6 -8
  23. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  24. package/lib/esm/components/CaseEditView/CaseOverview/index.js +45 -76
  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 +47 -51
  37. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  38. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +44 -49
  39. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  40. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +45 -51
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +10 -21
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +1 -1
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +2 -0
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +2 -3
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +57 -132
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +4 -9
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +58 -93
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +9 -16
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +25 -0
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +1 -0
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +91 -0
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  60. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +33 -78
  61. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +4 -2
  62. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +153 -122
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +2 -4
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +137 -74
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  68. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +9 -22
  69. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  70. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +2 -9
  71. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  72. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +1 -8
  73. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +2 -2
  74. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  75. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +7 -18
  76. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +3 -9
  77. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  78. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +263 -211
  79. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  80. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +4 -6
  81. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  82. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +1 -3
  83. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
  84. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +3 -35
  85. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  86. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +224 -63
  87. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +5 -4
  88. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  89. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +5 -18
  90. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  91. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +2 -7
  92. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  93. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +52 -38
  94. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  95. package/lib/esm/components/CaseInformation/CaseGroup.js +57 -123
  96. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  97. package/lib/esm/components/CaseInformation/CaseInformation.js +9 -10
  98. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  99. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +30 -107
  100. package/lib/esm/components/CaseInformation/Description.js +1 -1
  101. package/lib/esm/components/CaseInformation/FileDiag.js +7 -10
  102. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  103. package/lib/esm/components/CaseInformation/Fts.js +1 -2
  104. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  105. package/lib/esm/components/CaseInformation/SupportLevel.js +55 -36
  106. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -2
  107. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  108. package/lib/esm/components/CaseManagement/CaseManagement.js +7 -8
  109. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  110. package/lib/esm/components/CaseManagement/Cep.js +9 -11
  111. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -2
  112. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  113. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -22
  114. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  115. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +7 -9
  116. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  117. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +18 -13
  118. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  119. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +40 -34
  120. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  121. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +3 -8
  122. package/lib/esm/components/EditDescription/EditDescription.js +1 -1
  123. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  124. package/lib/esm/components/IdeaInformation/IdeaInformation.js +18 -16
  125. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  126. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +2 -4
  127. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
  128. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  129. package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
  130. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  131. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
  132. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  133. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +50 -37
  134. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  135. package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
  136. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  137. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +1 -9
  138. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  139. package/lib/esm/components/Recommendations/AsideResults.js +3 -4
  140. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  141. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +4 -1
  142. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  143. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  144. package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
  145. package/lib/esm/components/Recommendations/Recommendations.js +2 -2
  146. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  147. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +8 -10
  148. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  149. package/lib/esm/components/Review/Review.js +16 -20
  150. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  151. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
  152. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  153. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
  154. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -2
  155. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  156. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +62 -135
  157. package/lib/esm/components/shared/Constants.d.ts +0 -5
  158. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  159. package/lib/esm/components/shared/Constants.js +0 -5
  160. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  161. package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
  162. package/lib/esm/components/shared/fileUpload/FileUpload.js +3 -2
  163. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  164. package/lib/esm/components/shared/fileUpload/FileUploader.js +1 -3
  165. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  166. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +2 -2
  167. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
  168. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  169. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +5 -21
  170. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  171. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +34 -210
  172. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +1 -5
  173. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  174. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +1 -36
  175. package/lib/esm/components/shared/fileUpload/types/index.d.ts +1 -4
  176. package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
  177. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
  178. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  179. package/lib/esm/components/shared/fileUpload/useFileUploader.js +47 -116
  180. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  181. package/lib/esm/components/shared/useIsSectionValid.js +57 -22
  182. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  183. package/lib/esm/components/shared/usePostComment.js +28 -16
  184. package/lib/esm/components/shared/utils.d.ts +0 -1
  185. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  186. package/lib/esm/components/shared/utils.js +3 -9
  187. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  188. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +38 -160
  189. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  190. package/lib/esm/components/wizardLayout/WizardAside.js +4 -2
  191. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  192. package/lib/esm/components/wizardLayout/WizardLayout.js +12 -11
  193. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  194. package/lib/esm/components/wizardLayout/WizardNavigation.js +10 -11
  195. package/lib/esm/constants/caseDetailsConstants.d.ts +0 -5
  196. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  197. package/lib/esm/constants/caseDetailsConstants.js +0 -5
  198. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  199. package/lib/esm/css/case.css +202 -60
  200. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -1
  201. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  202. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +11 -21
  203. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  204. package/lib/esm/hooks/useResetCaseCreate.js +11 -18
  205. package/lib/esm/hooks/useS3Upload.d.ts +4 -5
  206. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  207. package/lib/esm/hooks/useS3Upload.js +30 -28
  208. package/lib/esm/i18n/template-de.d.ts +2 -2
  209. package/lib/esm/i18n/template-de.js +2 -2
  210. package/lib/esm/i18n/template-es.d.ts +2 -2
  211. package/lib/esm/i18n/template-es.js +2 -2
  212. package/lib/esm/i18n/template-fr.d.ts +2 -2
  213. package/lib/esm/i18n/template-fr.js +2 -2
  214. package/lib/esm/i18n/template-it.d.ts +2 -2
  215. package/lib/esm/i18n/template-it.js +2 -2
  216. package/lib/esm/i18n/template-jp.d.ts +2 -2
  217. package/lib/esm/i18n/template-jp.js +2 -2
  218. package/lib/esm/i18n/template-ko.d.ts +2 -2
  219. package/lib/esm/i18n/template-ko.js +2 -2
  220. package/lib/esm/i18n/template-pt.d.ts +2 -2
  221. package/lib/esm/i18n/template-pt.js +2 -2
  222. package/lib/esm/i18n/template-ru.d.ts +2 -2
  223. package/lib/esm/i18n/template-ru.js +2 -2
  224. package/lib/esm/i18n/template-zh.d.ts +2 -2
  225. package/lib/esm/i18n/template-zh.js +2 -2
  226. package/lib/esm/index.js +0 -1
  227. package/lib/esm/models/cache.d.ts +2 -0
  228. package/lib/esm/models/cache.d.ts.map +1 -1
  229. package/lib/esm/reducers/CaseConstNTypes.d.ts +9 -121
  230. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  231. package/lib/esm/reducers/CaseConstNTypes.js +7 -30
  232. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -7
  233. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  234. package/lib/esm/reducers/CaseDetailsPageReducer.js +26 -58
  235. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +12 -11
  236. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  237. package/lib/esm/reducers/CaseDiscussionTabReducer.js +70 -63
  238. package/lib/esm/reducers/CaseHelpers.d.ts +2 -3
  239. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  240. package/lib/esm/reducers/CaseHelpers.js +15 -98
  241. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
  242. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  243. package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
  244. package/lib/esm/reducers/CaseReducer.d.ts +11 -50
  245. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  246. package/lib/esm/reducers/CaseReducer.js +99 -270
  247. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  248. package/lib/esm/reducers/RecommendationsReducer.js +18 -15
  249. package/lib/esm/scss/_main.scss +0 -9
  250. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +2 -1
  251. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  252. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  253. package/package.json +8 -9
  254. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +0 -7
  255. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +0 -1
  256. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +0 -17
  257. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +0 -4
  258. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +0 -1
  259. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +0 -23
  260. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +0 -29
  261. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +0 -1
  262. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +0 -29
  263. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +0 -17
  264. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +0 -1
  265. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +0 -60
  266. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +0 -3
  267. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +0 -1
  268. package/lib/esm/components/CaseInformation/CaseLabels.js +0 -103
  269. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +0 -4
  270. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +0 -1
  271. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +0 -109
  272. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +0 -3
  273. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +0 -1
  274. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +0 -9
  275. package/lib/esm/graphql/index.d.ts +0 -4
  276. package/lib/esm/graphql/index.d.ts.map +0 -1
  277. package/lib/esm/graphql/index.js +0 -3
  278. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +0 -2
  279. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +0 -1
  280. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +0 -24
  281. package/lib/esm/graphql/mutations/index.d.ts +0 -2
  282. package/lib/esm/graphql/mutations/index.d.ts.map +0 -1
  283. package/lib/esm/graphql/mutations/index.js +0 -1
  284. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +0 -2
  285. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +0 -1
  286. package/lib/esm/graphql/queries/getEscalationDetails.js +0 -31
  287. package/lib/esm/graphql/queries/getParentId.d.ts +0 -2
  288. package/lib/esm/graphql/queries/getParentId.d.ts.map +0 -1
  289. package/lib/esm/graphql/queries/getParentId.js +0 -16
  290. package/lib/esm/graphql/queries/index.d.ts +0 -3
  291. package/lib/esm/graphql/queries/index.d.ts.map +0 -1
  292. package/lib/esm/graphql/queries/index.js +0 -2
  293. package/lib/esm/graphql/schemas/escalation.d.ts +0 -88
  294. package/lib/esm/graphql/schemas/escalation.d.ts.map +0 -1
  295. package/lib/esm/graphql/schemas/escalation.js +0 -1
  296. package/lib/esm/graphql/schemas/index.d.ts +0 -2
  297. package/lib/esm/graphql/schemas/index.d.ts.map +0 -1
  298. package/lib/esm/graphql/schemas/index.js +0 -1
  299. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +0 -4
  300. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +0 -1
  301. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +0 -52
  302. package/lib/esm/hooks/useCaseComments/index.d.ts +0 -7
  303. package/lib/esm/hooks/useCaseComments/index.d.ts.map +0 -1
  304. package/lib/esm/hooks/useCaseComments/index.js +0 -5
  305. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +0 -25
  306. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +0 -1
  307. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +0 -75
  308. package/lib/esm/hooks/useCaseComments/types.d.ts +0 -85
  309. package/lib/esm/hooks/useCaseComments/types.d.ts.map +0 -1
  310. package/lib/esm/hooks/useCaseComments/types.js +0 -1
  311. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +0 -17
  312. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +0 -1
  313. package/lib/esm/hooks/useCaseComments/useCaseComments.js +0 -38
  314. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +0 -19
  315. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +0 -1
  316. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +0 -33
  317. package/lib/esm/hooks/useCaseHistory.d.ts +0 -26
  318. package/lib/esm/hooks/useCaseHistory.d.ts.map +0 -1
  319. package/lib/esm/hooks/useCaseHistory.js +0 -98
  320. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +0 -21
  321. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +0 -1
  322. package/lib/esm/hooks/useCaseLabelLinkMutations.js +0 -84
  323. package/lib/esm/models/caseHistory.d.ts +0 -80
  324. package/lib/esm/models/caseHistory.d.ts.map +0 -1
  325. package/lib/esm/models/caseHistory.js +0 -1
  326. package/lib/esm/utils/TimelineUtils.d.ts +0 -41
  327. package/lib/esm/utils/TimelineUtils.d.ts.map +0 -1
  328. package/lib/esm/utils/TimelineUtils.js +0 -135
  329. package/lib/esm/utils/caseHistoryUtils.d.ts +0 -66
  330. package/lib/esm/utils/caseHistoryUtils.d.ts.map +0 -1
  331. package/lib/esm/utils/caseHistoryUtils.js +0 -165
@@ -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 }),
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":"AAsBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAahF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAsa7C"}
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"}
@@ -7,7 +7,6 @@ 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 { useQuery } from '@apollo/client/react';
11
10
  import { Button, Checkbox, Icon, Popover, PopoverPosition, Switch, Tooltip } from '@patternfly/react-core';
12
11
  import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
13
12
  import ListIcon from '@patternfly/react-icons/dist/js/icons/list-icon';
@@ -17,7 +16,7 @@ import TrendUpIcon from '@patternfly/react-icons/dist/js/icons/trend-up-icon';
17
16
  import { ErrorBoundary, ToastNotification, useBreakpoint, useForceUpdate } from '@rh-support/components';
18
17
  import { GlobalMetadataDispatchContext, toggleViewAsCustomerFlag, useGlobalStateContext, useUserPreferences, } from '@rh-support/react-context';
19
18
  import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
20
- import { buildAccessRestrictionExclusionFilter, isSpecialSupportOfferingEnabled, scrollIntoView, } from '@rh-support/utils';
19
+ import { isSpecialSupportOfferingEnabled, scrollIntoView } from '@rh-support/utils';
21
20
  import isEmpty from 'lodash/isEmpty';
22
21
  import isEqual from 'lodash/isEqual';
23
22
  import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
@@ -26,16 +25,13 @@ import { Link } from 'react-router-dom';
26
25
  import { useCaseSelector } from '../../context/CaseContext';
27
26
  import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
28
27
  import { useRecommendationStateContext } from '../../context/RecommendationContext';
29
- import { GET_ESCALATION_DETAILS, GET_PARENT_ID } from '../../graphql';
30
28
  import { ActiveCustomerEscalation } from './ActiveCustomerEscalation';
31
29
  import { CaseSolutions } from './CaseSolutions';
32
30
  import { PDFContext } from './PDFContainer';
33
31
  import { ESSRemoteSession, RemoteSessionAgreement } from './RequestRemoteSession';
34
32
  export function CaseDetailsAside(props) {
35
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
33
+ var _a, _b;
36
34
  const { t } = useTranslation();
37
- const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts, loggedInUserRights }, } = useGlobalStateContext();
38
- const includeSecureSupportCases = Boolean((_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport);
39
35
  const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms, product, waitingOnCallback, groupNumber, ownersCaseGroups, } = useCaseSelector((state) => ({
40
36
  severity: state.caseDetails.severity,
41
37
  status: state.caseDetails.status,
@@ -52,26 +48,6 @@ export function CaseDetailsAside(props) {
52
48
  const isCreateRMEVisible = (caseEscalations.data || []).length === 0 || caseEscalations.data.every((item) => item.status === 'Closed');
53
49
  const { recommendationState: { isLoadingRecommendations, allDocs }, } = useRecommendationStateContext();
54
50
  const { caseNumber } = props;
55
- const { data: parentData, loading: isLoadingParentId } = useQuery(GET_PARENT_ID, {
56
- variables: {
57
- where: {
58
- and: [
59
- { CaseNumber__c: { eq: caseNumber } },
60
- buildAccessRestrictionExclusionFilter(includeSecureSupportCases),
61
- ],
62
- },
63
- },
64
- });
65
- const parentId = (_g = (_f = (_e = (_d = (_c = (_b = parentData === null || parentData === void 0 ? void 0 : parentData.redhat_support_uiapi) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.RedHatSupportCase) === null || _d === void 0 ? void 0 : _d.edges) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.node) === null || _g === void 0 ? void 0 : _g.Id;
66
- const { loading: isLoadingEscalations } = useQuery(GET_ESCALATION_DETAILS, {
67
- variables: {
68
- where: {
69
- and: [{ ParentId: { eq: parentId } }, buildAccessRestrictionExclusionFilter(includeSecureSupportCases)],
70
- },
71
- },
72
- skip: !parentId,
73
- });
74
- const isEscalationsFetching = isLoadingParentId || isLoadingEscalations;
75
51
  const canCreateRME = ability.can(resourceActions.CREATE, resources.RME_ESCALATION);
76
52
  const canCreateICE = ability.can(resourceActions.CREATE, resources.ICE_ESCALATION);
77
53
  const canSeeToggleCustomerView = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_TOGGLE_CUSTOMER_VIEW);
@@ -85,8 +61,8 @@ export function CaseDetailsAside(props) {
85
61
  const isXLScreen = breakPoint.xl;
86
62
  const toggleCustomerViewRef = useRef(null);
87
63
  const isFirstMountRef = useRef(true);
88
- const isInternal = (_h = loggedInUserRights.data) === null || _h === void 0 ? void 0 : _h.isInternal();
89
- const isSecureSupportAccount = includeSecureSupportCases;
64
+ const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts }, } = useGlobalStateContext();
65
+ const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
90
66
  // To check if user has read only access
91
67
  const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
92
68
  const onToggleAside = (ev) => {
@@ -101,14 +77,9 @@ export function CaseDetailsAside(props) {
101
77
  const [viewAsInternalPref, setViewAsInternalPref] = useState();
102
78
  const [isDefaultBoxChecked, setIsDefaultBoxChecked] = useState(true);
103
79
  const { isExportingPDF } = useContext(PDFContext);
104
- // TODO: When casegroups is deployed on SCT stage, update this logic to properly gate on ownersCaseGroups.data
105
80
  const isWritePermissionforCase = useMemo(() => {
106
- if (isInternal || !groupNumber)
107
- return true;
108
- if (!ownersCaseGroups.data)
109
- return true;
110
- return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber);
111
- }, [groupNumber, ownersCaseGroups.data, isInternal]);
81
+ return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber) || groupNumber === '-1';
82
+ }, [groupNumber, ownersCaseGroups.data]);
112
83
  useEffect(() => {
113
84
  const userPreferredCaseView = () => __awaiter(this, void 0, void 0, function* () {
114
85
  try {
@@ -186,7 +157,7 @@ export function CaseDetailsAside(props) {
186
157
  setIsDefaultBoxChecked(!isDefaultBoxChecked);
187
158
  toggleViewAsCustomerFlag(globalMetadataDispatchContext);
188
159
  };
189
- const isSideBarExpanded = (_j = caseDetailsAsidePanelRef.current) === null || _j === void 0 ? void 0 : _j.expanded;
160
+ const isSideBarExpanded = (_a = caseDetailsAsidePanelRef.current) === null || _a === void 0 ? void 0 : _a.expanded;
190
161
  if (isFetchingCaseDetails || isFetchingCaseDetailsError)
191
162
  return null;
192
163
  const renderCasePrefPopoverText = () => {
@@ -198,7 +169,7 @@ export function CaseDetailsAside(props) {
198
169
  }
199
170
  };
200
171
  // To check if the user is ESS Customer and Product has ESS Support
201
- const isESSCustomer = isSpecialSupportOfferingEnabled((_k = allProducts.data) === null || _k === void 0 ? void 0 : _k.productsResult, selectedProduct);
172
+ const isESSCustomer = isSpecialSupportOfferingEnabled((_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult, selectedProduct);
202
173
  return (React.createElement("aside", { className: `grid-aside ${isSideBarExpanded ? '' : 'sidebar-collapsed'} ` },
203
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' : ''}` },
204
175
  React.createElement("div", { className: "case-detail-collapse-panel" },
@@ -215,7 +186,7 @@ export function CaseDetailsAside(props) {
215
186
  !isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
216
187
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
217
188
  React.createElement(ListIcon, null)), variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn", "aria-label": t('Top recommendations') }))),
218
- !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" },
219
190
  React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
220
191
  React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') }))))))),
221
192
  React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
@@ -242,6 +213,6 @@ export function CaseDetailsAside(props) {
242
213
  React.createElement(ESSRemoteSession, { waitingOnCallback: waitingOnCallback, remoteSessionTermsAcked: acceptedRemoteSessionTerms, caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, readOnly: canReadCase }))),
243
214
  !isESSCustomer && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
244
215
  React.createElement(RemoteSessionAgreement, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, waitingOnCallback: waitingOnCallback, acceptedRemoteSessionTerms: acceptedRemoteSessionTerms && waitingOnCallback, readOnly: canReadCase }))),
245
- !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') } },
246
217
  React.createElement(ActiveCustomerEscalation, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef })))))));
247
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;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA4FpD"}
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,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 { CSS_ACCESS_RESTRICTION_ERROR_DETAIL, CSS_PORTAL_URL, 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
8
  export function CaseDetailsErrorMessage(props) {
9
9
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
@@ -11,13 +11,11 @@ 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');
15
14
  /* There can be two condition for HTTP 403 error
16
15
  1. Account mismatch.
17
16
  2. Invalid case group
18
17
  */
19
18
  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;
21
19
  const getErrorMessage = () => {
22
20
  const { status, message = '' } = errorDetails || {};
23
21
  const customDefaultErrorMessage403 = isCaseGroupError
@@ -25,14 +23,7 @@ export function CaseDetailsErrorMessage(props) {
25
23
  : t('You are not authorized to see this case.');
26
24
  const errorMessage404 = t("Case number doesn't exist");
27
25
  let errorMessage403;
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) {
26
+ if (!canReadCase) {
36
27
  errorMessage403 = customDefaultErrorMessage403;
37
28
  }
38
29
  else if (loggedInUserRights.data.isInternal() &&
@@ -57,10 +48,8 @@ export function CaseDetailsErrorMessage(props) {
57
48
  };
58
49
  return (React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mb-lg", show: true,
59
50
  // Here customizing title of alert based on case group error.
60
- title: errorMessageTitle(errorDetails, Object.assign(Object.assign({}, (isCaseGroupError && {
51
+ title: errorMessageTitle(errorDetails, Object.assign({}, (isCaseGroupError && {
61
52
  '403': { title: invalidCaseGroupErrorTitle },
62
- })), (isCssAccessRestrictionError && {
63
- '403': { title: cssAccessRestrictionErrorTitle },
64
53
  })), canManageCase), isInline: isInlineError },
65
54
  React.createElement(Trans, null, getErrorMessage())));
66
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,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
+ {"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,4 +1,4 @@
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';
@@ -12,42 +12,25 @@ 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';
16
15
  import { PDFContext } from './PDFContainer';
17
16
  import CaseDetailsManagement from './Tabs/CaseDetails/CaseDetailsManagement';
18
17
  import CaseHistory from './Tabs/CaseHistory/CaseHistory';
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
- // );
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'));
29
21
  const CasePrivateNotes = React.lazy(() => import(/* webpackChunkName: 'CasePrivateNotes' */ './Tabs/CasePrivateNotes/CasePrivateNotes'));
30
22
  const CaseDiscussion = React.lazy(() => import(/* webpackChunkName: 'CaseDiscussion' */ './Tabs/CaseDiscussion/CaseDiscussion'));
31
23
  const RMEEscalationList = React.lazy(() => import(/* webpackChunkName: 'RMEEscalationList' */ './Tabs/RMEEscalations/RMEEscalationList'));
32
24
  export function CaseDetailsTabs(props) {
33
25
  const { caseNumber } = props;
34
26
  const { activeTab } = useParams();
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
- });
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);
51
34
  const { t } = useTranslation();
52
35
  const [activeTabKey, setActiveTabKey] = useState(0);
53
36
  const { caseDetailsPageState: { caseEscalations }, } = useCaseDetailsPageStateContext();
@@ -57,13 +40,8 @@ export function CaseDetailsTabs(props) {
57
40
  // resources.CASE_DETAILS,
58
41
  // CaseDetailsFields.CASE_DETAILS_BUGZILLAS
59
42
  // );
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';
43
+ const caseSummaryViewConfig = getConfigField(pcmConfig.data, 'is_case_summary_view_active', PCM_CONFIG_FIELD_TYPE.STRING);
44
+ const isCaseSummaryViewActive = caseSummaryViewConfig === '1';
67
45
  const { isExportingPDF, pdfOption } = useContext(PDFContext);
68
46
  const canSeeRMEs = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_RMES);
69
47
  const [selectedTab, setSelectedTab] = useState(CaseDetailsTabsEnum.DISCUSSION);
@@ -71,18 +49,15 @@ export function CaseDetailsTabs(props) {
71
49
  // const bugZillaTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
72
50
  const managementTabRef = useRef(null);
73
51
  const privateNotesTabRef = useRef(null);
74
- // const actionPlanTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
52
+ const actionPlanTabRef = useRef(null);
75
53
  const escalationTabRef = useRef(null);
76
- // TODO: Uncomment when External Trackers has a functioning GraphQL endpoint
77
- // const relatedTasksRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
54
+ const relatedTasksRef = useRef(null);
78
55
  const caseHistoryTabRef = useRef(null);
79
- // TODO: Re-enable AI Case Summary tab when ready
80
- // const generateAiCaseSummaryTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
56
+ const generateAiCaseSummaryTabRef = useRef(null);
81
57
  const tabsToRender = [];
82
- const handleTabClick = (_event, tabIndex) => {
83
- const index = Number(tabIndex);
84
- setActiveTabKey(index);
85
- setSelectedTab(tabsToRender[index].title);
58
+ const handleTabClick = (event, tabIndex) => {
59
+ setActiveTabKey(tabIndex);
60
+ setSelectedTab(tabsToRender[tabIndex].title);
86
61
  };
87
62
  const isCaseHistoryEnabled = getConfigField(pcmConfig.data, 'isCaseHistoryEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
88
63
  tabsToRender.push({
@@ -91,10 +66,7 @@ export function CaseDetailsTabs(props) {
91
66
  title: CaseDetailsTabsEnum.DISCUSSION,
92
67
  ref: discussionTabRef,
93
68
  routePath: '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 })),
69
+ component: (React.createElement(CaseDiscussion, { caseNumber: caseNumber, tabRef: discussionTabRef, caseComments: comments, caseChats: chats, accountNumber: accountNumber, isDiscussionTab: selectedTab === CaseDetailsTabsEnum.DISCUSSION })),
98
70
  });
99
71
  tabsToRender.push({
100
72
  'data-tracking-id': 'case-details-tab',
@@ -104,26 +76,24 @@ export function CaseDetailsTabs(props) {
104
76
  ref: managementTabRef,
105
77
  component: (React.createElement(CaseDetailsManagement, { caseNumber: caseNumber, routeProps: props.routeProps, tabRef: managementTabRef })),
106
78
  });
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
- // });
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
+ });
127
97
  canSeePrivateNotes &&
128
98
  tabsToRender.push({
129
99
  'data-tracking-id': 'case-details-pvtnotes-tab',
@@ -131,7 +101,7 @@ export function CaseDetailsTabs(props) {
131
101
  ref: privateNotesTabRef,
132
102
  title: CaseDetailsTabsEnum.PRIVATE_NOTES,
133
103
  routePath: 'notes',
134
- component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber, privateNotes: privateNotes }),
104
+ component: React.createElement(CasePrivateNotes, { caseNumber: caseNumber }),
135
105
  });
136
106
  canSeeRMEs &&
137
107
  (caseEscalations.data || []).length > 0 &&
@@ -153,18 +123,17 @@ export function CaseDetailsTabs(props) {
153
123
  ref: caseHistoryTabRef,
154
124
  component: React.createElement(CaseHistory, { caseNumber: caseNumber }),
155
125
  });
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
- // });
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
+ });
168
137
  const getActiveTabKey = () => {
169
138
  if (!activeTab)
170
139
  return activeTabKey;
@@ -176,8 +145,12 @@ export function CaseDetailsTabs(props) {
176
145
  ? false
177
146
  : true;
178
147
  return (React.createElement("div", { className: "case-details-tabs", role: "region", ref: props.tabdRef },
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 },
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 },
180
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")),
181
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,
182
155
  React.createElement("p", null, "Track support case evolution with case history"),
183
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,8 +2,9 @@ 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
10
  }