@rh-support/troubleshoot 2.6.301 → 2.6.302

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 (221) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +28 -40
  3. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  4. package/lib/esm/components/AccountInfo/OwnerSelector.js +52 -14
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +51 -31
  7. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/Case.js +50 -18
  9. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +25 -8
  11. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +57 -34
  13. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +2 -0
  14. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +3 -3
  16. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +1 -2
  17. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  18. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +8 -6
  19. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/CaseOverview/index.js +43 -30
  21. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +76 -30
  23. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +0 -1
  24. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  25. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +3 -3
  26. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +1 -3
  27. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  28. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +3 -4
  29. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  30. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +13 -17
  31. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  32. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +19 -43
  33. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  34. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +17 -40
  35. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +3 -0
  36. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +1 -0
  37. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +22 -0
  38. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  39. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +44 -41
  40. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +8 -7
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +0 -2
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +38 -18
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +19 -59
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +16 -9
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +4 -2
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +110 -148
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +5 -5
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +2 -1
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +15 -0
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +1 -0
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +19 -0
  60. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +17 -0
  61. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +1 -0
  62. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +49 -0
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +6 -2
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +147 -241
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +5 -3
  68. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  69. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +3 -1
  70. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +4 -4
  71. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +35 -3
  72. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  73. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +63 -224
  74. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +4 -5
  75. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  76. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +18 -5
  77. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  78. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +7 -2
  79. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  80. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +30 -52
  81. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  82. package/lib/esm/components/CaseInformation/CaseGroup.js +68 -46
  83. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  84. package/lib/esm/components/CaseInformation/CaseInformation.js +7 -5
  85. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  86. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +37 -24
  87. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  88. package/lib/esm/components/CaseInformation/SupportLevel.js +32 -55
  89. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -2
  90. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  91. package/lib/esm/components/CaseManagement/CaseManagement.js +4 -7
  92. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  93. package/lib/esm/components/CaseManagement/Cep.js +4 -7
  94. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  95. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +19 -9
  96. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  97. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +16 -11
  98. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  99. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +34 -40
  100. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  101. package/lib/esm/components/IdeaInformation/IdeaInformation.js +13 -14
  102. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  103. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +4 -2
  104. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
  105. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  106. package/lib/esm/components/ProductSelector/AllProductsSelector.js +3 -15
  107. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  108. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -37
  109. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  110. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +30 -50
  111. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  112. package/lib/esm/components/ProductSelector/ProductSelector.js +1 -3
  113. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  114. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +1 -4
  115. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  116. package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -4
  117. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  118. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +9 -7
  119. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  120. package/lib/esm/components/Review/Review.js +16 -16
  121. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  122. package/lib/esm/components/SessionRestore/SessionRestore.js +3 -1
  123. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  124. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +5 -8
  125. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  126. package/lib/esm/components/shared/fileUpload/FileUploader.js +3 -1
  127. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +3 -1
  128. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  129. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +76 -4
  130. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  131. package/lib/esm/components/shared/useIsSectionValid.js +50 -64
  132. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  133. package/lib/esm/components/shared/usePostComment.js +16 -28
  134. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  135. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +120 -24
  136. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  137. package/lib/esm/components/wizardLayout/WizardLayout.js +6 -7
  138. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  139. package/lib/esm/components/wizardLayout/WizardNavigation.js +10 -9
  140. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  141. package/lib/esm/graphql/index.d.ts +4 -0
  142. package/lib/esm/graphql/index.d.ts.map +1 -0
  143. package/lib/esm/graphql/index.js +3 -0
  144. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +2 -0
  145. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +1 -0
  146. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +24 -0
  147. package/lib/esm/graphql/mutations/index.d.ts +2 -0
  148. package/lib/esm/graphql/mutations/index.d.ts.map +1 -0
  149. package/lib/esm/graphql/mutations/index.js +1 -0
  150. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +2 -0
  151. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -0
  152. package/lib/esm/graphql/queries/getEscalationDetails.js +24 -0
  153. package/lib/esm/graphql/queries/getParentId.d.ts +2 -0
  154. package/lib/esm/graphql/queries/getParentId.d.ts.map +1 -0
  155. package/lib/esm/graphql/queries/getParentId.js +16 -0
  156. package/lib/esm/graphql/queries/index.d.ts +3 -0
  157. package/lib/esm/graphql/queries/index.d.ts.map +1 -0
  158. package/lib/esm/graphql/queries/index.js +2 -0
  159. package/lib/esm/graphql/schemas/escalation.d.ts +84 -0
  160. package/lib/esm/graphql/schemas/escalation.d.ts.map +1 -0
  161. package/lib/esm/graphql/schemas/escalation.js +1 -0
  162. package/lib/esm/graphql/schemas/index.d.ts +2 -0
  163. package/lib/esm/graphql/schemas/index.d.ts.map +1 -0
  164. package/lib/esm/graphql/schemas/index.js +1 -0
  165. package/lib/esm/hooks/useCaseComments/caseCommentMutation.d.ts +4 -0
  166. package/lib/esm/hooks/useCaseComments/caseCommentMutation.d.ts.map +1 -0
  167. package/lib/esm/hooks/useCaseComments/caseCommentMutation.js +12 -0
  168. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +4 -0
  169. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +1 -0
  170. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +55 -0
  171. package/lib/esm/hooks/useCaseComments/index.d.ts +7 -0
  172. package/lib/esm/hooks/useCaseComments/index.d.ts.map +1 -0
  173. package/lib/esm/hooks/useCaseComments/index.js +5 -0
  174. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +25 -0
  175. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +1 -0
  176. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +66 -0
  177. package/lib/esm/hooks/useCaseComments/types.d.ts +80 -0
  178. package/lib/esm/hooks/useCaseComments/types.d.ts.map +1 -0
  179. package/lib/esm/hooks/useCaseComments/types.js +1 -0
  180. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +16 -0
  181. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +1 -0
  182. package/lib/esm/hooks/useCaseComments/useCaseComments.js +25 -0
  183. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +19 -0
  184. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +1 -0
  185. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +33 -0
  186. package/lib/esm/hooks/useCaseHistory.d.ts +26 -0
  187. package/lib/esm/hooks/useCaseHistory.d.ts.map +1 -0
  188. package/lib/esm/hooks/useCaseHistory.js +98 -0
  189. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  190. package/lib/esm/hooks/useResetCaseCreate.js +18 -11
  191. package/lib/esm/models/caseHistory.d.ts +80 -0
  192. package/lib/esm/models/caseHistory.d.ts.map +1 -0
  193. package/lib/esm/models/caseHistory.js +1 -0
  194. package/lib/esm/reducers/CaseConstNTypes.d.ts +91 -3
  195. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  196. package/lib/esm/reducers/CaseConstNTypes.js +20 -2
  197. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +5 -4
  198. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  199. package/lib/esm/reducers/CaseDetailsPageReducer.js +39 -23
  200. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +3 -5
  201. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  202. package/lib/esm/reducers/CaseDiscussionTabReducer.js +33 -46
  203. package/lib/esm/reducers/CaseHelpers.d.ts +3 -2
  204. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  205. package/lib/esm/reducers/CaseHelpers.js +108 -41
  206. package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
  207. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  208. package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
  209. package/lib/esm/reducers/CaseReducer.d.ts +30 -8
  210. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  211. package/lib/esm/reducers/CaseReducer.js +192 -55
  212. package/lib/esm/utils/TimelineUtils.d.ts +41 -0
  213. package/lib/esm/utils/TimelineUtils.d.ts.map +1 -0
  214. package/lib/esm/utils/TimelineUtils.js +134 -0
  215. package/lib/esm/utils/caseHistoryUtils.d.ts +66 -0
  216. package/lib/esm/utils/caseHistoryUtils.d.ts.map +1 -0
  217. package/lib/esm/utils/caseHistoryUtils.js +165 -0
  218. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +1 -2
  219. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  220. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  221. package/package.json +7 -8
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { useApolloClient } from '@apollo/client/react';
10
11
  import { publicApi } from '@cee-eng/hydrajs';
11
12
  import { Button, Dropdown, DropdownItem, DropdownList, Flex, FlexItem, MenuToggle, Modal, ModalBody, ModalFooter, ModalHeader, Spinner, TextArea, } from '@patternfly/react-core';
12
13
  import { ToastNotification, useFetch } from '@rh-support/components';
@@ -21,10 +22,8 @@ import map from 'lodash/map';
21
22
  import React, { useContext, useEffect, useReducer, useRef, useState } from 'react';
22
23
  import { Trans, useTranslation } from 'react-i18next';
23
24
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
24
- import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
25
- import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../context/CaseDiscussionTabContext';
25
+ import { GET_CASE_COMMENTS } from '../../hooks/useCaseComments';
26
26
  import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
27
- import { updateDiscussionStateComments } from '../../reducers/CaseDiscussionTabReducer';
28
27
  import { getNewSeverityStringDef, getSeverityDescription } from '../../reducers/CaseHelpers';
29
28
  import { caseOverviewReducer, initialCaseViewState, setSeverityUpdating } from '../../reducers/CaseOverviewReducer';
30
29
  import { checkForCaseStatusToggleOnAttachOrComment, setCaseState, updateCaseDetails } from '../../reducers/CaseReducer';
@@ -40,12 +39,10 @@ export default function UpdateSeverityModal(props) {
40
39
  const [isUpdateClickedToShowError, setIsUpdateClickedToShowError] = useState(false);
41
40
  const [isSeverityInValid, setIsSeverityInValid] = useState(false);
42
41
  const [seviritiesOptions, setSeveritiesOptions] = useState([]);
42
+ const client = useApolloClient();
43
43
  const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
44
44
  propgateErrors: true,
45
45
  });
46
- const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
47
- const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
48
- const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
49
46
  const { globalMetadataState: { allCaseSeverities, allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
50
47
  const caseState = useCaseSelector((state) => ({
51
48
  caseDetails: {
@@ -223,7 +220,7 @@ export default function UpdateSeverityModal(props) {
223
220
  });
224
221
  onClose();
225
222
  caseUpdateError.showError(e, t(`Failed to update case status. Please try again`));
226
- yield updateCaseDetails(caseDispatch, caseDetails.caseNumber, Object.assign({ status: 'Waiting on Customer' }, updateCaseDetails));
223
+ yield updateCaseDetails(caseDispatch, caseDetails.caseNumber, Object.assign({ status: 'Waiting on Customer' }, updatedCaseDetails));
227
224
  }
228
225
  }
229
226
  catch (e) {
@@ -247,7 +244,7 @@ export default function UpdateSeverityModal(props) {
247
244
  setDescriptionValue(descriptionValue === null || descriptionValue === void 0 ? void 0 : descriptionValue.trim());
248
245
  }
249
246
  finally {
250
- yield updateDiscussionStateComments(dispatchDiscussion, caseDispatch, caseDetails.caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
247
+ yield client.refetchQueries({ include: [GET_CASE_COMMENTS] });
251
248
  setIsUpdateClickedToShowError(false);
252
249
  setDescriptionValue('');
253
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileUploader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGnD,UAAU,MAAO,SAAQ,wBAAwB;CAAG;AAQpD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBA4ClC;kBA5CQ,YAAY;;;AA8CrB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/FileUploader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAGnD,UAAU,MAAO,SAAQ,wBAAwB;CAAG;AAQpD,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBA8ClC;kBA9CQ,YAAY;;;AAgDrB,eAAe,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { useApolloClient } from '@apollo/client/react';
1
2
  import React, { useContext, useEffect } from 'react';
2
3
  import { Trans } from 'react-i18next';
3
4
  import { SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
@@ -18,13 +19,14 @@ function FileUploader(props) {
18
19
  const dispatchToAttachmentReducer = useContext(AttachmentDispatchContext);
19
20
  const { sessionRestore: { activeSessionId }, } = useContext(SessionRestoreStateContext);
20
21
  const { editFile, removeFile, retryUpload, uploadFile } = useFileUploader(props);
22
+ const apolloClient = useApolloClient();
21
23
  useEffect(() => {
22
24
  attachmentState.caseFiles.selectedLocalFiles.forEach((file, index) => {
23
25
  if (file.uploadProgress.uploadStatus === UploadStatusConstants.attachedOnSession) {
24
26
  uploadFile(index);
25
27
  }
26
28
  else if (isSessionUploadComplete(file.uploadProgress.uploadStatus)) {
27
- moveSessionAttachmentToCase(dispatchToAttachmentReducer, props.idToUploadTo, activeSessionId, file, index);
29
+ moveSessionAttachmentToCase(dispatchToAttachmentReducer, props.idToUploadTo, activeSessionId, file, index, apolloClient);
28
30
  }
29
31
  });
30
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -60,7 +60,9 @@ export declare const uploadFile: ({ dispatch, idToUploadTo, localFile, originalF
60
60
  export declare function doSosReportAnalysisForAllFiles(dispatch: any, idToUploadTo: string, localFiles: IFileLocal[], isSessionId: boolean): Promise<void>;
61
61
  export declare function doSosReportAnalysisForFile(dispatch: any, idToUploadTo: string, attachmentId: string, localFile: IFileLocal, isSessionId: boolean, fileIndex: number, fileUploadStatus?: UploadStatusConstants): Promise<void>;
62
62
  export declare function computeAnalysisResults(idToUploadTo: string, attachmentId: string, fileSize: number, isSessionId: boolean, listener: (status: CaseDiagnosticsStatus) => void): Promise<IAnalysisResults>;
63
- export declare function moveSessionAttachmentToCase(dispatch: any, caseNumber: string, sessionId: string, localFile: IFileLocal, fileIndex: number): Promise<void>;
63
+ export declare function moveSessionAttachmentToCase(dispatch: any, caseNumber: string, sessionId: string, localFile: IFileLocal, fileIndex: number, apolloClient?: {
64
+ query: (options: any) => Promise<any>;
65
+ }): Promise<void>;
64
66
  export declare function restoreFilesFromSession(dispatch: any, sessionId: string): Promise<void>;
65
67
  export declare function isFileAnalysisFailedForAllFiles(localFiles: IFileLocal[]): boolean;
66
68
  export declare function isAnyFileAttached(localFiles: IFileLocal[]): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/reducer/AttachmentHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AASvF,OAAO,EACH,uBAAuB,EAEvB,6BAA6B,EAK7B,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,eAAe,EAMf,qBAAqB,EACxB,MAAM,qBAAqB,CAAC;AAG7B,eAAO,MAAM,MAAM,GACd,6BAA6B,6BAA6B,EAAE,aAAa,OAAO,EAAE,mBAAiB,MACnG,eAAe,IAAI,EAAE,SA+BrB,CAAC;AAiBN,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,uDAAwD,CAAC;AAC5G,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,oDAAqD,CAAC;AACtG,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,2DAA4D,CAAC;AACpH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,wDAAyD,CAAC;AAC9G,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,wDAAyD,CAAC;AAC9G,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,kGACiC,CAAC;AACxF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,mDAAoD,CAAC;AACxG,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,0DAA2D,CAAC;AAChH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,uDAAwD,CAAC;AAC1G,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,iDAAkD,CAAC;AAEhG,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,yDAA0D,CAAC;AAC9G,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,wDAAyD,CAAC;AACxG,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,uDAAwD,CAAC;AAC1G,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,qDAAsD,CAAC;AACtG,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,sDAAuD,CAAC;AAExG,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,uGAAsE,CAAC;AACvH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,+NAC0E,CAAC;AACrH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,yIAAoE,CAAC;AACpH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,qGAAgE,CAAC;AAC9G,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,4CAA6C,CAAC;AAC5F,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,4CAA6C,CAAC;AAE1F,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,UAAU,EAAE,YACmC,CAAC;AAC/G,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,UAAU,EAAE,YACyC,CAAC;AACrH,eAAO,MAAM,4BAA4B,GAAI,oBAAoB,UAAU,EAAE,YASxE,CAAC;AACN,eAAO,MAAM,oBAAoB,GAAI,oBAAoB,UAAU,EAAE,YAAiC,CAAC;AACvG,eAAO,MAAM,qBAAqB,GAAI,oBAAoB,UAAU,EAAE,YACmC,CAAC;AAE1G,eAAO,MAAM,wBAAwB,GAAI,oBAAoB,UAAU,EAAE,YACwC,CAAC;AAElH,eAAO,MAAM,kBAAkB,GAAI,MAAM,UAAU,YACuD,CAAC;AAC3G,eAAO,MAAM,qBAAqB,GAAI,MAAM,UAAU,EAAE,iBAAiB,OAAO,YAOhB,CAAC;AACjE,eAAO,MAAM,eAAe,GAAI,MAAM,UAAU,YAGb,CAAC;AACpC,eAAO,MAAM,qBAAqB,GAAI,MAAM,UAAU,YAGI,CAAC;AAC3D,eAAO,MAAM,2BAA2B,GAAI,MAAM,UAAU,YAC2D,CAAC;AACxH,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,WACoB,CAAC;AAC5E,eAAO,MAAM,4BAA4B,GAAI,MAAM,UAAU,YAEF,CAAC;AAC5D,eAAO,MAAM,oBAAoB,GAC7B,UAAU,6BAA6B,EACvC,iBAAiB,MAAM,EACvB,mBAAmB,OAAO,CAAC,eAAe,CAAC,SAG9C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,wGAQlC;IACC,QAAQ,EAAE,6BAA6B,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CACjD,kBAwBA,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,6HAU9B;IACC,QAAQ,EAAE,6BAA6B,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,YAAY,EAAE,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CACjD,kBAyIA,CAAC;AAEF,wBAAsB,8BAA8B,CAChD,QAAQ,KAAA,EACR,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,UAAU,EAAE,EACxB,WAAW,EAAE,OAAO,iBAMvB;AAED,wBAAsB,0BAA0B,CAC5C,QAAQ,KAAA,EACR,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,qBAAqB,iBA6D3C;AAED,wBAAsB,sBAAsB,CACxC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,GAClD,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED,wBAAsB,2BAA2B,CAC7C,QAAQ,KAAA,EACR,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,MAAM,iBA6BpB;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,KAAA,EAAE,SAAS,EAAE,MAAM,iBA+CxE;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,UAAU,EAAE,WAEvE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,WAKzD;AAED,eAAO,MAAM,uBAAuB,GAAI,YAAY,UAAU,KAAG,OAShE,CAAC;AAKF,eAAO,MAAM,2BAA2B,UAOvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,oBAAoB,UAAU,EAAE,YAE9E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,aAAQ,SAUvC,CAAC"}
1
+ {"version":3,"file":"AttachmentHelper.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/reducer/AttachmentHelper.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { caseAttachments, Config, pcm, sessionAttachments } from '@cee-eng/hydrajs';
11
11
  import { ToastNotification } from '@rh-support/components';
12
- import { getText, pendoTrackEvent } from '@rh-support/utils';
12
+ import { fetchCaseDetailsByCaseNumber, GET_CONTENT_DOCUMENT_IDS, GET_CONTENT_VERSION_STATUS, getText, pendoTrackEvent, } from '@rh-support/utils';
13
13
  import find from 'lodash/find';
14
14
  import forEach from 'lodash/forEach';
15
15
  import includes from 'lodash/includes';
@@ -321,8 +321,16 @@ export function computeAnalysisResults(idToUploadTo, attachmentId, fileSize, isS
321
321
  return analysisResults;
322
322
  });
323
323
  }
324
- export function moveSessionAttachmentToCase(dispatch, caseNumber, sessionId, localFile, fileIndex) {
324
+ const SCT_PART_SIZE = 5 * 1024 * 1024;
325
+ const SCT_POLL_INTERVAL_MS = 5000;
326
+ const SCTUploadStatus = {
327
+ IN_PROGRESS: 'In Progress',
328
+ FAILED: 'Failed',
329
+ COMPLETED: 'Completed',
330
+ };
331
+ export function moveSessionAttachmentToCase(dispatch, caseNumber, sessionId, localFile, fileIndex, apolloClient) {
325
332
  return __awaiter(this, void 0, void 0, function* () {
333
+ var _a, _b, _c, _d, _e;
326
334
  if (!caseNumber || !sessionId || !localFile.attachmentId)
327
335
  return;
328
336
  const currentUploadPayload = {
@@ -330,9 +338,48 @@ export function moveSessionAttachmentToCase(dispatch, caseNumber, sessionId, loc
330
338
  uploadStatus: UploadStatusConstants.movingToCase,
331
339
  };
332
340
  updateUploadMetadata(dispatch, fileIndex, currentUploadPayload);
333
- const fileMetadata = yield sessionAttachments.moveSessionAttachmentsToCase(sessionId, [localFile.attachmentId], caseNumber);
334
341
  try {
335
- yield sessionAttachments.pollFileMoveProcess(sessionId, fileMetadata[0].id, fileMetadata[0]);
342
+ let caseSalesforceId;
343
+ if (apolloClient) {
344
+ const caseDetails = yield fetchCaseDetailsByCaseNumber(apolloClient, caseNumber);
345
+ caseSalesforceId = caseDetails === null || caseDetails === void 0 ? void 0 : caseDetails.id;
346
+ }
347
+ const totalChunks = Math.ceil(localFile.size / SCT_PART_SIZE);
348
+ const moveResponse = yield sessionAttachments.moveSessionAttachmentsToCaseSCT(sessionId, {
349
+ caseNumber,
350
+ attachments: [
351
+ {
352
+ attachmentId: localFile.attachmentId,
353
+ fileName: localFile.name,
354
+ fileSize: String(localFile.size),
355
+ totalChunks: String(totalChunks),
356
+ clientId: 'pcm',
357
+ },
358
+ ],
359
+ });
360
+ const sctAttachmentId = (_a = moveResponse === null || moveResponse === void 0 ? void 0 : moveResponse[0]) === null || _a === void 0 ? void 0 : _a.attachmentId;
361
+ if (!sctAttachmentId) {
362
+ throw new Error('Missing attachmentId from SCT move response');
363
+ }
364
+ if (!caseSalesforceId || !apolloClient) {
365
+ updateUploadMetadata(dispatch, fileIndex, {
366
+ uploadStatus: UploadStatusConstants.uploadedOnCase,
367
+ });
368
+ return;
369
+ }
370
+ const { data: docLinkData } = yield apolloClient.query({
371
+ query: GET_CONTENT_DOCUMENT_IDS,
372
+ variables: { linkedEntityId: { eq: caseSalesforceId } },
373
+ fetchPolicy: 'network-only',
374
+ });
375
+ const contentDocumentIds = ((_e = (_d = (_c = (_b = docLinkData === null || docLinkData === void 0 ? void 0 : docLinkData.salesforce_support_uiapi) === null || _b === void 0 ? void 0 : _b.query) === null || _c === void 0 ? void 0 : _c.SalesforceSupportContentDocumentLink) === null || _d === void 0 ? void 0 : _d.edges) !== null && _e !== void 0 ? _e : []).map((edge) => edge.node.ContentDocumentId.value);
376
+ if (contentDocumentIds.length === 0) {
377
+ updateUploadMetadata(dispatch, fileIndex, {
378
+ uploadStatus: UploadStatusConstants.uploadedOnCase,
379
+ });
380
+ return;
381
+ }
382
+ yield pollContentVersionStatus(apolloClient, contentDocumentIds, sctAttachmentId);
336
383
  updateUploadMetadata(dispatch, fileIndex, {
337
384
  uploadStatus: UploadStatusConstants.uploadedOnCase,
338
385
  });
@@ -351,6 +398,31 @@ export function moveSessionAttachmentToCase(dispatch, caseNumber, sessionId, loc
351
398
  }
352
399
  });
353
400
  }
401
+ function pollContentVersionStatus(apolloClient, contentDocumentIds, attachmentUUID) {
402
+ return __awaiter(this, void 0, void 0, function* () {
403
+ var _a, _b, _c, _d, _e, _f;
404
+ while (true) {
405
+ const { data } = yield apolloClient.query({
406
+ query: GET_CONTENT_VERSION_STATUS,
407
+ variables: {
408
+ contentDocumentIds: { in: contentDocumentIds },
409
+ attachmentUUID: { eq: attachmentUUID },
410
+ },
411
+ fetchPolicy: 'network-only',
412
+ });
413
+ const edges = (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportContentVersion) === null || _c === void 0 ? void 0 : _c.edges) !== null && _d !== void 0 ? _d : [];
414
+ const matchingEntry = edges.find((edge) => { var _a; return ((_a = edge.node.AttachmentUUID__c) === null || _a === void 0 ? void 0 : _a.value) === attachmentUUID; });
415
+ const uploadStatus = (_f = (_e = matchingEntry === null || matchingEntry === void 0 ? void 0 : matchingEntry.node) === null || _e === void 0 ? void 0 : _e.UploadStatus__c) === null || _f === void 0 ? void 0 : _f.value;
416
+ if (uploadStatus === SCTUploadStatus.COMPLETED) {
417
+ return;
418
+ }
419
+ if (uploadStatus === SCTUploadStatus.FAILED) {
420
+ throw new Error('Attachment move to case failed');
421
+ }
422
+ yield new Promise((resolve) => setTimeout(resolve, SCT_POLL_INTERVAL_MS));
423
+ }
424
+ });
425
+ }
354
426
  export function restoreFilesFromSession(dispatch, sessionId) {
355
427
  return __awaiter(this, void 0, void 0, function* () {
356
428
  resetAttachment(dispatch);
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAkR9D"}
1
+ {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAyB1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAuQ9D"}
@@ -1,32 +1,23 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { contacts } from '@cee-eng/hydrajs';
1
+ // import { contacts } from '@cee-eng/hydrajs';
11
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
12
- import find from 'lodash/find';
3
+ // import find from 'lodash/find';
13
4
  import isEmpty from 'lodash/isEmpty';
14
5
  import isEqual from 'lodash/isEqual';
15
- import React, { useContext, useEffect, useState } from 'react';
6
+ import React, { useContext } from 'react';
7
+ // import React, { useContext, useEffect, useState } from 'react';
16
8
  import { Trans } from 'react-i18next';
17
9
  import { useCaseSelector } from '../../context/CaseContext';
18
- import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
10
+ import { RouteContext } from '../../context/RouteContext';
11
+ // import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
19
12
  import { TCStateContext } from '../../context/TopContentContext';
20
13
  import { useAB } from '../../hooks/useAB';
21
14
  import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, ISSUE_SUMMARY_LENGTH_LIMIT, KTQUESTION_MAX_LIMIT, TITLE_SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
22
15
  import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
23
16
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
24
- import { setNoValidEntitlement } from '../../reducers/RouteReducer';
25
17
  import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
26
18
  export function useIsSectionValid(sectionName) {
27
- var _a, _b;
28
19
  const { isVariationA } = useAB();
29
- const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
20
+ const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, manageSupportCases, } = useCaseSelector((state) => ({
30
21
  caseState: state,
31
22
  caseType: state.caseDetails.caseType,
32
23
  product: state.caseDetails.product,
@@ -42,35 +33,38 @@ export function useIsSectionValid(sectionName) {
42
33
  environment: state.caseDetails.environment,
43
34
  timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
44
35
  periodicityOfIssue: state.caseDetails.periodicityOfIssue,
45
- ssoUsername: state.selectedOwner.data.ssoUsername,
36
+ // ssoUsername: state.selectedOwner.data.ssoUsername,
46
37
  manageSupportCases: state.selectedOwner.data.manageSupportCases,
47
38
  }), isEqual);
48
- const routeDispatch = useRouteDispatchContext();
49
- const [isEntitlement, setIsEntitlement] = useState(null);
50
- useEffect(() => {
51
- const fetchContactDetails = () => __awaiter(this, void 0, void 0, function* () {
52
- var _a;
53
- if (ssoUsername) {
54
- try {
55
- const response = yield contacts.getSFDCContactBySso(ssoUsername);
56
- setIsEntitlement((_a = response === null || response === void 0 ? void 0 : response.isEntitled) !== null && _a !== void 0 ? _a : null);
57
- setNoValidEntitlement(routeDispatch, !(response === null || response === void 0 ? void 0 : response.isEntitled));
58
- }
59
- catch (error) {
60
- console.error('Error fetching contact details:', error);
61
- setIsEntitlement(null);
62
- setNoValidEntitlement(routeDispatch, null);
63
- }
64
- }
65
- });
66
- fetchContactDetails();
67
- }, [ssoUsername, routeDispatch]);
68
- //&seSessionId=8e8960ac-680b-443e-bf67-9e13f2acd64e
39
+ // const routeDispatch = useRouteDispatchContext();
40
+ // const [isEntitlement, setIsEntitlement] = useState<boolean | null>(null);
41
+ // useEffect(() => {
42
+ // const fetchContactDetails = async () => {
43
+ // if (ssoUsername) {
44
+ // try {
45
+ // const response = await contacts.getSFDCContactBySso(ssoUsername);
46
+ // setIsEntitlement(response?.isEntitled ?? null);
47
+ // setNoValidEntitlement(routeDispatch, !response?.isEntitled);
48
+ // } catch (error) {
49
+ // console.error('Error fetching contact details:', error);
50
+ // setIsEntitlement(null);
51
+ // setNoValidEntitlement(routeDispatch, null);
52
+ // }
53
+ // }
54
+ // };
55
+ // fetchContactDetails();
56
+ // }, [ssoUsername, routeDispatch]);
57
+ // Contact-level entitlement hardcoded to true — now resolved from SFDCProductJSON__c
58
+ const isEntitlement = true;
69
59
  const { routeState: { isCaseCreate }, } = useContext(RouteContext);
70
60
  const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
71
61
  const { topContentState: { topContent }, } = useContext(TCStateContext);
72
- const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
73
- const { routeState: { activeSection, isSearchIntent }, } = useContext(RouteContext);
62
+ // isEntitledProduct commented out; product-level entitlement now resolved from SFDCProductJSON__c
63
+ // const isEntitledProduct = find(
64
+ // allProducts?.data?.productsResult,
65
+ // (p) => p.product === caseState.caseDetails.product
66
+ // )?.isEntitledProduct;
67
+ const { routeState: { activeSection }, } = useContext(RouteContext);
74
68
  const { attachmentState } = useContext(AttachmentStateContext);
75
69
  const selectedLocalFiles = attachmentState.caseFiles.selectedLocalFiles;
76
70
  const allowedTypesIdea = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif'];
@@ -111,8 +105,6 @@ export function useIsSectionValid(sectionName) {
111
105
  }
112
106
  return (!isEmpty(product) &&
113
107
  !isEmpty(version) &&
114
- !isEmpty(accountNumber) &&
115
- !isEmpty(contactSSOName) &&
116
108
  !isEmpty(summary) &&
117
109
  (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
118
110
  !isEmpty(issue) &&
@@ -129,23 +121,22 @@ export function useIsSectionValid(sectionName) {
129
121
  };
130
122
  const isResourcesSectionValid = () => {
131
123
  var _a;
132
- // don't check for entitled product if user is on search intent flow
133
- const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
134
- // Skip cluster ID validation for Variant A
124
+ // isEntitledProduct check removed product-level entitlement now resolved from SFDCProductJSON__c
135
125
  const clusterIdValid = isVariationA ? true : isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
136
- return isEntitledProductLocal && clusterIdValid;
126
+ return clusterIdValid;
137
127
  };
138
128
  const isReviewSectionValid = () => {
139
129
  var _a;
140
- return (isEntitledProduct &&
141
- isCaseStateValid(caseState, loggedInUserRights) &&
130
+ return (
131
+ // isEntitledProduct — product-level entitlement now resolved from SFDCProductJSON__c
132
+ isCaseStateValid(caseState, loggedInUserRights) &&
142
133
  isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
143
134
  isSummarizeSectionValid() &&
144
135
  isAdditionalInformationSectionValidLocal());
145
136
  };
146
137
  const isDescribeIdeaSectionValid = () => {
147
138
  return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
148
- isEntitledProduct &&
139
+ // isEntitledProduct — product-level entitlement now resolved from SFDCProductJSON__c
149
140
  isIdeaCaseStateValid(caseState, loggedInUserRights) &&
150
141
  checkUnallowedFiles());
151
142
  };
@@ -185,14 +176,8 @@ export function useIsSectionValid(sectionName) {
185
176
  }
186
177
  };
187
178
  const recommendationSectionError = () => {
188
- if (!product)
189
- return '';
190
- const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
191
- return !isEntitledProductLocal ? (React.createElement(Trans, { i18nKey: "i18ValidEntitlementContactCustomerService" },
192
- "You need a valid entitlement to create a case.\u00A0 Please contact",
193
- ' ',
194
- React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
195
- " for assistance.")) : ('');
179
+ // isEntitledProduct check removed — product-level entitlement now resolved from SFDCProductJSON__c
180
+ return '';
196
181
  };
197
182
  const getSupportSectionError = () => {
198
183
  if (manageSupportCases === false) {
@@ -202,13 +187,14 @@ export function useIsSectionValid(sectionName) {
202
187
  React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
203
188
  " for assistance."));
204
189
  }
205
- if (isEntitlement === false) {
206
- return (React.createElement(Trans, { i18nKey: "i18ValidEntitlementContactCustomerService" },
207
- "You need a valid entitlement to create a case.\u00A0 Please contact",
208
- ' ',
209
- React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
210
- " for assistance."));
211
- }
190
+ // if (isEntitlement === false) {
191
+ // return (
192
+ // <Trans i18nKey="i18ValidEntitlementContactCustomerService">
193
+ // You need a valid entitlement to create a case.&nbsp; Please contact{' '}
194
+ // <a href="/support/contact/customerService">Customer Service</a> for assistance.
195
+ // </Trans>
196
+ // );
197
+ // }
212
198
  return '';
213
199
  };
214
200
  const activeSectionError = (sectionNameLocal) => {
@@ -1 +1 @@
1
- {"version":3,"file":"usePostComment.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/usePostComment.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAW9E,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE;;CAAA;2FAgBtC,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,aAAa,GAAG,mBAAmB,CAAC,GAAG;QAChF,qBAAqB,EAAE,OAAO,CAAC;KAClC;;EAwBJ"}
1
+ {"version":3,"file":"usePostComment.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/usePostComment.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAM9E,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE;;CAAA;2FAUtC,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,aAAa,GAAG,mBAAmB,CAAC,GAAG;QAChF,qBAAqB,EAAE,OAAO,CAAC;KAClC;;EAYJ"}
@@ -7,36 +7,24 @@ 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 { publicApi } from '@cee-eng/hydrajs';
11
- import { useFetch } from '@rh-support/components';
12
- import { useCaseDispatch } from '../../context/CaseContext';
13
- import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
14
- import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../context/CaseDiscussionTabContext';
15
- import { updateDiscussionStateComments } from '../../reducers/CaseDiscussionTabReducer';
10
+ import { useApolloClient } from '@apollo/client/react';
11
+ import isEqual from 'lodash/isEqual';
12
+ import { useCaseSelector } from '../../context/CaseContext';
13
+ import { GET_CASE_COMMENTS, useCreateCaseComment } from '../../hooks/useCaseComments';
16
14
  export function usePostComment({ caseNumber }) {
17
- const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
18
- propgateErrors: true,
19
- });
20
- const caseDispatch = useCaseDispatch();
21
- const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
22
- const { sort, allDiscussions, discussionFiltersListState } = useCaseDiscussionTabStateContext();
23
- const { caseDetailsPageState: { caseFeedbacksHydra }, } = useCaseDetailsPageStateContext();
24
- const defaultContentType = 'plaintext';
25
- const postComment = (_a) => __awaiter(this, [_a], void 0, function* ({ commentBody, contentType = defaultContentType, updateDiscussionState = true, doNotChangeStatus = false, }) {
26
- if (!commentBody)
15
+ const client = useApolloClient();
16
+ const { createComment, loading: isPostingComment } = useCreateCaseComment();
17
+ const caseSalesforceId = useCaseSelector((state) => state.caseDetails.id, isEqual);
18
+ const postComment = (_a) => __awaiter(this, [_a], void 0, function* ({ commentBody, contentType, updateDiscussionState = true, doNotChangeStatus = false, }) {
19
+ if (!commentBody || !caseSalesforceId)
27
20
  return;
28
- try {
29
- yield postCommentRequest({
30
- caseNumber,
31
- commentBody,
32
- contentType,
33
- doNotChangeStatus,
34
- });
35
- updateDiscussionState &&
36
- updateDiscussionStateComments(dispatchDiscussion, caseDispatch, caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
37
- }
38
- catch (e) {
39
- throw e;
21
+ yield createComment({
22
+ caseId: caseSalesforceId,
23
+ body: commentBody,
24
+ isPublic: true,
25
+ });
26
+ if (updateDiscussionState) {
27
+ yield client.refetchQueries({ include: [GET_CASE_COMMENTS] });
40
28
  }
41
29
  });
42
30
  return { postComment, isPostingComment };
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAgUtD"}
1
+ {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAiBvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAsctD"}