UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

48 lines 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const react_router_dom_v5_compat_1 = require("react-router-dom-v5-compat"); const react_core_1 = require("@patternfly/react-core"); const common_1 = require("../../../common"); const wizardTransition_1 = require("./wizardTransition"); const ClusterWizardContext_1 = require("./ClusterWizardContext"); const ClusterWizardStepValidationsAlert_1 = tslib_1.__importDefault(require("../../../common/components/clusterWizard/ClusterWizardStepValidationsAlert")); const use_translation_wrapper_1 = require("../../../common/hooks/use-translation-wrapper"); const fetchEvents_1 = require("../fetching/fetchEvents"); const use_feature_1 = require("../../hooks/use-feature"); const ModalDialogsContext_1 = require("../hosts/ModalDialogsContext"); const defaultAlertTitle = 'Provided cluster configuration is not valid'; const ValidationSection = ({ cluster, errorFields = [], alertTitle, alertContent, }) => { const { currentStepId } = (0, ClusterWizardContext_1.useClusterWizardContext)(); const validationsInfo = cluster && (0, common_1.selectClusterValidationsInfo)(cluster); const { uiSettings } = (0, ClusterWizardContext_1.useClusterWizardContext)(); const { t } = (0, use_translation_wrapper_1.useTranslation)(); let _alertContent = alertContent; if (_alertContent === undefined) { _alertContent = `The following fields are invalid or missing: ${errorFields.map((field) => (0, common_1.clusterFieldLabels)(t)[field] || field).join(', ')}.`; } return (react_1.default.createElement(react_core_1.AlertGroup, null, !!errorFields.length && (react_1.default.createElement(react_core_1.Alert, { variant: react_core_1.AlertVariant.danger, title: alertTitle || defaultAlertTitle, isInline: true }, _alertContent)), cluster && (react_1.default.createElement(ClusterWizardStepValidationsAlert_1.default, { currentStepId: currentStepId, clusterStatus: cluster.status, hosts: (cluster === null || cluster === void 0 ? void 0 : cluster.hosts) || [], validationsInfo: validationsInfo, wizardStepsValidationsMap: wizardTransition_1.wizardStepsValidationsMap, lastInstallationPreparation: cluster['last-installation-preparation'], uiSettings: uiSettings })))); }; const ClusterWizardFooter = (_a) => { var { cluster, additionalActions, errorFields, alertTitle, alertContent, onCancel } = _a, rest = tslib_1.__rest(_a, ["cluster", "additionalActions", "errorFields", "alertTitle", "alertContent", "onCancel"]); const { alerts } = (0, common_1.useAlerts)(); const navigate = (0, react_router_dom_v5_compat_1.useNavigate)(); const isSingleClusterFeatureEnabled = (0, use_feature_1.useFeature)('ASSISTED_INSTALLER_SINGLE_CLUSTER_FEATURE'); const { currentStepId } = (0, ClusterWizardContext_1.useClusterWizardContext)(); const { resetSingleClusterDialog } = (0, ModalDialogsContext_1.useModalDialogsContext)(); const handleCancel = react_1.default.useCallback(() => navigate('/cluster-list'), [navigate]); const handleReset = react_1.default.useCallback(() => { resetSingleClusterDialog.open({ cluster }); }, [resetSingleClusterDialog, cluster]); const alertsSection = alerts.length ? react_1.default.createElement(common_1.Alerts, null) : undefined; const errorsSection = (react_1.default.createElement(ValidationSection, { cluster: cluster, errorFields: errorFields, alertTitle: alertTitle, alertContent: alertContent })); return (react_1.default.createElement(common_1.WizardFooter, Object.assign({ alerts: alertsSection, errors: errorsSection, onCancel: isSingleClusterFeatureEnabled ? undefined : onCancel || handleCancel, onReset: isSingleClusterFeatureEnabled && currentStepId !== 'cluster-details' ? handleReset : undefined, leftExtraActions: additionalActions, cluster: cluster, onFetchEvents: fetchEvents_1.onFetchEvents }, rest))); }; exports.default = ClusterWizardFooter; //# sourceMappingURL=ClusterWizardFooter.js.map