@rh-support/troubleshoot 2.1.12 → 2.1.13-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.
- package/lib/esm/components/AccountInfo/AccountSelector.js +1 -1
- package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
- package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/OwnerSelector.js +91 -26
- package/lib/esm/components/AccountInfo/css/accountSelector.css +4 -0
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +8 -15
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +2 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +4 -2
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +4 -2
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +4 -2
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +3 -1
- package/lib/esm/components/CaseEditView/PDFContainer.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/PDFContainer.js +3 -10
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +3 -3
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.d.ts +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.js +0 -1
- package/lib/esm/components/CaseEditView/ShareCase/PartnerCaseHelper.js +2 -2
- package/lib/esm/components/CaseEditView/ShareCase/TnC.d.ts +0 -2
- package/lib/esm/components/CaseEditView/ShareCase/TnC.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ShareCase/TnC.js +2 -20
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +5 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +119 -42
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +2 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +5 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +3 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +8 -5
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts +9 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts.map +1 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +69 -0
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +5 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +3 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +4 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +5 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +3 -1
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +3 -3
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +92 -29
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +5 -8
- package/lib/esm/components/CaseInformation/FileDiag.d.ts +5 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.js +2 -2
- package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Fts.js +5 -3
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +3 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +2 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -2
- package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseManagement.js +4 -17
- package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/Cep.js +7 -5
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +8 -4
- package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.js +5 -3
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +7 -5
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +1 -1
- package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +1 -1
- package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
- package/lib/esm/components/EditDescription/EditDescription.js +4 -2
- package/lib/esm/components/IdeaInformation/IdeaInformtion.js +5 -5
- package/lib/esm/components/OpenCase/OpenCase.js +2 -2
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +9 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +2 -2
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +1 -1
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +2 -2
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +6 -8
- package/lib/esm/components/Recommendations/AsideResults.js +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.js +6 -3
- package/lib/esm/components/Recommendations/InsightsResults.js +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +1 -1
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +25 -9
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +2 -2
- package/lib/esm/components/Review/Review.js +3 -3
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +9 -8
- package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/Suggestions.js +2 -2
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +30 -18
- package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/FileLister.js +17 -7
- package/lib/esm/components/shared/fileUpload/UploadButton.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/UploadButton.js +2 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +17 -3
- package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts +2 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts.map +1 -1
- package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +28 -10
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +26 -15
- package/lib/esm/components/shared/utils.d.ts +1 -0
- package/lib/esm/components/shared/utils.d.ts.map +1 -1
- package/lib/esm/components/shared/utils.js +12 -0
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +4 -0
- package/lib/esm/components/wizardLayout/WizardAside.js +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +2 -2
- package/lib/esm/components/wizardLayout/WizardMain.js +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +50 -4
- package/lib/esm/constants/caseDetailsConstants.d.ts +3 -0
- package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
- package/lib/esm/constants/caseDetailsConstants.js +3 -0
- package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
- package/lib/esm/hooks/useResetCaseCreate.js +3 -1
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +3 -2
- package/lib/esm/reducers/CaseConstNTypes.d.ts +3 -2
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +7 -4
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +16 -8
- package/lib/esm/reducers/CaseReducer.d.ts +1 -1
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +9 -1
- package/lib/esm/scss/_main.scss +27 -221
- package/lib/esm/scss/_pf4-overrides.scss +90 -13
- package/lib/esm/utils/remoteRiderUtils.d.ts.map +1 -1
- package/lib/esm/utils/remoteRiderUtils.js +2 -2
- package/package.json +8 -8
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts +0 -11
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +0 -38
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts +0 -15
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +0 -106
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts +0 -3
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +0 -1
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +0 -41
- package/lib/esm/constants/tncConstants.d.ts +0 -13
- package/lib/esm/constants/tncConstants.d.ts.map +0 -1
- package/lib/esm/constants/tncConstants.js +0 -12
|
@@ -7,12 +7,13 @@ import { useCaseSelector } from '../../context/CaseContext';
|
|
|
7
7
|
import { RecommendationStateContext } from '../../context/RecommendationContext';
|
|
8
8
|
import { RouteContext } from '../../context/RouteContext';
|
|
9
9
|
import { TCStateContext } from '../../context/TopContentContext';
|
|
10
|
-
import { CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, DESCRIPTION_LENGTH_LIMIT, HOSTNAME_LENGTH_LIMIT,
|
|
10
|
+
import { CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, DESCRIPTION_LENGTH_LIMIT, HOSTNAME_LENGTH_LIMIT, SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
|
|
11
11
|
import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
|
|
12
12
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
13
|
+
import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
|
|
13
14
|
export function useIsSectionValid(sectionName) {
|
|
14
15
|
var _a, _b;
|
|
15
|
-
const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, description, hostname, contactInfo24x7, alternateId, selectedAccountDetails,
|
|
16
|
+
const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, description, hostname, contactInfo24x7, alternateId, selectedAccountDetails, } = useCaseSelector((state) => ({
|
|
16
17
|
caseState: state,
|
|
17
18
|
caseType: state.caseDetails.caseType,
|
|
18
19
|
product: state.caseDetails.product,
|
|
@@ -26,13 +27,23 @@ export function useIsSectionValid(sectionName) {
|
|
|
26
27
|
contactInfo24x7: state.caseDetails.contactInfo24x7,
|
|
27
28
|
alternateId: state.caseDetails.alternateId,
|
|
28
29
|
selectedAccountDetails: state.selectedAccountDetails,
|
|
29
|
-
phone: state.caseDetails.phone,
|
|
30
30
|
}), isEqual);
|
|
31
31
|
const { globalMetadataState: { allProducts, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
|
|
32
32
|
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
33
33
|
const { recommendationState } = useContext(RecommendationStateContext);
|
|
34
34
|
const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
|
|
35
35
|
const { routeState: { activeSection, isSearchIntent }, } = useContext(RouteContext);
|
|
36
|
+
const { attachmentState } = useContext(AttachmentStateContext);
|
|
37
|
+
const selectedLocalFiles = attachmentState.caseFiles.selectedLocalFiles;
|
|
38
|
+
const allowedTypesIdea = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif'];
|
|
39
|
+
const checkUnallowedFiles = () => {
|
|
40
|
+
let unallowedFiles = [];
|
|
41
|
+
if (caseType === 'Feature / Enhancement Request') {
|
|
42
|
+
unallowedFiles = selectedLocalFiles.filter((file) => !allowedTypesIdea.includes(file.type));
|
|
43
|
+
}
|
|
44
|
+
let hasUnallowedFiles = (unallowedFiles === null || unallowedFiles === void 0 ? void 0 : unallowedFiles.length) > 0;
|
|
45
|
+
return !hasUnallowedFiles; // we want it false to trigger the error if its true
|
|
46
|
+
};
|
|
36
47
|
const isGetSupportSectionValidLocal = () => {
|
|
37
48
|
return (!isEmpty(caseType) &&
|
|
38
49
|
!isEmpty(accountNumber) &&
|
|
@@ -40,6 +51,7 @@ export function useIsSectionValid(sectionName) {
|
|
|
40
51
|
!selectedAccountDetails.data.subscriptionAbuse);
|
|
41
52
|
};
|
|
42
53
|
const isSummarizeSectionValid = () => {
|
|
54
|
+
var _a;
|
|
43
55
|
return (!isEmpty(product) &&
|
|
44
56
|
!isEmpty(version) &&
|
|
45
57
|
!allProducts.isFetching &&
|
|
@@ -47,29 +59,27 @@ export function useIsSectionValid(sectionName) {
|
|
|
47
59
|
!topContent.isFetching &&
|
|
48
60
|
!isEmpty(summary) &&
|
|
49
61
|
!recommendationState.isLoadingRecommendations &&
|
|
50
|
-
summary.length < SUMMARY_LENGTH_LIMIT);
|
|
62
|
+
((_a = summary) === null || _a === void 0 ? void 0 : _a.length) < SUMMARY_LENGTH_LIMIT);
|
|
51
63
|
};
|
|
52
64
|
const isCaseManagementSectionValid = () => {
|
|
53
65
|
const hasContactInfo24x7ValidLength = contactInfo24x7
|
|
54
|
-
? contactInfo24x7.length <= CONTACT_INFO_24X7_LIMIT
|
|
66
|
+
? (contactInfo24x7 === null || contactInfo24x7 === void 0 ? void 0 : contactInfo24x7.length) <= CONTACT_INFO_24X7_LIMIT
|
|
55
67
|
: true;
|
|
56
|
-
const hasAlternateCaseIdValidLength = alternateId ? alternateId.length <= CASE_REFERENCE_NUMBER_LIMIT : true;
|
|
57
|
-
const hasSppliedPhoneValidLength = phone ? phone.length <= PHONE_LIMIT : true;
|
|
68
|
+
const hasAlternateCaseIdValidLength = alternateId ? (alternateId === null || alternateId === void 0 ? void 0 : alternateId.length) <= CASE_REFERENCE_NUMBER_LIMIT : true;
|
|
58
69
|
return (isCaseManagementStateValid(caseState, loggedInUserJwtToken) &&
|
|
59
70
|
hasContactInfo24x7ValidLength &&
|
|
60
|
-
hasAlternateCaseIdValidLength
|
|
61
|
-
hasSppliedPhoneValidLength);
|
|
71
|
+
hasAlternateCaseIdValidLength);
|
|
62
72
|
};
|
|
63
73
|
const isTroubleshootSectionValid = () => {
|
|
64
|
-
var _a;
|
|
74
|
+
var _a, _b, _c;
|
|
65
75
|
// don't check for entitled product if user is on search intent flow
|
|
66
76
|
const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
|
|
67
77
|
return (!recommendationState.isLoadingRecommendations &&
|
|
68
78
|
!isEmpty(summary) &&
|
|
69
79
|
isEntitledProductLocal &&
|
|
70
|
-
summary.length <= SUMMARY_LENGTH_LIMIT &&
|
|
71
|
-
description.length <= DESCRIPTION_LENGTH_LIMIT &&
|
|
72
|
-
isClusterIDValid(caseState, (
|
|
80
|
+
((_a = summary) === null || _a === void 0 ? void 0 : _a.length) <= SUMMARY_LENGTH_LIMIT &&
|
|
81
|
+
((_b = description) === null || _b === void 0 ? void 0 : _b.length) <= DESCRIPTION_LENGTH_LIMIT &&
|
|
82
|
+
isClusterIDValid(caseState, (_c = allProducts.data) === null || _c === void 0 ? void 0 : _c.productsResult));
|
|
73
83
|
};
|
|
74
84
|
const isReviewSectionValid = () => {
|
|
75
85
|
var _a;
|
|
@@ -80,11 +90,12 @@ export function useIsSectionValid(sectionName) {
|
|
|
80
90
|
const isDescribeIdeaSectionValid = () => {
|
|
81
91
|
return (isCaseManagementStateValid(caseState, loggedInUserJwtToken) &&
|
|
82
92
|
isEntitledProduct &&
|
|
83
|
-
isIdeaCaseStateValid(caseState, loggedInUserJwtToken)
|
|
93
|
+
isIdeaCaseStateValid(caseState, loggedInUserJwtToken) &&
|
|
94
|
+
checkUnallowedFiles());
|
|
84
95
|
};
|
|
85
96
|
const isCaseDescribeMoreSectionValidLocal = () => {
|
|
86
97
|
var _a;
|
|
87
|
-
const hostnameIsValid = hostname ? hostname.length <= HOSTNAME_LENGTH_LIMIT : true;
|
|
98
|
+
const hostnameIsValid = hostname ? (hostname === null || hostname === void 0 ? void 0 : hostname.length) <= HOSTNAME_LENGTH_LIMIT : true;
|
|
88
99
|
return (!caseState.hasInvalidEntitlements &&
|
|
89
100
|
isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
|
|
90
101
|
isCaseInformationSectionValid(caseState, loggedInUserJwtToken) &&
|
|
@@ -9,4 +9,5 @@ import { CaseValuesToWatch } from './Constants';
|
|
|
9
9
|
* should return a human readable form of the given object.
|
|
10
10
|
*/
|
|
11
11
|
export declare function getChangedValueTooltip<T>(valueNameCb: (current: T, previous: T) => CaseValuesToWatch, accessor?: (value: T, otherValue: T) => any): (currentValue: T, previousValue: T) => JSX.Element;
|
|
12
|
+
export declare const isPhoneValid: (countryCode: string, phoneLine: string) => boolean;
|
|
12
13
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/utils.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/utils.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACpC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,iBAAiB,EAC3D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,GAAG,kBAErB,CAAC,iBAAiB,CAAC,iBAQ5C;AAED,eAAO,MAAM,YAAY,gBAAiB,MAAM,aAAa,MAAM,KAAG,OAarE,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { Trans } from 'react-i18next';
|
|
4
|
+
import { PHONE_LIMIT } from '../../reducers/CaseConstNTypes';
|
|
3
5
|
/**
|
|
4
6
|
*
|
|
5
7
|
* A function that returns a translated string for a tooltip of the given case value that is being watched
|
|
@@ -24,3 +26,13 @@ export function getChangedValueTooltip(valueNameCb, accessor) {
|
|
|
24
26
|
accessor ? accessor(currentValue, previousValue) : currentValue,
|
|
25
27
|
" ")));
|
|
26
28
|
}
|
|
29
|
+
export const isPhoneValid = (countryCode, phoneLine) => {
|
|
30
|
+
const regex = /^[\d ()+-]+$/;
|
|
31
|
+
const phoneIncludesCorrectChars = phoneLine ? regex.test(phoneLine.replace(countryCode, '')) : true;
|
|
32
|
+
// To validate case state if country code and phoneline both are available
|
|
33
|
+
// or none of them are available (xor)
|
|
34
|
+
const isCountryCodeFollowsByPhone = isEmpty(countryCode === null || countryCode === void 0 ? void 0 : countryCode.replace('+', '')) === isEmpty(phoneLine) ? true : false;
|
|
35
|
+
const phoneLength = ((countryCode === null || countryCode === void 0 ? void 0 : countryCode.length) || 0) + ((phoneLine === null || phoneLine === void 0 ? void 0 : phoneLine.length) || 0) + 1;
|
|
36
|
+
const hasSuppliedPhoneValidLength = phoneLength <= PHONE_LIMIT;
|
|
37
|
+
return isCountryCodeFollowsByPhone && hasSuppliedPhoneValidLength && phoneIncludesCorrectChars;
|
|
38
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,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,
|
|
1
|
+
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,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,eAmWtD"}
|
|
@@ -174,8 +174,12 @@ export function GlobalTroubleshootEffects(props) {
|
|
|
174
174
|
* Setting supplied phone number
|
|
175
175
|
*/
|
|
176
176
|
useEffect(() => {
|
|
177
|
+
// 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.
|
|
178
|
+
// Hence, we are going to honor `supportPhoneAreaCodePrefixLineNumber` and `supportPhoneCountryCode` for it.
|
|
177
179
|
setCaseDetails(caseDispatch, {
|
|
178
180
|
phone: loggedInUser.data.phone,
|
|
181
|
+
phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
|
|
182
|
+
phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
|
|
179
183
|
});
|
|
180
184
|
}, [caseDispatch, loggedInUser.data]);
|
|
181
185
|
/**
|
|
@@ -36,7 +36,7 @@ function WizardAside(props) {
|
|
|
36
36
|
canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
37
37
|
React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget }),
|
|
38
38
|
canUseSessionManagement && !isCreatingCase && React.createElement(SessionRestore, { routeProps: props.routeProps }),
|
|
39
|
-
canShowFileUploadWidget() && React.createElement(FileDiag,
|
|
39
|
+
canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-u-mt-md" }))));
|
|
40
40
|
}
|
|
41
41
|
WizardAside.defaultProps = defaultProps;
|
|
42
42
|
export default WizardAside;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardLayout.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAavG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WizardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardLayout.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAavG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,eA4IzC"}
|
|
@@ -35,7 +35,7 @@ export function WizardLayout(props) {
|
|
|
35
35
|
const caseState = useCaseSelector((state) => state, isEqual);
|
|
36
36
|
const caseDispatch = useCaseDispatch();
|
|
37
37
|
const { sessionRestore: { activeSessionId, previousSessions }, } = useContext(SessionRestoreStateContext);
|
|
38
|
-
const { globalMetadataState: { allProducts }, } = useContext(GlobalMetadataStateContext);
|
|
38
|
+
const { globalMetadataState: { allProducts, loggedInUser }, } = useContext(GlobalMetadataStateContext);
|
|
39
39
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
40
40
|
const { attachmentState } = useContext(AttachmentStateContext);
|
|
41
41
|
const isAnyFileAttachedLocal = isAnyFileAttached(attachmentState.caseFiles.selectedLocalFiles);
|
|
@@ -84,7 +84,7 @@ export function WizardLayout(props) {
|
|
|
84
84
|
"Try submitting again after a minute. Please ",
|
|
85
85
|
React.createElement(SupportFeedbackForm, { isInline: true }),
|
|
86
86
|
" if you continue to see this message.")));
|
|
87
|
-
submitCase(caseDispatch, caseState, sessionItem, isCaseCreate, errorMessageCaseSubmit500);
|
|
87
|
+
submitCase(caseDispatch, caseState, sessionItem, isCaseCreate, errorMessageCaseSubmit500, loggedInUser.data.ssoUsername);
|
|
88
88
|
// reset viewedModals on case submit
|
|
89
89
|
viewedConfirmationModalsList.current = [];
|
|
90
90
|
!isReSubmitting &&
|
|
@@ -48,7 +48,7 @@ function WizardMain(props) {
|
|
|
48
48
|
// in useWizard file then add it to step squences in RouteConstNTypes
|
|
49
49
|
const steps = getStepsSequece(showRestFlag);
|
|
50
50
|
return (React.createElement(React.Fragment, null,
|
|
51
|
-
steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue)`, render: () => (React.createElement(Wizard, { navAriaLabel: ` navAriaLabel steps `, mainAriaLabel: ` mainAriaLabel content `, steps: steps, footer: CustomFooter, onNext: onNext, onBack: onBack, hideClose: true, backButtonText: t('Go back'), onCurrentStepChanged: onCurrentStepChanged })) })),
|
|
51
|
+
steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue|open-case)`, render: () => (React.createElement(Wizard, { navAriaLabel: ` navAriaLabel steps `, mainAriaLabel: ` mainAriaLabel content `, steps: steps, footer: CustomFooter, onNext: onNext, onBack: onBack, hideClose: true, backButtonText: t('Go back'), onCurrentStepChanged: onCurrentStepChanged })) })),
|
|
52
52
|
React.createElement(Route, { exact: true, path: `${RouteUtils.seBasePath}/${AppRouteSections.SUBMIT_CASE}`, render: () => renderSubmitCasePage() })));
|
|
53
53
|
}
|
|
54
54
|
export default WizardMain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAK3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,2BAA2B,EAAE,OAAO,EAAE,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,eA4JtC;kBA5JQ,gBAAgB;;;AA8JzB,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,28 @@
|
|
|
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 { pcm } from '@cee-eng/hydrajs';
|
|
11
|
+
import { Button, ButtonVariant } from '@patternfly/react-core';
|
|
12
|
+
import { useFetch } from '@rh-support/components';
|
|
1
13
|
import { GlobalMetadataStateContext, useCanCreateCase } from '@rh-support/react-context';
|
|
14
|
+
import { getResTypeFromUrl } from '@rh-support/utils';
|
|
2
15
|
import find from 'lodash/find';
|
|
3
16
|
import isEqual from 'lodash/isEqual';
|
|
4
|
-
import React, { useContext } from 'react';
|
|
17
|
+
import React, { useContext, useState } from 'react';
|
|
5
18
|
import { useTranslation } from 'react-i18next';
|
|
6
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
19
|
+
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
7
20
|
import { RouteContext, RouteDispatchContext } from '../../context/RouteContext';
|
|
21
|
+
import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
22
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
8
23
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
9
24
|
import { updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
|
|
25
|
+
import { RecommendationFeedbackModal } from '../Recommendations/RecommendationFeedbackModal';
|
|
10
26
|
import { useIsSectionValid } from '../shared/useIsSectionValid';
|
|
11
27
|
const defaultProps = {};
|
|
12
28
|
function WizardNavigation(props) {
|
|
@@ -22,6 +38,14 @@ function WizardNavigation(props) {
|
|
|
22
38
|
const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
|
|
23
39
|
const dispatchToRouteReducer = useContext(RouteDispatchContext);
|
|
24
40
|
const { activeSectionError, isSectionValidFn } = useIsSectionValid(activeSection);
|
|
41
|
+
const [isRecsModalVisible, setIsRecsModalVisible] = useState(false);
|
|
42
|
+
const { request: resolveSessionRequest } = useFetch(pcm.preCase.session.resolveSession);
|
|
43
|
+
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
44
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
45
|
+
const { isFileRecommendationsTriggered } = useCaseSelector((state) => ({
|
|
46
|
+
isFileRecommendationsTriggered: state.isFileRecommendationsTriggered,
|
|
47
|
+
}), isEqual);
|
|
48
|
+
const caseDispatch = useCaseDispatch();
|
|
25
49
|
const onNext = () => {
|
|
26
50
|
var _a, _b;
|
|
27
51
|
updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, true);
|
|
@@ -59,13 +83,35 @@ function WizardNavigation(props) {
|
|
|
59
83
|
props.onShowRestUpdate(false);
|
|
60
84
|
props.onBack();
|
|
61
85
|
};
|
|
86
|
+
const onRecsFeedbackModalToggle = () => {
|
|
87
|
+
setIsRecsModalVisible((visible) => !visible);
|
|
88
|
+
};
|
|
89
|
+
// To handle self solving through file recommendations
|
|
90
|
+
const handleFileRecsSelfSolved = () => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
var _c, _d, _e, _f;
|
|
92
|
+
try {
|
|
93
|
+
yield resolveSessionRequest(activeSessionId, {
|
|
94
|
+
sessionId: activeSessionId,
|
|
95
|
+
sessionResourceOriginId: (_d = (_c = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _c === void 0 ? void 0 : _c.resourceOriginId) !== null && _d !== void 0 ? _d : '',
|
|
96
|
+
type: getResTypeFromUrl(''),
|
|
97
|
+
source: SessionResourceSource.INSIGHTS,
|
|
98
|
+
resourceEntityId: (_f = (_e = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _e === void 0 ? void 0 : _e.resourceEntityId) !== null && _f !== void 0 ? _f : '',
|
|
99
|
+
url: '',
|
|
100
|
+
});
|
|
101
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: false });
|
|
102
|
+
setIsRecsModalVisible(true);
|
|
103
|
+
}
|
|
104
|
+
catch (e) { }
|
|
105
|
+
});
|
|
62
106
|
// To handle entitled products
|
|
63
107
|
const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
|
|
64
108
|
return (React.createElement(React.Fragment, null,
|
|
65
|
-
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
109
|
+
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
66
110
|
React.createElement("button", { disabled: (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
|
|
67
111
|
(!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
|
|
68
|
-
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
112
|
+
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
113
|
+
activeSection === AppRouteSections.TROUBLESHOOT && isFileRecommendationsTriggered && (React.createElement(Button, { onClick: handleFileRecsSelfSolved, variant: ButtonVariant.secondary, className: "issue-solved-button solved-issue-button", "data-tracking-id": "troubleshoot-self-solved-issue" }, t('I solved my issue'))),
|
|
114
|
+
React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
69
115
|
activeSectionError ? (React.createElement("small", { className: "pf-u-align-self-center pf-u-ml-md text-red" }, t(activeSectionError))) : null));
|
|
70
116
|
}
|
|
71
117
|
WizardNavigation.defaultProps = defaultProps;
|
|
@@ -12,5 +12,8 @@ export declare enum CaseStatusEnum {
|
|
|
12
12
|
WAITING_ON_CUSTOMER = "Waiting on Customer",
|
|
13
13
|
WAITING_ON_REDHAT = "Waiting on Red Hat"
|
|
14
14
|
}
|
|
15
|
+
export declare const PHONE_LINE_CANNOT_BE_EMPTY = "Phone number cannot be empty when country code is given.";
|
|
16
|
+
export declare const PHONE_NO_CHAR_ERROR = "Phone number can only have digits.";
|
|
17
|
+
export declare const PHONE_IS_NOT_VALID = "Phone number is invalid.";
|
|
15
18
|
export declare const PHONE_INSTRUCTION = "A current phone number with the country code helps us support you better.";
|
|
16
19
|
//# sourceMappingURL=caseDetailsConstants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caseDetailsConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/caseDetailsConstants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,yBAAyB,CAAC;AAE3E,oBAAY,mBAAmB;IAC3B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,UAAU,gBAAgB;CAC7B;AAED,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,mBAAmB,wBAAwB;IAC3C,iBAAiB,uBAAuB;CAC3C;AAED,eAAO,MAAM,iBAAiB,8EAA8E,CAAC"}
|
|
1
|
+
{"version":3,"file":"caseDetailsConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/caseDetailsConstants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC,yBAAyB,CAAC;AAE3E,oBAAY,mBAAmB;IAC3B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,UAAU,gBAAgB;CAC7B;AAED,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,mBAAmB,wBAAwB;IAC3C,iBAAiB,uBAAuB;CAC3C;AAED,eAAO,MAAM,0BAA0B,6DAA6D,CAAC;AAErG,eAAO,MAAM,mBAAmB,uCAAuC,CAAC;AAExE,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,eAAO,MAAM,iBAAiB,8EAA8E,CAAC"}
|
|
@@ -14,4 +14,7 @@ export var CaseStatusEnum;
|
|
|
14
14
|
CaseStatusEnum["WAITING_ON_CUSTOMER"] = "Waiting on Customer";
|
|
15
15
|
CaseStatusEnum["WAITING_ON_REDHAT"] = "Waiting on Red Hat";
|
|
16
16
|
})(CaseStatusEnum || (CaseStatusEnum = {}));
|
|
17
|
+
export const PHONE_LINE_CANNOT_BE_EMPTY = 'Phone number cannot be empty when country code is given.';
|
|
18
|
+
export const PHONE_NO_CHAR_ERROR = 'Phone number can only have digits.';
|
|
19
|
+
export const PHONE_IS_NOT_VALID = 'Phone number is invalid.';
|
|
17
20
|
export const PHONE_INSTRUCTION = 'A current phone number with the country code helps us support you better.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResetCaseCreate.d.ts","sourceRoot":"","sources":["../../../src/hooks/useResetCaseCreate.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useResetCaseCreate.d.ts","sourceRoot":"","sources":["../../../src/hooks/useResetCaseCreate.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,kBAAkB;;EAsCjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fetchLoggedInUsersAccount, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
|
|
1
|
+
import { fetchLoggedInUser, fetchLoggedInUsersAccount, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
|
|
2
2
|
import { useContext } from 'react';
|
|
3
3
|
import { AttachmentDispatchContext, resetAttachment } from '../components/shared/fileUpload';
|
|
4
4
|
import { useCaseDispatch } from '../context/CaseContext';
|
|
@@ -22,6 +22,8 @@ export function useResetCaseCreate() {
|
|
|
22
22
|
const clusterRecommendationsDispatch = useContext(ClusterRecommendationsDispatchContext);
|
|
23
23
|
const { globalMetadataState: { loggedInUsersAccount, loggedInUserRights, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
|
|
24
24
|
const resetCaseCreateState = () => {
|
|
25
|
+
// On case creation we refetch the user contact details to get users updated phone number
|
|
26
|
+
fetchLoggedInUser(dispatchToGlobalMetadataReducer, loggedInUserJwtToken, {});
|
|
25
27
|
resetAttachment(dispatchToAttachmentReducer);
|
|
26
28
|
resetTopContent(tcDispatch);
|
|
27
29
|
resetRecommendations(recommendationsDispatch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,SAAS,CAAC,UAAU,KAAA;
|
|
1
|
+
{"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,SAAS,CAAC,UAAU,KAAA;iCAwNG,OAAO;EAwC7C"}
|
|
@@ -40,10 +40,11 @@ export function useWizard(routeProps) {
|
|
|
40
40
|
};
|
|
41
41
|
const alertMessage = () => {
|
|
42
42
|
// alert title and variant based on multiple conditions for two different sections
|
|
43
|
-
const
|
|
43
|
+
const isLoading = topContent.isFetching || (isLoadingRecommendations && summary);
|
|
44
|
+
const title = isLoading
|
|
44
45
|
? t('Please wait while recommendations are loading')
|
|
45
46
|
: t('Please address the errors to proceed');
|
|
46
|
-
return (React.createElement(AlertMessage, { show: isNextBtnClickedToShowValidationError && !isActiveSectionValid, variant: (isLoadingRecommendations && summary) || topContent.isFetching ? AlertType.INFO : AlertType.DANGER, isInline: true, title: title, className: "pf-u-mb-lg" }));
|
|
47
|
+
return (React.createElement(AlertMessage, { show: isNextBtnClickedToShowValidationError && !isActiveSectionValid, variant: (isLoadingRecommendations && summary) || topContent.isFetching ? AlertType.INFO : AlertType.DANGER, isInline: true, title: title, className: "pf-u-mb-lg", "data-tracking-id": isLoading ? 'wait-recommendations-loading' : 'proceed-address-errors' }));
|
|
47
48
|
};
|
|
48
49
|
// components that are used in wizard steps
|
|
49
50
|
const appRouteConfugurations = {
|
|
@@ -16,7 +16,7 @@ export declare const HOSTNAME_LENGTH_LIMIT = 255;
|
|
|
16
16
|
export declare const CONTACT_INFO_24X7_LIMIT = 32768;
|
|
17
17
|
export declare const CLUSTER_ID_LIMIT = 255;
|
|
18
18
|
export declare const CASE_REFERENCE_NUMBER_LIMIT = 100;
|
|
19
|
-
export declare const PHONE_LIMIT =
|
|
19
|
+
export declare const PHONE_LIMIT = 23;
|
|
20
20
|
export declare const SESSION_NOTIFIED_USERS_INTERNAL_LIMIT = 1024;
|
|
21
21
|
export declare const SESSION_NOTIFIED_USERS_EXTERNAL_LIMIT = 1024;
|
|
22
22
|
export declare const SESSION_TIME_FRAMES_URGENCY_LIMIT = 32768;
|
|
@@ -26,7 +26,7 @@ export declare const SESSION_ENVIRONMENT_LIMIT = 32768;
|
|
|
26
26
|
export declare const SESSION_REFERRER_URL_LIMIT = 1024;
|
|
27
27
|
export declare const SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT = 255;
|
|
28
28
|
export declare const SESSION_NO_CLUSTER_REASON_EXPLANATION_LENGTH_LIMIT = 255;
|
|
29
|
-
export declare const SESSION_PHONE_LENGTH_LIMIT =
|
|
29
|
+
export declare const SESSION_PHONE_LENGTH_LIMIT = 23;
|
|
30
30
|
export declare const CASE_DEATILS_ISSUE_LIMIT = 20000;
|
|
31
31
|
export declare const CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT = 4000;
|
|
32
32
|
export declare const CASE_DEATILS_ENVIRONMENT_LIMIT = 3000;
|
|
@@ -199,6 +199,7 @@ export interface ICaseState {
|
|
|
199
199
|
caseCreation500ErrorStatus: boolean;
|
|
200
200
|
openshiftDisplayName?: string;
|
|
201
201
|
isCaseOwnerUpdating: boolean;
|
|
202
|
+
isFileRecommendationsTriggered?: boolean;
|
|
202
203
|
}
|
|
203
204
|
export interface ICreateCasePayloadType extends ICaseState {
|
|
204
205
|
}
|
|
@@ -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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"}
|
|
@@ -8,7 +8,7 @@ export const HOSTNAME_LENGTH_LIMIT = 255;
|
|
|
8
8
|
export const CONTACT_INFO_24X7_LIMIT = 32768;
|
|
9
9
|
export const CLUSTER_ID_LIMIT = 255;
|
|
10
10
|
export const CASE_REFERENCE_NUMBER_LIMIT = 100;
|
|
11
|
-
export const PHONE_LIMIT =
|
|
11
|
+
export const PHONE_LIMIT = 23;
|
|
12
12
|
export const SESSION_NOTIFIED_USERS_INTERNAL_LIMIT = 1024;
|
|
13
13
|
export const SESSION_NOTIFIED_USERS_EXTERNAL_LIMIT = 1024;
|
|
14
14
|
export const SESSION_TIME_FRAMES_URGENCY_LIMIT = 32768;
|
|
@@ -18,7 +18,7 @@ export const SESSION_ENVIRONMENT_LIMIT = 32768;
|
|
|
18
18
|
export const SESSION_REFERRER_URL_LIMIT = 1024;
|
|
19
19
|
export const SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT = 255;
|
|
20
20
|
export const SESSION_NO_CLUSTER_REASON_EXPLANATION_LENGTH_LIMIT = 255;
|
|
21
|
-
export const SESSION_PHONE_LENGTH_LIMIT =
|
|
21
|
+
export const SESSION_PHONE_LENGTH_LIMIT = 23;
|
|
22
22
|
//Case detail limits for each individual KT Question in order as they appear on troubleshoot/opencase
|
|
23
23
|
//We are totaling 31k here to allow for the backend to accept response when combined with question copy.
|
|
24
24
|
export const CASE_DEATILS_ISSUE_LIMIT = 20000; // 1st Q
|
|
@@ -136,7 +136,7 @@ export const initialCaseState = {
|
|
|
136
136
|
caseResourceLinks: [],
|
|
137
137
|
hostname: undefined,
|
|
138
138
|
cep: undefined,
|
|
139
|
-
createdDate:
|
|
139
|
+
createdDate: '',
|
|
140
140
|
createdById: '',
|
|
141
141
|
ownerId: '',
|
|
142
142
|
alternateId: '',
|
|
@@ -150,6 +150,8 @@ export const initialCaseState = {
|
|
|
150
150
|
noClusterIdReasonExplanation: '',
|
|
151
151
|
openshiftClusterVersion: '',
|
|
152
152
|
phone: '',
|
|
153
|
+
phoneCountryCode: '',
|
|
154
|
+
phoneAreaCodePrefixLineNumber: '',
|
|
153
155
|
suppliedPhoneNumberVerified: undefined,
|
|
154
156
|
},
|
|
155
157
|
customerEscalation: false,
|
|
@@ -169,7 +171,7 @@ export const initialCaseState = {
|
|
|
169
171
|
},
|
|
170
172
|
isPostingCep: false,
|
|
171
173
|
isPostingCepError: false,
|
|
172
|
-
isPostingCepErrorMessage:
|
|
174
|
+
isPostingCepErrorMessage: '',
|
|
173
175
|
selectedAccountDetails: getApiResourceObject({}),
|
|
174
176
|
selectedOwner: getApiResourceObject({}),
|
|
175
177
|
ownersCaseGroups: getApiResourceObject(),
|
|
@@ -190,6 +192,7 @@ export const initialCaseState = {
|
|
|
190
192
|
caseCreation500ErrorStatus: false,
|
|
191
193
|
openshiftDisplayName: '',
|
|
192
194
|
isCaseOwnerUpdating: false,
|
|
195
|
+
isFileRecommendationsTriggered: false,
|
|
193
196
|
};
|
|
194
197
|
export const ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/articles/5967811';
|
|
195
198
|
export const NON_ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = 'https://access.redhat.com/articles/5967831';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAmB3D,OAAO,EAUH,UAAU,EAeb,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,sBAAsB,SAAU,mBAAmB,EAAE,wBAMjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAAgB,WAAW,KAAG,MAOrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,mBAAmB,SAAS,MAAM,sBAyB9E,CAAC;AAIF,eAAO,MAAM,qBAAqB,UACvB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,kBACb,MAAM,YACZ,MAAM,YACN,MAAM,KACjB,MAyBF,CAAC;AAIF,eAAO,MAAM,oBAAoB,UACtB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,KAC9B,MAQF,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAc,MAAM,KAAG,MAKzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAqC5B,CAAC;AAIF,eAAO,MAAM,gBAAgB,cAAe,UAAU,wBAAwB,QAAQ,eAAe,CAAC,KAAG,OA6BxG,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAClB,UAAU,wBACC,QAAQ,eAAe,CAAC,KAC/C,OAyBF,CAAC;AAEF,eAAO,MAAM,0BAA0B,cACxB,UAAU,wBACC,QAAQ,eAAe,CAAC,KAC/C,OAmBF,CAAC;AAIF,eAAO,MAAM,6BAA6B,cAC3B,UAAU,wBACC,QAAQ,eAAe,CAAC,KAC/C,OAuBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACf,UAAU,gBACP,YAAY,iBACZ,OAAO,KACtB,QAAQ,YAAY,CA2EtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAsB,YAAY,EAAE,KAAG,YAAY,EAEvF,CAAC;AACF,eAAO,MAAM,yBAAyB,qBAAsB,YAAY,EAAE,KAAG,OAE5E,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACrB,YAAY,6BACE,MAAM,mBAChB,MAAM,KACxB,QAAQ,YAAY,CAgCtB,CAAC;AACF,eAAO,MAAM,yBAAyB,gBACrB,QAAQ,YAAY,CAAC,gCACJ,QAAQ,EAAE,KACzC,eA+CF,CAAC"}
|
|
@@ -6,8 +6,9 @@ import map from 'lodash/map';
|
|
|
6
6
|
import some from 'lodash/some';
|
|
7
7
|
import unionBy from 'lodash/unionBy';
|
|
8
8
|
import uniqBy from 'lodash/uniqBy';
|
|
9
|
+
import { isPhoneValid } from '../components/shared/utils';
|
|
9
10
|
import { getIsClusterIdInvalid, isClusterIdEnabledForProduct } from '../utils/caseOpenshiftClusterIdUtils';
|
|
10
|
-
import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_DEATILS_ISSUE_LIMIT, CASE_DEATILS_PERIODICITYOFISSUE_LIMIT, CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CLUSTER_ID_LIMIT, CONTACT_INFO_24X7_LIMIT, DESCRIPTION_LENGTH_LIMIT, HOSTNAME_LENGTH_LIMIT, ITRForSLASeverity, KtQuestionConstant,
|
|
11
|
+
import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_DEATILS_ISSUE_LIMIT, CASE_DEATILS_PERIODICITYOFISSUE_LIMIT, CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CLUSTER_ID_LIMIT, CONTACT_INFO_24X7_LIMIT, DESCRIPTION_LENGTH_LIMIT, HOSTNAME_LENGTH_LIMIT, ITRForSLASeverity, KtQuestionConstant, SESSION_ENVIRONMENT_LIMIT, SESSION_ISSUE_LIMIT, SESSION_NO_CLUSTER_REASON_EXPLANATION_LENGTH_LIMIT, SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT, SESSION_NOTIFIED_USERS_EXTERNAL_LIMIT, SESSION_NOTIFIED_USERS_INTERNAL_LIMIT, SESSION_PERIODICITY_OF_ISSUE_LIMIT, SESSION_PHONE_LENGTH_LIMIT, SESSION_TIME_FRAMES_URGENCY_LIMIT, SeverityDescription, SUMMARY_LENGTH_LIMIT, } from './CaseConstNTypes';
|
|
11
12
|
export const getCaseRecommendations = (docs, oldDocs) => {
|
|
12
13
|
const recs = [];
|
|
13
14
|
docs.forEach((doc, i) => {
|
|
@@ -150,7 +151,7 @@ export const isCaseStateValid = (caseState, loggedInUserJwtToken) => {
|
|
|
150
151
|
!isEmpty(case_details.severity) &&
|
|
151
152
|
!isEmpty(case_details.accountNumberRef) &&
|
|
152
153
|
!isEmpty(case_details.contactSSOName) &&
|
|
153
|
-
case_details.
|
|
154
|
+
isPhoneValid(case_details.phoneCountryCode, case_details.phoneAreaCodePrefixLineNumber) &&
|
|
154
155
|
(caseState.selectedAccountDetails.data.requireCGroupOnCreate
|
|
155
156
|
? !isEmpty(case_details.groupNumber) && case_details.groupNumber !== '-1'
|
|
156
157
|
: true) &&
|
|
@@ -173,7 +174,7 @@ export const isIdeaCaseStateValid = (caseState, loggedInUserJwtToken) => {
|
|
|
173
174
|
!isEmpty(case_details.severity) &&
|
|
174
175
|
!isEmpty(case_details.accountNumberRef) &&
|
|
175
176
|
!isEmpty(case_details.contactSSOName) &&
|
|
176
|
-
case_details.
|
|
177
|
+
isPhoneValid(case_details.phoneCountryCode, case_details.phoneAreaCodePrefixLineNumber) &&
|
|
177
178
|
(caseState.selectedAccountDetails.data.requireCGroupOnCreate
|
|
178
179
|
? !isEmpty(case_details.groupNumber) && case_details.groupNumber !== '-1'
|
|
179
180
|
: true) &&
|
|
@@ -193,6 +194,7 @@ export const isCaseManagementStateValid = (caseState, loggedInUserJwtToken) => {
|
|
|
193
194
|
(caseState.selectedAccountDetails.data.requireCGroupOnCreate
|
|
194
195
|
? !isEmpty(case_details.groupNumber) && case_details.groupNumber !== '-1'
|
|
195
196
|
: true) &&
|
|
197
|
+
isPhoneValid(case_details.phoneCountryCode, case_details.phoneAreaCodePrefixLineNumber) &&
|
|
196
198
|
canManageCase(loggedInUserJwtToken));
|
|
197
199
|
};
|
|
198
200
|
// Add a !isEmpty to to make any KTQuestion Mandatory in isCaseInformationSectionValid
|
|
@@ -235,7 +237,11 @@ export const createCasePayload = (caseState, sessionItem, isCaseCreate = false)
|
|
|
235
237
|
case_details.cep && (casePayload.cep = !!case_details.cep);
|
|
236
238
|
!isEmpty(case_details.hostname) && (casePayload.hostname = case_details.hostname);
|
|
237
239
|
!isEmpty(case_details.caseResourceLinks) && (casePayload.caseResourceLinks = case_details.caseResourceLinks);
|
|
238
|
-
!isEmpty(case_details.
|
|
240
|
+
!isEmpty(case_details.phoneCountryCode) && (casePayload.phoneCountryCode = case_details.phoneCountryCode);
|
|
241
|
+
!isEmpty(case_details.phoneAreaCodePrefixLineNumber) &&
|
|
242
|
+
(casePayload.phoneAreaCodePrefixLineNumber = case_details.phoneAreaCodePrefixLineNumber);
|
|
243
|
+
case_details.remoteSessionTermsAcked &&
|
|
244
|
+
(casePayload.remoteSessionTermsAcked = !!case_details.remoteSessionTermsAcked);
|
|
239
245
|
casePayload.suppliedPhoneNumberVerified = !isEmpty(case_details.suppliedPhoneNumberVerified)
|
|
240
246
|
? case_details.suppliedPhoneNumberVerified
|
|
241
247
|
: 'False';
|
|
@@ -286,7 +292,7 @@ export const getHasInvalidEntitlements = (caseEntitlements) => {
|
|
|
286
292
|
return filter(unionBy(caseEntitlements, 'slaProcessId'), (e) => !!e.slaProcessId).length === 0;
|
|
287
293
|
};
|
|
288
294
|
export const getCaseFromSessionDetails = (sessionItem, loggedInUserAccountNumber, loggedInUserSSO) => {
|
|
289
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
295
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
290
296
|
const { sessionDetails, session } = sessionItem;
|
|
291
297
|
return {
|
|
292
298
|
product: sessionDetails.product,
|
|
@@ -312,8 +318,9 @@ export const getCaseFromSessionDetails = (sessionItem, loggedInUserAccountNumber
|
|
|
312
318
|
alternateId: (_h = sessionDetails.caseAlternateId) !== null && _h !== void 0 ? _h : '',
|
|
313
319
|
noClusterIdReason: (_j = sessionDetails.noClusterIdReason) !== null && _j !== void 0 ? _j : '',
|
|
314
320
|
noClusterIdReasonExplanation: (_k = sessionDetails.noClusterIdReasonExplanation) !== null && _k !== void 0 ? _k : '',
|
|
315
|
-
|
|
316
|
-
|
|
321
|
+
phoneCountryCode: (_l = sessionDetails.phoneCountryCode) !== null && _l !== void 0 ? _l : '',
|
|
322
|
+
phoneAreaCodePrefixLineNumber: (_m = sessionDetails.phoneAreaCodePrefixLineNumber) !== null && _m !== void 0 ? _m : '',
|
|
323
|
+
suppliedPhoneNumberVerified: (_o = sessionDetails.suppliedPhoneNumberVerified) !== null && _o !== void 0 ? _o : undefined,
|
|
317
324
|
userAgent: session.userAgent,
|
|
318
325
|
originatingSystem: session.originatingSystem,
|
|
319
326
|
};
|
|
@@ -356,7 +363,8 @@ export const getSessionDetailsFromCase = (caseDetails, selectedNotificationConta
|
|
|
356
363
|
caseAlternateId: (_o = (_m = caseDetails.alternateId) === null || _m === void 0 ? void 0 : _m.substring(0, CASE_REFERENCE_NUMBER_LIMIT)) !== null && _o !== void 0 ? _o : '',
|
|
357
364
|
noClusterIdReason: (_q = (_p = caseDetails.noClusterIdReason) === null || _p === void 0 ? void 0 : _p.substring(0, SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT)) !== null && _q !== void 0 ? _q : '',
|
|
358
365
|
noClusterIdReasonExplanation: (_s = (_r = caseDetails.noClusterIdReasonExplanation) === null || _r === void 0 ? void 0 : _r.substring(0, SESSION_NO_CLUSTER_REASON_EXPLANATION_LENGTH_LIMIT)) !== null && _s !== void 0 ? _s : '',
|
|
359
|
-
|
|
366
|
+
phoneAreaCodePrefixLineNumber: (_t = caseDetails.phoneAreaCodePrefixLineNumber) === null || _t === void 0 ? void 0 : _t.substring(0, SESSION_PHONE_LENGTH_LIMIT - (((_u = caseDetails.phoneCountryCode) === null || _u === void 0 ? void 0 : _u.length) || 0) - 1),
|
|
367
|
+
phoneCountryCode: caseDetails.phoneCountryCode,
|
|
360
368
|
suppliedPhoneNumberVerified: caseDetails.suppliedPhoneNumberVerified,
|
|
361
369
|
};
|
|
362
370
|
};
|
|
@@ -11,7 +11,7 @@ export declare const caseReducer: (pState: ICaseState, action: any) => ICaseStat
|
|
|
11
11
|
export declare const setCaseDetails: (dispatch: CaseReducerDispatchType, caseState: Partial<ICasePayload>) => void;
|
|
12
12
|
export declare const setCaseState: (dispatch: CaseReducerDispatchType, caseState: Partial<ICaseState>) => void;
|
|
13
13
|
export declare const setNotifiedUser: (dispatch: CaseReducerDispatchType, selectedNotificationContacts: IContact[]) => void;
|
|
14
|
-
export declare const submitCase: (dispatch: CaseReducerDispatchType, caseDetails: ICaseState, sessionItem: ISessionItem, isCaseCreate: boolean, errorMessage500: string | JSX.Element) => Promise<void>;
|
|
14
|
+
export declare const submitCase: (dispatch: CaseReducerDispatchType, caseDetails: ICaseState, sessionItem: ISessionItem, isCaseCreate: boolean, errorMessage500: string | JSX.Element, loggedInUseeSsoUsername: string) => Promise<void>;
|
|
15
15
|
/**
|
|
16
16
|
* Update case details if there is HTTP 500 error while submitting case
|
|
17
17
|
* @param dispatch CaseReducerDispatchType
|
|
@@ -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;AASxD,OAAO,EAEH,uBAAuB,EAEvB,UAAU,EAEb,MAAM,mBAAmB,CAAC;AAU3B,eAAO,MAAM,WAAW,WAAY,UAAU,UAAU,GAAG,KAAG,UA6L7D,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,eACpB,UAAU,eACV,YAAY,gBACX,OAAO,mBACJ,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"CaseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseReducer.ts"],"names":[],"mappings":"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"}
|