@rh-support/manage 1.0.9 → 1.0.11

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/README.md CHANGED
@@ -9,3 +9,5 @@ const manage = require('manage');
9
9
 
10
10
  // TODO: DEMONSTRATE API
11
11
  ```
12
+
13
+ .
@@ -1 +1 @@
1
- {"version":3,"file":"PreferencesCaseCreate.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/sections/PreferencesCaseCreate.tsx"],"names":[],"mappings":"AAkBA,UAAU,MAAM;CAAG;AACnB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,eA0IlD"}
1
+ {"version":3,"file":"PreferencesCaseCreate.d.ts","sourceRoot":"","sources":["../../../../../src/components/ManagePreferences/sections/PreferencesCaseCreate.tsx"],"names":[],"mappings":"AAoBA,UAAU,MAAM;CAAG;AACnB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,eA+JlD"}
@@ -8,19 +8,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Card, CardBody, CardHeader, SelectOption } from '@patternfly/react-core';
11
- import { languageConst, ToastNotification } from '@rh-support/components';
12
- import { fetchCaseGroupsForSSO, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
13
- import { haventLoadedMetadata } from '@rh-support/utils';
14
- import { invert } from 'lodash';
11
+ import { ToastNotification } from '@rh-support/components';
12
+ import { fetchCaseGroupsForSSO, fetchLanguageMetadata, GlobalMetadataDispatchContext, GlobalMetadataStateContext, } from '@rh-support/react-context';
13
+ import { haventLoadedMetadata, PreferredLanguages } from '@rh-support/utils';
14
+ import invert from 'lodash/invert';
15
15
  import isEmpty from 'lodash/isEmpty';
16
+ import map from 'lodash/map';
16
17
  import React, { useContext, useEffect, useState } from 'react';
17
18
  import { Trans, useTranslation } from 'react-i18next';
18
19
  import { useUserPreferences } from '../../../hooks/useUserPreferences';
19
20
  import { PreferenceSelect } from '../components/PreferenceSelect';
20
21
  export function PreferencesCaseCreate(props) {
21
22
  const { t } = useTranslation();
22
- const { globalMetadataState: { caseGroups, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
23
+ const { globalMetadataState: { caseGroups, caseLanguages, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
23
24
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
25
+ const languageConst = caseLanguages.data;
26
+ useEffect(() => {
27
+ if (haventLoadedMetadata(caseLanguages)) {
28
+ fetchLanguageMetadata(dispatchToGlobalMetadataReducer);
29
+ }
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ }, [caseLanguages]);
32
+ const languagesList = map(languageConst, (cl) => ({
33
+ label: PreferredLanguages.languagesMap[cl] || cl,
34
+ value: cl,
35
+ }));
24
36
  const [originalPreferredLanguage, setOriginalPreferredLanguage] = useState('');
25
37
  const [originalDefaultGroup, setOriginalDefaultGroup] = useState('');
26
38
  const [groupDictionary, setGroupDictionary] = useState({});
@@ -28,13 +40,16 @@ export function PreferencesCaseCreate(props) {
28
40
  const { getPreferredLanguage, updatePreferredLanguage, updateDefaultGroup, getDefaultGroup } = useUserPreferences();
29
41
  const preferredLangTitleId = 'preferred-language-select';
30
42
  const defaultGroupTitleId = 'default-group-select';
31
- const getKeyByValue = (object, value) => {
32
- return Object.keys(object).find((key) => object[key] === value);
43
+ const getLanguageKey = (selection) => {
44
+ return languagesList.find((language) => language.label === selection);
45
+ };
46
+ const getLanguageInitialLangValue = (label) => {
47
+ return languagesList.find((language) => language.value === label);
33
48
  };
34
49
  const onPreferredLanguageSelect = (event, selection, isPlaceholder) => __awaiter(this, void 0, void 0, function* () {
35
- const selectedLanguageCode = getKeyByValue(languageConst, selection);
50
+ const selectedLanguageCode = getLanguageKey(selection);
36
51
  try {
37
- yield updatePreferredLanguage(selectedLanguageCode);
52
+ yield updatePreferredLanguage(selectedLanguageCode.value);
38
53
  setOriginalPreferredLanguage(selection);
39
54
  }
40
55
  catch (error) {
@@ -92,7 +107,8 @@ export function PreferencesCaseCreate(props) {
92
107
  const userOriginalPreferredLanguage = () => __awaiter(this, void 0, void 0, function* () {
93
108
  try {
94
109
  const retrievedLanguage = yield getPreferredLanguage();
95
- setOriginalPreferredLanguage(languageConst[retrievedLanguage]);
110
+ const finalOriginalLanguage = getLanguageInitialLangValue(retrievedLanguage);
111
+ setOriginalPreferredLanguage(finalOriginalLanguage.label);
96
112
  }
97
113
  catch (_b) {
98
114
  ToastNotification.addWarningMessage(t('Failed to fetch original preference'));
@@ -109,7 +125,7 @@ export function PreferencesCaseCreate(props) {
109
125
  React.createElement(CardBody, null,
110
126
  React.createElement("form", null,
111
127
  React.createElement("div", { className: "form-group" },
112
- React.createElement(PreferenceSelect, { label: t('i18nPreferredLanguage', 'Preferred case language'), id: preferredLangTitleId, onSelect: onPreferredLanguageSelect, selections: originalPreferredLanguage }, Object.keys(languageConst).map((option, index) => (React.createElement(SelectOption, { key: index, value: languageConst[option] })))),
128
+ React.createElement(PreferenceSelect, { label: t('i18nPreferredLanguage', 'Preferred case language'), id: preferredLangTitleId, onSelect: onPreferredLanguageSelect, selections: originalPreferredLanguage }, Object.keys(languagesList).map((option, index) => (React.createElement(SelectOption, { key: index, value: languagesList[index].label })))),
113
129
  React.createElement("p", { className: "form-instructions" },
114
130
  React.createElement(Trans, null, "Preferred language will impact future cases, not existing ones."))),
115
131
  React.createElement("div", { className: "form-group" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/manage",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Customer Support Manage App",
5
5
  "author": "Jordan Eudy <jeudy100@gmail.com>",
6
6
  "homepage": "",
@@ -94,12 +94,12 @@
94
94
  "@patternfly/pfe-tabs": "1.12.3",
95
95
  "@patternfly/react-core": "4.202.16",
96
96
  "@patternfly/react-table": "4.71.16",
97
- "@rh-support/components": "1.2.5",
97
+ "@rh-support/components": "1.2.7",
98
98
  "@rh-support/configs": "0.2.8",
99
- "@rh-support/react-context": "1.0.6",
99
+ "@rh-support/react-context": "1.0.8",
100
100
  "@rh-support/types": "0.2.0",
101
- "@rh-support/user-permissions": "1.0.5",
102
- "@rh-support/utils": "1.0.3",
101
+ "@rh-support/user-permissions": "1.0.7",
102
+ "@rh-support/utils": "1.0.5",
103
103
  "@types/react-beautiful-dnd": "^13.0.0",
104
104
  "i18next": ">=17.0.1",
105
105
  "lodash": ">=4.17.15",
@@ -109,5 +109,5 @@
109
109
  "react-i18next": ">=10.11.0",
110
110
  "react-router-dom": ">=5.1.2"
111
111
  },
112
- "gitHead": "99871945be699eeae0ed20023dd6708b2a0d422d"
112
+ "gitHead": "9647d8b819bf1ccbf691c0e89909160752ea24a7"
113
113
  }