UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

49 lines 3.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AdditionalNTPSourcesDialog = void 0; const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const formik_1 = require("formik"); const Yup = tslib_1.__importStar(require("yup")); const react_core_1 = require("@patternfly/react-core"); const common_1 = require("../../../common"); const ui_1 = require("../../../common/components/ui"); const use_translation_wrapper_1 = require("../../hooks/use-translation-wrapper"); const AdditionalNTPSourcesForm = ({ additionalNtpSource, onClose, onAdditionalNtpSource, }) => { const initialValues = { additionalNtpSource: additionalNtpSource || '', }; const getValidationSchema = (t) => Yup.object().shape({ additionalNtpSource: common_1.ntpSourceValidationSchema.required(t('ai:Required field')), }); const { t } = (0, use_translation_wrapper_1.useTranslation)(); const handleSubmit = (values, formikHelpers) => { formikHelpers.setStatus({ error: null }); if (onAdditionalNtpSource && values.additionalNtpSource) { const onError = (message) => formikHelpers.setStatus({ error: { title: 'Failed to add NTP sources', message, }, }); void onAdditionalNtpSource(values.additionalNtpSource, onError); } onClose(); }; return (react_1.default.createElement(formik_1.Formik, { initialValues: initialValues, initialTouched: { additionalNtpSource: true }, initialStatus: { error: null }, validationSchema: getValidationSchema(t), onSubmit: handleSubmit }, ({ submitForm, status, setStatus, isSubmitting, isValid, dirty }) => { return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(react_core_1.ModalBoxBody, null, react_1.default.createElement(react_core_1.Form, null, react_1.default.createElement(ui_1.AlertFormikError, { status: status, onClose: () => setStatus({ error: null }) }), react_1.default.createElement(common_1.AdditionalNTPSourcesField, { name: "additionalNtpSource", label: t('ai:Additional NTP Sources'), helperText: t('ai:A comma separated list of IP or domain names of the NTP pools or servers. Additional NTP sources are added to all hosts to ensure all hosts clocks are synchronized with a valid NTP server. It may take a few minutes for the new NTP sources to sync.'), isRequired: true }))), react_1.default.createElement(react_core_1.ModalBoxFooter, null, react_1.default.createElement(react_core_1.Button, { key: "submit", // eslint-disable-next-line @typescript-eslint/no-misused-promises onClick: submitForm, isDisabled: isSubmitting || !isValid || !dirty, isLoading: isSubmitting }, isSubmitting ? t('ai:Adding...') : t('ai:Add')), react_1.default.createElement(react_core_1.Button, { key: "cancel", variant: "link", onClick: onClose }, t('ai:Cancel'))))); })); }; const AdditionalNTPSourcesDialog = ({ additionalNtpSource, isOpen, onClose, onAdditionalNtpSource, }) => (react_1.default.createElement(react_core_1.Modal, { "aria-label": "Add NTP sources", title: "Add NTP sources", isOpen: isOpen, onClose: onClose, variant: react_core_1.ModalVariant.small, hasNoBodyWrapper: true }, react_1.default.createElement(AdditionalNTPSourcesForm, { additionalNtpSource: additionalNtpSource, onClose: onClose, onAdditionalNtpSource: onAdditionalNtpSource }))); exports.AdditionalNTPSourcesDialog = AdditionalNTPSourcesDialog; //# sourceMappingURL=AdditionalNTPSourcesDialog.js.map