UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

77 lines 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDetailsFormik = void 0; const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const formik_1 = require("formik"); const react_core_1 = require("@patternfly/react-core"); const common_1 = require("../../../common"); const helpers_1 = require("../helpers"); const ClusterDeploymentDetailsForm_1 = tslib_1.__importStar(require("./ClusterDeploymentDetailsForm")); const helpers_2 = require("./helpers"); const use_translation_wrapper_1 = require("../../../common/hooks/use-translation-wrapper"); const useDetailsFormik = ({ clusterDeployment, agentClusterInstall, agents, usedClusterNames, infraEnv, ocpVersions, }) => { const { t } = (0, use_translation_wrapper_1.useTranslation)(); const isEdit = !!clusterDeployment || !!agentClusterInstall; const cluster = react_1.default.useMemo(() => clusterDeployment && agentClusterInstall ? (0, helpers_1.getAICluster)({ clusterDeployment, agentClusterInstall, agents, infraEnv, }) : undefined, [agentClusterInstall, clusterDeployment, agents, infraEnv]); const initialValues = react_1.default.useMemo(() => { const initValues = (0, common_1.getClusterDetailsInitialValues)({ managedDomains: [], cluster, ocpVersions, }); const ocpVersion = ocpVersions.find((ocpVersion) => ocpVersion.value === initValues.openshiftVersion); return Object.assign(Object.assign({}, initValues), { networkType: (0, helpers_1.getNetworkType)(ocpVersion) }); }, []); const validationSchema = react_1.default.useMemo(() => (0, common_1.getClusterDetailsValidationSchema)({ usedClusterNames, pullSecretSet: isEdit, validateUniqueName: true, t, }), [usedClusterNames, isEdit, t]); return [initialValues, validationSchema]; }; exports.useDetailsFormik = useDetailsFormik; const ClusterDeploymentDetailsStep = ({ clusterImages, clusterDeployment, agentClusterInstall, agents, usedClusterNames, onSaveDetails, isPreviewOpen, infraEnv, isNutanix, }) => { const { t } = (0, use_translation_wrapper_1.useTranslation)(); const { addAlert } = (0, common_1.useAlerts)(); const { goToNextStep } = (0, react_core_1.useWizardContext)(); const ocpVersions = (0, helpers_1.getOCPVersions)(clusterImages, isNutanix); const gridSpans = (0, helpers_2.getGridSpans)(isPreviewOpen); const [initialValues, validationSchema] = (0, exports.useDetailsFormik)({ clusterDeployment, ocpVersions, agentClusterInstall, agents, usedClusterNames, infraEnv, }); const handleSubmit = (values) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { yield onSaveDetails(values); yield goToNextStep(); } catch (error) { addAlert({ title: t('ai:Failed to save ClusterDeployment'), message: error, }); } }); return (react_1.default.createElement(formik_1.Formik, { initialValues: initialValues, validate: (0, common_1.getRichTextValidation)(validationSchema), onSubmit: handleSubmit }, react_1.default.createElement(react_core_1.Grid, { hasGutter: true }, react_1.default.createElement(react_core_1.GridItem, null, react_1.default.createElement(common_1.ClusterWizardStepHeader, null, "Cluster Details")), react_1.default.createElement(react_core_1.GridItem, Object.assign({}, gridSpans), react_1.default.createElement(ClusterDeploymentDetailsForm_1.ClusterDeploymentDetailsFormWrapper, null, react_1.default.createElement(ClusterDeploymentDetailsForm_1.default, { agentClusterInstall: agentClusterInstall, clusterDeployment: clusterDeployment, clusterImages: clusterImages, isNutanix: isNutanix })))))); }; exports.default = ClusterDeploymentDetailsStep; //# sourceMappingURL=ClusterDeploymentDetailsStep.js.map