UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

63 lines 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const common_1 = require("../../../common"); const ClusterWizardContext_1 = require("./ClusterWizardContext"); const ClusterWizardFooter_1 = tslib_1.__importDefault(require("./ClusterWizardFooter")); const ClusterWizardNavigation_1 = tslib_1.__importDefault(require("./ClusterWizardNavigation")); const WithErrorBoundary_1 = require("../../../common/components/ErrorHandling/WithErrorBoundary"); const react_core_1 = require("@patternfly/react-core"); const utils_1 = require("../../../common/utils"); const external_link_alt_icon_1 = require("@patternfly/react-icons/dist/js/icons/external-link-alt-icon"); const CredentialsDownload = ({ cluster }) => { const clusterWizardContext = (0, ClusterWizardContext_1.useClusterWizardContext)(); const [isChecked, setIsChecked] = react_1.default.useState(false); const [isDownloading, setIsDownloading] = react_1.default.useState(false); const { addAlert, clearAlerts } = (0, common_1.useAlerts)(); const { t } = (0, common_1.useTranslation)(); const downloadSingleFile = (fileName) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { const response = yield common_1.ClustersAPI.downloadClusterCredentials(cluster.id, fileName); (0, utils_1.downloadFile)('', response.data, fileName); return true; } catch (e) { (0, common_1.handleApiError)(e, (e) => { addAlert({ title: t('ai:Could not download {{fileName}} file', { fileName }), message: (0, common_1.getApiErrorMessage)(e), }); }); return false; } }); const handleDownloadClick = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { clearAlerts(); setIsDownloading(true); const configSuccess = yield downloadSingleFile('kubeconfig'); const passwordSuccess = yield downloadSingleFile('kubeadmin-password'); const hasError = !configSuccess || !passwordSuccess; setTimeout(() => { setIsDownloading(false); if (!hasError) { clusterWizardContext.moveNext(); } }, 500); }); const footer = (react_1.default.createElement(ClusterWizardFooter_1.default, { cluster: cluster, onNext: () => void handleDownloadClick(), onBack: () => clusterWizardContext.moveBack(), isNextDisabled: !isChecked || isDownloading, nextButtonText: t('ai:Download credentials'), isNextButtonLoading: isDownloading })); return (react_1.default.createElement(common_1.ClusterWizardStep, { navigation: react_1.default.createElement(ClusterWizardNavigation_1.default, { cluster: cluster }), footer: footer }, react_1.default.createElement(WithErrorBoundary_1.WithErrorBoundary, { title: t('ai:Failed to load Credentials Download step') }, react_1.default.createElement(react_core_1.Stack, { hasGutter: true }, react_1.default.createElement(common_1.ClusterWizardStepHeader, null, t('ai:Download credentials')), react_1.default.createElement(react_core_1.Alert, { title: t('ai:Make sure you download and store your credentials files in a safe place'), variant: react_core_1.AlertVariant.warning, isInline: true, actionLinks: react_1.default.createElement("a", { href: common_1.KUBECONFIG_INFO_LINK, target: "_blank", rel: "noopener noreferrer" }, t('ai:Learn more about Kubeconfig'), " ", react_1.default.createElement(external_link_alt_icon_1.ExternalLinkAltIcon, null)) }, t(`ai:You should use your cluster's Kubeconfig file to gain access to the cluster.`), react_1.default.createElement("br", null), t(`ai:You can use username and password to log-in to your console through the UI.`)), react_1.default.createElement(react_core_1.Checkbox, { id: "credentials-download-agreement", isChecked: isChecked, onChange: () => setIsChecked(!isChecked), label: t('ai:I understand that I need to download credentials files prior of proceeding with the cluster installation.') }))))); }; exports.default = CredentialsDownload; //# sourceMappingURL=CredentialsDownload.js.map