@rh-support/troubleshoot 2.6.358 → 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 (349) 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 +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 +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 +47 -79
  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 +17 -63
  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 +55 -130
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +5 -10
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +65 -110
  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 +102 -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 +26 -40
  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 +148 -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 +145 -76
  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 +267 -217
  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 +61 -168
  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 +31 -108
  100. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +2 -2
  101. package/lib/esm/components/CaseInformation/Description.js +1 -1
  102. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  103. package/lib/esm/components/CaseInformation/FileDiag.js +5 -2
  104. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  105. package/lib/esm/components/CaseInformation/Fts.js +17 -31
  106. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  107. package/lib/esm/components/CaseInformation/Severity.js +24 -33
  108. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  109. package/lib/esm/components/CaseInformation/SupportLevel.js +55 -36
  110. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  111. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +8 -2
  112. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  113. package/lib/esm/components/CaseManagement/CaseManagement.js +10 -13
  114. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  115. package/lib/esm/components/CaseManagement/Cep.js +9 -11
  116. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +1 -2
  117. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  118. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -20
  119. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  120. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +6 -6
  121. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -0
  122. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  123. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +32 -19
  124. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  125. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +40 -34
  126. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  127. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +4 -8
  128. package/lib/esm/components/EditDescription/EditDescription.js +1 -1
  129. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  130. package/lib/esm/components/IdeaInformation/IdeaInformation.js +17 -23
  131. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  132. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +2 -4
  133. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
  134. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  135. package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
  136. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  137. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
  138. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  139. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +50 -37
  140. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  141. package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
  142. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  143. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +1 -9
  144. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  145. package/lib/esm/components/Recommendations/AsideResults.js +3 -4
  146. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  147. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +4 -1
  148. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  149. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  150. package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
  151. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  152. package/lib/esm/components/Recommendations/Recommendations.js +9 -3
  153. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  154. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +8 -10
  155. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  156. package/lib/esm/components/Review/Review.js +19 -25
  157. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  158. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
  159. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  160. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
  161. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +2 -2
  162. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  163. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +91 -139
  164. package/lib/esm/components/shared/Constants.d.ts +0 -5
  165. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  166. package/lib/esm/components/shared/Constants.js +0 -5
  167. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  168. package/lib/esm/components/shared/fileUpload/FileLister.js +3 -3
  169. package/lib/esm/components/shared/fileUpload/FileUpload.js +3 -2
  170. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  171. package/lib/esm/components/shared/fileUpload/FileUploader.js +1 -3
  172. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +0 -1
  173. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  174. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -4
  175. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
  176. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  177. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +5 -22
  178. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  179. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +59 -307
  180. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +1 -5
  181. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  182. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +1 -36
  183. package/lib/esm/components/shared/fileUpload/types/index.d.ts +1 -5
  184. package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
  185. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
  186. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  187. package/lib/esm/components/shared/fileUpload/useFileUploader.js +47 -119
  188. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  189. package/lib/esm/components/shared/useIsSectionValid.js +57 -22
  190. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  191. package/lib/esm/components/shared/usePostComment.js +28 -16
  192. package/lib/esm/components/shared/utils.d.ts +0 -1
  193. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  194. package/lib/esm/components/shared/utils.js +3 -9
  195. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  196. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +38 -178
  197. package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
  198. package/lib/esm/components/wizardLayout/MainSection.js +1 -2
  199. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  200. package/lib/esm/components/wizardLayout/WizardAside.js +4 -2
  201. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  202. package/lib/esm/components/wizardLayout/WizardLayout.js +13 -12
  203. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  204. package/lib/esm/components/wizardLayout/WizardMain.js +0 -7
  205. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  206. package/lib/esm/components/wizardLayout/WizardNavigation.js +11 -14
  207. package/lib/esm/constants/caseDetailsConstants.d.ts +0 -5
  208. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  209. package/lib/esm/constants/caseDetailsConstants.js +0 -5
  210. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  211. package/lib/esm/css/app.css +0 -28
  212. package/lib/esm/css/case.css +209 -60
  213. package/lib/esm/hooks/useAB.d.ts.map +1 -1
  214. package/lib/esm/hooks/useAB.js +23 -45
  215. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +1 -1
  216. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  217. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +11 -21
  218. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  219. package/lib/esm/hooks/useResetCaseCreate.js +11 -18
  220. package/lib/esm/hooks/useS3Upload.d.ts +4 -5
  221. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  222. package/lib/esm/hooks/useS3Upload.js +30 -28
  223. package/lib/esm/i18n/template-de.d.ts +2 -2
  224. package/lib/esm/i18n/template-de.js +2 -2
  225. package/lib/esm/i18n/template-es.d.ts +2 -2
  226. package/lib/esm/i18n/template-es.js +2 -2
  227. package/lib/esm/i18n/template-fr.d.ts +2 -2
  228. package/lib/esm/i18n/template-fr.js +2 -2
  229. package/lib/esm/i18n/template-it.d.ts +2 -2
  230. package/lib/esm/i18n/template-it.js +2 -2
  231. package/lib/esm/i18n/template-jp.d.ts +2 -2
  232. package/lib/esm/i18n/template-jp.js +2 -2
  233. package/lib/esm/i18n/template-ko.d.ts +2 -2
  234. package/lib/esm/i18n/template-ko.js +2 -2
  235. package/lib/esm/i18n/template-pt.d.ts +2 -2
  236. package/lib/esm/i18n/template-pt.js +2 -2
  237. package/lib/esm/i18n/template-ru.d.ts +2 -2
  238. package/lib/esm/i18n/template-ru.js +2 -2
  239. package/lib/esm/i18n/template-zh.d.ts +2 -2
  240. package/lib/esm/i18n/template-zh.js +2 -2
  241. package/lib/esm/index.js +0 -1
  242. package/lib/esm/models/cache.d.ts +2 -0
  243. package/lib/esm/models/cache.d.ts.map +1 -1
  244. package/lib/esm/reducers/CaseConstNTypes.d.ts +9 -123
  245. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  246. package/lib/esm/reducers/CaseConstNTypes.js +7 -31
  247. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -7
  248. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  249. package/lib/esm/reducers/CaseDetailsPageReducer.js +26 -58
  250. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +12 -11
  251. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  252. package/lib/esm/reducers/CaseDiscussionTabReducer.js +70 -63
  253. package/lib/esm/reducers/CaseHelpers.d.ts +1 -11
  254. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  255. package/lib/esm/reducers/CaseHelpers.js +17 -119
  256. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
  257. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  258. package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
  259. package/lib/esm/reducers/CaseReducer.d.ts +11 -56
  260. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  261. package/lib/esm/reducers/CaseReducer.js +100 -284
  262. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  263. package/lib/esm/reducers/RecommendationsReducer.js +18 -15
  264. package/lib/esm/scss/_main.scss +0 -9
  265. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +2 -1
  266. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  267. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  268. package/package.json +8 -9
  269. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +0 -8
  270. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +0 -1
  271. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +0 -18
  272. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +0 -4
  273. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +0 -1
  274. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +0 -23
  275. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +0 -29
  276. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +0 -1
  277. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +0 -29
  278. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +0 -17
  279. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +0 -1
  280. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +0 -60
  281. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +0 -3
  282. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +0 -1
  283. package/lib/esm/components/CaseInformation/CaseLabels.js +0 -106
  284. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +0 -4
  285. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +0 -1
  286. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +0 -141
  287. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +0 -3
  288. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +0 -1
  289. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +0 -9
  290. package/lib/esm/graphql/index.d.ts +0 -4
  291. package/lib/esm/graphql/index.d.ts.map +0 -1
  292. package/lib/esm/graphql/index.js +0 -3
  293. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +0 -2
  294. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +0 -1
  295. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +0 -24
  296. package/lib/esm/graphql/mutations/index.d.ts +0 -2
  297. package/lib/esm/graphql/mutations/index.d.ts.map +0 -1
  298. package/lib/esm/graphql/mutations/index.js +0 -1
  299. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +0 -2
  300. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +0 -1
  301. package/lib/esm/graphql/queries/getEscalationDetails.js +0 -31
  302. package/lib/esm/graphql/queries/index.d.ts +0 -2
  303. package/lib/esm/graphql/queries/index.d.ts.map +0 -1
  304. package/lib/esm/graphql/queries/index.js +0 -1
  305. package/lib/esm/graphql/schemas/escalation.d.ts +0 -66
  306. package/lib/esm/graphql/schemas/escalation.d.ts.map +0 -1
  307. package/lib/esm/graphql/schemas/escalation.js +0 -1
  308. package/lib/esm/graphql/schemas/index.d.ts +0 -2
  309. package/lib/esm/graphql/schemas/index.d.ts.map +0 -1
  310. package/lib/esm/graphql/schemas/index.js +0 -1
  311. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +0 -4
  312. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +0 -1
  313. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +0 -52
  314. package/lib/esm/hooks/useCaseComments/index.d.ts +0 -7
  315. package/lib/esm/hooks/useCaseComments/index.d.ts.map +0 -1
  316. package/lib/esm/hooks/useCaseComments/index.js +0 -5
  317. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +0 -25
  318. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +0 -1
  319. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +0 -75
  320. package/lib/esm/hooks/useCaseComments/types.d.ts +0 -85
  321. package/lib/esm/hooks/useCaseComments/types.d.ts.map +0 -1
  322. package/lib/esm/hooks/useCaseComments/types.js +0 -1
  323. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +0 -17
  324. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +0 -1
  325. package/lib/esm/hooks/useCaseComments/useCaseComments.js +0 -38
  326. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +0 -19
  327. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +0 -1
  328. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +0 -33
  329. package/lib/esm/hooks/useCaseGroupUiState.d.ts +0 -3
  330. package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +0 -1
  331. package/lib/esm/hooks/useCaseGroupUiState.js +0 -10
  332. package/lib/esm/hooks/useCaseHistory.d.ts +0 -26
  333. package/lib/esm/hooks/useCaseHistory.d.ts.map +0 -1
  334. package/lib/esm/hooks/useCaseHistory.js +0 -98
  335. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +0 -23
  336. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +0 -1
  337. package/lib/esm/hooks/useCaseLabelLinkMutations.js +0 -84
  338. package/lib/esm/models/caseHistory.d.ts +0 -80
  339. package/lib/esm/models/caseHistory.d.ts.map +0 -1
  340. package/lib/esm/models/caseHistory.js +0 -1
  341. package/lib/esm/utils/TimelineUtils.d.ts +0 -41
  342. package/lib/esm/utils/TimelineUtils.d.ts.map +0 -1
  343. package/lib/esm/utils/TimelineUtils.js +0 -135
  344. package/lib/esm/utils/caseHistoryUtils.d.ts +0 -66
  345. package/lib/esm/utils/caseHistoryUtils.d.ts.map +0 -1
  346. package/lib/esm/utils/caseHistoryUtils.js +0 -165
  347. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +0 -6
  348. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +0 -1
  349. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +0 -26
@@ -1,86 +1,105 @@
1
1
  import { Popover, PopoverPosition } from '@patternfly/react-core';
2
2
  import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
3
3
  import { SingleSelectDropdown } from '@rh-support/components';
4
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
5
  import { PreviousCaseTypes, showFtsOnCaseViewEditPage, showFtsOnCreateCasePage } from '@rh-support/utils';
5
6
  import isEmpty from 'lodash/isEmpty';
6
7
  import isEqual from 'lodash/isEqual';
7
- import React, { useEffect, useState } from 'react';
8
+ import React, { useContext, useEffect, useState } from 'react';
8
9
  import { Trans, useTranslation } from 'react-i18next';
9
10
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
10
- import { setCaseDetails, setCaseState } from '../../reducers/CaseReducer';
11
+ import { setCaseDetails } from '../../reducers/CaseReducer';
11
12
  const defaultProps = {
12
13
  id: '',
13
14
  className: '',
14
15
  };
15
16
  function SupportLevel(props) {
16
- const { caseNumber, severity, entitlementSla, caseType, productServiceLevel, otherServiceLevels, selectedEntitlementId, } = useCaseSelector((state) => ({
17
+ const { product, caseNumber, severity, entitlementSla, ownersEntitlements, caseType, openShiftClusterSupportLevel, } = useCaseSelector((state) => ({
18
+ product: state.caseDetails.product,
17
19
  caseNumber: state.caseDetails.caseNumber,
18
20
  severity: state.caseDetails.severity,
19
21
  entitlementSla: state.caseDetails.entitlementSla,
22
+ ownersEntitlements: state.ownersEntitlements,
20
23
  caseType: state.caseDetails.caseType,
21
- productServiceLevel: state.productServiceLevel,
22
- otherServiceLevels: state.otherServiceLevels,
23
- selectedEntitlementId: state.selectedEntitlementId,
24
+ openShiftClusterSupportLevel: state.openShiftClusterSupportLevel,
24
25
  }), isEqual);
25
26
  const caseDispatch = useCaseDispatch();
27
+ const { globalMetadataState: { allProducts }, } = useContext(GlobalMetadataStateContext);
26
28
  const { t } = useTranslation();
27
29
  const [isSupportLevelInValid, setIsSupportLevelInValid] = useState(false);
28
30
  const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
29
- const allSlaOptions = [...(productServiceLevel ? [productServiceLevel] : []), ...(otherServiceLevels !== null && otherServiceLevels !== void 0 ? otherServiceLevels : [])].sort((a, b) => b.priority - a.priority);
30
- const hasMultipleSlas = allSlaOptions.length > 1;
31
31
  const onCaseDetailsChange = (caseDetails) => {
32
32
  setCaseDetails(caseDispatch, caseDetails);
33
33
  };
34
34
  const onEntitlementChange = (selectedOption) => {
35
- const entitlementId = selectedOption.value;
36
- const matchedSla = allSlaOptions.find((sla) => sla.entitlementId === entitlementId);
37
- const slaLabel = (matchedSla === null || matchedSla === void 0 ? void 0 : matchedSla.serviceLevelLabel) || '';
38
- const casePayload = { entitlementSla: slaLabel };
35
+ const selected = selectedOption.value;
36
+ const casePayload = { entitlementSla: selected };
39
37
  casePayload.fts = caseNumber
40
- ? showFtsOnCaseViewEditPage(slaLabel, severity)
41
- : showFtsOnCreateCasePage(slaLabel, severity);
38
+ ? showFtsOnCaseViewEditPage(selected, severity)
39
+ : showFtsOnCreateCasePage(selected, severity);
42
40
  casePayload.fts = casePayload.fts && !isIdea;
43
- setIsSupportLevelInValid(isEmpty(entitlementId));
41
+ setIsSupportLevelInValid(isEmpty(selected));
44
42
  onCaseDetailsChange(casePayload);
45
- setCaseState(caseDispatch, { selectedEntitlementId: entitlementId });
46
43
  };
47
- const selectedSla = entitlementSla || (productServiceLevel === null || productServiceLevel === void 0 ? void 0 : productServiceLevel.serviceLevelLabel) || '';
48
- const currentEntitlementId = selectedEntitlementId || (productServiceLevel === null || productServiceLevel === void 0 ? void 0 : productServiceLevel.entitlementId) || '';
44
+ const getSlaList = () => {
45
+ var _a, _b;
46
+ if (openShiftClusterSupportLevel)
47
+ return [openShiftClusterSupportLevel];
48
+ const entitledProduct = ((_b = (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) !== null && _b !== void 0 ? _b : []).find((entitledProduct) => entitledProduct.product === product);
49
+ if (entitledProduct && entitledProduct.serviceLevels) {
50
+ return entitledProduct.serviceLevels.split(';') || [];
51
+ }
52
+ else {
53
+ return ownersEntitlements.data ? ownersEntitlements.data.map((sla) => sla.slaProcessId) : [];
54
+ }
55
+ };
56
+ const getSelectedSla = () => {
57
+ var _a, _b;
58
+ if (openShiftClusterSupportLevel)
59
+ return openShiftClusterSupportLevel;
60
+ const entitledProduct = ((_b = (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) !== null && _b !== void 0 ? _b : []).find((entitledProduct) => entitledProduct.product === product);
61
+ // if sla is empty then it means either first time this component is rendered or product has changed.
62
+ if (isEmpty(entitlementSla) && entitledProduct && entitledProduct.preferredServiceLevel) {
63
+ return entitledProduct.preferredServiceLevel;
64
+ }
65
+ else {
66
+ return isEmpty(entitlementSla) && !isEmpty(ownersEntitlements.data)
67
+ ? ownersEntitlements.data[0].slaProcessId
68
+ : entitlementSla;
69
+ }
70
+ };
71
+ const selectedSla = getSelectedSla();
49
72
  useEffect(() => {
50
- if (!productServiceLevel)
73
+ if (!selectedSla || entitlementSla)
51
74
  return;
52
- const validEntitlementIds = new Set([productServiceLevel, ...(otherServiceLevels !== null && otherServiceLevels !== void 0 ? otherServiceLevels : [])]
53
- .map((sla) => sla.entitlementId)
54
- .filter((id) => !!id));
55
- const hasValidSelection = !!selectedEntitlementId && validEntitlementIds.has(selectedEntitlementId);
56
- if (!hasValidSelection) {
57
- onCaseDetailsChange({ entitlementSla: productServiceLevel.serviceLevelLabel });
58
- setCaseState(caseDispatch, { selectedEntitlementId: productServiceLevel.entitlementId });
75
+ if (entitlementSla !== selectedSla) {
76
+ onCaseDetailsChange({ entitlementSla: selectedSla });
59
77
  }
60
78
  // eslint-disable-next-line react-hooks/exhaustive-deps
61
- }, [productServiceLevel, otherServiceLevels, selectedEntitlementId]);
79
+ }, [selectedSla, entitlementSla]);
80
+ // Create selected option for SingleSelectDropdown
62
81
  const getSelectedOption = () => ({
63
- label: selectedSla,
64
- value: currentEntitlementId,
82
+ label: selectedSla || '',
83
+ value: selectedSla || '',
65
84
  });
66
- const getDropdownOptions = () => allSlaOptions.map((sla) => ({
67
- label: sla.serviceLevelLabel,
68
- value: sla.entitlementId || sla.serviceLevelLabel,
85
+ // Create options array for SingleSelectDropdown
86
+ const getDropdownOptions = () => getSlaList().map((sla) => ({
87
+ label: sla,
88
+ value: sla,
69
89
  }));
70
- if (!hasMultipleSlas)
71
- return null;
72
90
  return (React.createElement("div", { className: `form-group ${props.className}`, id: `${props.id}` },
73
91
  React.createElement("label", { htmlFor: "get-support-supportLevel" },
74
92
  React.createElement(Trans, null, "Support level"),
75
93
  ' ',
76
- React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
94
+ !isEmpty(ownersEntitlements.data) && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
77
95
  React.createElement(Popover, { "aria-label": "Support Level info", position: PopoverPosition.top, bodyContent: React.createElement("p", null,
78
96
  React.createElement(Trans, { i18nKey: "i18ProductionSupportServiceLevelAgreement" },
79
97
  "Learn more about our",
80
98
  ' ',
81
99
  React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
82
100
  React.createElement(QuestionCircleIcon, { color: "#5e40be", className: "pf-v6-u-ml-xs icon-size cursor-pointer", "aria-label": "Support Level Info" })),
83
- React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') })));
101
+ React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') }),
102
+ isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
84
103
  }
85
104
  SupportLevel.defaultProps = defaultProps;
86
105
  export default SupportLevel;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseLanguageSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseLanguageSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,MAAM;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA6FzD"}
1
+ {"version":3,"file":"CaseLanguageSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseLanguageSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,MAAM;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBAoGzD"}
@@ -30,6 +30,12 @@ export default function CaseLanguageSelector(props) {
30
30
  const onLanguageChange = (option) => {
31
31
  onCaseDetailsChange({ caseLanguage: option.value });
32
32
  };
33
+ useEffect(() => {
34
+ if (!caseLanguage) {
35
+ onCaseDetailsChange({ caseLanguage: caseLanguages.data[1] });
36
+ }
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps
38
+ }, []);
33
39
  useEffect(() => {
34
40
  if (!props.isManageStep || !isEmpty(caseLanguage) || isLoadingLang || !canUseLanguageDetection)
35
41
  return;
@@ -47,11 +53,11 @@ export default function CaseLanguageSelector(props) {
47
53
  props.isManageStep,
48
54
  ]);
49
55
  const getLanguageDropdownOptions = map(caseLanguages.data, (language) => ({
50
- label: Constants.languagesMap[language] || language,
56
+ label: Constants.languagesMap[language],
51
57
  value: language,
52
58
  }));
53
59
  const getSelectedLanguageOption = {
54
- label: caseLanguage ? Constants.languagesMap[caseLanguage] || caseLanguage : '',
60
+ label: caseLanguage ? Constants.languagesMap[caseLanguage] : '',
55
61
  value: caseLanguage || '',
56
62
  };
57
63
  return (React.createElement("div", { className: "form-group" },
@@ -1 +1 @@
1
- {"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,MAAM,WAAW,MAAM;CAAG;AAC1B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBA8CnD"}
1
+ {"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,MAAM;CAAG;AAC1B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBAiCnD"}
@@ -1,23 +1,20 @@
1
1
  import { Grid, GridItem } from '@patternfly/react-core';
2
2
  import React from 'react';
3
3
  import { useCaseDispatch } from '../../context/CaseContext';
4
- import { useShowCaseGroupField } from '../../hooks/useCaseGroupUiState';
5
4
  import { setCaseDetails } from '../../reducers/CaseReducer';
6
5
  import CaseGroup from '../CaseInformation/CaseGroup';
7
6
  import { ContactPhoneNumber } from '../CaseInformation/ContactPhoneNumber';
8
- // TODO: Re-enable once phone number verification flow is fully supported with GraphQL
9
- // import { ContactPhoneNumberAlert } from '../CaseInformation/ContactPhoneNumberAlert';
7
+ import { ContactPhoneNumberAlert } from '../CaseInformation/ContactPhoneNumberAlert';
10
8
  import Fts from '../CaseInformation/Fts';
11
9
  import Severity from '../CaseInformation/Severity';
12
10
  import SupportLevel from '../CaseInformation/SupportLevel';
13
- import CaseLabelsCreate from './CaseLabelsCreate';
14
11
  import CaseLanguageSelector from './CaseLanguageSelector';
15
- // import { Cep } from './Cep';
12
+ import { Cep } from './Cep';
16
13
  import OpenReferenceNumber from './OpenReferenceNumber';
17
14
  import { RHAssociatesSelector } from './RHAssociatesSelector';
15
+ import CaseContactSelector from './SendNotifications/CaseContactSelector';
18
16
  export default function CaseManagement(props) {
19
17
  const caseDispatch = useCaseDispatch();
20
- const showCaseGroupField = useShowCaseGroupField();
21
18
  const onSeverityChange = (payload) => {
22
19
  setCaseDetails(caseDispatch, payload);
23
20
  };
@@ -28,15 +25,15 @@ export default function CaseManagement(props) {
28
25
  React.createElement(Severity, { showSeverityInfoIcon: true, onSeverityChange: onSeverityChange })),
29
26
  React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
30
27
  React.createElement(ContactPhoneNumber, null))),
28
+ React.createElement(ContactPhoneNumberAlert, null),
31
29
  React.createElement(Fts, { inlineEditable: false }),
32
30
  React.createElement(Grid, { hasGutter: true },
33
- React.createElement(GridItem, { span: 12, xl2: showCaseGroupField ? 6 : 12, className: "pf-v6-u-mb-xs" },
31
+ React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
34
32
  React.createElement(CaseLanguageSelector, { isManageStep: true })),
35
- showCaseGroupField && (React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
36
- React.createElement(CaseGroup, { init: true })))),
37
- React.createElement(Grid, { hasGutter: true },
38
- React.createElement(GridItem, { span: 12, xl2: 12, className: "pf-v6-u-mb-xs" },
39
- React.createElement(CaseLabelsCreate, null))),
33
+ React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
34
+ React.createElement(CaseGroup, { init: true }))),
35
+ React.createElement(CaseContactSelector, null),
40
36
  React.createElement(RHAssociatesSelector, null),
41
- React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true })));
37
+ React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }),
38
+ React.createElement(Cep, null)));
42
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Cep.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/Cep.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAe/D,UAAU,MAAM;CAAG;AAEnB,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,qBA4ThC"}
1
+ {"version":3,"file":"Cep.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/Cep.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAoB/D,UAAU,MAAM;CAAG;AAEnB,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,qBA8ThC"}
@@ -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 { useApolloClient } from '@apollo/client/react';
11
10
  import { Button, Checkbox, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, Popover, PopoverPosition, TextArea, TextInput, ValidatedOptions, } from '@patternfly/react-core';
12
11
  import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
13
12
  import { LoadingIndicator, ToastNotification, useConfirmation } from '@rh-support/components';
@@ -18,22 +17,23 @@ import isEqual from 'lodash/isEqual';
18
17
  import React, { useContext, useEffect, useState } from 'react';
19
18
  import { Trans, useTranslation } from 'react-i18next';
20
19
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
21
- import { GET_CASE_COMMENTS } from '../../hooks/useCaseComments';
20
+ import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
21
+ import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../context/CaseDiscussionTabContext';
22
22
  import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
23
+ import { updateDiscussionStateComments } from '../../reducers/CaseDiscussionTabReducer';
23
24
  import { checkForCaseStatusToggleOnAttachOrComment, postCepDetails, setCaseDetails, setCaseState, updateCaseDetails, } from '../../reducers/CaseReducer';
24
25
  import { PDFContext } from '../CaseEditView/PDFContainer';
25
26
  export function Cep(props) {
26
27
  var _a, _b, _c, _d, _e, _f;
27
28
  const { t } = useTranslation();
28
29
  const caseUpdateError = useCaseUpdateErrorMessage();
29
- const { cep, caseNumber, status, cepDetails, isPostingCep, isCaseUpdating, existingCaseDetails } = useCaseSelector((state) => ({
30
+ const { cep, caseNumber, status, cepDetails, isPostingCep, isCaseUpdating } = useCaseSelector((state) => ({
30
31
  cep: state.caseDetails.cep,
31
32
  caseNumber: state.caseDetails.caseNumber,
32
33
  status: state.caseDetails.status,
33
34
  cepDetails: state.cepDetails,
34
35
  isPostingCep: state.isPostingCep,
35
36
  isCaseUpdating: state.isCaseUpdating,
36
- existingCaseDetails: state.caseDetails,
37
37
  }), isEqual);
38
38
  const caseDispatch = useCaseDispatch();
39
39
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
@@ -42,7 +42,9 @@ export function Cep(props) {
42
42
  const ability = useContext(AbilityContext);
43
43
  const canUseCep = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.CEP);
44
44
  const confirm = useConfirmation();
45
- const client = useApolloClient();
45
+ const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
46
+ const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
47
+ const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
46
48
  const canEditCase = useCanEditCase();
47
49
  const [saveButtonIsClicked, setSaveButtonIsClicked] = useState(false);
48
50
  const { isExportingPDF } = useContext(PDFContext);
@@ -87,14 +89,10 @@ export function Cep(props) {
87
89
  const cepUpdate = (caseDetails) => __awaiter(this, void 0, void 0, function* () {
88
90
  try {
89
91
  yield updateCaseDetails(caseDispatch, caseNumber, caseDetails);
90
- yield checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), status, {
91
- apolloClient: client,
92
- caseNumber,
93
- existingCaseDetails,
94
- });
92
+ checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), status);
95
93
  if (caseDetails.cep) {
96
94
  yield postCepDetails(caseDispatch, caseNumber, cepDetailsLocal);
97
- client.refetchQueries({ include: [GET_CASE_COMMENTS] });
95
+ updateDiscussionStateComments(dispatchDiscussion, caseDispatch, caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
98
96
  }
99
97
  ToastNotification.addSuccessMessage(t(`Consultant Engagement in Progress has been updated successfully`));
100
98
  }
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  interface IProps {
3
- onReasonInputBoxChanged?: (Reason: string) => void;
4
- onReasonInputBoxBlur?: (reason: string) => void;
3
+ onReasonInputBoxChanged: (Reason: string) => void;
5
4
  onReasonChange: (Reason: string) => void;
6
5
  noClusterIdReasonExplanation: string;
7
6
  noClusterIdReason: string;
@@ -1 +1 @@
1
- {"version":3,"file":"NoClusterIDReasonSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/NoClusterIDReasonSelector.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAM;IACZ,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4BAA4B,EAAE,MAAM,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,yBAAyB,GAAI,OAAO,MAAM,sBAqL/C,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"NoClusterIDReasonSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/NoClusterIDReasonSelector.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAM;IACZ,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,4BAA4B,EAAE,MAAM,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,yBAAyB,GAAI,OAAO,MAAM,sBAkK/C,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -18,19 +18,14 @@ const NoClusterIDReasonSelector = (props) => {
18
18
  const globalDispatch = useGlobalDispatchContext();
19
19
  const { globalMetadataState: { caseNoClusterIdReasons }, } = useContext(GlobalMetadataStateContext);
20
20
  const { isExportingPDF } = useContext(PDFContext);
21
- useEffect(() => {
22
- setInputValue(props.noClusterIdReasonExplanation || '');
23
- }, [props.noClusterIdReasonExplanation]);
24
21
  const caseNoClusterIdReasonsList = props.isCustomer
25
22
  ? filter(caseNoClusterIdReasons.data, (item) => item !==
26
23
  'I am opening a case on behalf of the customer and cannot provide their Cluster ID at this time')
27
24
  : caseNoClusterIdReasons.data;
28
25
  const clearSelection = () => {
29
- var _a, _b;
30
26
  setNotRegistered(false);
31
27
  setInputValue('');
32
- (_a = props.onReasonInputBoxBlur) === null || _a === void 0 ? void 0 : _a.call(props, '');
33
- (_b = props.onReasonInputBoxChanged) === null || _b === void 0 ? void 0 : _b.call(props, '');
28
+ props.onReasonInputBoxChanged('');
34
29
  props.onReasonChange('');
35
30
  };
36
31
  const handleReasonChange = (option) => {
@@ -42,22 +37,10 @@ const NoClusterIDReasonSelector = (props) => {
42
37
  }
43
38
  };
44
39
  const handleInputChange = (_event, value) => {
45
- var _a;
46
40
  const cleaned = value.trim().length === 0 ? '' : value;
47
41
  setInputValue(cleaned);
48
42
  setHasLargeReasonExplanation(cleaned.length > SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT);
49
- (_a = props.onReasonInputBoxChanged) === null || _a === void 0 ? void 0 : _a.call(props, cleaned);
50
- };
51
- const handleInputBlur = () => {
52
- var _a;
53
- const cleaned = (inputValue || '').trim();
54
- setInputValue(cleaned);
55
- setHasLargeReasonExplanation(cleaned.length > SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT);
56
- if (props.onReasonInputBoxBlur) {
57
- props.onReasonInputBoxBlur(cleaned);
58
- return;
59
- }
60
- (_a = props.onReasonInputBoxChanged) === null || _a === void 0 ? void 0 : _a.call(props, cleaned);
43
+ props.onReasonInputBoxChanged(cleaned);
61
44
  };
62
45
  const getDropdownOptions = () => {
63
46
  return map(caseNoClusterIdReasonsList || [], (option) => ({
@@ -102,7 +85,7 @@ const NoClusterIDReasonSelector = (props) => {
102
85
  React.createElement(SingleSelectDropdown, { placeholder: t('Select an option or briefly describe your reason'), dataTrackingId: "no-openshift-cluster-id-reason", options: getDropdownOptions(), selected: getSelectedOption(), isDisabled: caseNoClusterIdReasons.isFetching || props.isDisabled, isLoading: caseNoClusterIdReasons.isFetching, isInvalid: props.isInValid, onSelect: handleReasonChange, "aria-labelledby": titleId, "aria-invalid": props.isInValid, "aria-describedby": "validate-reason-helper" })),
103
86
  props.noClusterIdReason === 'Other' && (React.createElement("div", { className: "text-input-wrapper" },
104
87
  React.createElement(TextInputGroup, null,
105
- React.createElement(TextInput, { value: inputValue, onChange: handleInputChange, onBlur: handleInputBlur, placeholder: t('Briefly describe your reason'), "aria-label": t('Other reason description'), validated: hasLargeReasonExplanation ? ValidatedOptions.error : ValidatedOptions.default }))))),
88
+ React.createElement(TextInput, { value: inputValue, onChange: handleInputChange, placeholder: t('Briefly describe your reason'), "aria-label": t('Other reason description'), validated: hasLargeReasonExplanation ? ValidatedOptions.error : ValidatedOptions.default }))))),
106
89
  React.createElement(LoadingIndicator, { show: caseNoClusterIdReasons.isFetching, size: "xs" }),
107
90
  React.createElement("p", { id: "validate-reason-helper", className: `form-instructions ${props.isInValid ? 'form-invalid' : ''}` }, notRegistered ? (registerMyClusterID()) : hasLargeReasonExplanation ? (React.createElement("span", { className: "form-instructions form-invalid pf-v6-u-danger-color-100 no-cluster-ID" }, t(`This reason exceeds ${SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT} characters. Try shortening it.`))) : (React.createElement(React.Fragment, null,
108
91
  props.isInValid && React.createElement(ExclamationCircleIcon, { color: "#c9190b", className: "pf-v6-u-mr-sm" }),
@@ -1 +1 @@
1
- {"version":3,"file":"OpenShiftClusterId.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenShiftClusterId.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,eAAO,MAAM,oBAAoB,yBAShC,CAAC;AAEF,eAAO,MAAM,uBAAuB,yBAInC,CAAC;AAEF,eAAO,MAAM,4BAA4B,yBAYxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAIjC,CAAC;AAEF,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,qBAkT/C"}
1
+ {"version":3,"file":"OpenShiftClusterId.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenShiftClusterId.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,eAAO,MAAM,oBAAoB,yBAShC,CAAC;AAEF,eAAO,MAAM,uBAAuB,yBAInC,CAAC;AAEF,eAAO,MAAM,4BAA4B,yBAYxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAIjC,CAAC;AAEF,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,qBAmT/C"}
@@ -90,8 +90,8 @@ export function OpenShiftClusterId(props) {
90
90
  if (isEmpty(product))
91
91
  return;
92
92
  const isClusterVisible = () => __awaiter(this, void 0, void 0, function* () {
93
- var _a;
94
- const hasCluster = yield isClusterIdEnabledForProduct(product);
93
+ var _a, _b;
94
+ const hasCluster = yield isClusterIdEnabledForProduct(product, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
95
95
  setShowClusterId(hasCluster);
96
96
  if (!hasCluster) {
97
97
  resetClusterData();
@@ -117,7 +117,7 @@ export function OpenShiftClusterId(props) {
117
117
  setIsClusterIdInValid(false);
118
118
  }
119
119
  }
120
- const majorVersion = (_a = getVersion(version)) === null || _a === void 0 ? void 0 : _a.major;
120
+ const majorVersion = (_b = getVersion(version)) === null || _b === void 0 ? void 0 : _b.major;
121
121
  const isOpenShiftV3 = product === 'OpenShift Container Platform' && majorVersion === '3';
122
122
  setShowV3TextBox(isOpenShiftV3);
123
123
  if (isOpenShiftV3 || noClusterIdReasonExplanation === 'v3-cluster') {
@@ -207,9 +207,9 @@ export function OpenShiftClusterId(props) {
207
207
  const infoMessage = v3Selected ? v3Tov4TransitionLink() : discoverV4ClusterIdLink();
208
208
  return isNextBtnClickedToShowValidationError && errorMessage ? errorMessage : infoMessage;
209
209
  };
210
- const onReasonExplanationInputBoxChanged = (explanation) => {
210
+ const onReasonExplanationInputBoxChanged = (noClusterIdReasonExplanation) => {
211
211
  if (noClusterIdReason === 'Other') {
212
- setCaseDetails(caseDispatch, { noClusterIdReasonExplanation: explanation });
212
+ setCaseDetails(caseDispatch, { noClusterIdReasonExplanation: noClusterIdReasonExplanation });
213
213
  }
214
214
  };
215
215
  const v3ClusterNameInputBoxChanged = (v3Cluster) => {
@@ -232,7 +232,7 @@ export function OpenShiftClusterId(props) {
232
232
  return null;
233
233
  return (React.createElement("div", { className: `${props.className ? props.className : ''}` },
234
234
  !showV3TextBox && (React.createElement(OpenshiftDropdownV4, { openshiftDisplayName: openshiftDisplayName, openshiftClusterIDState: openshiftClusterID || selectedReason, onClusterIdStateUpdate: onClusterIdStateUpdate, isClusterIdInvalid: isNextBtnClickedToShowValidationError &&
235
- ((isEmpty(openshiftClusterID) && isEmpty(selectedReason)) || isClusterIdInvalid), clusterIdDropdownFormInstructions: clusterIdDropdownFormInstructions(), onClusterClear: resetClusterData })),
235
+ ((isEmpty(openshiftClusterID) && isEmpty(selectedReason)) || isClusterIdInvalid), clusterIdDropdownFormInstructions: clusterIdDropdownFormInstructions(), onClusterClear: resetClusterData, isV3: product !== 'OpenShift Container Platform' })),
236
236
  noClusterIdReasonExplanation !== 'v3-cluster' && dontKnowSelected && !showV3TextBox && (React.createElement(NoClusterIDReasonSelector, { noClusterIdReasonExplanation: noClusterIdReasonExplanation, noClusterIdReason: noClusterIdReason, onReasonInputBoxChanged: onReasonExplanationInputBoxChanged, onReasonChange: onReasonChange, isInValid: isInVaidNoClusterIdReason, isCustomer: isCustomer })),
237
237
  (v3Selected || showV3TextBox) && (React.createElement(OpenShiftV3Inputbox, { v3ClusterName: v3ClusterName, onReasonInputBoxChanged: v3ClusterNameInputBoxChanged, isInValid: isEmpty(v3ClusterName.trim()) && isNextBtnClickedToShowValidationError, v3Selected: v3Selected }))));
238
238
  }
@@ -7,6 +7,7 @@ interface IProps extends IDClassNameProps {
7
7
  isClusterIdInvalid: boolean;
8
8
  clusterIdDropdownFormInstructions?: JSX.Element;
9
9
  onClusterClear: () => void;
10
+ isV3: boolean;
10
11
  isDisabled?: boolean;
11
12
  noClusterIdReasonExplanation?: string;
12
13
  openshiftDisplayName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAmfzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAsfzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -37,18 +37,6 @@ function OpenshiftDropdownV4(props) {
37
37
  const { t } = useTranslation();
38
38
  const PER_PAGE = 200;
39
39
  const LOAD_MORE_VALUE = 'loader';
40
- const getDisplayName = (id, noClusterIdReasonExplanation, display_name) => {
41
- if (isEmpty(id))
42
- return '';
43
- if (id === 'dont-have-id') {
44
- return noClusterIdReasonExplanation === 'v3-cluster'
45
- ? t('The case is for a v3 cluster')
46
- : t("I don't have my Cluster ID");
47
- }
48
- if (id === 'v3-cluster')
49
- return t('The case is for a v3 cluster');
50
- return display_name || id;
51
- };
52
40
  const [clustersRawResponse, setClustersRawResponse] = useState([]);
53
41
  const clustersRawResponseRef = useRef(clustersRawResponse);
54
42
  clustersRawResponseRef.current = clustersRawResponse;
@@ -56,7 +44,7 @@ function OpenshiftDropdownV4(props) {
56
44
  const loadMoreInProgressRef = useRef(false);
57
45
  const [clustersSelectOptions, setClustersSelectOptions] = useState([]);
58
46
  const [isOpen, setIsOpen] = useState(false);
59
- const [inputVal, setInputVal] = useState(() => getDisplayName(props.openshiftClusterIDState, props.noClusterIdReasonExplanation || '', props.openshiftDisplayName || props.openshiftClusterIDState));
47
+ const [inputVal, setInputVal] = useState(props.openshiftDisplayName);
60
48
  const inputValRef = useRef(inputVal);
61
49
  inputValRef.current = inputVal;
62
50
  const [showArchivedClusters, setShowArchivedClusters] = useState(false);
@@ -65,6 +53,19 @@ function OpenshiftDropdownV4(props) {
65
53
  const { getFromCache, setInCache } = useLRUCache(50);
66
54
  const textInputRef = useRef();
67
55
  const { isExportingPDF } = useContext(PDFContext);
56
+ // gets a cluster id and returns display name
57
+ const getDisplayName = (id, noClusterIdReasonExplanation, display_name) => {
58
+ if (isEmpty(id))
59
+ return '';
60
+ if (id === 'dont-have-id') {
61
+ return noClusterIdReasonExplanation === 'v3-cluster'
62
+ ? t('The case is for a v3 cluster')
63
+ : t("I don't have my Cluster ID");
64
+ }
65
+ if (id === 'v3-cluster')
66
+ return t('The case is for a v3 cluster');
67
+ return display_name || id;
68
+ };
68
69
  const onDropdownClear = () => __awaiter(this, void 0, void 0, function* () {
69
70
  setIsOpen(false);
70
71
  setInputVal('');
@@ -117,8 +118,8 @@ function OpenshiftDropdownV4(props) {
117
118
  const dropdownOptions = useMemo(() => [
118
119
  { type: 'checkbox', key: 'show-hide-archived-clusters', label: t('Show archived clusters') },
119
120
  { type: 'option', key: 'dont-have-id', label: t("I don't have my Cluster ID") },
120
- { type: 'option', key: 'v3-cluster', label: t('The case is for a v3 cluster') },
121
- ], [t]);
121
+ ...(props.isV3 ? [{ type: 'option', key: 'v3-cluster', label: t('The case is for a v3 cluster') }] : []),
122
+ ], [props.isV3, t]);
122
123
  // Use the keyboard navigation hook
123
124
  const { focusedItemIndex, onInputKeyDown } = useSelectKeyboardNavigator({
124
125
  list: dropdownOptions,
@@ -145,9 +146,15 @@ function OpenshiftDropdownV4(props) {
145
146
  const dropdownHeaderOptions = useMemo(() => [
146
147
  React.createElement(SelectOption, { hasCheckbox: true, key: "show-archived-clusters", "aria-label": t('Show archived clusters'), id: "show-archived-clusters", className: "archived-clusters-checkbox", "data-tracking-id": "show-hide-archived-clusters", value: { type: 'checkbox' }, isSelected: showArchivedClusters }, t('Show archived clusters')),
147
148
  React.createElement(Divider, { component: "div", key: 'cluster-id-options-divider-e' }),
148
- React.createElement(SelectOption, { key: 'dont-have-id', value: createState('dont-have-id', t("I don't have my Cluster ID")), "data-tracking-id": "dont-have-cluster-id", isFocused: focusedItemIndex === 1 }, t("I don't have my Cluster ID")),
149
- React.createElement(SelectOption, { key: 'v3-cluster', value: createState('v3-cluster', t('The case is for a v3 cluster')), "data-tracking-id": "v3-cluster-case", isFocused: focusedItemIndex === 2 }, t('The case is for a v3 cluster')),
150
- ], [showArchivedClusters, focusedItemIndex, t]);
149
+ React.createElement(SelectOption, { key: 'dont-have-id', value: createState('dont-have-id', t("I don't have my Cluster ID")), "data-tracking-id": "dont-have-cluster-id", isFocused: focusedItemIndex === 1 }, "I don't have my Cluster ID"),
150
+ ...(props.isV3
151
+ ? [
152
+ React.createElement(SelectOption, { key: 'v3-cluster', value: createState('v3-cluster', t('The case is for a v3 cluster')), isFocused: focusedItemIndex === 2 }),
153
+ ]
154
+ : []),
155
+ ],
156
+ // eslint-disable-next-line react-hooks/exhaustive-deps
157
+ [showArchivedClusters, focusedItemIndex]);
151
158
  const getClusterOptions = (clusters, total = totalResultsNo) => {
152
159
  const clustersResponseGrouped = groupBy(clusters, 'console_url') || [];
153
160
  const domainNames = Object.keys(clustersResponseGrouped) || [];
@@ -217,14 +224,17 @@ function OpenshiftDropdownV4(props) {
217
224
  }
218
225
  else {
219
226
  if (abortControllerRef.current !== undefined) {
227
+ // Cancel the previous request
220
228
  abortControllerRef.current.abort();
221
229
  }
230
+ // recreate a new AbortController for each call
222
231
  let controller = new AbortController();
223
232
  abortControllerRef.current = controller;
224
233
  const clusterStatus = ` AND status not in ('Deprovisioned'${!showArchivedClusters ? ",'Archived'" : ''})`;
225
234
  const searchPhrase = search
226
235
  ? ` AND (external_cluster_id ILIKE '%${search}%' OR display_name ILIKE '%${search}%' OR console_url ILIKE '%${search}%')`
227
236
  : '';
237
+ // query language: https://github.com/yaacov/tree-search-language
228
238
  clustersResponse = yield cloud.getAccountClustersSubscription({
229
239
  order: 'display_name asc',
230
240
  page,
@@ -255,6 +265,7 @@ function OpenshiftDropdownV4(props) {
255
265
  };
256
266
  }
257
267
  catch (e) {
268
+ // silently fails
258
269
  setIsFetchingClusters(false);
259
270
  return { items: [], totalResult: 0, page: 1, total: 0 };
260
271
  }
@@ -290,6 +301,8 @@ function OpenshiftDropdownV4(props) {
290
301
  }, [props.openshiftClusterIDState, props.openshiftDisplayName, props.noClusterIdReasonExplanation]);
291
302
  // need to get clusters when user opens the dropdown
292
303
  // as the api response is cached np extra call is made on open/close
304
+ // added observing props.isV3 because re-render
305
+ // is needed when user on overview page changing version
293
306
  useEffect(() => {
294
307
  if (!isOpen)
295
308
  return;
@@ -308,7 +321,7 @@ function OpenshiftDropdownV4(props) {
308
321
  isUnmounted = true;
309
322
  };
310
323
  // eslint-disable-next-line react-hooks/exhaustive-deps
311
- }, [showArchivedClusters, isOpen, inputVal]);
324
+ }, [props.isV3, showArchivedClusters, isOpen, inputVal]);
312
325
  const onTextInputChange = (_event, value) => {
313
326
  setInputVal(value);
314
327
  props.onClusterIdStateUpdate({ external_cluster_id: value });
@@ -1 +1 @@
1
- {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AA+BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA2NxD"}
1
+ {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AA+BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA+NxD"}