@rh-support/troubleshoot 2.6.87 → 2.6.89
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.
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +87 -15
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +1 -1
- package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts +1 -0
- package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/OpenCaseIssue.js +6 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +17 -3
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +1 -1
- package/lib/esm/scss/_pf-overrides.scss +4 -0
- package/package.json +4 -4
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAyCA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAuBnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBAy+BnD"}
|
|
@@ -9,18 +9,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { escalations, publicApi } from '@cee-eng/hydrajs';
|
|
11
11
|
import { Button, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalBody, ModalHeader, ModalVariant, Radio, TextArea, TextInput, TimePicker, Title, ValidatedOptions, Wizard, WizardNav, WizardNavItem, WizardStep, } from '@patternfly/react-core';
|
|
12
|
-
import { AlertMessage, AlertType, PhoneInput, SingleSelectDropdown, ToastNotification, useFetch, } from '@rh-support/components';
|
|
12
|
+
import { AlertMessage, AlertType, COUNTRY_DATA, getPhoneObj, PhoneInput, SingleSelectDropdown, ToastNotification, useFetch, } from '@rh-support/components';
|
|
13
13
|
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
14
|
+
import isEmpty from 'lodash/isEmpty';
|
|
14
15
|
import React, { useEffect, useState } from 'react';
|
|
15
16
|
import { Trans, useTranslation } from 'react-i18next';
|
|
16
17
|
import { useCaseDispatch } from '../../../context/CaseContext';
|
|
17
18
|
import { useCaseDetailsPageDispatchContext, useCaseDetailsPageStateContext, } from '../../../context/CaseDetailsPageContext';
|
|
18
19
|
import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../../context/CaseDiscussionTabContext';
|
|
19
20
|
import { CustomerGEOs } from '../../../enums/customerGEOs';
|
|
20
|
-
import { ESCALATION_SUBJECT_LENGTH_LIMIT, TIMEZONE_OPTIONS, } from '../../../reducers/CaseConstNTypes';
|
|
21
|
+
import { ESCALATION_SUBJECT_LENGTH_LIMIT, PHONE_LIMIT, TIMEZONE_OPTIONS, } from '../../../reducers/CaseConstNTypes';
|
|
21
22
|
import { fetchCaseEscalations } from '../../../reducers/CaseDetailsPageReducer';
|
|
22
23
|
import { updateDiscussionStateComments } from '../../../reducers/CaseDiscussionTabReducer';
|
|
23
24
|
import { checkForCaseStatusToggleOnAttachOrComment, fetchCaseDetails } from '../../../reducers/CaseReducer';
|
|
25
|
+
import { removeAllChars, trimAndReplacePlus } from '../../shared/utils';
|
|
24
26
|
const customerGEOKeys = Object.keys(CustomerGEOs);
|
|
25
27
|
export function RequestEscalationModal(props) {
|
|
26
28
|
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
@@ -47,10 +49,47 @@ export function RequestEscalationModal(props) {
|
|
|
47
49
|
const [hasLargeSubject, setHasLargeSubject] = useState(false);
|
|
48
50
|
const [submitButtonIsClicked, setSubmitSaveButtonIsClicked] = useState(false);
|
|
49
51
|
const [isPhoneInvalid, setIsPhoneInvalid] = useState(false);
|
|
50
|
-
const
|
|
52
|
+
const isCountryCodeValid = (countryCode) => {
|
|
53
|
+
// Check if the country code exists in the valid country codes list
|
|
54
|
+
if (!countryCode)
|
|
55
|
+
return false;
|
|
56
|
+
const normalizedCode = trimAndReplacePlus(countryCode);
|
|
57
|
+
if (isEmpty(normalizedCode))
|
|
58
|
+
return false;
|
|
59
|
+
return COUNTRY_DATA.some((country) => country[3] === normalizedCode);
|
|
60
|
+
};
|
|
61
|
+
const isPhoneNumberInvalid = (phoneNumber, countryCode) => {
|
|
62
|
+
var _a;
|
|
63
|
+
// Check if country code is given but phone number is empty/only has country code
|
|
64
|
+
return (!isEmpty(phoneNumber) &&
|
|
65
|
+
isEmpty((_a = removeAllChars(phoneNumber || '')) === null || _a === void 0 ? void 0 : _a.replace(trimAndReplacePlus(countryCode || ''), '')));
|
|
66
|
+
};
|
|
67
|
+
const isPhoneLineEmpty = (phoneNumber, countryCode) => {
|
|
68
|
+
var _a;
|
|
69
|
+
// Check if both country code and phone line are empty
|
|
70
|
+
return (isEmpty(trimAndReplacePlus(countryCode || '')) &&
|
|
71
|
+
isEmpty((_a = (phoneNumber || '')) === null || _a === void 0 ? void 0 : _a.replace(countryCode || '', '')));
|
|
72
|
+
};
|
|
73
|
+
const isPhoneNumberValid = (phoneNumber, countryCode) => {
|
|
51
74
|
const trimmedPhone = (phoneNumber || '').trim();
|
|
52
|
-
|
|
53
|
-
|
|
75
|
+
const phoneObject = getPhoneObj(trimmedPhone);
|
|
76
|
+
const fullPhone = phoneObject.countryCode + ' ' + phoneObject.phoneLine;
|
|
77
|
+
// Check for various invalid states
|
|
78
|
+
if (fullPhone.length > PHONE_LIMIT)
|
|
79
|
+
return false;
|
|
80
|
+
if (isPhoneLineEmpty(phoneNumber, countryCode))
|
|
81
|
+
return false;
|
|
82
|
+
if (isPhoneNumberInvalid(phoneNumber, countryCode))
|
|
83
|
+
return false;
|
|
84
|
+
if (isEmpty(trimAndReplacePlus(countryCode || '')))
|
|
85
|
+
return false;
|
|
86
|
+
if (!isCountryCodeValid(countryCode))
|
|
87
|
+
return false;
|
|
88
|
+
if (trimAndReplacePlus(trimmedPhone) === trimAndReplacePlus(countryCode || ''))
|
|
89
|
+
return false;
|
|
90
|
+
if (trimmedPhone.length < 5)
|
|
91
|
+
return false;
|
|
92
|
+
return true;
|
|
54
93
|
};
|
|
55
94
|
// Function to check if "to" time is after "from" time
|
|
56
95
|
const isValidTimeRange = (fromTime, toTime) => {
|
|
@@ -88,7 +127,7 @@ export function RequestEscalationModal(props) {
|
|
|
88
127
|
return (hasAllFields &&
|
|
89
128
|
isValidTimeRange(formState.preferredTimeFrom, formState.preferredTimeTo) &&
|
|
90
129
|
!isPhoneInvalid &&
|
|
91
|
-
isPhoneNumberValid(formState.phoneNumber));
|
|
130
|
+
isPhoneNumberValid(formState.phoneNumber, formState.countryCode));
|
|
92
131
|
}
|
|
93
132
|
return hasAllFields;
|
|
94
133
|
};
|
|
@@ -289,7 +328,7 @@ export function RequestEscalationModal(props) {
|
|
|
289
328
|
// Additional validation if call options are selected
|
|
290
329
|
if (formState.contactPreference === 'call-me' || formState.contactPreference === 'call-if-necessary') {
|
|
291
330
|
return (baseValidation &&
|
|
292
|
-
isPhoneNumberValid(formState.phoneNumber) &&
|
|
331
|
+
isPhoneNumberValid(formState.phoneNumber, formState.countryCode) &&
|
|
293
332
|
!isPhoneInvalid &&
|
|
294
333
|
(formState.preferredTimeFrom || '').trim().length > 0 &&
|
|
295
334
|
(formState.preferredTimeTo || '').trim().length > 0 &&
|
|
@@ -413,21 +452,54 @@ export function RequestEscalationModal(props) {
|
|
|
413
452
|
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
414
453
|
t("Case owner's phone number"),
|
|
415
454
|
" "), isRequired: true, fieldId: "phone-number" },
|
|
416
|
-
React.createElement(PhoneInput, { phoneValue: formState.phoneNumber || '', countryCode: ((_m = formState.countryCode) === null || _m === void 0 ? void 0 : _m.replace('+', '')) || '', onPhoneValueChange: (phone) => setFormState(Object.assign(Object.assign({}, formState), { phoneNumber: phone })), onCountryCodeChange: (code) => setFormState(Object.assign(Object.assign({}, formState), { countryCode: code })), validations: (submitButtonIsClicked &&
|
|
417
|
-
|
|
455
|
+
React.createElement(PhoneInput, { phoneValue: formState.phoneNumber || '', countryCode: ((_m = formState.countryCode) === null || _m === void 0 ? void 0 : _m.replace('+', '')) || '', onPhoneValueChange: (phone) => setFormState(Object.assign(Object.assign({}, formState), { phoneNumber: phone })), onCountryCodeChange: (code) => setFormState(Object.assign(Object.assign({}, formState), { countryCode: code })), validations: (submitButtonIsClicked &&
|
|
456
|
+
!isPhoneNumberValid(formState.phoneNumber, formState.countryCode)) ||
|
|
457
|
+
isPhoneInvalid ||
|
|
458
|
+
(submitButtonIsClicked &&
|
|
459
|
+
(getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
460
|
+
' ' +
|
|
461
|
+
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT)
|
|
418
462
|
? 'error'
|
|
419
463
|
: 'default', isDisabled: false, invalid: isPhoneInvalid, setInvalid: setIsPhoneInvalid }),
|
|
420
|
-
|
|
464
|
+
!isPhoneInvalid &&
|
|
465
|
+
!((getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
466
|
+
' ' +
|
|
467
|
+
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT) &&
|
|
468
|
+
!(submitButtonIsClicked &&
|
|
469
|
+
!isPhoneNumberValid(formState.phoneNumber, formState.countryCode)) && (React.createElement(FormHelperText, null,
|
|
421
470
|
React.createElement(HelperText, null,
|
|
422
|
-
React.createElement(HelperTextItem, { variant: "default" }, t('Note: A current phone/mobile number with the country code helps us support you better. Phone number will be stored in case comments for escalation only – not used for marketing.')))),
|
|
471
|
+
React.createElement(HelperTextItem, { variant: "default" }, t('Note: A current phone/mobile number with the country code helps us support you better. Phone number will be stored in case comments for escalation only – not used for marketing.'))))),
|
|
472
|
+
isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
473
|
+
React.createElement(HelperText, null,
|
|
474
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number can only have digits.'))))),
|
|
423
475
|
submitButtonIsClicked &&
|
|
424
|
-
|
|
425
|
-
|
|
476
|
+
(getPhoneObj(formState.phoneNumber || '').countryCode +
|
|
477
|
+
' ' +
|
|
478
|
+
getPhoneObj(formState.phoneNumber || '').phoneLine).length > PHONE_LIMIT && (React.createElement(FormHelperText, null,
|
|
479
|
+
React.createElement(HelperText, null,
|
|
480
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number cannot be more than {{limit}} digits.', {
|
|
481
|
+
limit: PHONE_LIMIT,
|
|
482
|
+
}))))),
|
|
483
|
+
submitButtonIsClicked &&
|
|
484
|
+
isPhoneLineEmpty(formState.phoneNumber, formState.countryCode) && (React.createElement(FormHelperText, null,
|
|
426
485
|
React.createElement(HelperText, null,
|
|
427
486
|
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number is required'))))),
|
|
428
|
-
|
|
487
|
+
submitButtonIsClicked &&
|
|
488
|
+
isPhoneNumberInvalid(formState.phoneNumber, formState.countryCode) &&
|
|
489
|
+
!isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
490
|
+
React.createElement(HelperText, null,
|
|
491
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number cannot be empty'))))),
|
|
492
|
+
submitButtonIsClicked &&
|
|
493
|
+
!isEmpty(trimAndReplacePlus(formState.countryCode || '')) &&
|
|
494
|
+
!isCountryCodeValid(formState.countryCode) && (React.createElement(FormHelperText, null,
|
|
495
|
+
React.createElement(HelperText, null,
|
|
496
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Country code is invalid'))))),
|
|
497
|
+
submitButtonIsClicked &&
|
|
498
|
+
isEmpty(trimAndReplacePlus(formState.countryCode || '')) &&
|
|
499
|
+
!isPhoneLineEmpty(formState.phoneNumber, formState.countryCode) &&
|
|
500
|
+
!isPhoneInvalid && (React.createElement(FormHelperText, null,
|
|
429
501
|
React.createElement(HelperText, null,
|
|
430
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number
|
|
502
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, t('Phone number is not valid'))))))),
|
|
431
503
|
React.createElement(GridItem, { span: 12 },
|
|
432
504
|
React.createElement(FormGroup, { label: React.createElement(React.Fragment, null,
|
|
433
505
|
t('Timezone'),
|
|
@@ -40,7 +40,7 @@ export function CaseInformation(props) {
|
|
|
40
40
|
React.createElement("form", null,
|
|
41
41
|
React.createElement(ProductVersion, null),
|
|
42
42
|
React.createElement(CaseOpenshiftClusterId, null),
|
|
43
|
-
React.createElement(CaseHostname, { inlineEditable: true }),
|
|
43
|
+
caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT && React.createElement(CaseHostname, { inlineEditable: true }),
|
|
44
44
|
React.createElement("div", { className: "form-group" },
|
|
45
45
|
React.createElement("label", { htmlFor: "case-description" },
|
|
46
46
|
React.createElement(Trans, null, "Description")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenCaseIssue.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/OpenCaseIssue.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenCaseIssue.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/OpenCaseIssue.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AASD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqJnC;kBArJQ,aAAa;;;AAwJtB,eAAe,aAAa,CAAC"}
|
|
@@ -59,6 +59,8 @@ function OpenCaseIssue(props) {
|
|
|
59
59
|
const getTitleSummaryInvalid = () => hasLargeTitleSummary || (isNextBtnClickedToShowValidationError && isSummaryEmpty);
|
|
60
60
|
const getIssueSummaryInvalid = () => hasLargeIssueSummary || (isNextBtnClickedToShowValidationError && isIssueEmpty);
|
|
61
61
|
const isIdea = () => supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
62
|
+
const isIdeaResult = isIdea();
|
|
63
|
+
const shouldHideOnGetSupport = isIdeaResult && props.isOnGetSupportPage;
|
|
62
64
|
useEffect(() => {
|
|
63
65
|
setIsSummaryEmpty(summary ? isEmpty(summary.trim()) : true);
|
|
64
66
|
setIsIssueEmpty(issue ? isEmpty(issue.trim()) : true);
|
|
@@ -66,6 +68,9 @@ function OpenCaseIssue(props) {
|
|
|
66
68
|
issue && setHasLargeIssueSummary(issue.length > ISSUE_SUMMARY_LENGTH_LIMIT);
|
|
67
69
|
// @ts-ignore
|
|
68
70
|
}, [summary, issue]);
|
|
71
|
+
if (shouldHideOnGetSupport) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
69
74
|
return (React.createElement(React.Fragment, null,
|
|
70
75
|
React.createElement(InlineEdit, { labelProps: {
|
|
71
76
|
htmlFor: isIdea() ? 'get-support-title' : 'get-support-summary',
|
|
@@ -75,7 +80,7 @@ function OpenCaseIssue(props) {
|
|
|
75
80
|
alignItems: 'center',
|
|
76
81
|
},
|
|
77
82
|
}, labelContent: React.createElement(React.Fragment, null,
|
|
78
|
-
React.createElement(Trans, null,
|
|
83
|
+
React.createElement(Trans, null, "Title"),
|
|
79
84
|
' ',
|
|
80
85
|
!!props.required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), helperContent: React.createElement("div", { className: "title-summary-counter" },
|
|
81
86
|
`${summary === null || summary === void 0 ? void 0 : summary.length} / ${TITLE_SUMMARY_LENGTH_LIMIT}`,
|
package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AA+BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AA+BD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA8NxD"}
|
|
@@ -82,13 +82,24 @@ export function NonOrgCaseNotifyeesSelector(props) {
|
|
|
82
82
|
const { ssoName } = c, rest = __rest(c, ["ssoName"]);
|
|
83
83
|
return Object.assign({ ssoUsername: ssoName }, rest);
|
|
84
84
|
});
|
|
85
|
-
|
|
85
|
+
const isUsernameAlreadySelected = mappedContacts.some((contact) => props.selectedItems.some((item) => isContact(item) && item.ssoUsername === contact.ssoUsername));
|
|
86
|
+
if (!isUsernameAlreadySelected) {
|
|
87
|
+
(_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, [...mappedContacts]);
|
|
88
|
+
}
|
|
86
89
|
setInputVal('');
|
|
87
90
|
setNotifyeesList([...mappedContacts, { emailAddress: notificationAddress.email }]);
|
|
88
91
|
}
|
|
89
92
|
else {
|
|
90
93
|
if (notificationAddress === null || notificationAddress === void 0 ? void 0 : notificationAddress.email) {
|
|
91
|
-
|
|
94
|
+
const isEmailAlreadySelected = props.selectedItems.some((item) => {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
return isCustomEmailAddress(item) &&
|
|
97
|
+
((_a = item.emailAddress) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_b = notificationAddress.email) === null || _b === void 0 ? void 0 : _b.toLowerCase());
|
|
98
|
+
});
|
|
99
|
+
if (!isEmailAlreadySelected) {
|
|
100
|
+
const updatedSelection = [{ emailAddress: notificationAddress.email, caseNumber: '' }];
|
|
101
|
+
(_c = props.onChange) === null || _c === void 0 ? void 0 : _c.call(props, updatedSelection);
|
|
102
|
+
}
|
|
92
103
|
setInputVal('');
|
|
93
104
|
}
|
|
94
105
|
else if (contacts === null || contacts === void 0 ? void 0 : contacts.length) {
|
|
@@ -98,7 +109,10 @@ export function NonOrgCaseNotifyeesSelector(props) {
|
|
|
98
109
|
const { ssoName } = c, rest = __rest(c, ["ssoName"]);
|
|
99
110
|
return Object.assign({ ssoUsername: ssoName }, rest);
|
|
100
111
|
});
|
|
101
|
-
|
|
112
|
+
const isUsernameAlreadySelected = mappedContacts.some((contact) => props.selectedItems.some((item) => isContact(item) && item.ssoUsername === contact.ssoUsername));
|
|
113
|
+
if (!isUsernameAlreadySelected) {
|
|
114
|
+
(_d = props.onChange) === null || _d === void 0 ? void 0 : _d.call(props, [...mappedContacts]);
|
|
115
|
+
}
|
|
102
116
|
setInputVal('');
|
|
103
117
|
}
|
|
104
118
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EAoLvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -104,7 +104,7 @@ const AllProductsSelector = forwardRef((props, ref) => {
|
|
|
104
104
|
React.createElement("div", { className: "all-product-selector-dropdown" },
|
|
105
105
|
React.createElement(ProductVersionDropdownSelector, { isLoading: allProducts.isFetching, products: props.checkEntitledProduct ? entitledProducts : allProducts.data.productsResult, onProductChange: onProductChange, onVersionChange: onVersionChange, ref: ref, isOnSummaryPage: props.isOnSummaryPage, loadTCOnChange: props.loadTCOnChange, isFetching: topContent.isFetching })))),
|
|
106
106
|
renderOpenCaseIssue && (React.createElement("div", { className: "case-details-summary" },
|
|
107
|
-
React.createElement(OpenCaseIssue, { inlineEditable: false, required: true, isOnSummaryPage: props.isOnSummaryPage }))),
|
|
107
|
+
React.createElement(OpenCaseIssue, { inlineEditable: false, required: true, isOnSummaryPage: props.isOnSummaryPage, isOnGetSupportPage: props.isOnGetSupportPage }))),
|
|
108
108
|
React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", title: t(`${loggedInUserRights.data.isSSOUsernameSameAsLoggedInUser(contactSSOName)
|
|
109
109
|
? 'You are'
|
|
110
110
|
: 'Selected owner is'} not allowed to create case on this product.`), show: !allProducts.isFetching && props.checkEntitledProduct && !isEntitledProduct && !isEmpty(product) }),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.89",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"@progress/kendo-licensing": "1.3.5",
|
|
60
60
|
"@progress/kendo-react-pdf": "^5.16.0",
|
|
61
61
|
"@redux-devtools/extension": "^3.3.0",
|
|
62
|
-
"@rh-support/components": "2.5.
|
|
63
|
-
"@rh-support/react-context": "2.5.
|
|
62
|
+
"@rh-support/components": "2.5.60",
|
|
63
|
+
"@rh-support/react-context": "2.5.76",
|
|
64
64
|
"@rh-support/types": "2.0.5",
|
|
65
65
|
"@rh-support/user-permissions": "2.5.29",
|
|
66
66
|
"@rh-support/utils": "2.5.26",
|
|
@@ -133,5 +133,5 @@
|
|
|
133
133
|
"defaults and supports es6-module",
|
|
134
134
|
"maintained node versions"
|
|
135
135
|
],
|
|
136
|
-
"gitHead": "
|
|
136
|
+
"gitHead": "abdf0c87f0db15a5ecf70fe31e835530ca297dbe"
|
|
137
137
|
}
|