@rh-support/troubleshoot 2.6.358 → 2.6.361

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 (102) hide show
  1. package/lib/esm/components/AccountInfo/OwnerSelector.js +1 -1
  2. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +14 -4
  4. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +11 -7
  6. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +2 -0
  7. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +19 -8
  9. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/CaseOverview/index.js +16 -13
  11. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +1 -1
  13. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +2 -2
  14. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +7 -5
  16. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  17. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +7 -5
  18. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +6 -0
  19. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +8 -0
  21. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +6 -3
  23. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +1 -1
  24. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +1 -1
  25. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +1 -1
  26. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  27. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -1
  28. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +1 -1
  29. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +1 -1
  30. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts.map +1 -1
  31. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.js +3 -1
  32. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  33. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +1 -6
  34. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +1 -1
  35. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts.map +1 -1
  36. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +4 -2
  37. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  38. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +5 -3
  39. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  40. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +33 -3
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +6 -0
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +210 -35
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +1 -1
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +1 -1
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +3 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +11 -17
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  52. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +5 -2
  53. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +2 -1
  54. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  55. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +4 -11
  56. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  57. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +6 -3
  58. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  59. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +1 -0
  60. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  61. package/lib/esm/components/CaseInformation/CaseGroup.js +6 -2
  62. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +1 -1
  63. package/lib/esm/components/CaseInformation/CaseLabels.js +6 -4
  64. package/lib/esm/components/CaseInformation/Fts.js +2 -2
  65. package/lib/esm/components/CaseManagement/Cep.js +1 -1
  66. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  67. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +4 -2
  68. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  69. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +4 -2
  70. package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
  71. package/lib/esm/components/EditDescription/EditDescription.js +3 -1
  72. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +4 -4
  73. package/lib/esm/css/case.css +154 -8
  74. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -1
  75. package/lib/esm/graphql/queries/getEscalationDetails.js +5 -0
  76. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +1 -1
  77. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +6 -1
  78. package/lib/esm/hooks/useCaseComments/index.d.ts +2 -1
  79. package/lib/esm/hooks/useCaseComments/index.d.ts.map +1 -1
  80. package/lib/esm/hooks/useCaseComments/types.d.ts +8 -0
  81. package/lib/esm/hooks/useCaseComments/types.d.ts.map +1 -1
  82. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +12 -3
  83. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +1 -1
  84. package/lib/esm/hooks/useCaseComments/useCaseComments.js +84 -9
  85. package/lib/esm/hooks/useCaseHistory.d.ts +2 -2
  86. package/lib/esm/hooks/useCaseHistory.d.ts.map +1 -1
  87. package/lib/esm/hooks/useCaseHistory.js +16 -7
  88. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +9 -1
  89. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  90. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +103 -16
  91. package/lib/esm/models/caseHistory.d.ts +6 -0
  92. package/lib/esm/models/caseHistory.d.ts.map +1 -1
  93. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +2 -1
  94. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  95. package/lib/esm/reducers/CaseDiscussionTabReducer.js +26 -4
  96. package/lib/esm/utils/caseHistoryUtils.d.ts +19 -0
  97. package/lib/esm/utils/caseHistoryUtils.d.ts.map +1 -1
  98. package/lib/esm/utils/caseHistoryUtils.js +31 -0
  99. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts +8 -0
  100. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts.map +1 -0
  101. package/lib/esm/utils/linkifyHtmlTextNodes.js +37 -0
  102. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHistory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,sBAQjC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"CaseHistory.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,sBAYjC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,9 +1,12 @@
1
- import React from 'react';
1
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
2
+ import React, { useContext } from 'react';
2
3
  import { useCaseSelector } from '../../../../context/CaseContext';
3
4
  import Timeline from './Timeline';
4
5
  const CaseHistory = (props) => {
5
6
  const sfdcCaseId = useCaseSelector((state) => { var _a; return (_a = state.caseDetails) === null || _a === void 0 ? void 0 : _a.id; });
7
+ const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
8
+ const isViewerInternal = loggedInUserRights.data.isInternal();
6
9
  return (React.createElement("div", { className: "pf-v6-u-p-sm" },
7
- React.createElement(Timeline, { caseNumber: props.caseNumber, sfdcCaseId: sfdcCaseId !== null && sfdcCaseId !== void 0 ? sfdcCaseId : '' })));
10
+ React.createElement(Timeline, { caseNumber: props.caseNumber, sfdcCaseId: sfdcCaseId !== null && sfdcCaseId !== void 0 ? sfdcCaseId : '', isViewerInternal: isViewerInternal })));
8
11
  };
9
12
  export default CaseHistory;
@@ -33,7 +33,8 @@ export declare const transformApiResponseToTimelineData: (apiResponse: {
33
33
  interface ITimelineProps {
34
34
  caseNumber: string;
35
35
  sfdcCaseId: string | undefined;
36
+ isViewerInternal: boolean;
36
37
  }
37
- declare const Timeline: ({ caseNumber, sfdcCaseId }: ITimelineProps) => React.JSX.Element;
38
+ declare const Timeline: ({ caseNumber, sfdcCaseId, isViewerInternal }: ITimelineProps) => React.JSX.Element;
38
39
  export default Timeline;
39
40
  //# sourceMappingURL=Timeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAsBxB,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,KAAK,kBAAkB,EAA0C,MAAM,iCAAiC,CAAC;AAElH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAmID;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,GAAG,IAAI,GAAG,SAAS,KAAG,MAU/E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,GAAI,aAAa;IAC5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;CACpC,KAAG,iBAAiB,EAoDpB,CAAC;AAEF,UAAU,cAAc;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,QAAA,MAAM,QAAQ,GAAI,4BAA4B,cAAc,sBAyU3D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Timeline.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseHistory/Timeline.tsx"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAsBxB,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,KAAK,EAAwB,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE7F,OAAO,EAAE,KAAK,kBAAkB,EAA0C,MAAM,iCAAiC,CAAC;AAElH,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAmID;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,GAAG,IAAI,GAAG,SAAS,KAAG,MAU/E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,GAAI,aAAa;IAC5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;CACpC,KAAG,iBAAiB,EAoDpB,CAAC;AAEF,UAAU,cAAc;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,QAAA,MAAM,QAAQ,GAAI,8CAA8C,cAAc,sBAgU7E,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -120,12 +120,12 @@ export const transformApiResponseToTimelineData = (apiResponse) => {
120
120
  });
121
121
  return timelineEvents;
122
122
  };
123
- const Timeline = ({ caseNumber, sfdcCaseId }) => {
123
+ const Timeline = ({ caseNumber, sfdcCaseId, isViewerInternal }) => {
124
124
  const { t } = useTranslation();
125
125
  const [timelineEvents, setTimelineEvents] = useState([]);
126
- const [originalTimelineEvents, setOriginalTimelineEvents] = useState([]);
127
126
  const lastNodeRef = useRef(null);
128
- const { historyItems, loading: isFetchingData, error } = useCaseHistory(sfdcCaseId);
127
+ const [sortOrder, setSortOrder] = useState('DESC');
128
+ const { historyItems, loading: isFetchingData, error } = useCaseHistory(sfdcCaseId, isViewerInternal, sortOrder);
129
129
  const fetchError = error ? t('Unable to connect') : null;
130
130
  const [dateValue, setDateValue] = useState('');
131
131
  const [searchValue, setSearchValue] = useState('');
@@ -155,16 +155,10 @@ const Timeline = ({ caseNumber, sfdcCaseId }) => {
155
155
  e.preventDefault();
156
156
  if (value !== selectedOrder) {
157
157
  setSelectedOrder(value);
158
- reorderTimelineEvents(value);
158
+ setSortOrder(value === 'Newest to Oldest' ? 'DESC' : 'ASC');
159
159
  }
160
160
  setIsSelectOpen(false);
161
161
  };
162
- // "Newest to Oldest" is the native API order (SF returns history newest-first).
163
- // "Oldest to Newest" reverses it. Avatar logic must be reapplied after reorder.
164
- const reorderTimelineEvents = (order) => {
165
- const events = order === 'Newest to Oldest' ? [...originalTimelineEvents] : [...originalTimelineEvents].reverse();
166
- setTimelineEvents(applyAvatarLogic(events));
167
- };
168
162
  // Re-derives avatar/date-header boundaries after list mutations (filter, sort, paginate).
169
163
  const applyAvatarLogic = (events) => {
170
164
  let previousUser = null;
@@ -184,7 +178,6 @@ const Timeline = ({ caseNumber, sfdcCaseId }) => {
184
178
  if (historyItems.length > 0) {
185
179
  const transformedData = transformApiResponseToTimelineData({ historyItems });
186
180
  setTimelineEvents(transformedData);
187
- setOriginalTimelineEvents(transformedData);
188
181
  }
189
182
  }, [historyItems]);
190
183
  const futureDateValidator = (date) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CasePrivateNotes.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAa/D,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAqHtC;kBArHQ,gBAAgB;;;sBARM,MAAM,GAAG,SAAS;;;AAgIjD,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"CasePrivateNotes.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAa/D,UAAU,MAAM;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAyHtC;kBAzHQ,gBAAgB;;;sBARM,MAAM,GAAG,SAAS;;;AAoIjD,eAAe,gBAAgB,CAAC"}
@@ -49,8 +49,7 @@ function CasePrivateNotes(props) {
49
49
  }
50
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
51
  }, [notes]);
52
- const updateCase = (event) => __awaiter(this, void 0, void 0, function* () {
53
- event.preventDefault();
52
+ const persistNotes = () => __awaiter(this, void 0, void 0, function* () {
54
53
  if (!props.caseNumber) {
55
54
  return;
56
55
  }
@@ -65,10 +64,14 @@ function CasePrivateNotes(props) {
65
64
  setIsUpdating(false);
66
65
  }
67
66
  catch (e) {
68
- caseUpdateError.showError(e, t(`Failed to update notes`));
67
+ caseUpdateError.showFieldError(e, t('Private notes'), persistNotes);
69
68
  setIsUpdating(false);
70
69
  }
71
70
  });
71
+ const updateCase = (event) => __awaiter(this, void 0, void 0, function* () {
72
+ event.preventDefault();
73
+ yield persistNotes();
74
+ });
72
75
  const discardNotes = (event) => {
73
76
  event.preventDefault();
74
77
  setNotes(notes);
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAuB3B,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,sBA8LxC,CAAC"}
1
+ {"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAuB3B,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,sBA+LxC,CAAC"}
@@ -37,6 +37,7 @@ export const CaseSummary = (props) => {
37
37
  const { comments: caseComments } = useCaseComments({
38
38
  caseId: caseSalesforceId,
39
39
  skip: !caseSalesforceId,
40
+ first: 2000,
40
41
  });
41
42
  const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
42
43
  const isInternal = (_b = (_a = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data) === null || _a === void 0 ? void 0 : _a.isInternal) === null || _b === void 0 ? void 0 : _b.call(_a);
@@ -1 +1 @@
1
- {"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAmB5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,qBAmf/B;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"CaseGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseGroup.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAmB5E,UAAU,MAAM;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,iBAAS,SAAS,CAAC,KAAK,EAAE,MAAM,qBAwf/B;AAED,eAAe,SAAS,CAAC"}
@@ -115,7 +115,7 @@ function CaseGroup(props) {
115
115
  }
116
116
  catch (e) {
117
117
  setCaseGroupUpdating(false);
118
- caseUpdateError.showError(e, t(`Group failed to update`));
118
+ caseUpdateError.showFieldError(e, t('Group'), () => onCaseGroupUpdate(caseDetails));
119
119
  }
120
120
  });
121
121
  const onCaseGroupChange = (selection) => __awaiter(this, void 0, void 0, function* () {
@@ -225,6 +225,10 @@ function CaseGroup(props) {
225
225
  const onCaseGroupClear = () => __awaiter(this, void 0, void 0, function* () {
226
226
  if (canEditCase.alert())
227
227
  return;
228
+ if (isGroupMandatory && caseNumber) {
229
+ ToastNotification.addDangerMessage(t('Case Group is required for this account and cannot be removed.'));
230
+ return;
231
+ }
228
232
  const caseDetails = {
229
233
  groupNumber: '',
230
234
  groupName: '',
@@ -241,7 +245,7 @@ function CaseGroup(props) {
241
245
  }
242
246
  catch (e) {
243
247
  setCaseGroupUpdating(false);
244
- caseUpdateError.showError(e, t(`Group failed to update`));
248
+ caseUpdateError.showFieldError(e, t('Group'), onCaseGroupClear);
245
249
  return;
246
250
  }
247
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CaseLabels.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseLabels.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAWzD,MAAM,CAAC,OAAO,UAAU,UAAU,sBA2LjC"}
1
+ {"version":3,"file":"CaseLabels.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseLabels.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAYzD,MAAM,CAAC,OAAO,UAAU,UAAU,sBA4LjC"}
@@ -16,10 +16,12 @@ import { Trans, useTranslation } from 'react-i18next';
16
16
  import { Link } from 'react-router-dom';
17
17
  import { useCaseSelector } from '../../context/CaseContext';
18
18
  import { useCaseLabelLinks } from '../../hooks/useCaseLabelLinkMutations';
19
+ import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
19
20
  const NUM_VISIBLE_LABELS = 3;
20
21
  export default function CaseLabels() {
21
22
  var _a;
22
23
  const { t } = useTranslation();
24
+ const caseUpdateError = useCaseUpdateErrorMessage();
23
25
  const canEditCase = useCanEditCase();
24
26
  const { globalMetadataState: { loggedInUser, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
25
27
  const isOrgAdmin = loggedInUser.data.isOrgAdmin;
@@ -49,8 +51,8 @@ export default function CaseLabels() {
49
51
  ToastNotification.addSuccessMessage(t('Label has been added'));
50
52
  }
51
53
  }
52
- catch (_a) {
53
- ToastNotification.addDangerMessage(t('Failed to update labels'));
54
+ catch (e) {
55
+ caseUpdateError.showFieldError(e, t('Labels'), () => handleSelect(_event, labelId));
54
56
  }
55
57
  });
56
58
  const handleChipRemove = (labelId) => __awaiter(this, void 0, void 0, function* () {
@@ -64,8 +66,8 @@ export default function CaseLabels() {
64
66
  setAssignedLinks((prev) => prev.filter((l) => l.linkId !== link.linkId));
65
67
  ToastNotification.addSuccessMessage(t('Label has been removed'));
66
68
  }
67
- catch (_a) {
68
- ToastNotification.addDangerMessage(t('Failed to remove label'));
69
+ catch (e) {
70
+ caseUpdateError.showFieldError(e, t('Labels'), () => handleChipRemove(labelId));
69
71
  }
70
72
  });
71
73
  const selectedLabels = availableLabels.filter((l) => selectedLabelIds.includes(l.id));
@@ -68,7 +68,7 @@ function Fts(props) {
68
68
  }
69
69
  catch (e) {
70
70
  setFtsContactUpdating(false);
71
- caseUpdateError.showError(e, t(`Failed to update the case`));
71
+ caseUpdateError.showFieldError(e, t('24x7 Support'), () => onCaseFtsContactUpdate(caseDetails));
72
72
  }
73
73
  });
74
74
  const onCaseFtsUpdate = (caseDetails) => __awaiter(this, void 0, void 0, function* () {
@@ -82,7 +82,7 @@ function Fts(props) {
82
82
  }
83
83
  catch (e) {
84
84
  setFtsUpdating(false);
85
- caseUpdateError.showError(e, t(`Failed to update the case`));
85
+ caseUpdateError.showFieldError(e, t('24x7 Support'), () => onCaseFtsUpdate(caseDetails));
86
86
  }
87
87
  });
88
88
  const onFtsChange = (e) => __awaiter(this, void 0, void 0, function* () {
@@ -99,7 +99,7 @@ export function Cep(props) {
99
99
  ToastNotification.addSuccessMessage(t(`Consultant Engagement in Progress has been updated successfully`));
100
100
  }
101
101
  catch (e) {
102
- caseUpdateError.showError(e, t(`Consultant Engagement in Progress failed to update`));
102
+ caseUpdateError.showFieldError(e, t('Consultant Engagement in Progress'), () => cepUpdate(caseDetails));
103
103
  }
104
104
  });
105
105
  const onCancel = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"RHAssociatesSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/RHAssociatesSelector.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBAoN1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"RHAssociatesSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/RHAssociatesSelector.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAU5D,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBAqN1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -23,11 +23,13 @@ import React, { useContext, useRef, useState } from 'react';
23
23
  import { Token } from 'react-bootstrap-typeahead';
24
24
  import { Trans, useTranslation } from 'react-i18next';
25
25
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
26
+ import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
26
27
  import { addingNotifiedUsers, deleteNotifiedUsers, setNotifiedUser } from '../../reducers/CaseReducer';
27
28
  import { PDFContext } from '../CaseEditView/PDFContainer';
28
29
  import { ContactSelectorInternal } from '../shared/input/ContactSelectorInternal';
29
30
  function RHAssociatesSelector(props) {
30
31
  const { t } = useTranslation();
32
+ const caseUpdateError = useCaseUpdateErrorMessage();
31
33
  const { globalMetadataState: { loggedInUser, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
32
34
  const [isRHAssociatesUpdating, setIsRHAssociatesUpdating] = useState(false);
33
35
  const ability = useContext(AbilityContext);
@@ -51,7 +53,7 @@ function RHAssociatesSelector(props) {
51
53
  }
52
54
  catch (e) {
53
55
  setIsRHAssociatesUpdating(false);
54
- ToastNotification.addDangerMessage(t(`Red Hat associate failed to update`));
56
+ caseUpdateError.showFieldError(e, t('Red Hat associate'), () => onRhAssociateAdded(addedUsers));
55
57
  }
56
58
  });
57
59
  const onRhAssociateRemoved = (removedUsers) => __awaiter(this, void 0, void 0, function* () {
@@ -64,7 +66,7 @@ function RHAssociatesSelector(props) {
64
66
  }
65
67
  catch (e) {
66
68
  setIsRHAssociatesUpdating(false);
67
- ToastNotification.addDangerMessage(t(`Red Hat associate failed to get removed`));
69
+ caseUpdateError.showFieldError(e, t('Red Hat associate'), () => onRhAssociateRemoved(removedUsers));
68
70
  }
69
71
  });
70
72
  const onNotifiedUserChange = (selectedContacts_1, ...args_1) => __awaiter(this, [selectedContacts_1, ...args_1], void 0, function* (selectedContacts, throwTrackEventOnAdd = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAsdzC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAiBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAudzC;AAED,eAAe,mBAAmB,CAAC"}
@@ -28,6 +28,7 @@ import React, { useContext, useEffect, useRef, useState } from 'react';
28
28
  import { Token } from 'react-bootstrap-typeahead';
29
29
  import { Trans, useTranslation } from 'react-i18next';
30
30
  import { useCaseDispatch, useCaseSelector } from '../../../context/CaseContext';
31
+ import { useCaseUpdateErrorMessage } from '../../../hooks/useCaseUpdateErrorMessage';
31
32
  import { addingNotifiedUsers, deleteNotifiedUsers, setNotifiedUser, setSelectedCaseGroupUsers, } from '../../../reducers/CaseReducer';
32
33
  import { PDFContext } from '../../CaseEditView/PDFContainer';
33
34
  import { useCustomEmails } from '../../CaseEditView/Tabs/CaseDetails/useCustomEmails';
@@ -38,6 +39,7 @@ function CaseContactSelector(props) {
38
39
  const canSeeEmailNotifications = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS);
39
40
  const [isAssociatesUpdating, setIsAssociatesUpdating] = useState(false);
40
41
  const { t } = useTranslation();
42
+ const caseUpdateError = useCaseUpdateErrorMessage();
41
43
  const { accountNumber, caseNumber, contactSsoUsername, selectedNotificationContacts, selectedOwner, customEmailsList, product, selectedCaseGroupUsers, ownersCaseGroups, groupNumber, createdById, version, isCaseOwnerUpdating, } = useCaseSelector((state) => ({
42
44
  accountNumber: state.caseDetails.accountNumberRef,
43
45
  caseNumber: state.caseDetails.caseNumber,
@@ -78,7 +80,7 @@ function CaseContactSelector(props) {
78
80
  }
79
81
  catch (e) {
80
82
  setIsAssociatesUpdating(false);
81
- ToastNotification.addDangerMessage(t(`Contact failed to update`));
83
+ caseUpdateError.showFieldError(e, t('Contact'), () => onCaseContactAdded(addedUsers));
82
84
  }
83
85
  });
84
86
  const onCaseContactRemoved = (removedUsers) => __awaiter(this, void 0, void 0, function* () {
@@ -91,7 +93,7 @@ function CaseContactSelector(props) {
91
93
  }
92
94
  catch (e) {
93
95
  setIsAssociatesUpdating(false);
94
- ToastNotification.addDangerMessage(t(`Contact failed to update`));
96
+ caseUpdateError.showFieldError(e, t('Contact'), () => onCaseContactRemoved(removedUsers));
95
97
  }
96
98
  });
97
99
  const addCaseContact = (toAdd) => __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"EditDescription.d.ts","sourceRoot":"","sources":["../../../../src/components/EditDescription/EditDescription.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;CAC3B;AAUD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAgEpD"}
1
+ {"version":3,"file":"EditDescription.d.ts","sourceRoot":"","sources":["../../../../src/components/EditDescription/EditDescription.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+B,MAAM,OAAO,CAAC;AASpD,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;CAC3B;AAUD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAiEpD"}
@@ -16,6 +16,7 @@ import React, { useContext, useState } from 'react';
16
16
  import { Trans, useTranslation } from 'react-i18next';
17
17
  import { useParams } from 'react-router-dom';
18
18
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
19
+ import { useCaseUpdateErrorMessage } from '../../hooks/useCaseUpdateErrorMessage';
19
20
  import { setCaseDetails } from '../../reducers/CaseReducer';
20
21
  import { PDFContext } from '../CaseEditView/PDFContainer';
21
22
  const linkifiedDescription = (text) => {
@@ -26,6 +27,7 @@ const linkifiedDescription = (text) => {
26
27
  };
27
28
  export default function EditDescription(props) {
28
29
  const { t } = useTranslation();
30
+ const caseUpdateError = useCaseUpdateErrorMessage();
29
31
  const { caseNumber } = useParams();
30
32
  const { description, hasLargeCaseDescription } = useCaseSelector((state) => ({
31
33
  description: state.caseDetails.description,
@@ -50,7 +52,7 @@ export default function EditDescription(props) {
50
52
  catch (e) {
51
53
  setLocalDescription(description);
52
54
  setIsUpdating(false);
53
- ToastNotification.addDangerMessage(t('Case description failed to update'));
55
+ caseUpdateError.showFieldError(e, t('Description'), onDescriptionSave);
54
56
  }
55
57
  });
56
58
  const onDescriptionChange = (event) => {
@@ -183,7 +183,7 @@ export default function UpdateSeverityModal(props) {
183
183
  });
184
184
  }
185
185
  catch (err) {
186
- caseUpdateError.showError(err, t(`Failed to update the case`));
186
+ caseUpdateError.showFieldError(err, t('24x7 Support'), updateCaseFtsInfo);
187
187
  }
188
188
  finally {
189
189
  onClose();
@@ -241,7 +241,7 @@ export default function UpdateSeverityModal(props) {
241
241
  contentType: 'markdown',
242
242
  updateDiscussionState: true,
243
243
  });
244
- caseUpdateError.showError(e, t(`Failed to update case status. Please try again`));
244
+ caseUpdateError.showFieldError(e, t('Status'));
245
245
  yield updateSeverityViaGraphQL({
246
246
  status: 'Waiting on Customer Action Required',
247
247
  severity: updatedCaseDetails['severity'],
@@ -249,7 +249,7 @@ export default function UpdateSeverityModal(props) {
249
249
  }
250
250
  }
251
251
  catch (e) {
252
- caseUpdateError.showError(e, t(`Couldn't post severity update comment. Please try again`));
252
+ caseUpdateError.showFieldError(e, t('Severity'), onSubmit);
253
253
  yield updateSeverityViaGraphQL({
254
254
  severity: caseDetails.caseSeverity,
255
255
  });
@@ -262,7 +262,7 @@ export default function UpdateSeverityModal(props) {
262
262
  catch (e) {
263
263
  setSeverityUpdating(caseOverviewDispatch, false);
264
264
  onClose();
265
- caseUpdateError.showError(e, t('Severity failed to update'));
265
+ caseUpdateError.showFieldError(e, t('Severity'));
266
266
  yield updateSeverityViaGraphQL({
267
267
  severity: caseDetails.caseSeverity,
268
268
  });
@@ -123,13 +123,40 @@ button,
123
123
  word-break: break-word;
124
124
  }
125
125
 
126
- .support-comment .comment-body ul {
127
- list-style: '- ';
128
- padding-left: 1.5em;
126
+ .support-comment .comment-body ul,
127
+ .support-comment .comment-body ol,
128
+ .support-comment .comment-richtext ul,
129
+ .support-comment .comment-richtext ol {
130
+ margin: 0;
131
+ margin-bottom: 1rem;
132
+ padding: 0;
133
+ }
134
+
135
+ .support-comment .comment-body ul,
136
+ .support-comment .comment-richtext ul {
137
+ margin-left: 1.5rem;
138
+ list-style: disc outside;
139
+ }
140
+
141
+ .support-comment .comment-body ul ul,
142
+ .support-comment .comment-richtext ul ul {
143
+ list-style: circle outside;
144
+ }
145
+
146
+ .support-comment .comment-body ul ul ul,
147
+ .support-comment .comment-richtext ul ul ul {
148
+ list-style: square outside;
149
+ }
150
+
151
+ .support-comment .comment-body ol,
152
+ .support-comment .comment-richtext ol {
153
+ margin-left: 1.5rem;
154
+ list-style: decimal outside;
129
155
  }
130
156
 
131
- .support-comment .comment-body ol {
132
- padding-left: 1.5em;
157
+ .support-comment .comment-body ol ol,
158
+ .support-comment .comment-richtext ol ol {
159
+ list-style: lower-alpha outside;
133
160
  }
134
161
 
135
162
  #case-description ul {
@@ -355,14 +382,46 @@ input[aria-invalid='true'].pf-v6-c-form-control {
355
382
  }
356
383
 
357
384
  .comment-body ul,
385
+ .comment-body ol,
386
+ .comment-richtext ul,
387
+ .comment-richtext ol,
388
+ .markdown-preview ul,
389
+ .markdown-preview ol {
390
+ margin: 0;
391
+ margin-bottom: 1rem;
392
+ padding: 0;
393
+ }
394
+
395
+ .comment-body ul,
396
+ .comment-richtext ul,
358
397
  .markdown-preview ul {
359
- list-style: '- ';
360
- padding-left: 1.5em;
398
+ margin-left: 1.5rem;
399
+ list-style: disc outside;
400
+ }
401
+
402
+ .comment-body ul ul,
403
+ .comment-richtext ul ul,
404
+ .markdown-preview ul ul {
405
+ list-style: circle outside;
406
+ }
407
+
408
+ .comment-body ul ul ul,
409
+ .comment-richtext ul ul ul,
410
+ .markdown-preview ul ul ul {
411
+ list-style: square outside;
361
412
  }
362
413
 
363
414
  .comment-body ol,
415
+ .comment-richtext ol,
364
416
  .markdown-preview ol {
365
- padding-left: 1.5em;
417
+ margin-left: 1.5rem;
418
+ list-style: decimal outside;
419
+ }
420
+
421
+ .comment-body ol ol,
422
+ .comment-richtext ol ol,
423
+ .markdown-preview ol ol {
424
+ list-style: lower-alpha outside;
366
425
  }
367
426
 
368
427
  .comment-body .ql-align-center {
@@ -397,6 +456,19 @@ input[aria-invalid='true'].pf-v6-c-form-control {
397
456
  padding-left: 15em;
398
457
  }
399
458
 
459
+ .comment-body p,
460
+ .comment-richtext p {
461
+ margin-bottom: 1rem;
462
+ margin-top: 0;
463
+ }
464
+
465
+ .comment-body ul ul,
466
+ .comment-body ol ol,
467
+ .comment-body ul ol,
468
+ .comment-body ol ul {
469
+ margin-left: 1.5rem;
470
+ }
471
+
400
472
  .tab-title-with-badge {
401
473
  display: flex;
402
474
  align-items: center;
@@ -449,3 +521,77 @@ input[aria-invalid='true'].pf-v6-c-form-control {
449
521
  .remove-watcher-button {
450
522
  max-width: 15rem;
451
523
  }
524
+
525
+ .load-more-skeleton {
526
+ display: block;
527
+ margin-bottom: 1rem;
528
+ padding: 1.4rem 1.3rem 0.8rem 1.5rem;
529
+ background-color: #fff;
530
+ border: 1px solid #d2d2d2;
531
+ border-left: 4px solid #6a6e73;
532
+ overflow: hidden;
533
+ }
534
+
535
+ .load-more-skeleton__header {
536
+ display: flex;
537
+ align-items: center;
538
+ margin-bottom: 16px;
539
+ }
540
+
541
+ .load-more-skeleton__avatar {
542
+ width: 32px;
543
+ height: 32px;
544
+ border-radius: 50%;
545
+ background-color: #e0e0e0;
546
+ flex-shrink: 0;
547
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
548
+ }
549
+
550
+ .load-more-skeleton__name {
551
+ width: 120px;
552
+ height: 14px;
553
+ border-radius: 4px;
554
+ background-color: #e0e0e0;
555
+ margin-left: 12px;
556
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
557
+ }
558
+
559
+ .load-more-skeleton__timestamp {
560
+ width: 140px;
561
+ height: 12px;
562
+ border-radius: 4px;
563
+ background-color: #e0e0e0;
564
+ margin-left: auto;
565
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
566
+ }
567
+
568
+ .load-more-skeleton__body {
569
+ padding-left: 44px;
570
+ }
571
+
572
+ .load-more-skeleton__line {
573
+ height: 14px;
574
+ border-radius: 4px;
575
+ background-color: #e0e0e0;
576
+ animation: skeleton-pulse 1.5s ease-in-out infinite;
577
+ }
578
+
579
+ .load-more-skeleton__line + .load-more-skeleton__line {
580
+ margin-top: 10px;
581
+ }
582
+
583
+ @keyframes skeleton-pulse {
584
+ 0%,
585
+ 100% {
586
+ opacity: 0.6;
587
+ }
588
+ 50% {
589
+ opacity: 1;
590
+ }
591
+ }
592
+
593
+ .infinite-scroll-end-status {
594
+ text-align: center;
595
+ margin-top: 16px;
596
+ color: var(--pf-t--global--color--status--danger--default, #c9190b);
597
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"getEscalationDetails.d.ts","sourceRoot":"","sources":["../../../../src/graphql/queries/getEscalationDetails.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,uCA6BlC,CAAC"}
1
+ {"version":3,"file":"getEscalationDetails.d.ts","sourceRoot":"","sources":["../../../../src/graphql/queries/getEscalationDetails.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,uCAkClC,CAAC"}
@@ -21,6 +21,11 @@ export const GET_ESCALATION_DETAILS = gql `
21
21
  value
22
22
  }
23
23
  }
24
+ ... on RedHatSupportUser {
25
+ Name {
26
+ value
27
+ }
28
+ }
24
29
  }
25
30
  }
26
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"caseCommentsQuery.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/caseCommentsQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAEhF,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,6BAA6B,EAAE,sBAAsB,CAkDtG,CAAC"}
1
+ {"version":3,"file":"caseCommentsQuery.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/caseCommentsQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAC;AAEhF,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,6BAA6B,EAAE,sBAAsB,CAuDtG,CAAC"}
@@ -4,10 +4,11 @@ export const GET_CASE_COMMENTS = gql `
4
4
  $filter: RedHatSupportCaseComment__c_Filter!
5
5
  $orderBy: RedHatSupportCaseComment__c_OrderBy
6
6
  $first: Int
7
+ $after: String
7
8
  ) {
8
9
  redhat_support_uiapi {
9
10
  query {
10
- RedHatSupportCaseComment__c(where: $filter, orderBy: $orderBy, first: $first) {
11
+ RedHatSupportCaseComment__c(where: $filter, orderBy: $orderBy, first: $first, after: $after) {
11
12
  edges {
12
13
  node {
13
14
  Id
@@ -45,6 +46,10 @@ export const GET_CASE_COMMENTS = gql `
45
46
  }
46
47
  }
47
48
  }
49
+ pageInfo {
50
+ hasNextPage
51
+ endCursor
52
+ }
48
53
  }
49
54
  }
50
55
  }
@@ -1,7 +1,8 @@
1
1
  export { CREATE_CASE_COMMENT } from '@rh-support/utils';
2
2
  export { GET_CASE_COMMENTS } from './caseCommentsQuery';
3
3
  export { deriveCreatedByType, deriveIsPublic, mapCaseCommentNode, mapCaseCommentsResponse, mapVisibility, } from './mapCaseComment';
4
- export type { ICaseCommentEdge, ICaseCommentNode, ICaseCommentsConnection, ICreateCaseCommentResponse, ICreateCaseCommentVariables, IGetCaseCommentsQueryResponse, IUseCaseCommentsOptions, } from './types';
4
+ export type { ICaseCommentEdge, ICaseCommentNode, ICaseCommentsConnection, ICreateCaseCommentResponse, ICreateCaseCommentVariables, IGetCaseCommentsQueryResponse, IPageInfo, IUseCaseCommentsOptions, } from './types';
5
+ export type { IUseCaseCommentsReturn } from './useCaseComments';
5
6
  export { useCaseComments } from './useCaseComments';
6
7
  export { useCreateCaseComment } from './useCreateCaseComment';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useCaseComments/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC7B,SAAS,EACT,uBAAuB,GAC1B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}