@rh-support/troubleshoot 2.2.128 → 2.2.129-beta.0

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":"OwnerSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/OwnerSelector.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAkB/D,UAAU,MAAM;CAAG;AAEnB,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqYnC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"OwnerSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/OwnerSelector.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAkB/D,UAAU,MAAM;CAAG;AAEnB,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,qBAsTnC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -28,14 +28,13 @@ import { getChangedValueTooltip } from '../shared/utils';
28
28
  function OwnerSelector(props) {
29
29
  const { t } = useTranslation();
30
30
  const caseUpdateError = useCaseUpdateErrorMessage();
31
- const { accountNumber, caseNumber, selectedNotificationContacts, selectedOwner, selectedCaseGroupUsers, isCaseOwnerUpdating, caseDetailes, hasLoggedInUserConfirmedPhoneNumber, } = useCaseSelector((state) => ({
31
+ const { accountNumber, caseNumber, selectedNotificationContacts, selectedOwner, selectedCaseGroupUsers, isCaseOwnerUpdating, hasLoggedInUserConfirmedPhoneNumber, } = useCaseSelector((state) => ({
32
32
  accountNumber: state.caseDetails.accountNumberRef,
33
33
  caseNumber: state.caseDetails.caseNumber,
34
34
  selectedNotificationContacts: state.selectedNotificationContacts,
35
35
  selectedOwner: state.selectedOwner,
36
36
  selectedCaseGroupUsers: state.selectedCaseGroupUsers,
37
37
  isCaseOwnerUpdating: state.isCaseOwnerUpdating,
38
- caseDetailes: state.caseDetails,
39
38
  hasLoggedInUserConfirmedPhoneNumber: state.hasLoggedInUserConfirmedPhoneNumber,
40
39
  }), isEqual);
41
40
  const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
@@ -52,60 +51,6 @@ function OwnerSelector(props) {
52
51
  !isEmpty(pvalue.ssoUsername) &&
53
52
  value.ssoUsername !== pvalue.ssoUsername;
54
53
  const canEditCase = useCanEditCase();
55
- // set owner on creating a case
56
- const setContactPhoneNumber = (sso) => __awaiter(this, void 0, void 0, function* () {
57
- // logged in user and case owner are the same
58
- if (sso === loggedInUser.data.ssoUsername) {
59
- if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
60
- setCaseDetails(caseDispatch, {
61
- phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
62
- phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
63
- suppliedPhoneNumberVerified: isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') || //hasLoggedInUserConfirmedPhoneNumber: global verification phone state for contactSSOName === loggedInUser.data.ssoUsername
64
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
65
- ? hasLoggedInUserConfirmedPhoneNumber
66
- : 'False',
67
- });
68
- }
69
- else {
70
- const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
71
- const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode;
72
- setCaseDetails(caseDispatch, {
73
- phoneAreaCodePrefixLineNumber: phoneLine,
74
- phoneCountryCode: countryCode,
75
- suppliedPhoneNumberVerified: isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
76
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
77
- ? hasLoggedInUserConfirmedPhoneNumber
78
- : 'False',
79
- });
80
- }
81
- }
82
- else {
83
- try {
84
- const selectedContact = yield contacts.getSFDCContactBySso(sso);
85
- if (selectedContact.supportPhoneAreaCodePrefixLineNumber) {
86
- setCaseDetails(caseDispatch, {
87
- phoneAreaCodePrefixLineNumber: selectedContact.supportPhoneAreaCodePrefixLineNumber,
88
- phoneCountryCode: selectedContact.supportPhoneCountryCode,
89
- suppliedPhoneNumberVerified: 'Deferred',
90
- });
91
- }
92
- else {
93
- setCaseDetails(caseDispatch, {
94
- phoneAreaCodePrefixLineNumber: getPhoneObj(selectedContact.phone).phoneLine || '',
95
- phoneCountryCode: getPhoneObj(selectedContact.phone).countryCode || '',
96
- suppliedPhoneNumberVerified: 'Deferred',
97
- });
98
- }
99
- }
100
- catch (e) {
101
- setCaseDetails(caseDispatch, {
102
- phoneAreaCodePrefixLineNumber: '',
103
- phoneCountryCode: '',
104
- suppliedPhoneNumberVerified: 'False',
105
- });
106
- }
107
- }
108
- });
109
54
  const updatePhone = (phoneSetting) => __awaiter(this, void 0, void 0, function* () {
110
55
  yield updateCaseDetails(caseDispatch, caseNumber, phoneSetting);
111
56
  setCaseDetails(caseDispatch, Object.assign({}, phoneSetting));
@@ -190,7 +135,6 @@ function OwnerSelector(props) {
190
135
  setLocalOwnerChange(true);
191
136
  !isEmpty(selectedContact) &&
192
137
  setNotifiedUser(dispatch, filter(notificationContacts, (c) => c.ssoUsername !== selectedContact.ssoUsername));
193
- setContactPhoneNumber(selectedContact.ssoUsername);
194
138
  });
195
139
  /** Reset owner when selected account number changes */
196
140
  useEffect(() => {
@@ -286,26 +230,6 @@ function OwnerSelector(props) {
286
230
  users.length > 0 && setUsersWithGroupAccess(sortHydraContacts(users));
287
231
  }
288
232
  }, [selectedCaseGroupUsers, caseNumber]);
289
- // to populate the phone number with the logged in user data
290
- useEffect(() => {
291
- if (caseDetailes.contactSSOName === loggedInUser.data.ssoUsername) {
292
- if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
293
- setCaseDetails(caseDispatch, {
294
- phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
295
- phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
296
- });
297
- }
298
- else {
299
- const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
300
- const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode;
301
- setCaseDetails(caseDispatch, {
302
- phoneAreaCodePrefixLineNumber: phoneLine,
303
- phoneCountryCode: countryCode,
304
- });
305
- }
306
- }
307
- // eslint-disable-next-line react-hooks/exhaustive-deps
308
- }, []);
309
233
  const showUsersWithSelectedGroupAccess = caseNumber &&
310
234
  (selectedCaseGroupUsers.isFetching ||
311
235
  (!selectedCaseGroupUsers.isFetching && (selectedCaseGroupUsers.data || []).length > 0));
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumber.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAkB/D,wBAAgB,kBAAkB,sBAoLjC"}
1
+ {"version":3,"file":"ContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumber.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAkB/D,wBAAgB,kBAAkB,sBA2OjC"}
@@ -1,7 +1,16 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { contacts } from '@cee-eng/hydrajs';
1
11
  import { ValidatedOptions } from '@patternfly/react-core';
2
12
  import { getPhoneObj, PhoneInput } from '@rh-support/components';
3
13
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
- import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
5
14
  import isEmpty from 'lodash/isEmpty';
6
15
  import isEqual from 'lodash/isEqual';
7
16
  import isUndefined from 'lodash/isUndefined';
@@ -17,23 +26,35 @@ import { trimAndReplacePlus } from '../shared/utils';
17
26
  import { ContactPhoneNumberPopOver } from './ContactPhoneNumberPopOver';
18
27
  import MandatoryPhonePopOver from './MandatoryPhonePopOver';
19
28
  export function ContactPhoneNumber() {
20
- const { suppliedPhoneNumberVerified, phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', isExistingPhoneNumber, } = useCaseSelector((state) => ({
29
+ const { suppliedPhoneNumberVerified, phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', hasLoggedInUserConfirmedPhoneNumber, contactSSOName, } = useCaseSelector((state) => ({
21
30
  suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
22
31
  phoneCountryCode: state.caseDetails.phoneCountryCode,
23
32
  phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber,
24
- isExistingPhoneNumber: state.isExistingPhoneNumber,
33
+ hasLoggedInUserConfirmedPhoneNumber: state.hasLoggedInUserConfirmedPhoneNumber,
34
+ contactSSOName: state.caseDetails.contactSSOName,
25
35
  }), isEqual);
26
36
  const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
27
37
  const { globalMetadataState: { loggedInUser }, } = useContext(GlobalMetadataStateContext);
28
38
  const [invalid, setInvalid] = useState(false);
29
39
  const [localFullPhone, setLocalFullPhone] = useState(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber);
40
+ const [isFetchingSso, setIsFetchingSso] = useState(false);
30
41
  const { isExportingPDF } = useContext(PDFContext);
31
- const canChangeAccountInfo = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ACCOUNT_AND_OWNER);
32
42
  const getPhone = () => phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber;
33
43
  const caseDispatch = useCaseDispatch();
34
44
  const { t } = useTranslation();
45
+ const checkingPlusInLocalFullPhone = (_localFullPhone) => {
46
+ if (isEqual(_localFullPhone.trim(), '+')) {
47
+ return '';
48
+ }
49
+ else if (!isEmpty(_localFullPhone) && !_localFullPhone.startsWith('+')) {
50
+ return '+' + _localFullPhone.replace(' ', '');
51
+ }
52
+ else {
53
+ return _localFullPhone;
54
+ }
55
+ };
35
56
  const onPhoneChange = (fullPhone) => {
36
- setLocalFullPhone(fullPhone);
57
+ setLocalFullPhone(checkingPlusInLocalFullPhone(fullPhone));
37
58
  setCaseDetails(caseDispatch, {
38
59
  phoneAreaCodePrefixLineNumber: getPhoneObj(fullPhone).phoneLine,
39
60
  phoneCountryCode: getPhoneObj(fullPhone).countryCode,
@@ -52,7 +73,6 @@ export function ContactPhoneNumber() {
52
73
  isEmpty(phoneAreaCodePrefixLineNumber === null || phoneAreaCodePrefixLineNumber === void 0 ? void 0 : phoneAreaCodePrefixLineNumber.replace(phoneCountryCode, ''));
53
74
  const isPhoneNumberValid = !isEmpty(phoneAreaCodePrefixLineNumber) &&
54
75
  !isNextBtnClickedToShowValidationError &&
55
- isExistingPhoneNumber &&
56
76
  !isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
57
77
  (isEqual(suppliedPhoneNumberVerified, 'False') || isUndefined(suppliedPhoneNumberVerified))
58
78
  ? ValidatedOptions.warning
@@ -66,47 +86,92 @@ export function ContactPhoneNumber() {
66
86
  : invalid
67
87
  ? ValidatedOptions.error
68
88
  : ValidatedOptions.default;
89
+ // This useEffect initialize phone number inputbox
90
+ // - User open case for first time for herself/himself -> show portal phone number
91
+ // - User open case for NOT first time for herself/himself -> show phone number that we have on user contact in SF
69
92
  useEffect(() => {
70
- // when canChangeAccountInfo is false OwnerSelector is hidden
71
- // need to set phone on load here instead of OwnerSelector
72
- if (!canChangeAccountInfo && (isEmpty(phoneCountryCode) || isEmpty(phoneAreaCodePrefixLineNumber))) {
73
- if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
74
- setCaseDetails(caseDispatch, {
75
- phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
76
- phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
77
- });
93
+ if (isEmpty(loggedInUser.data.phone) &&
94
+ isEmpty(loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) &&
95
+ isEmpty(loggedInUser.data.supportPhoneCountryCode))
96
+ setLocalFullPhone('');
97
+ const initContactPhoneNumber = () => __awaiter(this, void 0, void 0, function* () {
98
+ let _phoneAreaCodePrefixLineNumber;
99
+ let _phoneCountryCode;
100
+ let _suppliedPhoneNumberVerified;
101
+ // logged in user and case owner are the same
102
+ if (contactSSOName === loggedInUser.data.ssoUsername) {
103
+ if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
104
+ // User has opened a case before and has phone and area code in her/his contact on SF
105
+ _phoneAreaCodePrefixLineNumber = loggedInUser.data.supportPhoneAreaCodePrefixLineNumber;
106
+ _phoneCountryCode = loggedInUser.data.supportPhoneCountryCode;
107
+ _suppliedPhoneNumberVerified =
108
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
109
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
110
+ ? hasLoggedInUserConfirmedPhoneNumber
111
+ : 'False';
112
+ }
113
+ else {
114
+ // User is openning a case for the first time
115
+ const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
116
+ const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode;
117
+ _phoneAreaCodePrefixLineNumber = phoneLine;
118
+ _phoneCountryCode = countryCode;
119
+ _suppliedPhoneNumberVerified =
120
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
121
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
122
+ ? hasLoggedInUserConfirmedPhoneNumber
123
+ : 'False';
124
+ }
78
125
  }
79
126
  else {
80
- const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
81
- const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode || '';
82
- const isValidCountryCode = !isEmpty(trimAndReplacePlus(countryCode));
83
- const isValidPhoneLine = !isEmpty(trimAndReplacePlus(phoneLine));
84
- if (isValidCountryCode && isValidPhoneLine) {
85
- setCaseDetails(caseDispatch, {
86
- phoneAreaCodePrefixLineNumber: phoneLine,
87
- phoneCountryCode: countryCode,
88
- });
127
+ // user is openning case for others (use is partner or red hatter)
128
+ try {
129
+ if (!contactSSOName)
130
+ return;
131
+ setIsFetchingSso(true);
132
+ const selectedContact = yield contacts.getSFDCContactBySso(contactSSOName);
133
+ setIsFetchingSso(false);
134
+ if (selectedContact.supportPhoneAreaCodePrefixLineNumber) {
135
+ _phoneAreaCodePrefixLineNumber = selectedContact.supportPhoneAreaCodePrefixLineNumber;
136
+ _phoneCountryCode = selectedContact.supportPhoneCountryCode;
137
+ _suppliedPhoneNumberVerified = 'Deferred';
138
+ }
139
+ else {
140
+ _phoneAreaCodePrefixLineNumber = getPhoneObj(selectedContact.phone).phoneLine || '';
141
+ _phoneCountryCode = getPhoneObj(selectedContact.phone).countryCode || '';
142
+ _suppliedPhoneNumberVerified = 'Deferred';
143
+ }
144
+ }
145
+ catch (e) {
146
+ _phoneAreaCodePrefixLineNumber = '';
147
+ _phoneCountryCode = '';
148
+ _suppliedPhoneNumberVerified = 'False';
149
+ setIsFetchingSso(false);
89
150
  }
90
151
  }
152
+ setCaseDetails(caseDispatch, {
153
+ phoneAreaCodePrefixLineNumber: _phoneAreaCodePrefixLineNumber,
154
+ phoneCountryCode: _phoneCountryCode,
155
+ suppliedPhoneNumberVerified: _suppliedPhoneNumberVerified,
156
+ });
157
+ let _localFullPhone = _phoneCountryCode + ' ' + _phoneAreaCodePrefixLineNumber;
158
+ setLocalFullPhone(checkingPlusInLocalFullPhone(_localFullPhone));
159
+ });
160
+ // if phone not initialized with portal and user contact value, initialize it else populate phone inputbox
161
+ if (isEmpty(phoneAreaCodePrefixLineNumber) && isEmpty(phoneCountryCode)) {
162
+ initContactPhoneNumber();
91
163
  }
92
- setLocalFullPhone(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber);
93
- // eslint-disable-next-line react-hooks/exhaustive-deps
94
- }, [phoneAreaCodePrefixLineNumber, phoneCountryCode, loggedInUser.data.phone]);
95
- useEffect(() => {
96
- if (isEqual(localFullPhone.trim(), '+')) {
97
- setLocalFullPhone('');
98
- }
99
- else if (!isEmpty(localFullPhone) && !localFullPhone.startsWith('+')) {
100
- setLocalFullPhone('+' + localFullPhone.replace(' ', ''));
164
+ else {
165
+ setLocalFullPhone(checkingPlusInLocalFullPhone(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber));
101
166
  }
102
167
  // eslint-disable-next-line react-hooks/exhaustive-deps
103
- }, [localFullPhone]);
168
+ }, [contactSSOName]);
104
169
  return (React.createElement("div", { className: "form-group", style: { minWidth: '200px' } },
105
170
  React.createElement("label", null,
106
171
  React.createElement(Trans, null, "Case owner's phone number"),
107
172
  React.createElement("span", { className: `form-required ${isExportingPDF ? 'hide-in-pdf' : ''}`, "aria-hidden": true }, "*"),
108
173
  ContactPhoneNumberPopOver()),
109
- React.createElement(PhoneInput, { phoneValue: localFullPhone, onPhoneValueChange: onPhoneChange, onCountryCodeChange: onCountryCodeChange, validations: isPhoneNumberValid, invalid: invalid, setInvalid: setInvalid }),
174
+ React.createElement(PhoneInput, { phoneValue: localFullPhone, onPhoneValueChange: onPhoneChange, onCountryCodeChange: onCountryCodeChange, validations: isPhoneNumberValid, invalid: invalid, setInvalid: setInvalid, isLoading: isFetchingSso }),
110
175
  React.createElement(MandatoryPhonePopOver, null),
111
176
  !invalid &&
112
177
  getPhone().length < PHONE_LIMIT &&
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPhoneNumberAlert.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberAlert.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,wBAAgB,uBAAuB,sBA0FtC"}
1
+ {"version":3,"file":"ContactPhoneNumberAlert.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberAlert.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,wBAAgB,uBAAuB,sBAqFtC"}
@@ -12,45 +12,42 @@ import { trimAndReplacePlus } from '../shared/utils';
12
12
  export function ContactPhoneNumberAlert() {
13
13
  const { t } = useTranslation();
14
14
  const caseDispatch = useCaseDispatch();
15
- const { caseDetails, phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', isExistingPhoneNumber, contactSSOName, } = useCaseSelector((state) => ({
16
- caseDetails: state.caseDetails,
15
+ const { phoneCountryCode, phoneAreaCodePrefixLineNumber, contactSSOName, suppliedPhoneNumberVerified } = useCaseSelector((state) => ({
17
16
  phoneCountryCode: state.caseDetails.phoneCountryCode,
18
17
  phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber,
19
- isExistingPhoneNumber: state.isExistingPhoneNumber,
20
18
  contactSSOName: state.caseDetails.contactSSOName,
19
+ suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
21
20
  }), isEqual);
22
21
  const { globalMetadataState: { loggedInUser }, } = useContext(GlobalMetadataStateContext);
23
22
  const { isExportingPDF } = useContext(PDFContext);
24
- const onCaseDetailsChange = (caseDetails) => {
25
- setCaseDetails(caseDispatch, caseDetails);
23
+ const onSuppliedPhoneNumberVerifiedChange = (suppliedPhoneNumberVerified) => {
24
+ setCaseDetails(caseDispatch, { suppliedPhoneNumberVerified });
26
25
  if (contactSSOName === loggedInUser.data.ssoUsername) {
27
26
  // edge case: when loggedInUser === contactSSOName while opening a case confirms or deffers the phone
28
27
  // we need to save the verification state globallly so that we don't show the phone review banner again
29
28
  // to the user where he changes it to another owner and then again assigns himself as the case owner
30
29
  setCaseState(caseDispatch, {
31
- hasLoggedInUserConfirmedPhoneNumber: caseDetails.suppliedPhoneNumberVerified,
30
+ hasLoggedInUserConfirmedPhoneNumber: suppliedPhoneNumberVerified,
32
31
  });
33
32
  }
34
33
  };
35
34
  const isPhoneNumberEmpty = isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
36
35
  isEmpty(phoneAreaCodePrefixLineNumber === null || phoneAreaCodePrefixLineNumber === void 0 ? void 0 : phoneAreaCodePrefixLineNumber.replace(phoneCountryCode, ''));
37
36
  useEffect(() => {
38
- if (isPhoneNumberEmpty && !caseDetails.suppliedPhoneNumberVerified) {
39
- onCaseDetailsChange({ suppliedPhoneNumberVerified: undefined });
37
+ if (isPhoneNumberEmpty && !suppliedPhoneNumberVerified) {
38
+ onSuppliedPhoneNumberVerifiedChange(undefined);
40
39
  }
41
40
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
41
  }, []);
43
- const showAlert = (isEqual(caseDetails.suppliedPhoneNumberVerified, 'False') ||
44
- isUndefined(caseDetails.suppliedPhoneNumberVerified)) &&
45
- !isEmpty(caseDetails.phoneAreaCodePrefixLineNumber) &&
46
- !isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
47
- isExistingPhoneNumber;
42
+ const phoneAndCountryHaveValues = !isEmpty(phoneAreaCodePrefixLineNumber) && !isEmpty(trimAndReplacePlus(phoneCountryCode));
43
+ const phoneNotVerifiedOrVerificationIsUndefined = isEqual(suppliedPhoneNumberVerified, 'False') || isUndefined(suppliedPhoneNumberVerified);
44
+ const showAlert = phoneNotVerifiedOrVerificationIsUndefined && phoneAndCountryHaveValues;
48
45
  if (!showAlert)
49
46
  return React.createElement(React.Fragment, null);
50
47
  return (React.createElement(Alert, { className: `form-group ${isExportingPDF ? 'hide-in-pdf' : ''} phone-review-banner`, isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
51
- React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-confirm", key: "case-contact-phone-number-confirm" },
48
+ React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onSuppliedPhoneNumberVerifiedChange('True'), "data-tracking-id": "case-contact-phone-number-confirm", key: "case-contact-phone-number-confirm" },
52
49
  React.createElement(Trans, null, "Confirm phone number")),
53
- React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'Deferred' }), "data-tracking-id": "case-contact-phone-number-dont-know", key: "case-contact-phone-number-dont-know" },
50
+ React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onSuppliedPhoneNumberVerifiedChange('Deferred'), "data-tracking-id": "case-contact-phone-number-dont-know", key: "case-contact-phone-number-dont-know" },
54
51
  React.createElement(Trans, null, "I don't know")),
55
52
  ] },
56
53
  React.createElement(Trans, null, "Please confirm the phone number we have on file is correct.")));
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBA+WtD"}
1
+ {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAwVtD"}
@@ -162,26 +162,6 @@ export function GlobalTroubleshootEffects(props) {
162
162
  setCaseOwner(caseDispatch, loggedInUserRights.data.getHydraContactFromLoggedInUser(), product, undefined, undefined, true);
163
163
  // eslint-disable-next-line react-hooks/exhaustive-deps
164
164
  }, [caseDispatch, loggedInUserRights.data]);
165
- /**
166
- * Setting supplied phone number
167
- */
168
- useEffect(() => {
169
- // Since we are receiving both `phone` and `supportPhoneNumber` from the user contact API, it is causing confusion regarding which field should be used to pre-populate the user contact information.
170
- // Hence, we are going to honor `supportPhoneAreaCodePrefixLineNumber` and `supportPhoneCountryCode` for it.
171
- if ((!isEmpty(loggedInUser.data.supportPhoneCountryCode) &&
172
- !isEmpty(loggedInUser.data.supportPhoneAreaCodePrefixLineNumber)) ||
173
- !isEmpty(loggedInUser.data.phone)) {
174
- setCaseState(caseDispatch, { isExistingPhoneNumber: true });
175
- }
176
- else {
177
- setCaseState(caseDispatch, { isExistingPhoneNumber: false });
178
- }
179
- setCaseDetails(caseDispatch, {
180
- phone: loggedInUser.data.phone,
181
- phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
182
- phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
183
- });
184
- }, [caseDispatch, loggedInUser.data]);
185
165
  /**
186
166
  * handling top content call
187
167
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAEtH,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAWxD,OAAO,EAEH,uBAAuB,EAEvB,UAAU,EAEb,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,0BAA0B,EAAiB,MAAM,yBAAyB,CAAC;AAEpF,eAAO,MAAM,WAAW,WAAY,UAAU,UAAU,GAAG,KAAG,UAgN7D,CAAC;AAGF,eAAO,MAAM,cAAc,aAAc,uBAAuB,aAAa,QAAQ,YAAY,CAAC,SAEjG,CAAC;AAEF,eAAO,MAAM,YAAY,aAAc,uBAAuB,aAAa,QAAQ,UAAU,CAAC,SAE7F,CAAC;AAEF,eAAO,MAAM,eAAe,aAAc,uBAAuB,gCAAgC,QAAQ,EAAE,SAK1G,CAAC;AAEF,eAAO,MAAM,UAAU,aACT,uBAAuB,0BACT,0BAA0B,eACrC,UAAU,eACV,YAAY,gBACX,OAAO,mBACJ,MAAM,GAAG,WAAW,2BACZ,MAAM,mBACd,OAAO,cACZ,OAAO,kBA8CtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,aAAc,uBAAuB,qBAUrF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,aAAc,uBAAuB,eAAe,OAAO,SAOpG,CAAC;AAEF,eAAO,MAAM,wBAAwB,aAAoB,uBAAuB,cAAc,MAAM,kBAsBnG,CAAC;AAGF,eAAO,MAAM,0BAA0B,oBAClB,OAAO,YACd,uBAAuB,0BACT,0BAA0B,eACrC,YAAY,cACb,MAAM,eACL,UAAU,kBAK1B,CAAC;AAGF,eAAO,MAAM,cAAc,2BACC,0BAA0B,eACrC,YAAY,cACb,MAAM,kBAQrB,CAAC;AAIF,eAAO,MAAM,cAAc,aACb,uBAAuB,cACrB,MAAM,cACN,WAAW,kBAoB1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,aACrB,uBAAuB,QAC3B,mBAAmB,EAAE,sBACP,iBAAiB,EAAE,SAO1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAoB,uBAAuB,WAAW,MAAM,eAAe,MAAM,kBAYhH,CAAC;AAEF,eAAO,MAAM,kBAAkB,aACjB,uBAAuB,cACrB,MAAM,eACL,QAAQ,UAAU,CAAC,kBAmBnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAClB,uBAAuB,cACrB,MAAM,gBACJ,MAAM,EAAE,kBAoBzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAClB,uBAAuB,cACrB,MAAM,cACN,QAAQ,EAAE,kBAmBzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAAc,uBAAuB,SASrE,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACnB,uBAAuB,iBAClB,MAAM,0DAEA,QAAQ,QAAQ,CAAC,kBA8CzC,CAAC;AAEF,eAAO,MAAM,YAAY,aACX,uBAAuB,SAC1B,QAAQ,WACN,MAAM,yBACQ,WAAW,4BACR,WAAW,2DAEV,MAAM,GAAG,SAAS,kBAmChD,CAAC;AA8BF,eAAO,MAAM,qBAAqB,aACpB,uBAAuB,sBACb,MAAM,8CAEZ,WAAW,6BACE,MAAM,GAAG,SAAS,kBAyBhD,CAAC;AAIF,eAAO,MAAM,qBAAqB,aACpB,uBAAuB,eACpB,YAAY,6BACE,MAAM,uBACZ,QAAQ,wBACR,QAAQ,QAAQ,CAAC,kBAyDzC,CAAC;AAmCF,eAAO,MAAM,gBAAgB,aACf,uBAAuB,cACrB,MAAM,8DAGH,QAAQ,YAAY,CAAC,kBAsGvC,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAChB,uBAAuB,cACrB,MAAM,eACL,QAAQ,YAAY,CAAC,mBACjB,OAAO,mBAiB3B,CAAC;AAEF,eAAO,MAAM,oCAAoC,aACnC,uBAAuB,SAC1B,aAAa,EAAE,gBACR,MAAM,kBAmCvB,CAAC;AAEF,eAAO,MAAM,oCAAoC,aACnC,uBAAuB,yEAInB,MAAM,kBACJ,MAAM,kBAgFzB,CAAC;AAEF,eAAO,MAAM,yCAAyC,aACxC,uBAAuB,cACrB,OAAO,iBACJ,MAAM,SAMxB,CAAC;AAIF,eAAO,MAAM,yBAAyB,aACxB,uBAAuB,iBAClB,MAAM,eACR,MAAM,sBACC,QAAQ,kBA6B/B,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,iBAmBtG;AAGD,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAC5E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,0BAA0B,EAAE,QAO5D;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,iBAiB1F;AAED,eAAO,MAAM,kBAAkB,aAAc,uBAAuB,QAAQ,OAAO,SAKlF,CAAC"}
1
+ {"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
@@ -418,7 +418,14 @@ export const setCaseOwner = (dispatch, owner, product, abortSignalCaseGroup, abo
418
418
  if (isEmpty(owner) || isEmpty(owner.ssoUsername)) {
419
419
  dispatch({
420
420
  type: CaseReducerConstants.caseDetailChanged,
421
- payload: { caseDetails: { contactSSOName: '' } },
421
+ payload: {
422
+ caseDetails: {
423
+ contactSSOName: '',
424
+ phoneAreaCodePrefixLineNumber: '',
425
+ phoneCountryCode: '',
426
+ suppliedPhoneNumberVerified: undefined,
427
+ },
428
+ },
422
429
  });
423
430
  canUpdateCaseGroup && setCaseDetails(dispatch, { groupNumber: '-1' });
424
431
  dispatch({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.2.128",
3
+ "version": "2.2.129-beta.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -61,7 +61,7 @@
61
61
  "@progress/kendo-react-pdf": "^5.16.0",
62
62
  "@redux-devtools/extension": "^3.3.0",
63
63
  "@rh-support/components": "2.1.61",
64
- "@rh-support/react-context": "2.1.68",
64
+ "@rh-support/react-context": "2.1.69",
65
65
  "@rh-support/types": "2.0.3",
66
66
  "@rh-support/user-permissions": "2.1.44",
67
67
  "@rh-support/utils": "2.1.33",
@@ -131,5 +131,5 @@
131
131
  "defaults and supports es6-module",
132
132
  "maintained node versions"
133
133
  ],
134
- "gitHead": "048283b5cde045c71a531b16e0692b9c0e9f4db8"
134
+ "gitHead": "551efecd97ae065d49e77f7089014d373aa248a2"
135
135
  }