@rh-support/manage 2.1.102 → 2.1.103
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/ManageTags/TagsManager.js +2 -2
- package/lib/esm/components/NotificationEmails/NotificationEmailsModal.d.ts.map +1 -1
- package/lib/esm/components/NotificationEmails/NotificationEmailsModal.js +23 -5
- package/lib/esm/reducers/TagManagmentReducer.d.ts.map +1 -1
- package/lib/esm/reducers/TagManagmentReducer.js +4 -0
- package/package.json +4 -4
|
@@ -42,7 +42,7 @@ export default function TagsManager() {
|
|
|
42
42
|
tagName = tagName.trim();
|
|
43
43
|
if (isEmpty(tagName))
|
|
44
44
|
return t('Tag name cannot be empty.');
|
|
45
|
-
const existingTag = tags.find((t) => t.tagName === tagName);
|
|
45
|
+
const existingTag = tags.find((t) => t.tagName.toLowerCase() === tagName.toLowerCase());
|
|
46
46
|
if (existingTag)
|
|
47
47
|
return t('Tag with this name is already present.');
|
|
48
48
|
return '';
|
|
@@ -53,7 +53,7 @@ export default function TagsManager() {
|
|
|
53
53
|
return tags.map((t) => t.id);
|
|
54
54
|
const filteredIds = [];
|
|
55
55
|
tags.forEach((t) => {
|
|
56
|
-
if (t.tagName.toLowerCase().includes(tagSearchTerm)) {
|
|
56
|
+
if (t.tagName.toLowerCase().includes(tagSearchTerm.toLowerCase())) {
|
|
57
57
|
filteredIds.push(t.id);
|
|
58
58
|
}
|
|
59
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,yBAAyB,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,yBAAyB,EAAE,GAAG,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,UAAW,MAAM,sBA0NpD,CAAC"}
|
|
@@ -18,11 +18,13 @@ export const NotificationEmailsModal = (props) => {
|
|
|
18
18
|
const { t } = useTranslation();
|
|
19
19
|
const [isValidEmail, setIsValidEmail] = useState(true);
|
|
20
20
|
const [isValidFirstName, setIsValidFirstName] = useState(true);
|
|
21
|
+
const [isValidLastName, setIsValidLastName] = useState(true);
|
|
21
22
|
const [email, setEmail] = useState('');
|
|
22
23
|
const [firstName, setFirstName] = useState('');
|
|
23
24
|
const [lastName, setLastName] = useState('');
|
|
24
25
|
const [saveButtonIsClicked, setSaveButtonIsClicked] = useState(false);
|
|
25
26
|
const [isEmailDuplicate, setIsEmailDuplicate] = useState(false);
|
|
27
|
+
const [isSpecialCharFirstName, setIsSpecialCharFirstName] = useState(false);
|
|
26
28
|
const { request: updateCustomEmail, isFetching: isUpdating } = useFetch(customEmail.updateCustomEmail, {
|
|
27
29
|
propgateErrors: true,
|
|
28
30
|
});
|
|
@@ -33,6 +35,7 @@ export const NotificationEmailsModal = (props) => {
|
|
|
33
35
|
const resetModal = () => {
|
|
34
36
|
setIsValidEmail(true);
|
|
35
37
|
setIsValidFirstName(true);
|
|
38
|
+
setIsValidLastName(true);
|
|
36
39
|
setSaveButtonIsClicked(false);
|
|
37
40
|
setIsEmailDuplicate(false);
|
|
38
41
|
};
|
|
@@ -45,6 +48,7 @@ export const NotificationEmailsModal = (props) => {
|
|
|
45
48
|
const isDuplicateEmail = props.isAddingNotificationEmail ? props.emailsList.includes(email) : false;
|
|
46
49
|
setIsValidEmail(isAValidEmail);
|
|
47
50
|
setIsValidFirstName(isAValidFirstName);
|
|
51
|
+
setIsValidLastName(!checkForSpecialCharacters(lastName));
|
|
48
52
|
props.isAddingNotificationEmail && setIsEmailDuplicate(isDuplicateEmail);
|
|
49
53
|
if (!isAValidEmail || !isAValidFirstName || isDuplicateEmail)
|
|
50
54
|
return;
|
|
@@ -87,17 +91,26 @@ export const NotificationEmailsModal = (props) => {
|
|
|
87
91
|
setEmail(localemail);
|
|
88
92
|
};
|
|
89
93
|
const onFirstNameChange = (firstName) => {
|
|
90
|
-
|
|
94
|
+
const hasSpecialChars = checkForSpecialCharacters(firstName);
|
|
95
|
+
const isValid = !isEmpty(firstName.trim()) && !hasSpecialChars;
|
|
96
|
+
setIsValidFirstName(isValid);
|
|
97
|
+
setIsSpecialCharFirstName(hasSpecialChars);
|
|
91
98
|
setFirstName(firstName);
|
|
92
99
|
};
|
|
93
100
|
const onLastNameChange = (lastName) => {
|
|
101
|
+
setIsValidLastName(!checkForSpecialCharacters(lastName));
|
|
94
102
|
setLastName(lastName);
|
|
95
103
|
};
|
|
104
|
+
const checkForSpecialCharacters = (s) => {
|
|
105
|
+
const specialCharRegex = /[^a-zA-Z0-9\s]/;
|
|
106
|
+
return specialCharRegex.test(s);
|
|
107
|
+
};
|
|
96
108
|
return (React.createElement(Modal, { id: "Add-edit-notification-email-modal", className: "pf-modal-overflow-visible", title: t('Edit notification email'), "aria-describedby": "Add-edit-notification-email-modal", isOpen: props.isOpen, onClose: props.onClose, showClose: true, onEscapePress: props.onClose, variant: ModalVariant.medium, actions: [
|
|
97
109
|
React.createElement(Button, { key: "save", variant: ButtonVariant.primary, onClick: save, isDisabled: !isFormDirty() ||
|
|
98
110
|
isUpdating ||
|
|
99
111
|
isAdding ||
|
|
100
112
|
!isValidFirstName ||
|
|
113
|
+
!isValidLastName ||
|
|
101
114
|
!isValidEmail ||
|
|
102
115
|
isEmailDuplicate, spinnerAriaValueText: isUpdating || isAdding ? t('Adding') : undefined, isLoading: isUpdating || isAdding },
|
|
103
116
|
React.createElement(Trans, null, "Save")),
|
|
@@ -112,10 +125,15 @@ export const NotificationEmailsModal = (props) => {
|
|
|
112
125
|
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, !isValidEmail ? t('Invalid email') : isEmailDuplicate ? t('Duplicate Email') : ''))))),
|
|
113
126
|
React.createElement(FormGroup, { label: t('First name'), isRequired: true, fieldId: "email-notification-first-name" },
|
|
114
127
|
React.createElement(TextInput, { value: firstName, isRequired: true, validated: isValidFirstName ? ValidatedOptions.default : ValidatedOptions.error, type: "text", onChange: (_event, firstName) => onFirstNameChange(firstName), "aria-label": t('First name'), placeholder: t('First name'), maxLength: 254 }),
|
|
115
|
-
!
|
|
128
|
+
!isValidFirstName && (React.createElement(FormHelperText, null,
|
|
116
129
|
React.createElement(HelperText, null,
|
|
117
|
-
React.createElement(HelperTextItem, { variant: ValidatedOptions.error },
|
|
118
|
-
|
|
130
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error }, isSpecialCharFirstName
|
|
131
|
+
? t('First Name cannot contain special characters')
|
|
132
|
+
: t('First name cannot be empty')))))),
|
|
119
133
|
React.createElement(FormGroup, { label: t('Last name'), fieldId: "email-notification-last-name" },
|
|
120
|
-
React.createElement(TextInput, { value: lastName, type: "text", onChange: (_event, lastName) => onLastNameChange(lastName), "aria-label": t('Last name'), placeholder: t('Last name'), maxLength: 254 })
|
|
134
|
+
React.createElement(TextInput, { value: lastName, type: "text", validated: isValidLastName ? ValidatedOptions.default : ValidatedOptions.error, onChange: (_event, lastName) => onLastNameChange(lastName), "aria-label": t('Last name'), placeholder: t('Last name'), maxLength: 254 }),
|
|
135
|
+
!isValidLastName && (React.createElement(FormHelperText, null,
|
|
136
|
+
React.createElement(HelperText, null,
|
|
137
|
+
React.createElement(HelperTextItem, { variant: ValidatedOptions.error },
|
|
138
|
+
React.createElement(Trans, null, "Last name cannot contain special characters")))))))));
|
|
121
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagManagmentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TagManagmentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EACH,IAAI,EAEJ,YAAY,EACZ,WAAW,EACX,4BAA4B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGxE,oBAAY,6BAA6B;IACrC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CAC1B;AAED,UAAU,aAAc,SAAQ,IAAI;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,yBAAyB,EAAE,mBAGvC,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAErE,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,0BAAwB,mBAsBtF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAoB,yBAAyB,qBAAoB,OAAO,mBAsDvG,CAAC;AAEF,eAAO,MAAM,aAAa,aAAoB,yBAAyB,QAAQ,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"TagManagmentReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/TagManagmentReducer.ts"],"names":[],"mappings":"AACA,OAAO,EACH,IAAI,EAEJ,YAAY,EACZ,WAAW,EACX,4BAA4B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGxE,oBAAY,6BAA6B;IACrC,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CAC1B;AAED,UAAU,aAAc,SAAQ,IAAI;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC;AACD,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,yBAAyB,EAAE,mBAGvC,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAErE,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,0BAAwB,mBAsBtF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAoB,yBAAyB,qBAAoB,OAAO,mBAsDvG,CAAC;AAEF,eAAO,MAAM,aAAa,aAAoB,yBAAyB,QAAQ,YAAY,EAAE,kBAW5F,CAAC;AAEF,eAAO,MAAM,SAAS,aAAoB,yBAAyB,OAAO,WAAW,aAAa,aAAa,EAAE,kBAahH,CAAC;AAEF,eAAO,MAAM,SAAS,aACR,yBAAyB,cACvB,IAAI,sBACI,mBAAmB,kBAe1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACvB,yBAAyB,WAC1B,4BAA4B,sBACjB,mBAAmB,kBAQ1C,CAAC"}
|
|
@@ -99,6 +99,7 @@ export const createNewTags = (dispatch, tags) => __awaiter(void 0, void 0, void
|
|
|
99
99
|
}
|
|
100
100
|
catch (err) {
|
|
101
101
|
dispatch({ type: TagManagementReducerConstants.createNewTag, payload: { tags: [] } });
|
|
102
|
+
throw err;
|
|
102
103
|
}
|
|
103
104
|
});
|
|
104
105
|
export const updateTag = (dispatch, tag, tagsState) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -113,6 +114,7 @@ export const updateTag = (dispatch, tag, tagsState) => __awaiter(void 0, void 0,
|
|
|
113
114
|
}
|
|
114
115
|
catch (err) {
|
|
115
116
|
console.log(err);
|
|
117
|
+
throw err;
|
|
116
118
|
}
|
|
117
119
|
});
|
|
118
120
|
export const deleteTag = (dispatch, deletedTag, tagManagementState) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -128,6 +130,7 @@ export const deleteTag = (dispatch, deletedTag, tagManagementState) => __awaiter
|
|
|
128
130
|
}
|
|
129
131
|
catch (err) {
|
|
130
132
|
console.log(err);
|
|
133
|
+
throw err;
|
|
131
134
|
}
|
|
132
135
|
});
|
|
133
136
|
export const updateTopContentWithTags = (dispatch, content, tagManagementState) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -136,5 +139,6 @@ export const updateTopContentWithTags = (dispatch, content, tagManagementState)
|
|
|
136
139
|
}
|
|
137
140
|
catch (err) {
|
|
138
141
|
console.log(err);
|
|
142
|
+
throw err;
|
|
139
143
|
}
|
|
140
144
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/manage",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.103",
|
|
4
4
|
"description": "Customer Support Manage App",
|
|
5
5
|
"author": "Jordan Eudy <jeudy100@gmail.com>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"@patternfly/patternfly": "5.1.0",
|
|
80
80
|
"@patternfly/react-core": "5.1.1",
|
|
81
81
|
"@patternfly/react-table": "5.1.1",
|
|
82
|
-
"@rh-support/components": "2.1.
|
|
82
|
+
"@rh-support/components": "2.1.79",
|
|
83
83
|
"@rh-support/configs": "2.0.20",
|
|
84
|
-
"@rh-support/react-context": "2.1.
|
|
84
|
+
"@rh-support/react-context": "2.1.88",
|
|
85
85
|
"@rh-support/types": "2.0.4",
|
|
86
86
|
"@rh-support/user-permissions": "2.1.49",
|
|
87
87
|
"@rh-support/utils": "2.1.38",
|
|
@@ -102,5 +102,5 @@
|
|
|
102
102
|
"defaults and supports es6-module",
|
|
103
103
|
"maintained node versions"
|
|
104
104
|
],
|
|
105
|
-
"gitHead": "
|
|
105
|
+
"gitHead": "f1515c1af548192fac41b8c278aa594d59a9c960"
|
|
106
106
|
}
|