@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.
@@ -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,sBA+LpD,CAAC"}
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
- saveButtonIsClicked && setIsValidFirstName(!isEmpty(firstName.trim()));
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
- !(isValidEmail && !isEmailDuplicate) && (React.createElement(FormHelperText, null,
128
+ !isValidFirstName && (React.createElement(FormHelperText, null,
116
129
  React.createElement(HelperText, null,
117
- React.createElement(HelperTextItem, { variant: ValidatedOptions.error },
118
- React.createElement(Trans, null, "First name cannot be empty")))))),
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,kBAU5F,CAAC;AAEF,eAAO,MAAM,SAAS,aAAoB,yBAAyB,OAAO,WAAW,aAAa,aAAa,EAAE,kBAYhH,CAAC;AAEF,eAAO,MAAM,SAAS,aACR,yBAAyB,cACvB,IAAI,sBACI,mBAAmB,kBAc1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACvB,yBAAyB,WAC1B,4BAA4B,sBACjB,mBAAmB,kBAO1C,CAAC"}
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.102",
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.78",
82
+ "@rh-support/components": "2.1.79",
83
83
  "@rh-support/configs": "2.0.20",
84
- "@rh-support/react-context": "2.1.87",
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": "0b68f805f8c48c99784e651c3e41fdc81da526eb"
105
+ "gitHead": "f1515c1af548192fac41b8c278aa594d59a9c960"
106
106
  }