@rh-support/manage 1.1.1 → 1.1.3
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/ManagePreferences/ManagePreferences.js +1 -2
- package/lib/esm/components/TopContentManagement/ContentUsage/{MajorVersionPerformanceMetrics.d.ts → VersionPerformanceMetrics.d.ts} +3 -3
- package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.d.ts.map +1 -0
- package/lib/esm/components/TopContentManagement/ContentUsage/{MajorVersionPerformanceMetrics.js → VersionPerformanceMetrics.js} +13 -9
- package/lib/esm/components/TopContentManagement/TopContentEditor/TopContentEditor.js +4 -4
- package/lib/esm/hooks/useVersionsDiffer.d.ts.map +1 -1
- package/lib/esm/hooks/useVersionsDiffer.js +8 -7
- package/lib/esm/reducers/TopContentHelpers.d.ts +1 -0
- package/lib/esm/reducers/TopContentHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/TopContentHelpers.js +3 -0
- package/package.json +3 -3
- package/lib/esm/components/TopContentManagement/ContentUsage/MajorVersionPerformanceMetrics.d.ts.map +0 -1
|
@@ -2,6 +2,5 @@ import React from 'react';
|
|
|
2
2
|
import { Preferences } from './Preferences';
|
|
3
3
|
export function ManagePreferences(props) {
|
|
4
4
|
return (React.createElement("section", { id: "manage-preferences" },
|
|
5
|
-
React.createElement(Preferences, null)
|
|
6
|
-
";"));
|
|
5
|
+
React.createElement(Preferences, null)));
|
|
7
6
|
}
|
|
@@ -4,9 +4,9 @@ interface IProps {
|
|
|
4
4
|
isModalOpen: boolean;
|
|
5
5
|
onHideModal: () => void;
|
|
6
6
|
filteredTC: ITopContentEditState[];
|
|
7
|
-
|
|
7
|
+
selectedVersionProp: string;
|
|
8
8
|
selectedProduct: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const VersionPerformanceMetrics: FC<IProps>;
|
|
11
11
|
export {};
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=VersionPerformanceMetrics.d.ts.map
|
package/lib/esm/components/TopContentManagement/ContentUsage/VersionPerformanceMetrics.d.ts.map
ADDED
|
@@ -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
|
|
10
|
-
const
|
|
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,
|
|
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 },
|
|
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" },
|
|
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:
|
|
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:
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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 {
|
|
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: +
|
|
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(
|
|
39
|
-
setMajorVersion(
|
|
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(
|
|
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,
|
|
49
|
-
return [isLoadingVersions || isTopContentVersion, majorVersion.map((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.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Customer Support Manage App",
|
|
5
5
|
"author": "Jordan Eudy <jeudy100@gmail.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"@patternfly/react-table": "4.111.33",
|
|
97
97
|
"@rh-support/components": "1.3.0",
|
|
98
98
|
"@rh-support/configs": "1.0.2-beta.58",
|
|
99
|
-
"@rh-support/react-context": "1.1.
|
|
99
|
+
"@rh-support/react-context": "1.1.1",
|
|
100
100
|
"@rh-support/types": "0.2.1-beta.58",
|
|
101
101
|
"@rh-support/user-permissions": "1.1.0",
|
|
102
102
|
"@rh-support/utils": "1.0.10-beta.58",
|
|
@@ -109,5 +109,5 @@
|
|
|
109
109
|
"react-i18next": ">=10.11.0",
|
|
110
110
|
"react-router-dom": ">=5.1.2"
|
|
111
111
|
},
|
|
112
|
-
"gitHead": "
|
|
112
|
+
"gitHead": "aa7baf511d220c1f19d6f965bbdc2e3861e5d820"
|
|
113
113
|
}
|
package/lib/esm/components/TopContentManagement/ContentUsage/MajorVersionPerformanceMetrics.d.ts.map
DELETED
|
@@ -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"}
|