UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

70 lines 3.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const react_core_1 = require("@patternfly/react-core"); const wizardTransition_1 = require("./wizardTransition"); const ClusterWizardContext_1 = require("./ClusterWizardContext"); const constants_1 = require("./constants"); const WizardNavItem_1 = tslib_1.__importDefault(require("../../../common/components/ui/WizardNavItem")); const isStepValid = (stepId, cluster) => { if (!cluster) { return true; } switch (stepId) { case 'cluster-details': return !cluster.validationsInfo || (0, wizardTransition_1.canNextClusterDetails)({ cluster }); case 'static-ip-yaml-view': case 'static-ip-host-configurations': case 'static-ip-network-wide-configurations': return (0, wizardTransition_1.canNextClusterDetails)({ cluster }); case 'host-discovery': return (0, wizardTransition_1.canNextHostDiscovery)({ cluster }); case 'storage': return (0, wizardTransition_1.canNextStorage)({ cluster }); case 'networking': return (0, wizardTransition_1.canNextNetwork)({ cluster }); default: return true; } }; const ClusterWizardNavigation = ({ cluster }) => { const clusterWizardContext = (0, ClusterWizardContext_1.useClusterWizardContext)(); const isStepIdxAfterCurrent = (idx) => { return !clusterWizardContext.wizardStepIds .slice(idx) .includes(clusterWizardContext.currentStepId); }; const isStepDisabled = (idx, stepId) => { return stepId === 'cluster-details' ? false : isStepIdxAfterCurrent(idx); }; const getNavItem = (idx, stepId) => { return (react_1.default.createElement(WizardNavItem_1.default, { stepIndex: idx, key: stepId, id: `wizard-nv-${stepId}`, content: constants_1.wizardStepNames[stepId], onClick: () => clusterWizardContext.setCurrentStepId(stepId), isCurrent: clusterWizardContext.currentStepId === stepId, isDisabled: isStepDisabled(idx, stepId), isValid: () => isStepValid(stepId, cluster) })); }; const getStaticIpFormViewNavItem = (idx) => { return (react_1.default.createElement(WizardNavItem_1.default, { stepIndex: idx, isExpandable: true, content: "Static network configurations", key: "static-network-configuration-form-view", isCurrent: (0, wizardTransition_1.isStaticIpStep)(clusterWizardContext.currentStepId), isDisabled: isStepIdxAfterCurrent(idx) }, react_1.default.createElement(react_core_1.WizardNav, { isInnerList: true }, constants_1.staticIpFormViewSubSteps.map((stepId, subIdx) => { return getNavItem(idx + subIdx, stepId); })))); }; const getWizardNavItems = () => { const navItems = []; let i = 0; while (i < clusterWizardContext.wizardStepIds.length) { const stepId = clusterWizardContext.wizardStepIds[i]; if (stepId !== 'static-ip-network-wide-configurations') { navItems.push(getNavItem(i, stepId)); i += 1; } else { navItems.push(getStaticIpFormViewNavItem(i)); //skip iteration on form view sub steps i += 2; } } return navItems; }; return react_1.default.createElement(react_core_1.WizardNav, null, getWizardNavItems()); }; exports.default = ClusterWizardNavigation; //# sourceMappingURL=ClusterWizardNavigation.js.map