@rh-support/manage 0.2.17 → 0.2.21

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":"ManageTabs.d.ts","sourceRoot":"","sources":["../../src/ManageTabs.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAqBvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACvC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,eAiIvC"}
1
+ {"version":3,"file":"ManageTabs.d.ts","sourceRoot":"","sources":["../../src/ManageTabs.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAqBvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC;CACvC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,eAwIvC"}
@@ -1,6 +1,6 @@
1
1
  import { ErrorBoundary, useDocumentTitle } from '@rh-support/components';
2
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
- import { ability, resourceActions, resources } from '@rh-support/user-permissions';
3
+ import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
4
4
  import { CustomElements, getConfigField, PCM_CONFIG_FIELD_TYPE, requireCustomElement } from '@rh-support/utils';
5
5
  import map from 'lodash/map';
6
6
  import React, { useContext } from 'react';
@@ -37,6 +37,7 @@ export function ManageTabs(props) {
37
37
  const canViewCaseGroups = ability.can(resourceActions.READ, resources.CASE_GROUPS) && canViewManageTab;
38
38
  const canManageBookmarkAccounts = ability.can(resourceActions.CREATE, resources.BOOKMARK_ACCOUNTS) && canViewManageTab;
39
39
  const canViewEmailNotificationTab = ability.can(resourceActions.READ, resources.NOTIFICATION_EMAIL);
40
+ const canAddCustomNotification = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS);
40
41
  const tabsToRender = [];
41
42
  canManageBookmarkAccounts &&
42
43
  tabsToRender.push({
@@ -61,6 +62,7 @@ export function ManageTabs(props) {
61
62
  component: React.createElement(ManageGroupUsers, null),
62
63
  });
63
64
  canViewEmailNotificationTab &&
65
+ canAddCustomNotification &&
64
66
  tabsToRender.push({
65
67
  title: 'Notification Emails',
66
68
  key: 'notification-emails-tab',
@@ -1 +1 @@
1
- {"version":3,"file":"PreferencesCaseCreate.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/sections/PreferencesCaseCreate.tsx"],"names":[],"mappings":"AAaA,UAAU,MAAM;CAAG;AACnB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,eAwHlD"}
1
+ {"version":3,"file":"PreferencesCaseCreate.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/sections/PreferencesCaseCreate.tsx"],"names":[],"mappings":"AAaA,UAAU,MAAM;CAAG;AACnB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,eA0HlD"}
@@ -34,11 +34,7 @@ export function PreferencesCaseCreate(props) {
34
34
  yield updatePreferredLanguage(selectedLanguageCode);
35
35
  });
36
36
  const onDefaultGroupSelect = (event, selection, isPlaceholder) => __awaiter(this, void 0, void 0, function* () {
37
- console.log(selection);
38
- console.log('groupDictionary: ', groupDictionary);
39
- console.log(groupDictionary[`${selection}`]);
40
37
  const selectionKey = invert(groupDictionary)[selection];
41
- console.log('selectionKey', selectionKey);
42
38
  yield updateDefaultGroup(selectionKey);
43
39
  });
44
40
  const userOriginalPreferredLanguage = () => __awaiter(this, void 0, void 0, function* () {
@@ -64,26 +60,28 @@ export function PreferencesCaseCreate(props) {
64
60
  for (let i = 0; i < caseGroups.data.length; i++) {
65
61
  defaultGroupDictionary[caseGroups.data[i].groupNum] = caseGroups.data[i].name;
66
62
  }
67
- console.log(defaultGroupDictionary);
68
63
  return defaultGroupDictionary;
69
64
  };
70
- useEffect(() => {
71
- userOriginalPreferredLanguage();
72
- userOriginalDefaultGroup();
73
- });
74
- useEffect(() => {
65
+ const refreshParsedGroups = () => {
75
66
  var _a;
76
- if (!isEmpty(caseGroups) && ((_a = caseGroups === null || caseGroups === void 0 ? void 0 : caseGroups.data) === null || _a === void 0 ? void 0 : _a.length) > 0 && Object.keys(groupDictionary).length === 0) {
67
+ if (!isEmpty(caseGroups) && ((_a = caseGroups === null || caseGroups === void 0 ? void 0 : caseGroups.data) === null || _a === void 0 ? void 0 : _a.length) > 0) {
77
68
  let updatedDictionary = createCaseGroupStruct(caseGroups);
78
69
  setGroupDictionary(updatedDictionary);
79
70
  const parsedDefaultGroupNames = [];
80
71
  for (let groupId in updatedDictionary) {
81
72
  parsedDefaultGroupNames.push(updatedDictionary[groupId]);
82
73
  }
83
- console.log('parsedDefaultGroupNames, ', parsedDefaultGroupNames);
84
74
  setUserDefaultGroupList(parsedDefaultGroupNames);
85
75
  }
86
- }, [caseGroups, groupDictionary]);
76
+ };
77
+ useEffect(() => {
78
+ userOriginalPreferredLanguage();
79
+ userOriginalDefaultGroup();
80
+ });
81
+ useEffect(() => {
82
+ refreshParsedGroups();
83
+ // eslint-disable-next-line react-hooks/exhaustive-deps
84
+ }, [caseGroups]);
87
85
  return (React.createElement(Card, { className: "preference-card" },
88
86
  React.createElement(CardHeader, null,
89
87
  React.createElement("h3", null,
@@ -91,7 +89,9 @@ export function PreferencesCaseCreate(props) {
91
89
  React.createElement(CardBody, null,
92
90
  React.createElement("form", null,
93
91
  React.createElement("div", { className: "form-group" },
94
- React.createElement(PreferenceSelect, { label: "Preferred case language", id: preferredLangTitleId, onSelect: onPreferredLanguageSelect, selections: originalPreferredLanguage }, Object.keys(languageConst).map((option, index) => (React.createElement(SelectOption, { key: index, value: languageConst[option] }))))),
92
+ React.createElement(PreferenceSelect, { label: "Preferred case language", id: preferredLangTitleId, onSelect: onPreferredLanguageSelect, selections: originalPreferredLanguage }, Object.keys(languageConst).map((option, index) => (React.createElement(SelectOption, { key: index, value: languageConst[option] })))),
93
+ React.createElement("p", { className: "form-instructions" },
94
+ React.createElement(Trans, null, "Preferred language will impact future cases, not existing ones."))),
95
95
  React.createElement("div", { className: "form-group" },
96
96
  React.createElement(PreferenceSelect, { label: "Default group", id: defaultGroupTitleId, onSelect: onDefaultGroupSelect, selections: originalDefaultGroup }, userDefaultGroupList.map((option, index) => (React.createElement(SelectOption, { key: index, value: option })))))))));
97
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,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,gBA2LpD,CAAC"}
1
+ {"version":3,"file":"NotificationEmailsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/NotificationEmails/NotificationEmailsModal.tsx"],"names":[],"mappings":"AAiBA,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,gBA8LpD,CAAC"}
@@ -29,6 +29,7 @@ export const NotificationEmailsModal = (props) => {
29
29
  const { request: addCustomEmailToAccount, isFetching: isAdding } = useFetch(customEmail.addCustomEmailToAccount, {
30
30
  propgateErrors: true,
31
31
  });
32
+ const isLoading = isAdding || isUpdating;
32
33
  const resetModal = () => {
33
34
  setIsValidEmail(true);
34
35
  setIsValidFirstName(true);
@@ -39,7 +40,7 @@ export const NotificationEmailsModal = (props) => {
39
40
  const save = () => __awaiter(void 0, void 0, void 0, function* () {
40
41
  setSaveButtonIsClicked(true);
41
42
  const isAValidEmail = checkEmailIsValid(email);
42
- const isAValidFirstName = !isEmpty(firstName);
43
+ const isAValidFirstName = !isEmpty(firstName.trim());
43
44
  const isDuplicateEmail = props.isAddingNotificationEmail ? props.emailsList.includes(email) : false;
44
45
  setIsValidEmail(isAValidEmail);
45
46
  setIsValidFirstName(isAValidFirstName);
@@ -65,6 +66,8 @@ export const NotificationEmailsModal = (props) => {
65
66
  }
66
67
  });
67
68
  const close = () => {
69
+ if (isLoading)
70
+ return;
68
71
  resetModal();
69
72
  props.onClose();
70
73
  };
@@ -75,7 +78,7 @@ export const NotificationEmailsModal = (props) => {
75
78
  }, [props.selectedEmailNotification]);
76
79
  const isFormDirty = () => props.selectedEmailNotification.email !== email ||
77
80
  props.selectedEmailNotification.firstName !== firstName ||
78
- isEmpty(firstName) ||
81
+ isEmpty(firstName.trim()) ||
79
82
  props.selectedEmailNotification.lastName !== lastName;
80
83
  const onEmailChange = (localemail) => {
81
84
  saveButtonIsClicked && setIsValidEmail(checkEmailIsValid(localemail));
@@ -83,7 +86,7 @@ export const NotificationEmailsModal = (props) => {
83
86
  setEmail(localemail);
84
87
  };
85
88
  const onFirstNameChange = (firstName) => {
86
- saveButtonIsClicked && setIsValidFirstName(!isEmpty(firstName));
89
+ saveButtonIsClicked && setIsValidFirstName(!isEmpty(firstName.trim()));
87
90
  setFirstName(firstName);
88
91
  };
89
92
  const onLastNameChange = (lastName) => {
@@ -97,7 +100,7 @@ export const NotificationEmailsModal = (props) => {
97
100
  !isValidEmail ||
98
101
  isEmailDuplicate, spinnerAriaValueText: isUpdating || isAdding ? t('Adding') : undefined, isLoading: isUpdating || isAdding },
99
102
  React.createElement(Trans, null, "Save")),
100
- React.createElement(Button, { key: "cancel", variant: ButtonVariant.secondary, onClick: close },
103
+ React.createElement(Button, { key: "cancel", isDisabled: isLoading, variant: ButtonVariant.secondary, onClick: close },
101
104
  React.createElement(Trans, null, "Cancel")),
102
105
  ] },
103
106
  React.createElement(Form, null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/manage",
3
- "version": "0.2.17",
3
+ "version": "0.2.21",
4
4
  "description": "Customer Support Manage App",
5
5
  "author": "Jordan Eudy <jeudy100@gmail.com>",
6
6
  "homepage": "",
@@ -51,7 +51,7 @@
51
51
  "not op_mini all"
52
52
  ],
53
53
  "peerDependencies": {
54
- "@cee-eng/hydrajs": "4.5.6",
54
+ "@cee-eng/hydrajs": "4.6.0",
55
55
  "@patternfly/patternfly": "4.102.2",
56
56
  "@patternfly/pfe-accordion": "1.1.0",
57
57
  "@patternfly/pfe-collapse": "1.1.0",
@@ -89,20 +89,20 @@
89
89
  "typescript": "4.3.5"
90
90
  },
91
91
  "dependencies": {
92
- "@cee-eng/hydrajs": "4.5.6",
92
+ "@cee-eng/hydrajs": "4.6.0",
93
93
  "@patternfly/patternfly": "4.102.2",
94
94
  "@patternfly/pfe-accordion": "1.1.0",
95
95
  "@patternfly/pfe-collapse": "1.1.0",
96
96
  "@patternfly/pfe-tabs": "1.1.0",
97
97
  "@patternfly/react-core": "4.128.2",
98
98
  "@patternfly/react-table": "4.26.7",
99
- "@rh-support/api": "0.3.6",
100
- "@rh-support/components": "1.1.12",
99
+ "@rh-support/api": "0.3.7",
100
+ "@rh-support/components": "1.1.13",
101
101
  "@rh-support/configs": "0.2.1",
102
- "@rh-support/react-context": "0.2.14",
102
+ "@rh-support/react-context": "0.2.15",
103
103
  "@rh-support/types": "0.2.0",
104
- "@rh-support/user-permissions": "0.2.8",
105
- "@rh-support/utils": "0.2.8",
104
+ "@rh-support/user-permissions": "0.2.9",
105
+ "@rh-support/utils": "0.2.9",
106
106
  "@types/react-beautiful-dnd": "^13.0.0",
107
107
  "i18next": ">=17.0.1",
108
108
  "lodash": ">=4.17.15",
@@ -113,5 +113,5 @@
113
113
  "react-i18next": ">=10.11.0",
114
114
  "react-router-dom": ">=5.1.2"
115
115
  },
116
- "gitHead": "44a18cd6570b31a47c4b806a49c220c189cbd901"
116
+ "gitHead": "27d99ec0d559c7d397aced2ef8e7de0ac93b1b7f"
117
117
  }