@rh-support/troubleshoot 2.7.54 → 2.7.57

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAoB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,qBA+QzC"}
1
+ {"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAoB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,qBAkRzC"}
@@ -126,6 +126,8 @@ export default function Case(props) {
126
126
  if (currentCaseRef.current !== targetCaseNumber)
127
127
  return;
128
128
  const caseSalesforceId = typeof (caseDetails === null || caseDetails === void 0 ? void 0 : caseDetails.id) === 'string' ? caseDetails.id : undefined;
129
+ // Case watchers are loaded when the Management tab / CaseContactSelector mounts
130
+ // (local pill state owns adds/deletes after that).
129
131
  if (canSeeRMEs && caseSalesforceId) {
130
132
  fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), caseSalesforceId, apolloClient, true, includeSecureSupportCases);
131
133
  }
@@ -12,7 +12,7 @@ import CaseLabels from '../../../CaseInformation/CaseLabels';
12
12
  import Fts from '../../../CaseInformation/Fts';
13
13
  // import { Cep } from '../../../CaseManagement/Cep';
14
14
  // import { RHAssociatesSelector } from '../../../CaseManagement/RHAssociatesSelector';
15
- // import CaseContactSelector from '../../../CaseManagement/SendNotifications/CaseContactSelector';
15
+ import CaseContactSelector from '../../../CaseManagement/SendNotifications/CaseContactSelector';
16
16
  import { PartnerCaseHelper } from '../../ShareCase/PartnerCaseHelper';
17
17
  // TODO: Uncomment when Share with partner is re-enabled
18
18
  // import { ShareWithPartner } from '../../ShareCase/PartnerShare';
@@ -39,11 +39,7 @@ export default function CaseDetailsManagement(props) {
39
39
  // const accountNumber = caseState.caseDetails.accountNumber;
40
40
  const showCaseGroupField = useShowCaseGroupField();
41
41
  const ability = useContext(AbilityContext);
42
- // const canSeeEmailNotifications = ability.can(
43
- // resourceActions.PATCH,
44
- // resources.CASE_DETAILS,
45
- // CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS
46
- // );
42
+ const canSeeEmailNotifications = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS);
47
43
  const canSeeInternalStatus = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_INTERNAL_STATUS);
48
44
  const canSeeSBRGroups = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SBR_GROUP);
49
45
  return (React.createElement(React.Fragment, null,
@@ -64,6 +60,7 @@ export default function CaseDetailsManagement(props) {
64
60
  React.createElement(FlexItem, { flex: { default: 'flex_1' } },
65
61
  React.createElement(CaseLabels, null))),
66
62
  React.createElement(CaseReferenceNumber, null),
63
+ canSeeEmailNotifications && React.createElement(CaseContactSelector, null),
67
64
  React.createElement(Fts, { inlineEditable: true }),
68
65
  React.createElement(SFDCUrl, null)))));
69
66
  }
@@ -14,6 +14,8 @@ import CaseLabelsCreate from './CaseLabelsCreate';
14
14
  import CaseLanguageSelector from './CaseLanguageSelector';
15
15
  // import { Cep } from './Cep';
16
16
  import OpenReferenceNumber from './OpenReferenceNumber';
17
+ // import { RHAssociatesSelector } from './RHAssociatesSelector';
18
+ import CaseContactSelector from './SendNotifications/CaseContactSelector';
17
19
  export default function CaseManagement(props) {
18
20
  const caseDispatch = useCaseDispatch();
19
21
  const showCaseGroupField = useShowCaseGroupField();
@@ -36,5 +38,6 @@ export default function CaseManagement(props) {
36
38
  React.createElement(Grid, { hasGutter: true },
37
39
  React.createElement(GridItem, { span: 12, xl2: 12, className: "pf-v6-u-mb-xs" },
38
40
  React.createElement(CaseLabelsCreate, null))),
41
+ React.createElement(CaseContactSelector, null),
39
42
  React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true })));
40
43
  }
@@ -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;AAiBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA4dzC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAmBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAmmBzC;AAED,eAAe,mBAAmB,CAAC"}
@@ -7,11 +7,13 @@ 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 { Button, Tooltip, TooltipPosition } from '@patternfly/react-core';
12
+ import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
11
13
  import { CaseContactsSelectorExternal, getHydraContactLabel, PromisifyModal, ToastNotification, usePrevious, } from '@rh-support/components';
12
14
  import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
13
15
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
14
- import { dtmTrackEventCaseStepEncountered } from '@rh-support/utils';
16
+ import { dtmTrackEventCaseStepEncountered, fetchCaseWatcherContactsByCaseNumber, isCaseWatcherLimitExceededError, } from '@rh-support/utils';
15
17
  import difference from 'lodash/difference';
16
18
  import differenceBy from 'lodash/differenceBy';
17
19
  import filter from 'lodash/filter';
@@ -29,11 +31,13 @@ import { Token } from 'react-bootstrap-typeahead';
29
31
  import { Trans, useTranslation } from 'react-i18next';
30
32
  import { useCaseDispatch, useCaseSelector } from '../../../context/CaseContext';
31
33
  import { useCaseUpdateErrorMessage } from '../../../hooks/useCaseUpdateErrorMessage';
32
- import { addingNotifiedUsers, deleteNotifiedUsers, setNotifiedUser, setSelectedCaseGroupUsers, } from '../../../reducers/CaseReducer';
34
+ import { MAX_NOTIFICATION_CONTACTS, MAX_NOTIFICATION_CONTACTS_WITH_OVERFLOW } from '../../../reducers/CaseConstNTypes';
35
+ import { createCaseWatchers, deleteCaseWatchers, setNotifiedUser, setSelectedCaseGroupUsers, } from '../../../reducers/CaseReducer';
33
36
  import { PDFContext } from '../../CaseEditView/PDFContainer';
34
37
  import { useCustomEmails } from '../../CaseEditView/Tabs/CaseDetails/useCustomEmails';
35
38
  import { AddContactToGroupModal } from './AddContactToGroupModal';
36
39
  import { NonOrgCaseNotifyeesSelector } from './NonOrgCaseNotifyeesSelector';
40
+ import { SendNotificationsPopOver } from './SendNotificationsPopOver';
37
41
  function CaseContactSelector(props) {
38
42
  var _a;
39
43
  const ability = useContext(AbilityContext);
@@ -41,11 +45,12 @@ function CaseContactSelector(props) {
41
45
  const [isAssociatesUpdating, setIsAssociatesUpdating] = useState(false);
42
46
  const { t } = useTranslation();
43
47
  const caseUpdateError = useCaseUpdateErrorMessage();
44
- const { accountNumber, caseNumber, contactSsoUsername, selectedNotificationContacts, selectedOwner, customEmailsList, product, selectedCaseGroupUsers, ownersCaseGroups, groupNumber, createdById, version, isCaseOwnerUpdating, selectedAccountDetails, } = useCaseSelector((state) => ({
48
+ const apolloClient = useApolloClient();
49
+ const { accountNumber, caseNumber, caseSalesforceId, contactSsoUsername, selectedOwner, customEmailsList, product, selectedCaseGroupUsers, ownersCaseGroups, groupNumber, createdById, version, isCaseOwnerUpdating, selectedAccountDetails, } = useCaseSelector((state) => ({
45
50
  accountNumber: state.caseDetails.accountNumberRef,
46
51
  caseNumber: state.caseDetails.caseNumber,
52
+ caseSalesforceId: state.caseDetails.id,
47
53
  contactSsoUsername: state.caseDetails.contactSSOName,
48
- selectedNotificationContacts: state.selectedNotificationContacts,
49
54
  selectedOwner: state.selectedOwner,
50
55
  customEmailsList: state.customEmailsList,
51
56
  selectedCaseGroupUsers: state.selectedCaseGroupUsers,
@@ -72,51 +77,155 @@ function CaseContactSelector(props) {
72
77
  const nonOrgTypeaheadRef = useRef(null);
73
78
  const canEditCase = useCanEditCase();
74
79
  const toolTipRef = useRef();
75
- const onCaseContactAdded = (addedUsers) => __awaiter(this, void 0, void 0, function* () {
76
- const addesUsersSso = map(addedUsers, (u) => ({ ssoUsername: u.ssoUsername }));
80
+ const [localNotificationContacts, setLocalNotificationContacts] = useState([]);
81
+ const localNotificationContactsRef = useRef([]);
82
+ localNotificationContactsRef.current = localNotificationContacts;
83
+ const hasLocalEditsRef = useRef(false);
84
+ const apolloClientRef = useRef(apolloClient);
85
+ apolloClientRef.current = apolloClient;
86
+ const caseDispatchRef = useRef(caseDispatch);
87
+ caseDispatchRef.current = caseDispatch;
88
+ const syncLocalNotificationContacts = (contacts) => {
89
+ hasLocalEditsRef.current = true;
90
+ localNotificationContactsRef.current = contacts;
91
+ setLocalNotificationContacts(contacts);
92
+ setNotifiedUser(caseDispatchRef.current, contacts);
93
+ };
94
+ const clearLocalNotificationContacts = () => {
95
+ hasLocalEditsRef.current = false;
96
+ localNotificationContactsRef.current = [];
97
+ setLocalNotificationContacts([]);
98
+ setNotifiedUser(caseDispatchRef.current, []);
99
+ };
100
+ // GET watchers only when Management tab (this component) mounts — never on option select / create watcher.
101
+ useEffect(() => {
102
+ hasLocalEditsRef.current = false;
103
+ if (!caseNumber || !canSeeEmailNotifications) {
104
+ clearLocalNotificationContacts();
105
+ return;
106
+ }
107
+ let cancelled = false;
108
+ (() => __awaiter(this, void 0, void 0, function* () {
109
+ try {
110
+ const contacts = yield fetchCaseWatcherContactsByCaseNumber(apolloClientRef.current, caseNumber);
111
+ if (cancelled)
112
+ return;
113
+ if (hasLocalEditsRef.current) {
114
+ const local = localNotificationContactsRef.current;
115
+ const serverBySso = new Map(contacts.map((c) => [c.ssoUsername, c]));
116
+ const mergedLocal = local.map((c) => {
117
+ const server = serverBySso.get(c.ssoUsername);
118
+ return server ? Object.assign(Object.assign({}, c), server) : c;
119
+ });
120
+ const localSso = new Set(local.map((c) => c.ssoUsername));
121
+ const onlyOnServer = contacts.filter((c) => !localSso.has(c.ssoUsername));
122
+ const merged = uniqBy([...onlyOnServer, ...mergedLocal], 'ssoUsername');
123
+ // Hydrate from GET without marking as a user edit.
124
+ localNotificationContactsRef.current = merged;
125
+ setLocalNotificationContacts(merged);
126
+ setNotifiedUser(caseDispatchRef.current, merged);
127
+ return;
128
+ }
129
+ localNotificationContactsRef.current = contacts;
130
+ setLocalNotificationContacts(contacts);
131
+ setNotifiedUser(caseDispatchRef.current, contacts);
132
+ }
133
+ catch (_a) { }
134
+ }))();
135
+ return () => {
136
+ cancelled = true;
137
+ hasLocalEditsRef.current = false;
138
+ localNotificationContactsRef.current = [];
139
+ setLocalNotificationContacts([]);
140
+ setNotifiedUser(caseDispatchRef.current, []);
141
+ };
142
+ // eslint-disable-next-line react-hooks/exhaustive-deps
143
+ }, [caseNumber, canSeeEmailNotifications]);
144
+ const getSelectedNotificationCount = () => customEmailsList.data.length + localNotificationContacts.length;
145
+ const addCaseContact = (toAdd) => __awaiter(this, void 0, void 0, function* () {
146
+ if (!toAdd.length)
147
+ return;
148
+ const currentCount = getSelectedNotificationCount();
149
+ if (currentCount >= MAX_NOTIFICATION_CONTACTS_WITH_OVERFLOW) {
150
+ clearNonOrgTypeahead();
151
+ return;
152
+ }
153
+ const contactsBeforeAdd = localNotificationContactsRef.current;
154
+ const alreadyAtLimit = currentCount >= MAX_NOTIFICATION_CONTACTS;
155
+ const toAddSso = new Set(map(toAdd, (c) => c.ssoUsername));
156
+ // Show pills from local selection immediately (before any create / GET).
157
+ const optimistic = uniqBy([
158
+ ...contactsBeforeAdd,
159
+ ...toAdd.map((c) => (Object.assign(Object.assign(Object.assign({}, c), { isInternal: false }), (alreadyAtLimit ? { isNotificationOverLimit: true } : {})))),
160
+ ], 'ssoUsername');
161
+ syncLocalNotificationContacts(optimistic);
162
+ clearNonOrgTypeahead();
163
+ if (isEmpty(caseNumber)) {
164
+ return;
165
+ }
166
+ if (!caseSalesforceId) {
167
+ syncLocalNotificationContacts(contactsBeforeAdd);
168
+ throw new Error('Case Salesforce Id is required to add a watcher');
169
+ }
170
+ if (alreadyAtLimit) {
171
+ return;
172
+ }
77
173
  setIsAssociatesUpdating(true);
78
174
  try {
79
- yield addingNotifiedUsers(caseDispatch, caseNumber, addesUsersSso);
175
+ const created = yield createCaseWatchers(caseDispatch, apolloClient, caseSalesforceId, toAdd);
176
+ const merged = localNotificationContactsRef.current.map((contact) => {
177
+ const match = find(created, (c) => c.ssoUsername === contact.ssoUsername);
178
+ return match ? Object.assign(Object.assign(Object.assign({}, contact), match), { isInternal: false }) : contact;
179
+ });
180
+ const mergedSso = new Set(map(merged, (c) => c.ssoUsername));
181
+ const missing = filter(created, (c) => !mergedSso.has(c.ssoUsername)).map((c) => (Object.assign(Object.assign({}, c), { isInternal: false })));
182
+ syncLocalNotificationContacts(uniqBy([...merged, ...missing], 'ssoUsername'));
80
183
  setIsAssociatesUpdating(false);
81
184
  ToastNotification.addSuccessMessage(t(`Contact has been successfully added`));
82
185
  }
83
186
  catch (e) {
84
187
  setIsAssociatesUpdating(false);
85
- caseUpdateError.showFieldError(e, t('Contact'), () => onCaseContactAdded(addedUsers));
188
+ if (isCaseWatcherLimitExceededError(e)) {
189
+ syncLocalNotificationContacts(localNotificationContactsRef.current.map((c) => toAddSso.has(c.ssoUsername) ? Object.assign(Object.assign({}, c), { isNotificationOverLimit: true }) : c));
190
+ return;
191
+ }
192
+ syncLocalNotificationContacts(filter(localNotificationContactsRef.current, (c) => !toAddSso.has(c.ssoUsername)));
193
+ caseUpdateError.showFieldError(e, t('Contact'), () => addCaseContact(toAdd));
194
+ throw e;
86
195
  }
87
196
  });
88
- const onCaseContactRemoved = (removedUsers) => __awaiter(this, void 0, void 0, function* () {
89
- const ssoUsers = map(removedUsers, (u) => u.ssoUsername);
197
+ const removeCaseContact = (toRemove) => __awaiter(this, void 0, void 0, function* () {
198
+ const current = localNotificationContactsRef.current;
199
+ const toRemoveWithWatcherIds = map(toRemove, (item) => {
200
+ const fromState = find(current, (c) => c.ssoUsername === item.ssoUsername);
201
+ return (fromState !== null && fromState !== void 0 ? fromState : item);
202
+ });
203
+ const toRemoveSso = map(toRemoveWithWatcherIds, (item) => item.ssoUsername);
204
+ const before = current;
205
+ syncLocalNotificationContacts(filter(current, (item) => !toRemoveSso.includes(item.ssoUsername)));
206
+ const persistedToRemove = filter(toRemoveWithWatcherIds, (c) => Boolean(c.caseWatcherId));
207
+ if (isEmpty(caseNumber) || persistedToRemove.length === 0) {
208
+ return;
209
+ }
90
210
  setIsAssociatesUpdating(true);
91
211
  try {
92
- yield deleteNotifiedUsers(caseDispatch, caseNumber, ssoUsers);
212
+ yield deleteCaseWatchers(caseDispatch, apolloClient, persistedToRemove);
93
213
  setIsAssociatesUpdating(false);
94
214
  ToastNotification.addSuccessMessage(t(`Contact has been successfully removed`));
95
215
  }
96
216
  catch (e) {
97
217
  setIsAssociatesUpdating(false);
98
- caseUpdateError.showFieldError(e, t('Contact'), () => onCaseContactRemoved(removedUsers));
99
- }
100
- });
101
- const addCaseContact = (toAdd) => __awaiter(this, void 0, void 0, function* () {
102
- const newContacts = [...selectedNotificationContacts, ...toAdd];
103
- if (!isEmpty(caseNumber)) {
104
- yield onCaseContactAdded(toAdd);
105
- }
106
- clearNonOrgTypeahead();
107
- toAdd.length && setNotifiedUser(caseDispatch, uniqBy([...newContacts], 'ssoUsername'));
108
- });
109
- const removeCaseContact = (toRemove) => __awaiter(this, void 0, void 0, function* () {
110
- const toRemoveSso = map(toRemove, (item) => item.ssoUsername);
111
- const newContacts = filter(selectedNotificationContacts, (item) => !toRemoveSso.includes(item.ssoUsername));
112
- if (!isEmpty(caseNumber)) {
113
- yield onCaseContactRemoved(toRemove);
218
+ syncLocalNotificationContacts(before);
219
+ caseUpdateError.showFieldError(e, t('Contact'), () => removeCaseContact(toRemove));
220
+ throw e;
114
221
  }
115
- toRemove.length && setNotifiedUser(caseDispatch, uniqBy([...newContacts], 'ssoUsername'));
116
222
  });
223
+ const totalSelectedContactsCount = getSelectedNotificationCount();
224
+ const isOverContactLimit = totalSelectedContactsCount > MAX_NOTIFICATION_CONTACTS;
117
225
  const processCaseContacts = (selectedContacts) => __awaiter(this, void 0, void 0, function* () {
118
- const toAdd = filter(differenceBy(selectedContacts, selectedNotificationContacts, 'ssoUsername'), (item) => item.ssoUsername !== contactSsoUsername);
119
- const toRemove = filter(intersectionBy(selectedContacts, selectedNotificationContacts, 'ssoUsername'), (item) => !item.isInternal && item.ssoUsername !== contactSsoUsername);
226
+ const toAdd = filter(differenceBy(selectedContacts, localNotificationContacts, 'ssoUsername'), (item) => item.ssoUsername !== contactSsoUsername);
227
+ // Chip X / toggle: Typeahead passes only the changed contact(s), not the full selection.
228
+ const toRemove = filter(intersectionBy(selectedContacts, localNotificationContacts, 'ssoUsername'), (item) => item.ssoUsername !== contactSsoUsername);
120
229
  (toAdd.length || toRemove.length) && clearErrorState();
121
230
  if ((toAdd || []).length > 0) {
122
231
  if (loggedInUserRights.data.isOrgAdmin()) {
@@ -198,43 +307,40 @@ function CaseContactSelector(props) {
198
307
  });
199
308
  const onNotifiedUserChange = (...args_1) => __awaiter(this, [...args_1], void 0, function* (selectedContacts = [], throwTrackEvent = false) {
200
309
  // check if selection changed
201
- const alreadySelected = [
202
- ...customEmailsList.data,
203
- ...filter(selectedNotificationContacts, (c) => !c.isInternal),
204
- ];
310
+ const alreadySelected = [...customEmailsList.data, ...localNotificationContacts];
205
311
  if (alreadySelected.length !== 1 && xor(alreadySelected, selectedContacts).length === 0)
206
312
  return;
207
313
  if (canEditCase.alert())
208
314
  return;
209
315
  const allSelectedContacts = [...selectedContacts];
210
- const selectedCustomEmails = remove(allSelectedContacts, (item) => item.customOption || item.emailAddress).map((item) => item.label || item.emailAddress || item.ssoUsername);
316
+ const selectedCustomEmails = remove(allSelectedContacts, (item) => item.customOption || (item.emailAddress && !item.ssoUsername)).map((item) => item.label || item.emailAddress || item.ssoUsername);
211
317
  yield processCustomEmails(selectedCustomEmails);
212
318
  yield processCaseContacts(allSelectedContacts);
213
319
  if (throwTrackEvent) {
214
320
  dtmTrackEventCaseStepEncountered('follow', caseNumber, product, version);
215
321
  }
216
322
  });
217
- /** Reset all non-internal selectedNotificationContacts when selected account number changes */
323
+ /** Reset notification contacts when selected account number changes */
218
324
  useEffect(() => {
219
325
  if (accountNumber === previousAccountNumber || isEmpty(previousAccountNumber))
220
326
  return;
221
- setNotifiedUser(caseDispatch, []);
327
+ syncLocalNotificationContacts([]);
222
328
  }, [accountNumber, caseDispatch, previousAccountNumber]);
223
329
  const isCurrentUserCaseContact = contactSsoUsername === loggedInUser.data.ssoUsername;
224
330
  const isCurrentUserCaseCreator = loggedInUserRights.data.getUserFullName() === createdById;
225
- const isCurrentUserSelectedExternalNotifiedUser = () => !!find(selectedNotificationContacts, (c) => !c.isInternal && c.ssoUsername === loggedInUser.data.ssoUsername);
331
+ const isCurrentUserSelectedExternalNotifiedUser = () => !!find(localNotificationContacts, (c) => !c.isInternal && c.ssoUsername === loggedInUser.data.ssoUsername);
226
332
  const showAddWatchButton = () => !isCurrentUserCaseContact &&
227
333
  loggedInUserRights.data.isExternal() &&
228
334
  !isCurrentUserSelectedExternalNotifiedUser();
229
335
  const showRemoveWatchButton = () => loggedInUserRights.data.isExternal() &&
230
336
  (isCurrentUserSelectedExternalNotifiedUser() || isCurrentUserCaseContact);
231
337
  const addCurrentUser = () => __awaiter(this, void 0, void 0, function* () {
232
- onNotifiedUserChange([...selectedNotificationContacts, ...customEmailsList.data, loggedInUser.data], true);
338
+ onNotifiedUserChange([...localNotificationContacts, ...customEmailsList.data, loggedInUser.data], true);
233
339
  });
234
340
  const removeCurrentUser = () => {
235
341
  if (isCurrentUserSelectedExternalNotifiedUser()) {
236
342
  onNotifiedUserChange([
237
- ...filter(selectedNotificationContacts, (contact) => contact.ssoUsername !== loggedInUser.data.ssoUsername),
343
+ ...filter(localNotificationContacts, (contact) => contact.ssoUsername !== loggedInUser.data.ssoUsername),
238
344
  ...customEmailsList.data,
239
345
  ]);
240
346
  }
@@ -266,40 +372,38 @@ function CaseContactSelector(props) {
266
372
  if (!canSeeEmailNotifications)
267
373
  return React.createElement(React.Fragment, null);
268
374
  return (React.createElement("div", { className: "form-group pf-v6-u-mb-md" },
269
- React.createElement("label", { className: "react-typeahead-label-wrapper", htmlFor: "get-support-notifications" },
375
+ React.createElement("label", { htmlFor: "open-case-notifications" },
270
376
  React.createElement(Trans, null, "Send notifications"),
271
- loggedInUserRights.data.isOrgAdmin() ? (React.createElement(React.Fragment, null,
272
- React.createElement("div", { "data-tracking-id": "send-notification-listbox" },
273
- React.createElement(CaseContactsSelectorExternal, { isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, groupContactsAndEmails: true, allowCustomEmailAdd: true, contactSsoUsername: contactSsoUsername !== null && contactSsoUsername !== void 0 ? contactSsoUsername : '', loggedInUserRights: loggedInUserRights.data, selectedAccountNumber: accountNumber, salesforceAccountId: (_a = selectedAccountDetails.data) === null || _a === void 0 ? void 0 : _a.salesforceAccountId, selected: [
274
- ...customEmailsList.data,
275
- ...filter(selectedNotificationContacts, (c) => !c.isInternal),
276
- ], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, placeholder: t('Search for an email address or username of the person you want to notify'), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating ||
277
- customEmailsList.isFetching ||
278
- isUpdatingCustomEmails ||
279
- isCaseOwnerUpdating, isExportingPDF: isExportingPDF, customEmails: accountCustomEmails.data || [], canAddNew: onAddNew, getCreateNewText: getCreateNewText })),
280
- !showGroupPermissionError && !showAccountPermissionError && (React.createElement("p", { className: "form-instructions" },
281
- React.createElement(Trans, null, "Include someone from your account to inform about the status of this case."))),
282
- showGroupPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
283
- "Please",
284
- ' ',
285
- React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddContactToGroupBtnClick }, "add this person to the selected group"),
286
- ' ',
287
- "if you want to send notifications about this case.")))),
288
- showAccountPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
289
- emailToAdd,
290
- " is not listed under your account. You can always",
291
- ' ',
292
- React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddEmailToAccountBtnClick }, "add them at the account level"))))),
293
- caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { className: "add-watcher-button", variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher", isDisabled: isUpdatingCustomEmails || isAssociatesUpdating },
294
- React.createElement(Trans, null, "Add me as a watcher"))),
295
- caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
296
- React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
297
- React.createElement("div", { className: "pf-v6-u-display-inline-block", ref: toolTipRef },
298
- React.createElement(Button, { className: "remove-watcher-button", variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
299
- React.createElement(Trans, null, "Remove me as a watcher"))))) : (React.createElement(Button, { className: "remove-watcher-button", variant: "secondary", onClick: removeCurrentUser, isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, type: "button", "data-tracking-id": "case-remove-me-watcher" },
300
- React.createElement(Trans, null, "Remove me as a watcher"))))))) : (React.createElement(NonOrgCaseNotifyeesSelector, { id: "open-case-notifications", placeholder: t('Enter an email address or username for the person you want to notify'), isDisabled: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, selectedItems: [
301
- ...customEmailsList.data,
302
- ...filter(selectedNotificationContacts, (c) => !c.isInternal),
303
- ], dataTrackingId: "non-org-admin-contact-selector", onChange: onNotifiedUserChange, isChipDisabled: !isCurrentUserCaseCreator && !!caseNumber, accountNumber: accountNumber, groupNumber: groupNumber, typeaheadRef: nonOrgTypeaheadRef, contactSsoUsername: contactSsoUsername })))));
377
+ SendNotificationsPopOver()),
378
+ loggedInUserRights.data.isOrgAdmin() ? (React.createElement(React.Fragment, null,
379
+ React.createElement("div", { "data-tracking-id": "send-notification-listbox" },
380
+ React.createElement(CaseContactsSelectorExternal, { isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, groupContactsAndEmails: true, allowCustomEmailAdd: true, contactSsoUsername: contactSsoUsername !== null && contactSsoUsername !== void 0 ? contactSsoUsername : '', loggedInUserRights: loggedInUserRights.data, selectedAccountNumber: accountNumber, salesforceAccountId: (_a = selectedAccountDetails.data) === null || _a === void 0 ? void 0 : _a.salesforceAccountId, selected: [...customEmailsList.data, ...localNotificationContacts], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, maxSelections: MAX_NOTIFICATION_CONTACTS, placeholder: t('Search contacts by name, email, or username'), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating ||
381
+ customEmailsList.isFetching ||
382
+ isUpdatingCustomEmails ||
383
+ isCaseOwnerUpdating, isExportingPDF: isExportingPDF, customEmails: accountCustomEmails.data || [], canAddNew: onAddNew, getCreateNewText: getCreateNewText, noOptionsFoundMessage: t('No email address associated with your account matches your search.') })),
384
+ !showGroupPermissionError && !showAccountPermissionError && !isOverContactLimit && (React.createElement("p", { className: "form-instructions" },
385
+ React.createElement(Trans, null, "Include someone from your account to inform about the status of this case."))),
386
+ isOverContactLimit && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" },
387
+ React.createElement(ExclamationCircleIcon, { color: "#c9190b", className: "pf-v6-u-mr-sm" }),
388
+ React.createElement(Trans, { i18nKey: "You can add up to {{limit}} people. Remove someone before adding another.", values: { limit: MAX_NOTIFICATION_CONTACTS } }))),
389
+ showGroupPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
390
+ "Please",
391
+ ' ',
392
+ React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddContactToGroupBtnClick }, "add this person to the selected group"),
393
+ ' ',
394
+ "if you want to send notifications about this case.")))),
395
+ showAccountPermissionError && !isExportingPDF && (React.createElement("p", { className: "form-instructions form-invalid" }, loggedInUserRights.data.isOrgAdmin() && (React.createElement(Trans, null,
396
+ emailToAdd,
397
+ " is not listed under your account. You can always",
398
+ ' ',
399
+ React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddEmailToAccountBtnClick }, "add them at the account level"))))),
400
+ caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { className: "add-watcher-button", variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher", isDisabled: isUpdatingCustomEmails || isAssociatesUpdating },
401
+ React.createElement(Trans, null, "Add me as a watcher"))),
402
+ caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
403
+ React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
404
+ React.createElement("div", { className: "pf-v6-u-display-inline-block", ref: toolTipRef },
405
+ React.createElement(Button, { className: "remove-watcher-button", variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
406
+ React.createElement(Trans, null, "Remove me as a watcher"))))) : (React.createElement(Button, { className: "remove-watcher-button", variant: "secondary", onClick: removeCurrentUser, isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, type: "button", "data-tracking-id": "case-remove-me-watcher" },
407
+ React.createElement(Trans, null, "Remove me as a watcher"))))))) : (React.createElement(NonOrgCaseNotifyeesSelector, { id: "open-case-notifications", placeholder: t('Enter an email address or username for the person you want to notify'), isDisabled: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, selectedItems: [...customEmailsList.data, ...localNotificationContacts], dataTrackingId: "non-org-admin-contact-selector", onChange: onNotifiedUserChange, isChipDisabled: !isCurrentUserCaseCreator && !!caseNumber, accountNumber: accountNumber, groupNumber: groupNumber, typeaheadRef: nonOrgTypeaheadRef, contactSsoUsername: contactSsoUsername }))));
304
408
  }
305
409
  export default CaseContactSelector;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const SendNotificationsPopOver: () => React.JSX.Element;
3
+ //# sourceMappingURL=SendNotificationsPopOver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendNotificationsPopOver.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/SendNotificationsPopOver.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,wBAAwB,yBAyBpC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Popover, PopoverPosition } from '@patternfly/react-core';
2
+ import QuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/question-circle-icon';
3
+ import React from 'react';
4
+ import { Trans, useTranslation } from 'react-i18next';
5
+ export const SendNotificationsPopOver = () => {
6
+ const { t } = useTranslation();
7
+ return (React.createElement(Popover, { "aria-label": t('Who can receive notifications info'), position: PopoverPosition.top, headerContent: React.createElement(Trans, null, "Who can receive notifications?"), bodyContent: React.createElement("p", null,
8
+ React.createElement(Trans, null, "Only verified contacts associated with your account can be added. Notification emails include limited case details, so recipients must sign in to the Customer Portal to view the full update.")), closeBtnAriaLabel: t('Close') },
9
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer", "aria-label": t('Who can receive notifications info'), color: "#5e40be" })));
10
+ };
@@ -21,7 +21,7 @@ import CaseLanguageSelector from '../CaseManagement/CaseLanguageSelector';
21
21
  // import { Cep } from '../CaseManagement/Cep';
22
22
  import OpenReferenceNumber from '../CaseManagement/OpenReferenceNumber';
23
23
  // import { RHAssociatesSelector } from '../CaseManagement/RHAssociatesSelector';
24
- // import CaseContactSelector from '../CaseManagement/SendNotifications/CaseContactSelector';
24
+ import CaseContactSelector from '../CaseManagement/SendNotifications/CaseContactSelector';
25
25
  import KtQuestions from '../ImproveCase/KtQuestions';
26
26
  export default function IdeaInformation() {
27
27
  const { t } = useTranslation();
@@ -111,5 +111,6 @@ export default function IdeaInformation() {
111
111
  React.createElement(Grid, { hasGutter: true },
112
112
  React.createElement(GridItem, { span: 12, xl2: 12, className: "pf-v6-u-mb-xs" },
113
113
  React.createElement(CaseLabelsCreate, null))),
114
+ React.createElement(CaseContactSelector, null),
114
115
  React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }))))));
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAsBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBAmG3C"}
1
+ {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAsBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBAmG3C"}
@@ -1,9 +1,9 @@
1
1
  import { Grid, GridItem } from '@patternfly/react-core';
2
- // import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
2
+ import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
3
3
  import { PreviousCaseTypes } from '@rh-support/utils';
4
4
  import isEmpty from 'lodash/isEmpty';
5
5
  import isEqual from 'lodash/isEqual';
6
- import React, { useEffect, useRef } from 'react';
6
+ import React, { useContext, useEffect, useRef } from 'react';
7
7
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
8
8
  import { useShowCaseGroupField } from '../../hooks/useCaseGroupUiState';
9
9
  import { setCaseDetails } from '../../reducers/CaseReducer';
@@ -23,7 +23,7 @@ import CaseLanguageSelector from '../CaseManagement/CaseLanguageSelector';
23
23
  import OpenReferenceNumber from '../CaseManagement/OpenReferenceNumber';
24
24
  import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
25
25
  // import { RHAssociatesSelector } from '../CaseManagement/RHAssociatesSelector';
26
- // import CaseContactSelector from '../CaseManagement/SendNotifications/CaseContactSelector';
26
+ import CaseContactSelector from '../CaseManagement/SendNotifications/CaseContactSelector';
27
27
  // import { Hostname } from '../ImproveCase/Hostname';
28
28
  import KtQuestions from '../ImproveCase/KtQuestions';
29
29
  import { AllProductsSelector } from '../ProductSelector/AllProductsSelector';
@@ -45,12 +45,8 @@ export default function Review(props) {
45
45
  }
46
46
  previousCaseTypeRef.current = caseType;
47
47
  }, [caseType, caseDispatch]);
48
- // const ability = useContext(AbilityContext);
49
- // const canSeeEmailNotifications = ability.can(
50
- // resourceActions.PATCH,
51
- // resources.CASE_DETAILS,
52
- // CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS
53
- // );
48
+ const ability = useContext(AbilityContext);
49
+ const canSeeEmailNotifications = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS);
54
50
  const onSeverityChange = (payload) => {
55
51
  setCaseDetails(caseDispatch, payload);
56
52
  };
@@ -77,5 +73,6 @@ export default function Review(props) {
77
73
  React.createElement(Grid, { hasGutter: true },
78
74
  React.createElement(GridItem, { span: 12, xl2: 12, className: "pf-v6-u-mb-xs" },
79
75
  React.createElement(CaseLabelsCreate, null))),
76
+ canSeeEmailNotifications && React.createElement(CaseContactSelector, null),
80
77
  React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }))));
81
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSyncServerAttachments.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSyncServerAttachments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA0B/D,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GACjE,IAAI,CAwMN"}
1
+ {"version":3,"file":"useSyncServerAttachments.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSyncServerAttachments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA0B/D,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,MAAM,EAClB,mBAAmB,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GACjE,IAAI,CAqMN"}
@@ -24,39 +24,36 @@ export function useSyncServerAttachments(caseNumber, caseAttachmentHydra) {
24
24
  const localFiles = selectedLocalFilesRef.current;
25
25
  const localAttachmentIds = new Set(localFiles.map((f) => f.attachmentId).filter(Boolean));
26
26
  const toInject = attachments.filter((a) => (a === null || a === void 0 ? void 0 : a.uuid) &&
27
- (isAttachmentUploadInProgress(a) || isAttachmentUploadFailed(a)) &&
27
+ isAttachmentUploadInProgress(a) &&
28
28
  !injectedUuidsRef.current.has(a.uuid) &&
29
29
  !localAttachmentIds.has(a.uuid));
30
30
  if (toInject.length > 0) {
31
31
  const syntheticFiles = toInject.map((attachment) => {
32
32
  var _a, _b, _c;
33
33
  const uuid = attachment.uuid;
34
- const inProgress = isAttachmentUploadInProgress(attachment);
35
- const onAbort = inProgress
36
- ? (_index) => {
37
- var _a;
38
- const files = selectedLocalFilesRef.current;
39
- const idx = files.findIndex((f) => f.attachmentId === uuid);
40
- if (idx < 0)
41
- return;
42
- // Abort the background S3 XHR if it's still running
43
- abortBackgroundUpload(uuid);
44
- udpateFileUploadMetadata(dispatch, {
45
- uploadStatus: UploadStatusConstants.aborted,
46
- onAbort: undefined,
47
- percentUploaded: 0,
48
- }, idx);
49
- injectedUuidsRef.current.delete(uuid);
50
- void markCaseAttachmentUploadFailed(apolloClient, caseNumber, uuid);
51
- const current = ((_a = hydraDataRef.current) !== null && _a !== void 0 ? _a : []);
52
- dispatchCaseDetails({
53
- type: CaseDetailsConstants.updateState,
54
- payload: {
55
- caseAttachmentHydra: getApiResourceObject(current.map((a) => (a === null || a === void 0 ? void 0 : a.uuid) === uuid ? Object.assign(Object.assign({}, a), { uploadStatus: 'Failed' }) : a)),
56
- },
57
- });
58
- }
59
- : undefined;
34
+ const onAbort = (_index) => {
35
+ var _a;
36
+ const files = selectedLocalFilesRef.current;
37
+ const idx = files.findIndex((f) => f.attachmentId === uuid);
38
+ if (idx < 0)
39
+ return;
40
+ // Abort the background S3 XHR if it's still running
41
+ abortBackgroundUpload(uuid);
42
+ udpateFileUploadMetadata(dispatch, {
43
+ uploadStatus: UploadStatusConstants.aborted,
44
+ onAbort: undefined,
45
+ percentUploaded: 0,
46
+ }, idx);
47
+ injectedUuidsRef.current.delete(uuid);
48
+ void markCaseAttachmentUploadFailed(apolloClient, caseNumber, uuid);
49
+ const current = ((_a = hydraDataRef.current) !== null && _a !== void 0 ? _a : []);
50
+ dispatchCaseDetails({
51
+ type: CaseDetailsConstants.updateState,
52
+ payload: {
53
+ caseAttachmentHydra: getApiResourceObject(current.map((a) => ((a === null || a === void 0 ? void 0 : a.uuid) === uuid ? Object.assign(Object.assign({}, a), { uploadStatus: 'Failed' }) : a))),
54
+ },
55
+ });
56
+ };
60
57
  return {
61
58
  name: attachment.fileName,
62
59
  size: attachment.size > 0 ? attachment.size : ((_a = attachment.sizeKB) !== null && _a !== void 0 ? _a : 0) * 1024,
@@ -64,10 +61,8 @@ export function useSyncServerAttachments(caseNumber, caseAttachmentHydra) {
64
61
  type: '',
65
62
  description: (_b = attachment.description) !== null && _b !== void 0 ? _b : '',
66
63
  uploadProgress: {
67
- uploadStatus: inProgress
68
- ? UploadStatusConstants.uploadingOnCase
69
- : UploadStatusConstants.uploadOnCaseFailed,
70
- uploadErrorMessage: inProgress ? '' : 'Upload failed',
64
+ uploadStatus: UploadStatusConstants.uploadingOnCase,
65
+ uploadErrorMessage: '',
71
66
  onAbort,
72
67
  percentUploaded: 0,
73
68
  },
@@ -91,6 +86,7 @@ export function useSyncServerAttachments(caseNumber, caseAttachmentHydra) {
91
86
  });
92
87
  }
93
88
  // Reconcile injected rows with latest SFDC status (use latest local list after possible inject)
89
+ let didCleanup = false;
94
90
  const filesAfterInject = selectedLocalFilesRef.current;
95
91
  filesAfterInject.forEach((localFile, index) => {
96
92
  const uuid = localFile.attachmentId;
@@ -106,6 +102,7 @@ export function useSyncServerAttachments(caseNumber, caseAttachmentHydra) {
106
102
  onAbort: undefined,
107
103
  }, index);
108
104
  injectedUuidsRef.current.delete(uuid);
105
+ didCleanup = true;
109
106
  return;
110
107
  }
111
108
  if (!isAttachmentUploadInProgress(server) && !isAttachmentUploadFailed(server)) {
@@ -121,16 +118,18 @@ export function useSyncServerAttachments(caseNumber, caseAttachmentHydra) {
121
118
  return;
122
119
  }
123
120
  if (isAttachmentUploadFailed(server) &&
124
- localFile.uploadProgress.uploadStatus === UploadStatusConstants.uploadingOnCase) {
121
+ (localFile.uploadProgress.uploadStatus === UploadStatusConstants.uploadingOnCase ||
122
+ localFile.uploadProgress.uploadStatus === UploadStatusConstants.aborted)) {
125
123
  udpateFileUploadMetadata(dispatch, {
126
- uploadStatus: UploadStatusConstants.uploadOnCaseFailed,
124
+ uploadStatus: UploadStatusConstants.deleted,
127
125
  onAbort: undefined,
128
126
  percentUploaded: 0,
129
127
  }, index);
128
+ injectedUuidsRef.current.delete(uuid);
129
+ didCleanup = true;
130
130
  }
131
131
  });
132
132
  // Remove completed batch rows once the discussion list already has the attachment.
133
- let didCleanup = false;
134
133
  filesAfterInject.forEach((localFile, index) => {
135
134
  if (localFile.uploadProgress.uploadStatus !== UploadStatusConstants.uploadedOnCase)
136
135
  return;
package/lib/esm/index.js CHANGED
@@ -2,4 +2,4 @@
2
2
  import './scss/index.scss';
3
3
  export { Troubleshoot } from './components/wizardLayout';
4
4
  export { CaseApp } from './components/CaseEditView';
5
- // dummy change for publish
5
+ // dummy change
@@ -14,6 +14,9 @@ export declare const ISSUE_SUMMARY_LENGTH_LIMIT = 20000;
14
14
  export declare const SUMMARY_LENGTH_LIMIT = 255;
15
15
  export declare const KTQUESTION_MAX_LIMIT = 4000;
16
16
  export declare const IDEA_SECOND_KTQUESTION_MAX_LIMIT = 11000;
17
+ export declare const MAX_NOTIFICATION_CONTACTS = 10;
18
+ /** UI may show one extra (11th) overflow pill in local state. */
19
+ export declare const MAX_NOTIFICATION_CONTACTS_WITH_OVERFLOW: number;
17
20
  export declare const ATTACHMENT_DESCRIPTION_LENGTH_LIMIT = 255;
18
21
  export declare const ESCALATION_SUBJECT_LENGTH_LIMIT = 255;
19
22
  export declare const ESCALATION_DESCRIPTION_LENGTH_LIMIT = 25000;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ export const ISSUE_SUMMARY_LENGTH_LIMIT = 20000;
4
4
  export const SUMMARY_LENGTH_LIMIT = 255; // this the value used when editing title on case details experience
5
5
  export const KTQUESTION_MAX_LIMIT = 4000;
6
6
  export const IDEA_SECOND_KTQUESTION_MAX_LIMIT = 11000; // 11000 limit for second KT question in Idea workflow
7
+ export const MAX_NOTIFICATION_CONTACTS = 10; // Valid max persisted watchers for "Send notifications"
8
+ /** UI may show one extra (11th) overflow pill in local state. */
9
+ export const MAX_NOTIFICATION_CONTACTS_WITH_OVERFLOW = MAX_NOTIFICATION_CONTACTS + 1;
7
10
  export const ATTACHMENT_DESCRIPTION_LENGTH_LIMIT = 255;
8
11
  export const ESCALATION_SUBJECT_LENGTH_LIMIT = 255;
9
12
  export const ESCALATION_DESCRIPTION_LENGTH_LIMIT = 25000;
@@ -43,6 +43,14 @@ export declare const setCaseRecommendations: (dispatch: CaseReducerDispatchType,
43
43
  export declare const setDetectedLanguage: (dispatch: CaseReducerDispatchType, subject: string, description: string) => Promise<void>;
44
44
  export declare const submitNotifiedUser: (dispatch: CaseReducerDispatchType, caseNumber: string, caseDetails: Partial<ICaseState>) => Promise<void>;
45
45
  export declare const deleteNotifiedUsers: (dispatch: CaseReducerDispatchType, caseNumber: string, ssoUsernames: string[]) => Promise<void>;
46
+ export declare const deleteCaseWatchers: (dispatch: CaseReducerDispatchType, apolloClient: {
47
+ mutate: (options: any) => Promise<any>;
48
+ }, contacts: Array<IContact & {
49
+ caseWatcherId?: string;
50
+ }>) => Promise<void>;
51
+ export declare const createCaseWatchers: (dispatch: CaseReducerDispatchType, apolloClient: {
52
+ mutate: (options: any) => Promise<any>;
53
+ }, caseSalesforceId: string, contacts: IContact[]) => Promise<import("@rh-support/utils").CaseWatcherNotificationContact[]>;
46
54
  export declare const addingNotifiedUsers: (dispatch: CaseReducerDispatchType, caseNumber: string, addedUsers: IContact[]) => Promise<void>;
47
55
  export declare const clearSelectedAccount: (dispatch: CaseReducerDispatchType) => void;
48
56
  export declare const setCaseAccountNumber: (dispatch: CaseReducerDispatchType, accountNumber: string, isLoggedInUsersAccount?: boolean, loggedInUserAccount?: Partial<IAccount>, apolloClient?: {
@@ -71,11 +79,13 @@ export declare const updateCaseDetailsGraphQL: (dispatch: CaseReducerDispatchTyp
71
79
  query: (options: any) => Promise<any>;
72
80
  mutate: (options: any) => Promise<any>;
73
81
  }, caseNumber: string, caseUpdate: Partial<IGraphQLCaseUpdateInput>, dontSetDetails?: boolean, options?: UpdateCaseDetailsGraphQLOptions) => Promise<void>;
74
- /** GraphQL CaseUpdate for severity/status and FTS (X24x7__c / X24x7ContactInformation__c). */
75
82
  export declare const updateCaseSeverityAndFtsGraphQL: (dispatch: CaseReducerDispatchType, apolloClient: {
76
83
  query: (options: any) => Promise<any>;
77
84
  mutate: (options: any) => Promise<any>;
78
85
  }, caseNumber: string, payload: CaseSeverityFtsGraphQLPayload, currentSeverity: string | null | undefined, options?: UpdateCaseDetailsGraphQLOptions) => Promise<void>;
86
+ export declare const loadCaseWatcherNotificationContacts: (dispatch: CaseReducerDispatchType, apolloClient: {
87
+ query: (options: any) => Promise<any>;
88
+ }, caseNumber: string) => Promise<void>;
79
89
  export declare const getNotificationContacts4InternalUser: (dispatch: CaseReducerDispatchType, users: INotifiedUser[], caseOwnerSSO: string) => Promise<void>;
80
90
  export declare const getNotificationContacts4ExternalUser: (dispatch: CaseReducerDispatchType, users: any, loggedInUserRights: any, accountNumber: any, caseOwnerSSO: string, fullNameCustom: string, apolloClient?: {
81
91
  query: (options: any) => Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  };
21
21
  import { contacts, kase, pcm, publicApi } from '@cee-eng/hydrajs';
22
22
  import { formattedApiErrorMessage } from '@rh-support/components';
23
- import { CREATE_CASE_LABEL_LINK, CREATE_SUPPORT_CASE, dtmTrackEventCaseCreationStepEncountered, fetchCaseDetailsByCaseNumber, fetchLoggedInUserAccountContactsFromGraphQL, GET_ACCOUNT, GET_CASE_GROUP, GET_PRODUCTS, getAccountQueryVariables, getApiResourceObject, handleGraphQLAccountResponse, handleGraphQLVersionsResponse, mapGraphQLCaseDetailsToCasePayload, PreviousToNewCaseTypeMap, shouldPersistInProgressOnCustomerActivity, updateCaseDetailsGraphQLRequest, } from '@rh-support/utils';
23
+ import { CREATE_CASE_LABEL_LINK, CREATE_SUPPORT_CASE, createCaseWatchersForContacts, deleteCaseWatchersForContacts, dtmTrackEventCaseCreationStepEncountered, fetchCaseDetailsByCaseNumber, fetchCaseWatcherContactsByCaseNumber, fetchLoggedInUserAccountContactsFromGraphQL, GET_ACCOUNT, GET_CASE_GROUP, GET_PRODUCTS, getAccountQueryVariables, getApiResourceObject, handleGraphQLAccountResponse, handleGraphQLVersionsResponse, mapGraphQLCaseDetailsToCasePayload, PreviousToNewCaseTypeMap, shouldPersistInProgressOnCustomerActivity, updateCaseDetailsGraphQLRequest, } from '@rh-support/utils';
24
24
  // import delay from 'lodash/delay';
25
25
  import filter from 'lodash/filter';
26
26
  import find from 'lodash/find';
@@ -397,6 +397,47 @@ export const deleteNotifiedUsers = (dispatch, caseNumber, ssoUsernames) => __awa
397
397
  });
398
398
  }
399
399
  });
400
+ export const deleteCaseWatchers = (dispatch, apolloClient, contacts) => __awaiter(void 0, void 0, void 0, function* () {
401
+ dispatch({
402
+ type: CaseReducerConstants.setAddNotifiedUserError,
403
+ payload: { updateNotifiedUserError: false, updateNotifiedUserLoading: true },
404
+ });
405
+ try {
406
+ yield deleteCaseWatchersForContacts(apolloClient, contacts);
407
+ dispatch({
408
+ type: CaseReducerConstants.setAddNotifiedUserError,
409
+ payload: { updateNotifiedUserError: false, updateNotifiedUserLoading: false },
410
+ });
411
+ }
412
+ catch (error) {
413
+ dispatch({
414
+ type: CaseReducerConstants.setAddNotifiedUserError,
415
+ payload: { updateNotifiedUserError: true, updateNotifiedUserLoading: false },
416
+ });
417
+ throw error;
418
+ }
419
+ });
420
+ export const createCaseWatchers = (dispatch, apolloClient, caseSalesforceId, contacts) => __awaiter(void 0, void 0, void 0, function* () {
421
+ dispatch({
422
+ type: CaseReducerConstants.setAddNotifiedUserError,
423
+ payload: { updateNotifiedUserError: false, updateNotifiedUserLoading: true },
424
+ });
425
+ try {
426
+ const createdContacts = yield createCaseWatchersForContacts(apolloClient, caseSalesforceId, contacts);
427
+ dispatch({
428
+ type: CaseReducerConstants.setAddNotifiedUserError,
429
+ payload: { updateNotifiedUserError: false, updateNotifiedUserLoading: false },
430
+ });
431
+ return createdContacts;
432
+ }
433
+ catch (error) {
434
+ dispatch({
435
+ type: CaseReducerConstants.setAddNotifiedUserError,
436
+ payload: { updateNotifiedUserError: true, updateNotifiedUserLoading: false },
437
+ });
438
+ throw error;
439
+ }
440
+ });
400
441
  export const addingNotifiedUsers = (dispatch, caseNumber, addedUsers) => __awaiter(void 0, void 0, void 0, function* () {
401
442
  const ssoUsernames = addedUsers.map((u) => ({ ssoUsername: u.ssoUsername }));
402
443
  dispatch({
@@ -947,7 +988,6 @@ export const updateCaseDetailsGraphQL = (dispatch, apolloClient, caseNumber, cas
947
988
  throw error;
948
989
  }
949
990
  });
950
- /** GraphQL CaseUpdate for severity/status and FTS (X24x7__c / X24x7ContactInformation__c). */
951
991
  export const updateCaseSeverityAndFtsGraphQL = (dispatch, apolloClient, caseNumber, payload, currentSeverity, options) => __awaiter(void 0, void 0, void 0, function* () {
952
992
  const graphqlUpdate = buildCaseSeverityFtsGraphQLUpdate(payload, currentSeverity);
953
993
  if (Object.keys(graphqlUpdate).length === 0) {
@@ -955,6 +995,44 @@ export const updateCaseSeverityAndFtsGraphQL = (dispatch, apolloClient, caseNumb
955
995
  }
956
996
  yield updateCaseDetailsGraphQL(dispatch, apolloClient, caseNumber, graphqlUpdate, false, options);
957
997
  });
998
+ export const loadCaseWatcherNotificationContacts = (dispatch, apolloClient, caseNumber) => __awaiter(void 0, void 0, void 0, function* () {
999
+ if (!caseNumber) {
1000
+ dispatch({
1001
+ type: CaseReducerConstants.getSelectedAccountDetailsHydra,
1002
+ payload: { selectedNotificationContacts: [] },
1003
+ });
1004
+ return;
1005
+ }
1006
+ dispatch({
1007
+ type: CaseReducerConstants.getSelectedAccountDetailsHydra,
1008
+ payload: { isFetchingSelectedNotificationContacts: true, hasErrorSelectedNotificationContacts: false },
1009
+ });
1010
+ try {
1011
+ const selectedNotificationContacts = yield fetchCaseWatcherContactsByCaseNumber(apolloClient, caseNumber);
1012
+ dispatch({
1013
+ type: CaseReducerConstants.getSelectedAccountDetailsHydra,
1014
+ payload: {
1015
+ selectedNotificationContacts,
1016
+ isFetchingSelectedNotificationContacts: false,
1017
+ hasErrorSelectedNotificationContacts: false,
1018
+ },
1019
+ });
1020
+ const notifiedUsers = map(selectedNotificationContacts, (contact) => ({
1021
+ ssoUsername: contact.ssoUsername,
1022
+ fullNameCustom: [contact.firstName, contact.lastName].filter(Boolean).join(' '),
1023
+ }));
1024
+ dispatch({
1025
+ type: CaseReducerConstants.setLoadedNotificationContacts,
1026
+ payload: { notifiedUsers },
1027
+ });
1028
+ }
1029
+ catch (e) {
1030
+ dispatch({
1031
+ type: CaseReducerConstants.selectedAccountDetailsHydraError,
1032
+ payload: { isFetchingSelectedNotificationContacts: false, hasErrorSelectedNotificationContacts: true },
1033
+ });
1034
+ }
1035
+ });
958
1036
  export const getNotificationContacts4InternalUser = (dispatch, users, caseOwnerSSO) => __awaiter(void 0, void 0, void 0, function* () {
959
1037
  const usersArr = (users || []).map((o) => o.ssoUsername).filter((s) => !!s);
960
1038
  caseOwnerSSO && usersArr.push(caseOwnerSSO);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.7.54",
3
+ "version": "2.7.57",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -52,11 +52,11 @@
52
52
  "@progress/kendo-licensing": "1.3.5",
53
53
  "@progress/kendo-react-pdf": "^5.16.0",
54
54
  "@redux-devtools/extension": "^3.3.0",
55
- "@rh-support/components": "2.6.46",
56
- "@rh-support/react-context": "2.6.48",
57
- "@rh-support/types": "2.0.31",
58
- "@rh-support/user-permissions": "2.6.43",
59
- "@rh-support/utils": "2.6.42",
55
+ "@rh-support/components": "2.6.49",
56
+ "@rh-support/react-context": "2.6.51",
57
+ "@rh-support/types": "2.0.33",
58
+ "@rh-support/user-permissions": "2.6.46",
59
+ "@rh-support/utils": "2.6.45",
60
60
  "@types/react-redux": "^7.1.33",
61
61
  "@types/redux": "^3.6.0",
62
62
  "date-fns": "3.6.0",
@@ -129,5 +129,5 @@
129
129
  "defaults and supports es6-module",
130
130
  "maintained node versions"
131
131
  ],
132
- "gitHead": "f93a43376534c539511491878802f207d215360c"
132
+ "gitHead": "dd818edf4098c866388b59af94b99d889a004681"
133
133
  }