@openshift-assisted/ui-lib 2.12.3-cim → 2.12.5-cim
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/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts +2 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.d.ts.map +1 -1
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts +1 -0
- package/build/@types/cim/components/ClusterDeployment/ClusterDetailsFormFields.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.d.ts +6 -1
- package/build/@types/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.d.ts.map +1 -1
- package/build/@types/cim/components/Hypershift/hooks/useSupportedOCPVersions.d.ts +1 -1
- package/build/@types/cim/components/Hypershift/hooks/useSupportedOCPVersions.d.ts.map +1 -1
- package/build/@types/cim/components/helpers/versions.d.ts +3 -3
- package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
- package/build/@types/cim/types/k8s/agent-service-config.d.ts +6 -0
- package/build/@types/cim/types/k8s/agent-service-config.d.ts.map +1 -1
- package/build/@types/common/components/clusterConfiguration/index.d.ts +0 -1
- package/build/@types/common/components/clusterConfiguration/index.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
- package/build/@types/common/components/clusterWizard/types.d.ts +6 -0
- package/build/@types/common/components/clusterWizard/types.d.ts.map +1 -1
- package/build/@types/common/components/ui/OpenShiftSelectWithSearch.d.ts +11 -0
- package/build/@types/common/components/ui/OpenShiftSelectWithSearch.d.ts.map +1 -0
- package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts +8 -8
- package/build/@types/common/components/ui/OpenShiftVersionDropdown.d.ts.map +1 -1
- package/build/@types/common/components/ui/OpenShiftVersionModal.d.ts +11 -0
- package/build/@types/common/components/ui/OpenShiftVersionModal.d.ts.map +1 -0
- package/build/@types/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.d.ts.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js +4 -3
- package/build/cjs/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.js.map +1 -1
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js +37 -11
- package/build/cjs/cim/components/ClusterDeployment/ClusterDetailsFormFields.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.js +23 -3
- package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js +3 -1
- package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js.map +1 -1
- package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js +3 -3
- package/build/cjs/cim/components/Hypershift/hooks/useSupportedOCPVersions.js.map +1 -1
- package/build/cjs/cim/components/helpers/versions.js +10 -5
- package/build/cjs/cim/components/helpers/versions.js.map +1 -1
- package/build/cjs/common/components/clusterConfiguration/index.js +1 -3
- package/build/cjs/common/components/clusterConfiguration/index.js.map +1 -1
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +1 -0
- package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
- package/build/cjs/common/components/ui/OpenShiftSelectWithSearch.js +55 -0
- package/build/cjs/common/components/ui/OpenShiftSelectWithSearch.js.map +1 -0
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.css +7 -0
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js +50 -27
- package/build/cjs/common/components/ui/OpenShiftVersionDropdown.js.map +1 -1
- package/build/cjs/common/components/ui/OpenShiftVersionModal.css +7 -0
- package/build/cjs/common/components/ui/OpenShiftVersionModal.js +28 -0
- package/build/cjs/common/components/ui/OpenShiftVersionModal.js.map +1 -0
- package/build/cjs/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.js +5 -1
- package/build/cjs/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.js.map +1 -1
- package/lib/cim/components/ClusterDeployment/ClusterDeploymentDetailsForm.tsx +13 -5
- package/lib/cim/components/ClusterDeployment/ClusterDetailsFormFields.tsx +57 -13
- package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsForm.tsx +45 -3
- package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.tsx +4 -0
- package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/types.ts +6 -1
- package/lib/cim/components/Hypershift/hooks/useSupportedOCPVersions.ts +3 -2
- package/lib/cim/components/helpers/versions.ts +19 -4
- package/lib/cim/types/k8s/agent-service-config.ts +7 -0
- package/lib/common/components/clusterConfiguration/index.ts +0 -1
- package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +1 -0
- package/lib/common/components/clusterWizard/types.ts +7 -0
- package/lib/common/components/ui/OpenShiftSelectWithSearch.tsx +130 -0
- package/lib/common/components/ui/OpenShiftVersionDropdown.css +7 -0
- package/lib/common/components/ui/OpenShiftVersionDropdown.tsx +101 -56
- package/lib/common/components/ui/OpenShiftVersionModal.css +7 -0
- package/lib/common/components/ui/OpenShiftVersionModal.tsx +61 -0
- package/lib/ocm/components/clusterConfiguration/OcmOpenShiftVersionSelect.tsx +11 -1
- package/package.json +3 -3
- package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts +0 -10
- package/build/@types/common/components/clusterConfiguration/OpenShiftVersionSelect.d.ts.map +0 -1
- package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js +0 -55
- package/build/cjs/common/components/clusterConfiguration/OpenShiftVersionSelect.js.map +0 -1
- package/lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx +0 -81
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Button, ButtonVariant, FormGroup, Modal, ModalVariant } from '@patternfly/react-core';
|
|
3
|
+
import { OpenShiftSelectWithSearch } from './OpenShiftSelectWithSearch';
|
|
4
|
+
import { HelperTextType } from './OpenShiftVersionDropdown';
|
|
5
|
+
import { useFormikContext } from 'formik';
|
|
6
|
+
import { ClusterDetailsValues, OpenshiftVersionOptionType } from '../..';
|
|
7
|
+
import './OpenShiftVersionModal.css';
|
|
8
|
+
|
|
9
|
+
type OpenShiftVersionModalProps = {
|
|
10
|
+
allVersions: OpenshiftVersionOptionType[];
|
|
11
|
+
setOpenshiftVersionModalOpen: (isOpen: boolean) => void;
|
|
12
|
+
getHelperText?: HelperTextType;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const OpenShiftVersionModal = ({
|
|
16
|
+
allVersions,
|
|
17
|
+
setOpenshiftVersionModalOpen,
|
|
18
|
+
getHelperText,
|
|
19
|
+
}: OpenShiftVersionModalProps) => {
|
|
20
|
+
const { setFieldValue } = useFormikContext<ClusterDetailsValues>();
|
|
21
|
+
const onClose = () => setOpenshiftVersionModalOpen(false);
|
|
22
|
+
const [customOpenshiftSelect, setCustomOpenshiftSelect] = useState<OpenshiftVersionOptionType>(); // Cambiar el tipo según lo que esperes aquí
|
|
23
|
+
|
|
24
|
+
const handleSelect = () => {
|
|
25
|
+
if (customOpenshiftSelect) {
|
|
26
|
+
setFieldValue('customOpenshiftSelect', customOpenshiftSelect);
|
|
27
|
+
}
|
|
28
|
+
onClose();
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Modal
|
|
33
|
+
title="Available OpenShift Versions"
|
|
34
|
+
id="available-openshift-versions-modal"
|
|
35
|
+
isOpen
|
|
36
|
+
actions={[
|
|
37
|
+
<Button key="select-custom-ocp" variant={ButtonVariant.primary} onClick={handleSelect}>
|
|
38
|
+
Select
|
|
39
|
+
</Button>,
|
|
40
|
+
<Button key="close-custom-ocp" variant={ButtonVariant.link} onClick={onClose}>
|
|
41
|
+
Cancel
|
|
42
|
+
</Button>,
|
|
43
|
+
]}
|
|
44
|
+
onClose={onClose}
|
|
45
|
+
variant={ModalVariant.small}
|
|
46
|
+
>
|
|
47
|
+
<FormGroup
|
|
48
|
+
id={`form-control__customOpenshiftSelect`}
|
|
49
|
+
fieldId={'customOpenshiftSelect'}
|
|
50
|
+
label={'OpenShift version'}
|
|
51
|
+
isRequired
|
|
52
|
+
>
|
|
53
|
+
<OpenShiftSelectWithSearch
|
|
54
|
+
versions={allVersions}
|
|
55
|
+
getHelperText={getHelperText}
|
|
56
|
+
setCustomOpenshiftSelect={setCustomOpenshiftSelect}
|
|
57
|
+
/>
|
|
58
|
+
</FormGroup>
|
|
59
|
+
</Modal>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
@@ -71,13 +71,23 @@ const OcmOpenShiftVersionSelect = ({ versions }: OcmOpenShiftVersionSelectProps)
|
|
|
71
71
|
[versions, t],
|
|
72
72
|
);
|
|
73
73
|
|
|
74
|
+
// Create a wrapper function that matches the new HelperTextType signature
|
|
75
|
+
const getHelperText = React.useCallback(
|
|
76
|
+
(value: string | undefined) => {
|
|
77
|
+
return getOpenshiftVersionHelperText(versions, value, t);
|
|
78
|
+
},
|
|
79
|
+
[versions, t],
|
|
80
|
+
);
|
|
81
|
+
|
|
74
82
|
return (
|
|
75
83
|
<OpenShiftVersionDropdown
|
|
76
84
|
name="openshiftVersion"
|
|
77
85
|
items={selectOptions}
|
|
78
86
|
versions={versions}
|
|
79
|
-
getHelperText={
|
|
87
|
+
getHelperText={getHelperText}
|
|
80
88
|
showReleasesLink={isInOcm}
|
|
89
|
+
showOpenshiftVersionModal={() => null}
|
|
90
|
+
customItems={[]}
|
|
81
91
|
/>
|
|
82
92
|
);
|
|
83
93
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@openshift-assisted/locales": "2.12.
|
|
4
|
-
"@openshift-assisted/types": "2.12.
|
|
3
|
+
"@openshift-assisted/locales": "2.12.5-cim",
|
|
4
|
+
"@openshift-assisted/types": "2.12.5-cim",
|
|
5
5
|
"@openshift-console/dynamic-plugin-sdk": "0.0.3",
|
|
6
6
|
"@patternfly/patternfly": "^4.222.4",
|
|
7
7
|
"@patternfly/react-code-editor": "^4.82.113",
|
|
@@ -142,5 +142,5 @@
|
|
|
142
142
|
]
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
|
-
"version": "2.12.
|
|
145
|
+
"version": "2.12.5-cim"
|
|
146
146
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { OpenshiftVersionOptionType } from '../../types';
|
|
3
|
-
import { SelectFieldProps } from '../ui/formik/types';
|
|
4
|
-
type OpenShiftVersionSelectProps = {
|
|
5
|
-
versions: OpenshiftVersionOptionType[];
|
|
6
|
-
onChange?: SelectFieldProps['onChange'];
|
|
7
|
-
};
|
|
8
|
-
declare const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps>;
|
|
9
|
-
export default OpenShiftVersionSelect;
|
|
10
|
-
//# sourceMappingURL=OpenShiftVersionSelect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpenShiftVersionSelect.d.ts","sourceRoot":"","sources":["../../../../../lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAyCtD,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACzC,CAAC;AACF,QAAA,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAuBjE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const react_1 = tslib_1.__importDefault(require("react"));
|
|
5
|
-
const exclamation_circle_icon_1 = require("@patternfly/react-icons/dist/js/icons/exclamation-circle-icon");
|
|
6
|
-
const exclamation_triangle_icon_1 = require("@patternfly/react-icons/dist/js/icons/exclamation-triangle-icon");
|
|
7
|
-
const external_link_alt_icon_1 = require("@patternfly/react-icons/dist/js/icons/external-link-alt-icon");
|
|
8
|
-
const global_warning_color_100_1 = require("@patternfly/react-tokens/dist/js/global_warning_color_100");
|
|
9
|
-
const global_danger_color_100_1 = require("@patternfly/react-tokens/dist/js/global_danger_color_100");
|
|
10
|
-
const config_1 = require("../../config");
|
|
11
|
-
const ui_1 = require("../ui");
|
|
12
|
-
const use_translation_wrapper_1 = require("../../hooks/use-translation-wrapper");
|
|
13
|
-
const OpenShiftLifeCycleDatesLink = () => {
|
|
14
|
-
const { t } = (0, use_translation_wrapper_1.useTranslation)();
|
|
15
|
-
return (react_1.default.createElement("a", { href: config_1.OPENSHIFT_LIFE_CYCLE_DATES_LINK, target: "_blank", rel: "noopener noreferrer" },
|
|
16
|
-
t('ai:Learn more'),
|
|
17
|
-
" ",
|
|
18
|
-
react_1.default.createElement(external_link_alt_icon_1.ExternalLinkAltIcon, null)));
|
|
19
|
-
};
|
|
20
|
-
const getOpenshiftVersionHelperText =
|
|
21
|
-
// eslint-disable-next-line react/display-name
|
|
22
|
-
(versions) => (selectedVersionValue) => {
|
|
23
|
-
const { t } = (0, use_translation_wrapper_1.useTranslation)();
|
|
24
|
-
if (!versions.length) {
|
|
25
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
26
|
-
react_1.default.createElement(exclamation_circle_icon_1.ExclamationCircleIcon, { color: global_danger_color_100_1.global_danger_color_100.value, size: "sm" }),
|
|
27
|
-
"\u00A0 ",
|
|
28
|
-
t('ai:No release image is available.')));
|
|
29
|
-
}
|
|
30
|
-
const selectedVersion = versions.find((version) => version.value === selectedVersionValue);
|
|
31
|
-
if (!selectedVersionValue || !selectedVersion) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
if (selectedVersion.supportLevel !== 'production') {
|
|
35
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
36
|
-
react_1.default.createElement(exclamation_triangle_icon_1.ExclamationTriangleIcon, { color: global_warning_color_100_1.global_warning_color_100.value, size: "sm" }),
|
|
37
|
-
"\u00A0",
|
|
38
|
-
t('ai:Please note that this version is not production-ready.'),
|
|
39
|
-
"\u00A0",
|
|
40
|
-
react_1.default.createElement(OpenShiftLifeCycleDatesLink, null)));
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
};
|
|
44
|
-
const OpenShiftVersionSelect = ({ versions, onChange }) => {
|
|
45
|
-
const selectOptions = react_1.default.useMemo(() => versions
|
|
46
|
-
.filter((version) => version.supportLevel !== 'maintenance')
|
|
47
|
-
.map((version) => ({
|
|
48
|
-
label: version.label,
|
|
49
|
-
value: version.value,
|
|
50
|
-
})), [versions]);
|
|
51
|
-
const { t } = (0, use_translation_wrapper_1.useTranslation)();
|
|
52
|
-
return (react_1.default.createElement(ui_1.SelectField, { label: t('ai:OpenShift version'), name: "openshiftVersion", options: selectOptions, getHelperText: getOpenshiftVersionHelperText(versions), isDisabled: versions.length === 0, isRequired: true, onChange: onChange }));
|
|
53
|
-
};
|
|
54
|
-
exports.default = OpenShiftVersionSelect;
|
|
55
|
-
//# sourceMappingURL=OpenShiftVersionSelect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpenShiftVersionSelect.js","sourceRoot":"","sources":["../../../../../lib/common/components/clusterConfiguration/OpenShiftVersionSelect.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,2GAAsG;AACtG,+GAA0G;AAC1G,yGAAmG;AACnG,wGAAqH;AACrH,sGAAkH;AAClH,yCAA+D;AAE/D,8BAAoC;AACpC,iFAAqE;AAGrE,MAAM,2BAA2B,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,wCAAc,GAAE,CAAC;IAC/B,OAAO,CACL,qCAAG,IAAI,EAAE,wCAA+B,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB;QAChF,CAAC,CAAC,eAAe,CAAC;;QAAE,8BAAC,4CAAmB,OAAG,CAC1C,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,6BAA6B;AACjC,8CAA8C;AAC9C,CAAC,QAAsC,EAAE,EAAE,CAAC,CAAC,oBAA4B,EAAE,EAAE;IAC3E,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,wCAAc,GAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpB,OAAO,CACL;YACE,8BAAC,+CAAqB,IAAC,KAAK,EAAE,iDAAW,CAAC,KAAK,EAAE,IAAI,EAAC,IAAI,GAAG;;YACrD,CAAC,CAAC,mCAAmC,CAAC,CAC7C,CACJ,CAAC;KACH;IACD,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,oBAAoB,CAAC,CAAC;IAC3F,IAAI,CAAC,oBAAoB,IAAI,CAAC,eAAe,EAAE;QAC7C,OAAO,IAAI,CAAC;KACb;IAED,IAAI,eAAe,CAAC,YAAY,KAAK,YAAY,EAAE;QACjD,OAAO,CACL;YACE,8BAAC,mDAAuB,IAAC,KAAK,EAAE,mDAAY,CAAC,KAAK,EAAE,IAAI,EAAC,IAAI,GAAG;;YACzD,CAAC,CAAC,2DAA2D,CAAC;;YACrE,8BAAC,2BAA2B,OAAG,CAC9B,CACJ,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAMJ,MAAM,sBAAsB,GAA0C,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/F,MAAM,aAAa,GAAG,eAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CACH,QAAQ;SACL,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,aAAa,CAAC;SAC3D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC,EACP,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,wCAAc,GAAE,CAAC;IAC/B,OAAO,CACL,8BAAC,gBAAW,IACV,KAAK,EAAE,CAAC,CAAC,sBAAsB,CAAC,EAChC,IAAI,EAAC,kBAAkB,EACvB,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,6BAA6B,CAAC,QAAQ,CAAC,EACtD,UAAU,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EACjC,UAAU,QACV,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
3
|
-
import { ExclamationTriangleIcon } from '@patternfly/react-icons/dist/js/icons/exclamation-triangle-icon';
|
|
4
|
-
import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
5
|
-
import { global_warning_color_100 as warningColor } from '@patternfly/react-tokens/dist/js/global_warning_color_100';
|
|
6
|
-
import { global_danger_color_100 as dangerColor } from '@patternfly/react-tokens/dist/js/global_danger_color_100';
|
|
7
|
-
import { OPENSHIFT_LIFE_CYCLE_DATES_LINK } from '../../config';
|
|
8
|
-
import { OpenshiftVersionOptionType } from '../../types';
|
|
9
|
-
import { SelectField } from '../ui';
|
|
10
|
-
import { useTranslation } from '../../hooks/use-translation-wrapper';
|
|
11
|
-
import { SelectFieldProps } from '../ui/formik/types';
|
|
12
|
-
|
|
13
|
-
const OpenShiftLifeCycleDatesLink = () => {
|
|
14
|
-
const { t } = useTranslation();
|
|
15
|
-
return (
|
|
16
|
-
<a href={OPENSHIFT_LIFE_CYCLE_DATES_LINK} target="_blank" rel="noopener noreferrer">
|
|
17
|
-
{t('ai:Learn more')} <ExternalLinkAltIcon />
|
|
18
|
-
</a>
|
|
19
|
-
);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const getOpenshiftVersionHelperText =
|
|
23
|
-
// eslint-disable-next-line react/display-name
|
|
24
|
-
(versions: OpenshiftVersionOptionType[]) => (selectedVersionValue: string) => {
|
|
25
|
-
const { t } = useTranslation();
|
|
26
|
-
if (!versions.length) {
|
|
27
|
-
return (
|
|
28
|
-
<>
|
|
29
|
-
<ExclamationCircleIcon color={dangerColor.value} size="sm" />
|
|
30
|
-
{t('ai:No release image is available.')}
|
|
31
|
-
</>
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
const selectedVersion = versions.find((version) => version.value === selectedVersionValue);
|
|
35
|
-
if (!selectedVersionValue || !selectedVersion) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (selectedVersion.supportLevel !== 'production') {
|
|
40
|
-
return (
|
|
41
|
-
<>
|
|
42
|
-
<ExclamationTriangleIcon color={warningColor.value} size="sm" />
|
|
43
|
-
{t('ai:Please note that this version is not production-ready.')}
|
|
44
|
-
<OpenShiftLifeCycleDatesLink />
|
|
45
|
-
</>
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return null;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
type OpenShiftVersionSelectProps = {
|
|
53
|
-
versions: OpenshiftVersionOptionType[];
|
|
54
|
-
onChange?: SelectFieldProps['onChange'];
|
|
55
|
-
};
|
|
56
|
-
const OpenShiftVersionSelect: React.FC<OpenShiftVersionSelectProps> = ({ versions, onChange }) => {
|
|
57
|
-
const selectOptions = React.useMemo(
|
|
58
|
-
() =>
|
|
59
|
-
versions
|
|
60
|
-
.filter((version) => version.supportLevel !== 'maintenance')
|
|
61
|
-
.map((version) => ({
|
|
62
|
-
label: version.label,
|
|
63
|
-
value: version.value,
|
|
64
|
-
})),
|
|
65
|
-
[versions],
|
|
66
|
-
);
|
|
67
|
-
const { t } = useTranslation();
|
|
68
|
-
return (
|
|
69
|
-
<SelectField
|
|
70
|
-
label={t('ai:OpenShift version')}
|
|
71
|
-
name="openshiftVersion"
|
|
72
|
-
options={selectOptions}
|
|
73
|
-
getHelperText={getOpenshiftVersionHelperText(versions)}
|
|
74
|
-
isDisabled={versions.length === 0}
|
|
75
|
-
isRequired
|
|
76
|
-
onChange={onChange}
|
|
77
|
-
/>
|
|
78
|
-
);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export default OpenShiftVersionSelect;
|