@openshift-assisted/ui-lib
Version:
React component library for the Assisted Installer UI
58 lines • 4.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const react_core_1 = require("@patternfly/react-core");
const formik_1 = require("formik");
const common_1 = require("../../../common");
const OcmFormFields_1 = require("../ui/OcmFormFields");
const ClusterWizardContext_1 = require("../clusterWizard/ClusterWizardContext");
const DeleteCustomManifestModal_1 = tslib_1.__importDefault(require("./manifestsConfiguration/DeleteCustomManifestModal"));
const services_1 = require("../../services");
const apis_1 = require("../../services/apis");
const Label = () => {
return (React.createElement(React.Fragment, null,
"Include custom manifests",
' ',
React.createElement(common_1.PopoverIcon, { noVerticalAlign: true, bodyContent: React.createElement("p", null, "Incorporate third-party manifests that are not supported in Assisted Installer and APIs.") })));
};
const CustomManifestCheckbox = ({ clusterId, isDisabled }) => {
const [{ name }, { value }, { setValue }] = (0, formik_1.useField)('addCustomManifest');
const fieldId = (0, common_1.getFieldId)(name, 'input');
const clusterWizardContext = (0, ClusterWizardContext_1.useClusterWizardContext)();
const [isDeleteCustomManifestsOpen, setDeleteCustomManifestsOpen] = React.useState(false);
const cleanCustomManifests = React.useCallback(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const { data: manifests } = yield apis_1.ClustersAPI.getManifests(clusterId);
void services_1.ClustersService.removeClusterManifests(manifests, clusterId);
setValue(false);
clusterWizardContext.setCustomManifestsStep(false);
setDeleteCustomManifestsOpen(false);
yield clusterWizardContext.updateUISettings({
addCustomManifests: false,
customManifestsAdded: false,
});
}), [clusterWizardContext, setValue, clusterId]);
const onChange = React.useCallback((checked) => {
var _a;
if (!checked && ((_a = clusterWizardContext.uiSettings) === null || _a === void 0 ? void 0 : _a.customManifestsAdded)) {
setDeleteCustomManifestsOpen(true);
}
setValue(checked);
clusterWizardContext.setCustomManifestsStep(checked);
}, [setValue, clusterWizardContext, setDeleteCustomManifestsOpen]);
const onClose = React.useCallback(() => {
setValue(true);
clusterWizardContext.setCustomManifestsStep(true);
setDeleteCustomManifestsOpen(false);
}, [clusterWizardContext, setValue]);
return (React.createElement(React.Fragment, null,
React.createElement(react_core_1.FormGroup, { id: `form-control__${fieldId}`, isInline: true, fieldId: fieldId },
React.createElement(OcmFormFields_1.OcmCheckbox, { id: fieldId, name: name, label: React.createElement(Label, null), "aria-describedby": `${fieldId}-helper`, description: React.createElement(react_core_1.FormGroup, null,
React.createElement(react_core_1.FormHelperText, null,
React.createElement(react_core_1.HelperText, { id: fieldId },
React.createElement(react_core_1.HelperTextItem, null, "Additional manifests will be applied at the install time for advanced configuration of the cluster.")))), onChange: (_event, value) => onChange(value), className: "with-tooltip", isChecked: value, isDisabled: isDisabled }),
React.createElement(DeleteCustomManifestModal_1.default, { isOpen: isDeleteCustomManifestsOpen, onClose: onClose, onDelete: () => void cleanCustomManifests() })),
value && (React.createElement(react_core_1.Alert, { isInline: true, variant: "info", title: 'This is an advanced configuration feature.' }, "Custom manifests will be added to the wizard as a new step."))));
};
exports.default = CustomManifestCheckbox;
//# sourceMappingURL=CustomManifestCheckbox.js.map