@rh-support/manage 1.1.0 → 1.1.2

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,5 +9,3 @@ const manage = require('manage');
9
9
 
10
10
  // TODO: DEMONSTRATE API
11
11
  ```
12
-
13
- .
@@ -4,9 +4,9 @@ interface IProps {
4
4
  isModalOpen: boolean;
5
5
  onHideModal: () => void;
6
6
  filteredTC: ITopContentEditState[];
7
- selectedMajorVersion: string;
7
+ selectedVersionProp: string;
8
8
  selectedProduct: string;
9
9
  }
10
- export declare const MajorVersionPerformanceMetrics: FC<IProps>;
10
+ export declare const VersionPerformanceMetrics: FC<IProps>;
11
11
  export {};
12
- //# sourceMappingURL=MajorVersionPerformanceMetrics.d.ts.map
12
+ //# sourceMappingURL=VersionPerformanceMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionPerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.tsx"],"names":[],"mappings":"AAWA,OAAc,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;AAMhE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qCAAqC,CAAC;AAIjG,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,MAAM,CAoFhD,CAAC"}
@@ -1,18 +1,20 @@
1
1
  import { Button, ButtonVariant, Flex, FlexItem, Modal, ModalVariant, Title, TitleSizes, } from '@patternfly/react-core';
2
2
  import React, { useEffect, useMemo, useState } from 'react';
3
- import { Trans } from 'react-i18next';
3
+ import { Trans, useTranslation } from 'react-i18next';
4
4
  import { useTopContentContext } from '../../../context/TopContentProvider';
5
5
  import { useVersionsDiffer } from '../../../hooks/useVersionsDiffer';
6
- import { flagContentUsage } from '../../../reducers/TopContentHelpers';
6
+ import { flagContentUsage, isMajorVersion } from '../../../reducers/TopContentHelpers';
7
7
  import { ContentAccordion } from './ContentAccordion';
8
8
  import { PerformanceMetricsSelect } from './PerformanceMetricsSelect';
9
- export const MajorVersionPerformanceMetrics = ({ isModalOpen, onHideModal, filteredTC, selectedMajorVersion, selectedProduct, }) => {
10
- const [selectedVersion, setVersion] = useState(selectedMajorVersion.split('.x')[0]);
9
+ export const VersionPerformanceMetrics = ({ isModalOpen, onHideModal, filteredTC, selectedVersionProp, selectedProduct, }) => {
10
+ const { t } = useTranslation();
11
+ const isMajorProjectVersion = isMajorVersion(selectedVersionProp);
12
+ const [selectedVersion, setVersion] = useState(isMajorProjectVersion ? selectedVersionProp.split('.x')[0] : selectedVersionProp);
11
13
  const [selectedCategory, setSelectedCategory] = useState('');
12
14
  const [selectedContent, setSelectedContent] = useState([]);
13
15
  const { categoryUsage } = useTopContentContext();
14
16
  const flagContentEditState = useMemo(() => flagContentUsage(filteredTC, categoryUsage, selectedVersion), [filteredTC, categoryUsage, selectedVersion]);
15
- const [isLoading, versionDifference] = useVersionsDiffer(selectedProduct, selectedMajorVersion.split('.x')[0]);
17
+ const [isLoading, versionDifference] = useVersionsDiffer(selectedProduct, selectedVersionProp);
16
18
  useEffect(() => {
17
19
  var _a;
18
20
  const filteredContent = ((_a = flagContentEditState.find((tc) => tc.categoryName === selectedCategory)) === null || _a === void 0 ? void 0 : _a.content) || [];
@@ -25,18 +27,20 @@ export const MajorVersionPerformanceMetrics = ({ isModalOpen, onHideModal, filte
25
27
  onHideModal();
26
28
  };
27
29
  return (React.createElement(Modal, { variant: ModalVariant.large, id: "top-content-major-version-performance-metric", "aria-label": "top-content-performance-metric", isOpen: isModalOpen, onClose: onModalClose, actions: [
28
- React.createElement(Button, { variant: ButtonVariant.secondary, key: "close-button", onClick: onModalClose }, "Cancel"),
30
+ React.createElement(Button, { variant: ButtonVariant.secondary, key: "close-button", onClick: onModalClose },
31
+ React.createElement(Trans, null, "Cancel")),
29
32
  ], className: "performance-metrics-modal" },
30
33
  React.createElement("div", { className: "sticky-header" },
31
34
  React.createElement(Title, { headingLevel: "h1", size: TitleSizes['2xl'] },
32
35
  React.createElement(Trans, null, " Performance metrics ")),
33
- React.createElement("p", { className: "pf-u-pt-sm" }, "Better understand the Performance for the top content resources."),
36
+ React.createElement("p", { className: "pf-u-pt-sm" },
37
+ React.createElement(Trans, null, "Better understand the Performance for the top content resources.")),
34
38
  React.createElement("br", null),
35
39
  React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
36
40
  React.createElement(FlexItem, { className: "pf-u-w-50 pf-u-pr-md", style: { marginRight: 'unset' } },
37
- React.createElement(PerformanceMetricsSelect, { placeholderText: "select a version", title: `Version using ${selectedMajorVersion}`, onSelectCallback: (e, selectedOption) => setVersion(selectedOption), options: versionDifference, optionValue: (option) => option, isLoading: isLoading })),
41
+ React.createElement(PerformanceMetricsSelect, { placeholderText: t('select a version'), title: t(`Version using ${selectedVersionProp}`), onSelectCallback: (e, selectedOption) => setVersion(selectedOption), options: isMajorProjectVersion ? versionDifference : [selectedVersionProp], optionValue: (option) => option, isLoading: isLoading })),
38
42
  React.createElement(FlexItem, { className: "pf-u-w-50 pf-u-pl-md" },
39
- React.createElement(PerformanceMetricsSelect, { placeholderText: "select a category", title: "Categories", options: flagContentEditState, optionValue: (option) => option.categoryName, onSelectCallback: (e, selectedOption) => setSelectedCategory(selectedOption) })))),
43
+ React.createElement(PerformanceMetricsSelect, { placeholderText: t('select a category'), title: t('Categories'), options: flagContentEditState, optionValue: (option) => option.categoryName, onSelectCallback: (e, selectedOption) => setSelectedCategory(selectedOption) })))),
40
44
  React.createElement("br", null),
41
45
  React.createElement(ContentAccordion, { contentList: selectedContent, selectedVersion: selectedVersion })));
42
46
  };
@@ -16,10 +16,10 @@ import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
16
16
  import { Trans, useTranslation } from 'react-i18next';
17
17
  import { CATEGORY_LIMIT } from '../../../constants/TopContent';
18
18
  import { useTopContentContext, useTopContentDispatchContext } from '../../../context/TopContentProvider';
19
- import { flagContentUsage, isMajorVersion } from '../../../reducers/TopContentHelpers';
19
+ import { flagContentUsage, isMajorOrNamedVersion } from '../../../reducers/TopContentHelpers';
20
20
  import { CategoryMode, fetchTopContent, reArrangeCategory, resetChangeInCategory, resetContentWithSelectedProduct, resetDuplicatUrls, setAddNewSection, setIsAddingCategory, setIsSearchModeEnabled, setTopContentArrangingCategory, setTopContentArrangingContent, } from '../../../reducers/TopContentReducer';
21
21
  import CategoryLimit from '../CategoryLimit/CategoryLimit';
22
- import { MajorVersionPerformanceMetrics } from '../ContentUsage/MajorVersionPerformanceMetrics';
22
+ import { VersionPerformanceMetrics } from '../ContentUsage/VersionPerformanceMetrics';
23
23
  import { NoTopContentFound } from '../NoTopContentFound';
24
24
  import { TopContentHeader } from '../TopContentHeader';
25
25
  import { TopContentProductVersionSelector } from '../TopContentProductVersionSelector';
@@ -143,7 +143,7 @@ export function TopContentEditor() {
143
143
  ' ',
144
144
  React.createElement(Button, { variant: "secondary", onClick: arrangeSection, isDisabled: flagContentEditState.length < 2 },
145
145
  React.createElement(Trans, null, "Arrange section")),
146
- isMajorVersion(selectedVersion) && (React.createElement(Button, { variant: "link", className: "pf-u-float-right", isInline: true, onClick: onOpenModal },
146
+ isMajorOrNamedVersion(selectedVersion) && (React.createElement(Button, { variant: "link", className: "pf-u-float-right", isInline: true, onClick: onOpenModal },
147
147
  React.createElement(Trans, null, "View performance"))))),
148
148
  isArrangingCats && (React.createElement(React.Fragment, null,
149
149
  React.createElement(Button, { variant: "primary", onClick: onSaveArrangement },
@@ -151,5 +151,5 @@ export function TopContentEditor() {
151
151
  ' ',
152
152
  React.createElement(Button, { variant: "link", onClick: onCancelArrangement },
153
153
  React.createElement(Trans, null, "Cancel")))))))))),
154
- isMajorVersion(selectedVersion) && (React.createElement(MajorVersionPerformanceMetrics, { isModalOpen: isModalOpen, onHideModal: onHideModal, filteredTC: filteredTC, selectedMajorVersion: selectedVersion, selectedProduct: selectedProduct.name })))));
154
+ isMajorOrNamedVersion(selectedVersion) && (React.createElement(VersionPerformanceMetrics, { isModalOpen: isModalOpen, onHideModal: onHideModal, filteredTC: filteredTC, selectedVersionProp: selectedVersion, selectedProduct: selectedProduct.name })))));
155
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useVersionsDiffer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVersionsDiffer.tsx"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,wBAAyB,MAAM,wBAAwB,MAAM,KAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAsD/G,CAAC"}
1
+ {"version":3,"file":"useVersionsDiffer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVersionsDiffer.tsx"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,wBAAyB,MAAM,wBAAwB,MAAM,KAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAuD/G,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { pcm, products as productsApi } from '@cee-eng/hydrajs';
2
2
  import { useFetch } from '@rh-support/components';
3
- import { difference } from 'lodash';
3
+ import { intersection } from 'lodash';
4
4
  import { useEffect, useState } from 'react';
5
5
  import { postVersionsProcessor } from '../components/TopContentManagement/TopContentProductVersionSelector';
6
6
  /**
@@ -15,6 +15,7 @@ export const useVersionsDiffer = (selectedProductName, selectedMajorVersion) =>
15
15
  // Note we need to call version API again over here because TopContentProductVersionSelector is having version at component state level and if we decide to
16
16
  // use it lot of prop drilling will happen or if use lift that state to redux store code refactoring required
17
17
  const { request: getProductVersions, isFetching: isLoadingVersions, data: versions, } = useFetch(productsApi.getProductVersions, { initialData: [], postProcessor: postVersionsProcessor });
18
+ const majorVersionNumber = selectedMajorVersion.split('.x')[0];
18
19
  // Get versions who are having top content
19
20
  const { request: getTopContentVersions, isFetching: isTopContentVersion, data: topContentVersion, } = useFetch(pcm.topContent.getTopContentVersions, {
20
21
  initialData: [],
@@ -25,7 +26,7 @@ export const useVersionsDiffer = (selectedProductName, selectedMajorVersion) =>
25
26
  getProductVersions(selectedProductName);
26
27
  getTopContentVersions({
27
28
  productName: selectedProductName,
28
- majorVersion: +selectedMajorVersion,
29
+ majorVersion: +majorVersionNumber,
29
30
  });
30
31
  }
31
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -35,16 +36,16 @@ export const useVersionsDiffer = (selectedProductName, selectedMajorVersion) =>
35
36
  var _a, _b, _c;
36
37
  // If versions list is empty, then set `majorVersion.x`
37
38
  if (((_a = versions === null || versions === void 0 ? void 0 : versions.items) === null || _a === void 0 ? void 0 : _a.length) && (topContentVersion === null || topContentVersion === void 0 ? void 0 : topContentVersion.length)) {
38
- const subVersions = (_b = versions === null || versions === void 0 ? void 0 : versions.items) === null || _b === void 0 ? void 0 : _b.filter((item) => item.startsWith(selectedMajorVersion)).map((item) => { var _a; return (_a = item.split('.')) === null || _a === void 0 ? void 0 : _a.splice(1).join('.'); }).sort();
39
- setMajorVersion(difference(subVersions, topContentVersion));
39
+ const subVersions = (_b = versions === null || versions === void 0 ? void 0 : versions.items) === null || _b === void 0 ? void 0 : _b.filter((item) => item.startsWith(majorVersionNumber)).map((item) => { var _a; return (_a = item.split('.')) === null || _a === void 0 ? void 0 : _a.splice(1).join('.'); }).sort();
40
+ setMajorVersion(intersection(subVersions, topContentVersion));
40
41
  }
41
42
  else if ((_c = versions === null || versions === void 0 ? void 0 : versions.items) === null || _c === void 0 ? void 0 : _c.length) {
42
- const subVersions = versions === null || versions === void 0 ? void 0 : versions.items.filter((item) => item.startsWith(selectedMajorVersion)).map((item) => { var _a; return (_a = item.split('.')) === null || _a === void 0 ? void 0 : _a.splice(1).join('.'); }).sort();
43
+ const subVersions = versions === null || versions === void 0 ? void 0 : versions.items.filter((item) => item.startsWith(majorVersionNumber)).map((item) => { var _a; return (_a = item.split('.')) === null || _a === void 0 ? void 0 : _a.splice(1).join('.'); }).sort();
43
44
  setMajorVersion(subVersions);
44
45
  }
45
46
  else {
46
47
  setMajorVersion(['x']);
47
48
  }
48
- }, [versions, topContentVersion, selectedMajorVersion]);
49
- return [isLoadingVersions || isTopContentVersion, majorVersion.map((item) => `${selectedMajorVersion}.${item}`)];
49
+ }, [versions, topContentVersion, majorVersionNumber]);
50
+ return [isLoadingVersions || isTopContentVersion, majorVersion.map((item) => `${majorVersionNumber}.${item}`)];
50
51
  };
@@ -15,4 +15,5 @@ export declare const getContentUrls: (contentsArray: any) => any;
15
15
  */
16
16
  export declare const flagContentUsage: (categories: ITopContentEditState[], categoryUsage: ITopContentResourceUsagesResponse, selectedVersion: string) => ITopContentEditState[];
17
17
  export declare const isMajorVersion: (selectedVersion: string) => boolean;
18
+ export declare const isMajorOrNamedVersion: (selectedVersion: string) => boolean;
18
19
  //# sourceMappingURL=TopContentHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopContentHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/TopContentHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EAEpC,MAAM,2DAA2D,CAAC;AAKnE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qBAAqB,CAAC;AAEjF,eAAO,MAAM,gBAAgB,eAAgB,MAAM,WASlD,CAAC;AAEF,eAAO,MAAM,cAAc,6BAe1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,eACb,oBAAoB,EAAE,iBACnB,iCAAiC,mBAC/B,MAAM,2BAqC1B,CAAC;AAEF,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,OAExD,CAAC"}
1
+ {"version":3,"file":"TopContentHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/TopContentHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EAEpC,MAAM,2DAA2D,CAAC;AAKnE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qBAAqB,CAAC;AAEjF,eAAO,MAAM,gBAAgB,eAAgB,MAAM,WASlD,CAAC;AAEF,eAAO,MAAM,cAAc,6BAe1B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,eACb,oBAAoB,EAAE,iBACnB,iCAAiC,mBAC/B,MAAM,2BAqC1B,CAAC;AAEF,eAAO,MAAM,cAAc,oBAAqB,MAAM,KAAG,OAExD,CAAC;AAEF,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAAG,OAE/D,CAAC"}
@@ -79,3 +79,6 @@ export const flagContentUsage = (categories, categoryUsage, selectedVersion) =>
79
79
  export const isMajorVersion = (selectedVersion) => {
80
80
  return /.x/.test(selectedVersion);
81
81
  };
82
+ export const isMajorOrNamedVersion = (selectedVersion) => {
83
+ return /^([a-zA-Z]+|.*\.x)/.test(selectedVersion);
84
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/manage",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Customer Support Manage App",
5
5
  "author": "Jordan Eudy <jeudy100@gmail.com>",
6
6
  "homepage": "",
@@ -94,11 +94,11 @@
94
94
  "@patternfly/pfe-tabs": "1.12.3",
95
95
  "@patternfly/react-core": "4.264.0",
96
96
  "@patternfly/react-table": "4.111.33",
97
- "@rh-support/components": "1.2.22-beta.58",
97
+ "@rh-support/components": "1.3.0",
98
98
  "@rh-support/configs": "1.0.2-beta.58",
99
- "@rh-support/react-context": "1.0.30-beta.58",
99
+ "@rh-support/react-context": "1.1.0",
100
100
  "@rh-support/types": "0.2.1-beta.58",
101
- "@rh-support/user-permissions": "1.0.12-beta.58",
101
+ "@rh-support/user-permissions": "1.1.0",
102
102
  "@rh-support/utils": "1.0.10-beta.58",
103
103
  "@types/react-beautiful-dnd": "^13.0.0",
104
104
  "i18next": ">=17.0.1",
@@ -109,5 +109,5 @@
109
109
  "react-i18next": ">=10.11.0",
110
110
  "react-router-dom": ">=5.1.2"
111
111
  },
112
- "gitHead": "e1515d822febb9822e84bfb533fd9bc1355b9751"
112
+ "gitHead": "3d0d02331e6cec16738543b3777e0972f96d8d7a"
113
113
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MajorVersionPerformanceMetrics.d.ts","sourceRoot":"","sources":["../../../../../src/components/TopContentManagement/ContentUsage/MajorVersionPerformanceMetrics.tsx"],"names":[],"mappings":"AAWA,OAAc,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;AAMhE,OAAO,EAAE,oBAAoB,EAAwB,MAAM,qCAAqC,CAAC;AAIjG,UAAU,MAAM;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,8BAA8B,EAAE,EAAE,CAAC,MAAM,CA8ErD,CAAC"}