@rh-support/troubleshoot 2.6.361 → 2.6.363

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +29 -19
  3. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  4. package/lib/esm/components/AccountInfo/OwnerSelector.js +17 -92
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -6
  7. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +32 -61
  9. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/Case.js +33 -60
  11. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -19
  13. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +7 -28
  15. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +57 -88
  17. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +0 -2
  18. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  19. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
  20. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +2 -3
  21. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +11 -24
  23. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  24. package/lib/esm/components/CaseEditView/CaseOverview/index.js +57 -92
  25. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  26. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +109 -203
  27. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -0
  28. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  29. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +5 -5
  30. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +3 -1
  31. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  32. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +9 -5
  33. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  34. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +17 -18
  35. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  36. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +49 -55
  37. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  38. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +46 -53
  39. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  40. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -6
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +46 -52
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +17 -63
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +2 -0
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +3 -4
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +56 -131
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +6 -11
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts.map +1 -1
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.js +1 -3
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +71 -111
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  60. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +10 -17
  61. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts.map +1 -1
  62. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +2 -4
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +25 -0
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +1 -0
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +102 -0
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +26 -42
  68. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +4 -2
  69. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  70. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +148 -152
  71. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +2 -10
  72. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  73. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +146 -252
  74. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  75. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +9 -22
  76. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  77. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +2 -9
  78. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  79. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +1 -8
  80. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +2 -2
  81. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  82. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +7 -18
  83. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +3 -9
  84. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  85. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +271 -215
  86. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  87. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +4 -6
  88. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  89. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +2 -7
  90. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
  91. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +3 -36
  92. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  93. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +230 -62
  94. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +5 -4
  95. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  96. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +8 -24
  97. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  98. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +2 -8
  99. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  100. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +52 -38
  101. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  102. package/lib/esm/components/CaseInformation/CaseGroup.js +62 -173
  103. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  104. package/lib/esm/components/CaseInformation/CaseInformation.js +9 -10
  105. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  106. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +31 -108
  107. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
  108. package/lib/esm/components/CaseInformation/Description.js +1 -1
  109. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  110. package/lib/esm/components/CaseInformation/FileDiag.js +5 -2
  111. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  112. package/lib/esm/components/CaseInformation/Fts.js +19 -33
  113. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  114. package/lib/esm/components/CaseInformation/Severity.js +24 -33
  115. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  116. package/lib/esm/components/CaseInformation/SupportLevel.js +55 -36
  117. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  118. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +8 -2
  119. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  120. package/lib/esm/components/CaseManagement/CaseManagement.js +10 -13
  121. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  122. package/lib/esm/components/CaseManagement/Cep.js +10 -12
  123. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -2
  124. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  125. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -20
  126. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  127. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
  128. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -0
  129. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  130. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +32 -19
  131. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  132. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +2 -4
  133. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  134. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +2 -4
  135. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  136. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +40 -34
  137. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  138. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +4 -8
  139. package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
  140. package/lib/esm/components/EditDescription/EditDescription.js +2 -4
  141. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  142. package/lib/esm/components/IdeaInformation/IdeaInformation.js +17 -23
  143. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  144. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +2 -4
  145. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
  146. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  147. package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
  148. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  149. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
  150. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  151. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +50 -37
  152. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  153. package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
  154. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  155. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +1 -9
  156. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  157. package/lib/esm/components/Recommendations/AsideResults.js +3 -4
  158. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  159. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +4 -1
  160. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  161. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  162. package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
  163. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  164. package/lib/esm/components/Recommendations/Recommendations.js +9 -3
  165. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  166. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +8 -10
  167. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  168. package/lib/esm/components/Review/Review.js +19 -25
  169. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  170. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
  171. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  172. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
  173. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -2
  174. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  175. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +93 -141
  176. package/lib/esm/components/shared/Constants.d.ts +0 -5
  177. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  178. package/lib/esm/components/shared/Constants.js +0 -5
  179. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  180. package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
  181. package/lib/esm/components/shared/fileUpload/FileUpload.js +3 -2
  182. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  183. package/lib/esm/components/shared/fileUpload/FileUploader.js +1 -3
  184. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +0 -1
  185. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  186. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -4
  187. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
  188. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  189. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +5 -22
  190. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  191. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +59 -307
  192. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +1 -5
  193. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  194. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +1 -36
  195. package/lib/esm/components/shared/fileUpload/types/index.d.ts +1 -5
  196. package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
  197. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
  198. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  199. package/lib/esm/components/shared/fileUpload/useFileUploader.js +47 -119
  200. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  201. package/lib/esm/components/shared/useIsSectionValid.js +57 -22
  202. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  203. package/lib/esm/components/shared/usePostComment.js +28 -16
  204. package/lib/esm/components/shared/utils.d.ts +0 -1
  205. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  206. package/lib/esm/components/shared/utils.js +3 -9
  207. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  208. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +38 -178
  209. package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
  210. package/lib/esm/components/wizardLayout/MainSection.js +1 -2
  211. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  212. package/lib/esm/components/wizardLayout/WizardAside.js +4 -2
  213. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  214. package/lib/esm/components/wizardLayout/WizardLayout.js +13 -12
  215. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  216. package/lib/esm/components/wizardLayout/WizardMain.js +0 -7
  217. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  218. package/lib/esm/components/wizardLayout/WizardNavigation.js +11 -14
  219. package/lib/esm/constants/caseDetailsConstants.d.ts +0 -5
  220. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  221. package/lib/esm/constants/caseDetailsConstants.js +0 -5
  222. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  223. package/lib/esm/css/app.css +0 -28
  224. package/lib/esm/css/case.css +212 -209
  225. package/lib/esm/hooks/useAB.d.ts.map +1 -1
  226. package/lib/esm/hooks/useAB.js +23 -45
  227. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -9
  228. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  229. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +11 -108
  230. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  231. package/lib/esm/hooks/useResetCaseCreate.js +11 -18
  232. package/lib/esm/hooks/useS3Upload.d.ts +4 -5
  233. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  234. package/lib/esm/hooks/useS3Upload.js +30 -28
  235. package/lib/esm/i18n/template-de.d.ts +2 -2
  236. package/lib/esm/i18n/template-de.js +2 -2
  237. package/lib/esm/i18n/template-es.d.ts +2 -2
  238. package/lib/esm/i18n/template-es.js +2 -2
  239. package/lib/esm/i18n/template-fr.d.ts +2 -2
  240. package/lib/esm/i18n/template-fr.js +2 -2
  241. package/lib/esm/i18n/template-it.d.ts +2 -2
  242. package/lib/esm/i18n/template-it.js +2 -2
  243. package/lib/esm/i18n/template-jp.d.ts +2 -2
  244. package/lib/esm/i18n/template-jp.js +2 -2
  245. package/lib/esm/i18n/template-ko.d.ts +2 -2
  246. package/lib/esm/i18n/template-ko.js +2 -2
  247. package/lib/esm/i18n/template-pt.d.ts +2 -2
  248. package/lib/esm/i18n/template-pt.js +2 -2
  249. package/lib/esm/i18n/template-ru.d.ts +2 -2
  250. package/lib/esm/i18n/template-ru.js +2 -2
  251. package/lib/esm/i18n/template-zh.d.ts +2 -2
  252. package/lib/esm/i18n/template-zh.js +2 -2
  253. package/lib/esm/index.js +0 -1
  254. package/lib/esm/models/cache.d.ts +2 -0
  255. package/lib/esm/models/cache.d.ts.map +1 -1
  256. package/lib/esm/reducers/CaseConstNTypes.d.ts +9 -123
  257. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  258. package/lib/esm/reducers/CaseConstNTypes.js +7 -31
  259. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -7
  260. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  261. package/lib/esm/reducers/CaseDetailsPageReducer.js +26 -58
  262. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +12 -12
  263. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  264. package/lib/esm/reducers/CaseDiscussionTabReducer.js +73 -88
  265. package/lib/esm/reducers/CaseHelpers.d.ts +1 -11
  266. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  267. package/lib/esm/reducers/CaseHelpers.js +17 -119
  268. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
  269. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  270. package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
  271. package/lib/esm/reducers/CaseReducer.d.ts +11 -56
  272. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  273. package/lib/esm/reducers/CaseReducer.js +100 -284
  274. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  275. package/lib/esm/reducers/RecommendationsReducer.js +18 -15
  276. package/lib/esm/scss/_main.scss +0 -9
  277. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +2 -1
  278. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  279. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  280. package/package.json +8 -10
  281. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +0 -8
  282. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +0 -1
  283. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +0 -18
  284. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +0 -10
  285. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +0 -1
  286. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +0 -31
  287. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +0 -29
  288. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +0 -1
  289. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +0 -29
  290. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +0 -17
  291. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +0 -1
  292. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +0 -62
  293. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +0 -3
  294. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +0 -1
  295. package/lib/esm/components/CaseInformation/CaseLabels.js +0 -108
  296. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +0 -4
  297. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +0 -1
  298. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +0 -141
  299. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +0 -3
  300. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +0 -1
  301. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +0 -9
  302. package/lib/esm/graphql/index.d.ts +0 -4
  303. package/lib/esm/graphql/index.d.ts.map +0 -1
  304. package/lib/esm/graphql/index.js +0 -3
  305. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +0 -2
  306. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +0 -1
  307. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +0 -24
  308. package/lib/esm/graphql/mutations/index.d.ts +0 -2
  309. package/lib/esm/graphql/mutations/index.d.ts.map +0 -1
  310. package/lib/esm/graphql/mutations/index.js +0 -1
  311. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +0 -2
  312. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +0 -1
  313. package/lib/esm/graphql/queries/getEscalationDetails.js +0 -36
  314. package/lib/esm/graphql/queries/index.d.ts +0 -2
  315. package/lib/esm/graphql/queries/index.d.ts.map +0 -1
  316. package/lib/esm/graphql/queries/index.js +0 -1
  317. package/lib/esm/graphql/schemas/escalation.d.ts +0 -66
  318. package/lib/esm/graphql/schemas/escalation.d.ts.map +0 -1
  319. package/lib/esm/graphql/schemas/escalation.js +0 -1
  320. package/lib/esm/graphql/schemas/index.d.ts +0 -2
  321. package/lib/esm/graphql/schemas/index.d.ts.map +0 -1
  322. package/lib/esm/graphql/schemas/index.js +0 -1
  323. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +0 -4
  324. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +0 -1
  325. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +0 -57
  326. package/lib/esm/hooks/useCaseComments/index.d.ts +0 -8
  327. package/lib/esm/hooks/useCaseComments/index.d.ts.map +0 -1
  328. package/lib/esm/hooks/useCaseComments/index.js +0 -5
  329. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +0 -25
  330. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +0 -1
  331. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +0 -75
  332. package/lib/esm/hooks/useCaseComments/types.d.ts +0 -93
  333. package/lib/esm/hooks/useCaseComments/types.d.ts.map +0 -1
  334. package/lib/esm/hooks/useCaseComments/types.js +0 -1
  335. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +0 -26
  336. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +0 -1
  337. package/lib/esm/hooks/useCaseComments/useCaseComments.js +0 -113
  338. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +0 -19
  339. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +0 -1
  340. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +0 -33
  341. package/lib/esm/hooks/useCaseGroupUiState.d.ts +0 -3
  342. package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +0 -1
  343. package/lib/esm/hooks/useCaseGroupUiState.js +0 -10
  344. package/lib/esm/hooks/useCaseHistory.d.ts +0 -26
  345. package/lib/esm/hooks/useCaseHistory.d.ts.map +0 -1
  346. package/lib/esm/hooks/useCaseHistory.js +0 -107
  347. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +0 -23
  348. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +0 -1
  349. package/lib/esm/hooks/useCaseLabelLinkMutations.js +0 -84
  350. package/lib/esm/models/caseHistory.d.ts +0 -86
  351. package/lib/esm/models/caseHistory.d.ts.map +0 -1
  352. package/lib/esm/models/caseHistory.js +0 -1
  353. package/lib/esm/utils/TimelineUtils.d.ts +0 -41
  354. package/lib/esm/utils/TimelineUtils.d.ts.map +0 -1
  355. package/lib/esm/utils/TimelineUtils.js +0 -135
  356. package/lib/esm/utils/caseHistoryUtils.d.ts +0 -85
  357. package/lib/esm/utils/caseHistoryUtils.d.ts.map +0 -1
  358. package/lib/esm/utils/caseHistoryUtils.js +0 -196
  359. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +0 -6
  360. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +0 -1
  361. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +0 -26
  362. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts +0 -8
  363. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts.map +0 -1
  364. package/lib/esm/utils/linkifyHtmlTextNodes.js +0 -37
@@ -7,10 +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
+ import { escalations, publicApi } from '@cee-eng/hydrajs';
11
11
  import { Button, ButtonVariant, Flex, FlexItem } from '@patternfly/react-core';
12
- import { LoadingIndicator, PFTable, TableComponent, ToastNotification } from '@rh-support/components';
13
- import { useGlobalStateContext } from '@rh-support/react-context';
12
+ import { LoadingIndicator, PFTable, TableComponent, ToastNotification, useFetch, } from '@rh-support/components';
14
13
  import { ability, resourceActions, resources } from '@rh-support/user-permissions';
15
14
  import { formatDate, sendToSentry } from '@rh-support/utils';
16
15
  import find from 'lodash/find';
@@ -19,10 +18,11 @@ import isEqual from 'lodash/isEqual';
19
18
  import React, { useEffect, useRef, useState } from 'react';
20
19
  import { Trans, useTranslation } from 'react-i18next';
21
20
  import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
22
- import { useCaseDetailsPageDispatchContext } from '../../../../context/CaseDetailsPageContext';
23
- import { GET_CASE_COMMENTS, useCreateCaseComment } from '../../../../hooks/useCaseComments';
21
+ import { useCaseDetailsPageDispatchContext, useCaseDetailsPageStateContext, } from '../../../../context/CaseDetailsPageContext';
22
+ import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../../../context/CaseDiscussionTabContext';
24
23
  import { escalationStatus } from '../../../../models/escalation';
25
24
  import { fetchCaseEscalations } from '../../../../reducers/CaseDetailsPageReducer';
25
+ import { updateDiscussionStateComments } from '../../../../reducers/CaseDiscussionTabReducer';
26
26
  import { checkForCaseStatusToggleOnAttachOrComment } from '../../../../reducers/CaseReducer';
27
27
  const ESCALATION_MSG = 'Request Management Escalation:';
28
28
  const UPDATE_ESCALATION_MSG = 'Escalation update requested. You will receive an update from a manager shortly.';
@@ -30,20 +30,20 @@ const REOPEN_ESCALATION_MSG = 'Escalation reopened. A manager will review your r
30
30
  const CLOSURE_ESCALATION_MSG = 'Escalation closed.';
31
31
  export default function RMEEscalationList(props) {
32
32
  const { t } = useTranslation();
33
- const apolloClient = useApolloClient();
34
- const { globalMetadataState: { loggedInUsersAccount }, } = useGlobalStateContext();
35
- // TODO: migrate escalation update from Hydra to GraphQL
36
- // const { request: updateEscalationRequest, isFetching: isUpdatingEscalation } = useFetch(
37
- // escalations.updateEscalations,
38
- // { propgateErrors: true }
39
- // );
40
- const { createComment, loading: isPostingComment } = useCreateCaseComment();
41
- const caseSalesforceId = useCaseSelector((state) => state.caseDetails.id, isEqual);
42
- const existingCaseDetails = useCaseSelector((state) => state.caseDetails, isEqual);
33
+ const { request: updateEscalationRequest, isFetching: isUpdatingEscalation } = useFetch(escalations.updateEscalations, { propgateErrors: true });
34
+ const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
35
+ propgateErrors: true,
36
+ });
37
+ const { request: updateCaseRequest, isFetching: isUpdatingCase } = useFetch(publicApi.kase.updateCase, {
38
+ propgateErrors: true,
39
+ });
40
+ const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
41
+ const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
42
+ const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
43
43
  const caseDetailsPageDispatch = useCaseDetailsPageDispatchContext();
44
44
  const escalationUpdateInProgessIds = useRef([]);
45
45
  const caseDispatch = useCaseDispatch();
46
- const isUpdating = isPostingComment;
46
+ const isUpdating = isUpdatingEscalation || isPostingComment || isUpdatingCase;
47
47
  const [escalationList, setEscalationList] = useState([]);
48
48
  const cannUpdateRME = ability.can(resourceActions.UPDATE, resources.RME_ESCALATION);
49
49
  const { customerEscalation } = useCaseSelector((state) => ({
@@ -54,48 +54,62 @@ export default function RMEEscalationList(props) {
54
54
  // called everytime we are updating the escalation
55
55
  setEscalationList([...props.escalations]);
56
56
  }, [isUpdating, props.escalations]);
57
- // TODO: migrate updateEscalation from Hydra (escalations.updateEscalations) to GraphQL
58
- // const updateEscalation = async (escalationName: string, text: string, options: Partial<IEscalationUpdate>) => {
59
- // ...
60
- // };
61
- const submitEscalationComment = (escalationName, comment, message) => __awaiter(this, void 0, void 0, function* () {
62
- var _a;
57
+ const updateEscalation = (escalationName, text, options) => __awaiter(this, void 0, void 0, function* () {
58
+ const updateRequest = Object.assign({ escalationName, isPrivate: false, text, isRequestForUpdate: false, isRequestForReOpen: false, isRequestForClosure: false, status: escalationStatus.requestUpdate }, options);
63
59
  escalationUpdateInProgessIds.current.push(escalationName);
60
+ return yield updateEscalationRequest(escalationName, updateRequest);
61
+ });
62
+ const submitEscalationComment = (escalationNum, comment, message) => __awaiter(this, void 0, void 0, function* () {
64
63
  try {
65
- fetchCaseEscalations(caseDetailsPageDispatch, caseSalesforceId, apolloClient, false, Boolean((_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport));
66
- yield createComment({
67
- caseId: caseSalesforceId,
68
- body: comment,
69
- isPublic: true,
70
- });
71
- apolloClient.refetchQueries({ include: [GET_CASE_COMMENTS] });
72
- // TODO: migrate updateCaseRequest(props.caseNumber, { customerEscalation: true }) to GraphQL
73
- yield checkForCaseStatusToggleOnAttachOrComment(caseDispatch, props.isInternal, props.caseStatus, {
74
- apolloClient,
64
+ escalationNum &&
65
+ fetchCaseEscalations(caseDetailsPageDispatch, props.caseNumber, props.accountNumber, false);
66
+ yield postCommentRequest({
75
67
  caseNumber: props.caseNumber,
76
- existingCaseDetails,
68
+ commentBody: comment,
69
+ contentType: 'plaintext',
77
70
  });
78
- ToastNotification.addSuccessMessage(message);
71
+ updateDiscussionStateComments(dispatchDiscussion, caseDispatch, props.caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
72
+ yield updateCaseRequest(props.caseNumber, { customerEscalation: true });
73
+ checkForCaseStatusToggleOnAttachOrComment(caseDispatch, props.isInternal, props.caseStatus);
74
+ escalationNum && ToastNotification.addSuccessMessage(message);
79
75
  }
80
76
  catch (e) {
81
77
  ToastNotification.addDangerMessage(e);
82
78
  sendToSentry(e, {}, 'RME form submit error');
83
79
  }
84
80
  finally {
85
- escalationUpdateInProgessIds.current = escalationUpdateInProgessIds.current.filter((item) => item !== escalationName);
81
+ escalationUpdateInProgessIds.current = escalationUpdateInProgessIds.current.filter((item) => item !== escalationNum);
86
82
  }
87
83
  });
88
84
  const requestUpdateRMEEscalation = (escalationName) => __awaiter(this, void 0, void 0, function* () {
89
85
  const comment = `${ESCALATION_MSG}\n ${UPDATE_ESCALATION_MSG}`;
90
- yield submitEscalationComment(escalationName, comment, UPDATE_ESCALATION_MSG);
86
+ try {
87
+ const updatedInfo = yield updateEscalation(escalationName, comment, { isRequestForUpdate: true });
88
+ updatedInfo && submitEscalationComment(updatedInfo.escalationName, comment, UPDATE_ESCALATION_MSG);
89
+ }
90
+ catch (e) {
91
+ ToastNotification.addDangerMessage(e);
92
+ }
91
93
  });
92
94
  const requestClosureRMEEscalation = (escalationName) => __awaiter(this, void 0, void 0, function* () {
93
95
  const comment = `${ESCALATION_MSG}\n ${CLOSURE_ESCALATION_MSG}`;
94
- yield submitEscalationComment(escalationName, comment, CLOSURE_ESCALATION_MSG);
96
+ try {
97
+ const updatedInfo = yield updateEscalation(escalationName, comment, { isRequestForClosure: true });
98
+ updatedInfo && submitEscalationComment(updatedInfo.escalationName, comment, CLOSURE_ESCALATION_MSG);
99
+ }
100
+ catch (e) {
101
+ ToastNotification.addDangerMessage(e);
102
+ }
95
103
  });
96
104
  const requestReOpenRMEEscalation = (escalationName) => __awaiter(this, void 0, void 0, function* () {
97
105
  const comment = `${ESCALATION_MSG}\n ${REOPEN_ESCALATION_MSG}`;
98
- yield submitEscalationComment(escalationName, comment, REOPEN_ESCALATION_MSG);
106
+ try {
107
+ const updatedInfo = yield updateEscalation(escalationName, comment, { isRequestForReOpen: true });
108
+ updatedInfo && submitEscalationComment(updatedInfo.escalationName, comment, REOPEN_ESCALATION_MSG);
109
+ }
110
+ catch (e) {
111
+ ToastNotification.addDangerMessage(e);
112
+ }
99
113
  });
100
114
  const renderActionButtons = (escalation) => {
101
115
  if (isUpdating && escalationUpdateInProgessIds.current.includes(escalation.name)) {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAmB5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,qBAwf/B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAiB5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,qBAqW/B;AAED,eAAe,SAAS,CAAC"}
@@ -7,23 +7,20 @@ 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
- import { Button, HelperText, HelperTextItem, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, ValidatedOptions, } from '@patternfly/react-core';
10
+ import { Button, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
12
11
  import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
13
12
  import { ToastNotification, useSelectKeyboardNavigator, ValueChangedIcon } from '@rh-support/components';
14
13
  import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
15
- import { AbilityContext, resourceActions, resources } from '@rh-support/user-permissions';
14
+ import { toOption } from '@rh-support/utils';
16
15
  import find from 'lodash/find';
17
16
  import isEmpty from 'lodash/isEmpty';
18
17
  import isEqual from 'lodash/isEqual';
19
18
  import React, { useContext, useEffect, useRef, useState } from 'react';
20
19
  import { Trans, useTranslation } from 'react-i18next';
21
- import { Link } from 'react-router-dom';
22
20
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
23
21
  import { RouteContext } from '../../context/RouteContext';
24
- import { useCaseGroupUiState } from '../../hooks/useCaseGroupUiState';
25
22
  import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
26
- import { fetchCaseGroupsForContactGraphQL, setCaseDetails, setCaseState, setSelectedCaseGroupUsers, updateCaseDetailsGraphQL, } from '../../reducers/CaseReducer';
23
+ import { fetchCaseGroupsForAccount, fetchCaseGroupsForSSO, setCaseDetails, setSelectedCaseGroupUsers, updateCaseDetails, } from '../../reducers/CaseReducer';
27
24
  import { PDFContext } from '../CaseEditView/PDFContainer';
28
25
  import { CaseValuesToWatch } from '../shared/Constants';
29
26
  import { getChangedValueTooltip } from '../shared/utils';
@@ -38,41 +35,20 @@ const emptyCaseGroup = {
38
35
  function CaseGroup(props) {
39
36
  const { t } = useTranslation();
40
37
  const caseUpdateError = useCaseUpdateErrorMessage();
41
- const { groupNumber, caseNumber, caseId, accountNumber, ownersCaseGroups, groupName, isCaseOwnerUpdating, contactSSOName, selectedOwnerContactId, selectedOwnerIsOrgAdmin, pendingCaseOwnerUpdate, existingCaseDetails, } = useCaseSelector((state) => {
42
- var _a, _b, _c, _d, _e;
43
- return ({
44
- caseNumber: state.caseDetails.caseNumber,
45
- caseId: state.caseDetails.id,
46
- groupNumber: state.caseDetails.groupNumber,
47
- accountNumber: state.caseDetails.accountNumberRef,
48
- ownersCaseGroups: state.ownersCaseGroups,
49
- groupName: state.caseDetails.groupName,
50
- isCaseOwnerUpdating: state.isCaseOwnerUpdating,
51
- contactSSOName: state.caseDetails.contactSSOName,
52
- selectedOwnerContactId: (_b = (_a = state.selectedOwner) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id,
53
- selectedOwnerIsOrgAdmin: (_e = (_d = (_c = state.selectedOwner) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.isOrgAdmin) !== null && _e !== void 0 ? _e : false,
54
- pendingCaseOwnerUpdate: state.pendingCaseOwnerUpdate,
55
- existingCaseDetails: state.caseDetails,
56
- });
57
- }, isEqual);
38
+ const { groupNumber, caseNumber, accountNumber, selectedAccountDetails, ownersCaseGroups, groupName, isCaseOwnerUpdating, contactSSOName, } = useCaseSelector((state) => ({
39
+ caseNumber: state.caseDetails.caseNumber,
40
+ groupNumber: state.caseDetails.groupNumber,
41
+ accountNumber: state.caseDetails.accountNumberRef,
42
+ ownersCaseGroups: state.ownersCaseGroups,
43
+ selectedAccountDetails: state.selectedAccountDetails,
44
+ groupName: state.caseDetails.groupName,
45
+ isCaseOwnerUpdating: state.isCaseOwnerUpdating,
46
+ contactSSOName: state.caseDetails.contactSSOName,
47
+ }), isEqual);
58
48
  const caseDispatch = useCaseDispatch();
59
- const apolloClient = useApolloClient();
60
49
  const { isExportingPDF } = useContext(PDFContext);
61
50
  const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
62
- const { isGroupMandatory, shouldHideSelector, isNoGroupsBlockedState } = useCaseGroupUiState();
63
- useEffect(() => {
64
- if (!shouldHideSelector || !isEmpty(caseNumber))
65
- return;
66
- setCaseDetails(caseDispatch, { groupNumber: '', groupName: '' });
67
- }, [shouldHideSelector, caseNumber, caseDispatch]);
68
- useEffect(() => {
69
- if (!caseNumber)
70
- return;
71
- if (isEmpty(selectedOwnerContactId) || isEmpty(accountNumber))
72
- return;
73
- fetchCaseGroupsForContactGraphQL(caseDispatch, apolloClient, selectedOwnerContactId, accountNumber, null, selectedOwnerIsOrgAdmin, groupNumber !== null && groupNumber !== void 0 ? groupNumber : '');
74
- // eslint-disable-next-line react-hooks/exhaustive-deps
75
- }, [selectedOwnerContactId, accountNumber, selectedOwnerIsOrgAdmin]);
51
+ const isGroupMandatory = selectedAccountDetails.data.requireCGroupOnCreate;
76
52
  const [selectedCaseGroup, setSelectedCaseGroup] = useState(isGroupMandatory ? undefined : emptyCaseGroup);
77
53
  const [isCaseGroupInvalid, setCaseGroupInvalid] = useState(false);
78
54
  const [isSelectedUngroupedInvalid, setIsSelectedUngroupedInvalid] = useState(false);
@@ -83,10 +59,7 @@ function CaseGroup(props) {
83
59
  const [shouldFilter, setShouldFilter] = useState(false);
84
60
  const textInputRef = useRef();
85
61
  const canEditCase = useCanEditCase();
86
- const ability = useContext(AbilityContext);
87
62
  const { globalMetadataState: { loggedInUserRights, loggedInUser }, } = useContext(GlobalMetadataStateContext);
88
- const canViewManageTab = ability.can(resourceActions.READ, resources.MANAGE);
89
- const canViewCaseGroups = ability.can(resourceActions.READ, resources.CASE_GROUPS) && canViewManageTab;
90
63
  // value changed logic to show a non local group change
91
64
  const [localGroupChange, setLocalGroupChange] = useState(false);
92
65
  const afterGroupLocalChange = () => setLocalGroupChange(false);
@@ -97,29 +70,22 @@ function CaseGroup(props) {
97
70
  return isInValidGroup;
98
71
  };
99
72
  const onCaseGroupUpdate = (caseDetails) => __awaiter(this, void 0, void 0, function* () {
100
- var _a;
101
73
  if (canEditCase.alert())
102
74
  return;
103
75
  setCaseGroupUpdating(true);
104
76
  try {
105
- const pendingOwnerUpdate = pendingCaseOwnerUpdate;
106
- const updatePayload = pendingOwnerUpdate
107
- ? Object.assign({ contactId: pendingOwnerUpdate.contactId, contactSSOName: pendingOwnerUpdate.contactSSOName, groupNumber: caseDetails.groupNumber }, ((_a = pendingOwnerUpdate.phoneCaseUpdate) !== null && _a !== void 0 ? _a : {})) : { groupNumber: caseDetails.groupNumber };
108
- yield updateCaseDetailsGraphQL(caseDispatch, apolloClient, caseNumber, updatePayload, false, pendingOwnerUpdate ? { existingCaseDetails } : { salesforceCaseId: caseId });
109
- if (pendingOwnerUpdate) {
110
- setCaseState(caseDispatch, { pendingCaseOwnerUpdate: null });
111
- setSelectedCaseGroupUsers(caseDispatch, accountNumber, caseDetails.groupNumber, loggedInUserRights.data);
112
- }
113
- ToastNotification.addSuccessMessage(t(`Group has been successfully updated`));
77
+ yield updateCaseDetails(caseDispatch, caseNumber, caseDetails);
114
78
  setCaseGroupUpdating(false);
79
+ setSelectedCaseGroupUsers(caseDispatch, accountNumber, caseDetails.groupNumber, loggedInUserRights.data);
80
+ ToastNotification.addSuccessMessage(t(`Group has been successfully updated`));
115
81
  }
116
82
  catch (e) {
117
83
  setCaseGroupUpdating(false);
118
- caseUpdateError.showFieldError(e, t('Group'), () => onCaseGroupUpdate(caseDetails));
84
+ caseUpdateError.showError(e, t(`Group failed to update`));
119
85
  }
120
86
  });
121
87
  const onCaseGroupChange = (selection) => __awaiter(this, void 0, void 0, function* () {
122
- if (!isInvalidateCaseGroup(selection) && (selection.groupNum !== groupNumber || !selected)) {
88
+ if (!isInvalidateCaseGroup(selection) && selection.groupNum !== groupNumber) {
123
89
  const caseDetails = {
124
90
  groupNumber: selection.groupNum,
125
91
  groupName: selection.name || '',
@@ -127,7 +93,7 @@ function CaseGroup(props) {
127
93
  setIsOpen(false);
128
94
  if (!isEmpty(caseNumber)) {
129
95
  yield onCaseGroupUpdate(caseDetails);
130
- setIsSelectedUngroupedInvalid(isGroupMandatory && !selection.groupNum);
96
+ setIsSelectedUngroupedInvalid(isGroupMandatory && (!selection.groupNum || selection.groupNum === '-1'));
131
97
  }
132
98
  else {
133
99
  setCaseDetails(caseDispatch, caseDetails);
@@ -154,7 +120,10 @@ function CaseGroup(props) {
154
120
  ? list.filter((v) => v.name.toLowerCase().includes(inputValue === null || inputValue === void 0 ? void 0 : inputValue.toLowerCase()))
155
121
  : list;
156
122
  if (isGroupMandatory) {
157
- return options.filter((g) => !!g.groupNum);
123
+ // having group selected for case is mandatory, make 'UnGrouped Case' option disabled
124
+ const listItems = options.map((item) => (Object.assign(Object.assign({}, item), { disabled: item.groupNum === '-1' })));
125
+ // As group is mandatory, 'UnGrouped Case' cannot be selected we filter it out
126
+ return listItems.filter((g) => g.groupNum !== '-1');
158
127
  }
159
128
  else
160
129
  return options;
@@ -165,11 +134,11 @@ function CaseGroup(props) {
165
134
  useEffect(() => {
166
135
  var _a, _b;
167
136
  // case group may change outside of PCM. On group load check if we have a valid group
168
- setIsSelectedUngroupedInvalid(isGroupMandatory && !groupNumber);
137
+ setIsSelectedUngroupedInvalid(isGroupMandatory && (!groupNumber || groupNumber === '-1'));
169
138
  if (groupNumber === undefined)
170
139
  return;
171
140
  if (((_b = (_a = ownersCaseGroups === null || ownersCaseGroups === void 0 ? void 0 : ownersCaseGroups.data) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) === 0) {
172
- if (groupNumber && groupName && caseNumber) {
141
+ if (groupNumber !== '-1' && groupName && caseNumber) {
173
142
  setSelectedCaseGroup({
174
143
  name: groupName,
175
144
  groupNum: groupNumber,
@@ -181,16 +150,11 @@ function CaseGroup(props) {
181
150
  setInputValue(groupName);
182
151
  setSelected(groupName);
183
152
  }
184
- else if (!groupNumber) {
185
- setSelectedCaseGroup(isGroupMandatory ? undefined : emptyCaseGroup);
186
- setInputValue('');
187
- setSelected('');
188
- }
189
153
  return;
190
154
  }
191
155
  const selectedGroup = find(ownersCaseGroups.data, (g) => g.groupNum === groupNumber);
192
156
  if (selectedGroup && selectedGroup.groupNum) {
193
- if (isGroupMandatory && !selectedGroup.groupNum) {
157
+ if (isGroupMandatory && selectedGroup.groupNum === '-1') {
194
158
  setCaseGroupInvalid(true);
195
159
  }
196
160
  else {
@@ -199,121 +163,46 @@ function CaseGroup(props) {
199
163
  setInputValue(selectedGroup.name);
200
164
  setSelected(selectedGroup.name);
201
165
  }
202
- else if (groupNumber && groupName) {
203
- setSelectedCaseGroup({
204
- name: groupName,
205
- groupNum: groupNumber,
206
- defaultMembers: [],
207
- isDefault: false,
208
- isPrivate: false,
209
- members: [],
210
- });
211
- setInputValue(groupName);
212
- setSelected(groupName);
213
- }
214
- else if (!groupNumber) {
215
- setSelectedCaseGroup(isGroupMandatory ? undefined : emptyCaseGroup);
216
- setInputValue('');
217
- setSelected('');
218
- setCaseGroupInvalid(!!isGroupMandatory);
219
- }
220
166
  else {
221
167
  setCaseGroupInvalid(true);
222
168
  }
223
169
  // eslint-disable-next-line react-hooks/exhaustive-deps
224
- }, [ownersCaseGroups, caseNumber, isGroupMandatory, groupNumber, groupName]);
225
- const onCaseGroupClear = () => __awaiter(this, void 0, void 0, function* () {
226
- if (canEditCase.alert())
227
- return;
228
- if (isGroupMandatory && caseNumber) {
229
- ToastNotification.addDangerMessage(t('Case Group is required for this account and cannot be removed.'));
170
+ }, [ownersCaseGroups, caseNumber, isGroupMandatory]);
171
+ useEffect(() => {
172
+ // On case edit, groups are loaded via fetchCaseDetails/setCaseOwner and OwnerSelector.
173
+ if (caseNumber)
230
174
  return;
231
- }
232
- const caseDetails = {
233
- groupNumber: '',
234
- groupName: '',
235
- };
236
- if (caseNumber) {
237
- setCaseGroupUpdating(true);
238
- try {
239
- yield updateCaseDetailsGraphQL(caseDispatch, apolloClient, caseNumber, { groupNumber: '' }, false, {
240
- salesforceCaseId: caseId,
241
- });
242
- setCaseDetails(caseDispatch, caseDetails);
243
- setCaseGroupUpdating(false);
244
- ToastNotification.addSuccessMessage(t(`Group has been successfully updated`));
245
- }
246
- catch (e) {
247
- setCaseGroupUpdating(false);
248
- caseUpdateError.showFieldError(e, t('Group'), onCaseGroupClear);
249
- return;
175
+ if (loggedInUserRights.data.isInternal()) {
176
+ if (accountNumber) {
177
+ fetchCaseGroupsForAccount(caseDispatch, accountNumber);
250
178
  }
251
179
  }
252
- else {
253
- setCaseDetails(caseDispatch, caseDetails);
254
- setSelectedCaseGroupUsers(caseDispatch, accountNumber, '', loggedInUserRights.data);
180
+ else if (contactSSOName) {
181
+ fetchCaseGroupsForSSO(caseDispatch, contactSSOName);
255
182
  }
256
- setSelectedCaseGroup(emptyCaseGroup);
257
- setCaseGroupInvalid(!!isGroupMandatory);
258
- setInputValue('');
259
- setSelected('');
260
- setIsOpen(false);
261
- });
262
- const caseGroupRequiredErrorMessage = caseNumber
263
- ? t('Please select a Case Group to update the case')
264
- : t('Please select a Case Group to create the case');
265
- const renderNoGroupsBlockedMessage = () => {
183
+ }, [accountNumber, caseDispatch, caseNumber, contactSSOName, loggedInUserRights.data]);
184
+ const onCaseGroupClear = () => __awaiter(this, void 0, void 0, function* () {
266
185
  var _a;
267
- if (canViewCaseGroups) {
268
- return (React.createElement("span", { className: "case-group-field-helper__text" },
269
- t('Groups are enabled for your account, but none have been set up yet. Please '),
270
- React.createElement(Link, { className: "case-group-field-helper__create-link", to: "/manage/groups" }, t('create a group')),
271
- caseNumber ? t(' before you update a case.') : t(' before you create a case.')));
272
- }
273
- if ((_a = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.data) === null || _a === void 0 ? void 0 : _a.isOrgAdmin) {
274
- return t('Groups are enabled for your account, but no groups have been set up yet.');
186
+ try {
187
+ yield onCaseGroupChange(toOption(emptyCaseGroup));
188
+ setSelectedCaseGroup(emptyCaseGroup);
189
+ setInputValue('');
190
+ setSelected('');
191
+ (_a = textInputRef === null || textInputRef === void 0 ? void 0 : textInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
192
+ setIsOpen(false);
275
193
  }
276
- return caseNumber
277
- ? t('Groups are enabled for your account, but none exist yet. Please contact your org admin to set one up before you update a case.')
278
- : t('Groups are enabled for your account, but none exist yet. Please contact your org admin to set one up before you create a case.');
279
- };
280
- const groupFieldErrorMessage = isNoGroupsBlockedState ? null : caseGroupRequiredErrorMessage;
281
- const showMandatoryGroupValidationError = !isExportingPDF &&
282
- (isNoGroupsBlockedState ||
283
- (isGroupMandatory &&
284
- (isCaseGroupInvalid || isSelectedUngroupedInvalid || !!pendingCaseOwnerUpdate) &&
285
- isEmpty(groupNumber) &&
286
- (!!caseNumber || isNextBtnClickedToShowValidationError || isEmpty(groupNumber))));
287
- const showGroupFieldValidationError = showMandatoryGroupValidationError || ownersCaseGroups.isError;
288
- const renderGroupFieldHelperContent = () => {
289
- if (isNoGroupsBlockedState) {
290
- return renderNoGroupsBlockedMessage();
194
+ catch (error) {
195
+ console.log(error);
291
196
  }
292
- return groupFieldErrorMessage;
293
- };
294
- const groupFieldHelperContent = renderGroupFieldHelperContent();
295
- const showHelperText = !showMandatoryGroupValidationError;
296
- useEffect(() => {
297
- setCaseState(caseDispatch, { showMandatoryCaseGroupValidationError: !!showMandatoryGroupValidationError });
298
- return () => {
299
- setCaseState(caseDispatch, { showMandatoryCaseGroupValidationError: false });
300
- };
301
- }, [caseDispatch, showMandatoryGroupValidationError]);
197
+ });
198
+ const showHelperText = !isSelectedUngroupedInvalid || (!isCaseGroupInvalid && !isGroupMandatory);
199
+ const showEmptyValidationError = !caseNumber && isNextBtnClickedToShowValidationError && isCaseGroupInvalid;
302
200
  const canNotChangeGroup = () => !loggedInUserRights.data.isInternal() &&
303
201
  !loggedInUser.data.isOrgAdmin &&
304
202
  loggedInUser.data.ssoUsername !== contactSSOName &&
305
203
  !loggedInUserRights.data.isPartner();
306
- const isSelectorDisabled = isNoGroupsBlockedState ||
307
- ownersCaseGroups.isError ||
308
- ownersCaseGroups.isFetching ||
309
- isCaseGroupUpdating ||
310
- isCaseOwnerUpdating ||
311
- canNotChangeGroup() ||
312
- canEditCase.isCaseNotEditable;
313
204
  const onToggleClick = () => {
314
205
  var _a;
315
- if (isNoGroupsBlockedState)
316
- return;
317
206
  setIsOpen((prev) => !prev);
318
207
  if (!isOpen) {
319
208
  setShouldFilter(false);
@@ -332,20 +221,18 @@ function CaseGroup(props) {
332
221
  setShouldFilter(true);
333
222
  }
334
223
  };
335
- const toggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, variant: "typeahead", onClick: onToggleClick, isExpanded: isOpen, isDisabled: isSelectorDisabled, status: showGroupFieldValidationError ? 'danger' : undefined, isFullWidth: true },
224
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, variant: "typeahead", onClick: onToggleClick, isExpanded: isOpen, isDisabled: ownersCaseGroups.isError ||
225
+ ownersCaseGroups.isFetching ||
226
+ isCaseGroupUpdating ||
227
+ isCaseOwnerUpdating ||
228
+ canNotChangeGroup(), status: ownersCaseGroups.isError || showEmptyValidationError || (caseNumber && isSelectedUngroupedInvalid)
229
+ ? 'danger'
230
+ : undefined, isFullWidth: true },
336
231
  React.createElement(TextInputGroup, { isPlain: true },
337
- React.createElement(TextInputGroupMain, { value: inputValue, onClick: onToggleClick, onChange: onInputQueryChange, onKeyDown: onInputKeyDown, onBlur: () => {
338
- if (selected) {
339
- setInputValue(selected);
340
- setShouldFilter(false);
341
- }
342
- }, autoComplete: "off", innerRef: textInputRef, placeholder: t(`Select a group`), role: "combobox", isExpanded: isOpen, "aria-controls": "select-typeahead-listbox", "aria-describedby": showGroupFieldValidationError ? "get-support-group-helper'" : undefined, disabled: isSelectorDisabled }),
232
+ React.createElement(TextInputGroupMain, { value: inputValue, onClick: onToggleClick, onChange: onInputQueryChange, onKeyDown: onInputKeyDown, autoComplete: "off", innerRef: textInputRef, placeholder: t(`Select a group`), role: "combobox", isExpanded: isOpen, "aria-controls": "select-typeahead-listbox" }),
343
233
  !isCaseOwnerUpdating && (ownersCaseGroups.isFetching || isCaseGroupUpdating) ? (React.createElement(TextInputGroupUtilities, null,
344
234
  React.createElement(Spinner, { size: "md" }))) : (React.createElement(TextInputGroupUtilities, Object.assign({}, (!inputValue ? { style: { display: 'none' } } : {})),
345
235
  React.createElement(Button, { icon: React.createElement(TimesIcon, { "aria-hidden": true }), variant: "plain", onClick: onCaseGroupClear, "aria-label": "Clear input value" }))))));
346
- if (shouldHideSelector) {
347
- return null;
348
- }
349
236
  return (React.createElement("div", { className: "form-group" },
350
237
  React.createElement("label", { htmlFor: "get-support-group" },
351
238
  React.createElement(Trans, null, "Group"),
@@ -353,8 +240,10 @@ function CaseGroup(props) {
353
240
  isGroupMandatory && !isExportingPDF && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
354
241
  React.createElement(Select, { id: "get-support-group", "data-tracking-id": "get-support-group", isOpen: isOpen, selected: selected, onSelect: (event, val) => onCaseGroupChange(val), onOpenChange: () => setIsOpen(false), toggle: toggle, shouldFocusFirstItemOnOpen: false, onBlur: () => onOuterClickGroupCheck, isScrollable: true, popperProps: { direction: 'down', enableFlip: false } },
355
242
  React.createElement(SelectList, null, computeDropdownList().map((option, index) => (React.createElement(SelectOption, { key: option.name, isFocused: focusedItemIndex === index, value: option, isSelected: option.name === selected }, option.name))))),
356
- showGroupFieldValidationError && groupFieldHelperContent && (React.createElement(HelperText, { className: "pf-v6-u-mt-sm pf-v6-u-mb-sm case-group-field-helper" },
357
- React.createElement(HelperTextItem, { variant: ValidatedOptions.error, id: "get-support-group-helper'" }, groupFieldHelperContent))),
243
+ caseNumber && isSelectedUngroupedInvalid && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" },
244
+ React.createElement(Trans, null, "'Ungrouped Case' cannot be selected. Please select a group."))),
245
+ showEmptyValidationError && isGroupMandatory && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" },
246
+ React.createElement(Trans, null, "Case group cannot be empty."))),
358
247
  showHelperText && (React.createElement("p", { className: "form-instructions" },
359
248
  React.createElement(Trans, null, "Organization administrators have the permission to manage groups.")))));
360
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseInformation.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseInformation.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAmHpD"}
1
+ {"version":3,"file":"CaseInformation.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseInformation.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAkHpD"}
@@ -1,4 +1,3 @@
1
- import { useApolloClient } from '@apollo/client/react';
2
1
  import { AlertMessage, AlertType, LoadingIndicator } from '@rh-support/components';
3
2
  import { fetchCaseSeverities, fetchCaseTypes, fetchLanguageMetadata, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
4
3
  import { haventLoadedMetadata } from '@rh-support/utils';
@@ -8,18 +7,18 @@ import React, { useContext, useEffect } from 'react';
8
7
  import { Trans, useTranslation } from 'react-i18next';
9
8
  import { useCaseSelector } from '../../context/CaseContext';
10
9
  import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
11
- // import { Hostname } from '../ImproveCase/Hostname';
10
+ import { Hostname } from '../ImproveCase/Hostname';
12
11
  import KtQuestions from '../ImproveCase/KtQuestions';
13
12
  import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
14
13
  export default function CaseInformation(props) {
15
14
  const { t } = useTranslation();
16
15
  const { globalMetadataState: { allCaseTypes, allCaseSeverities, caseLanguages, loggedInUser, loggedInUserJwtToken, loggedInUsersAccount, loggedInUserRights, }, } = useContext(GlobalMetadataStateContext);
17
16
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
18
- const apolloClient = useApolloClient();
19
- const { contactSSOName, selectedAccountDetails, ownersCaseGroups } = useCaseSelector((state) => ({
17
+ const { contactSSOName, selectedAccountDetails, ownersCaseGroups, hasInvalidEntitlements } = useCaseSelector((state) => ({
20
18
  contactSSOName: state.caseDetails.contactSSOName,
21
19
  ownersCaseGroups: state.ownersCaseGroups,
22
20
  selectedAccountDetails: state.selectedAccountDetails,
21
+ hasInvalidEntitlements: state.hasInvalidEntitlements,
23
22
  }), isEqual);
24
23
  const isMetadataLoading = () => {
25
24
  return !isMetadataLoadingError() && (loggedInUser.isFetching || selectedAccountDetails.isFetching);
@@ -39,13 +38,13 @@ export default function CaseInformation(props) {
39
38
  }
40
39
  const allPromisses = [];
41
40
  if (haventLoadedMetadata(allCaseTypes)) {
42
- allPromisses.push(fetchCaseTypes(dispatchToGlobalMetadataReducer, apolloClient));
41
+ allPromisses.push(fetchCaseTypes(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.secureSupport));
43
42
  }
44
43
  if (haventLoadedMetadata(allCaseSeverities)) {
45
- allPromisses.push(fetchCaseSeverities(dispatchToGlobalMetadataReducer, apolloClient));
44
+ allPromisses.push(fetchCaseSeverities(dispatchToGlobalMetadataReducer, loggedInUsersAccount.data.secureSupport));
46
45
  }
47
46
  if (haventLoadedMetadata(caseLanguages)) {
48
- allPromisses.push(fetchLanguageMetadata(dispatchToGlobalMetadataReducer, apolloClient));
47
+ allPromisses.push(fetchLanguageMetadata(dispatchToGlobalMetadataReducer));
49
48
  }
50
49
  Promise.all(allPromisses);
51
50
  }, [
@@ -57,7 +56,6 @@ export default function CaseInformation(props) {
57
56
  loggedInUserJwtToken,
58
57
  selectedAccountDetails,
59
58
  loggedInUsersAccount.data.secureSupport,
60
- apolloClient,
61
59
  ]);
62
60
  return (React.createElement(React.Fragment, null,
63
61
  React.createElement(LoadingIndicator, { show: isMetadataLoading(), size: "lg" }),
@@ -68,17 +66,18 @@ export default function CaseInformation(props) {
68
66
  ' ',
69
67
  React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
70
68
  " for assistance.")),
71
- React.createElement(AlertMessage, { show: !loggedInUserRights.data.isEntitled(), variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", isInline: true },
69
+ React.createElement(AlertMessage, { show: hasInvalidEntitlements, variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", isInline: true },
72
70
  React.createElement(Trans, { i18nKey: "i18ValidEntitlementContactCustomerService" },
73
71
  "You need a valid entitlement to create a case.\u00A0 Please contact",
74
72
  ' ',
75
73
  React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
76
74
  " for assistance.")),
77
- loggedInUserRights.data.isEntitled() &&
75
+ !hasInvalidEntitlements &&
78
76
  !isMetadataLoading() &&
79
77
  !isMetadataLoadingError() &&
80
78
  loggedInUserRights.data.canManageCases() && (React.createElement(React.Fragment, null,
81
79
  React.createElement("form", null,
80
+ React.createElement(Hostname, null),
82
81
  React.createElement(OpenShiftClusterId, null),
83
82
  React.createElement(ClusterRecommendations, { className: "push-bottom" }),
84
83
  React.createElement(KtQuestions, null))))));
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumber.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAsC/D,wBAAgB,kBAAkB,sBAwZjC"}
1
+ {"version":3,"file":"ContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumber.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAiB/D,wBAAgB,kBAAkB,sBAsVjC"}