/* eslint-disable */ // @ts-nocheck import { Button, ButtonVariant, Divider, Text, TextVariants, } from "../../../../shared/@patternfly/react-core"; import { PlusCircleIcon } from "../../../../shared/@patternfly/react-icons"; import { Table, Tbody, Td, Th, Thead, Tr } from "../../../../shared/@patternfly/react-table"; import { useEffect, useState } from "react"; import { useFormContext, useWatch } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useConfirmDialog } from "../../../components/confirm-dialog/ConfirmDialog"; import { DefaultValue } from "../../../components/key-value-form/KeyValueInput"; import useToggle from "../../../utils/useToggle"; import type { IndexedValidations } from "../../NewAttributeSettings"; import { AddValidatorDialog } from "../attribute/AddValidatorDialog"; import "../../realm-settings-section.css"; export const AttributeValidations = () => { const { t } = useTranslation(); const [addValidatorModalOpen, toggleModal] = useToggle(); const [validatorToDelete, setValidatorToDelete] = useState(); const { setValue, control, register, getValues } = useFormContext(); const validators: IndexedValidations[] = useWatch({ name: "validations", control, defaultValue: [], }); useEffect(() => { register("validations"); }, [register]); const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ titleKey: t("deleteValidatorConfirmTitle"), messageKey: t("deleteValidatorConfirmMsg", { validatorName: validatorToDelete, }), continueButtonLabel: "delete", continueButtonVariant: ButtonVariant.danger, onConfirm: async () => { const updatedValidators = validators.filter( (validator) => validator.key !== validatorToDelete, ); setValue("validations", [...updatedValidators]); }, }); return ( <> {addValidatorModalOpen && ( { const annotations: DefaultValue[] = getValues("annotations"); if ( newValidator.id === "options" && !annotations.find((a) => a.key === "inputType") ) { setValue("annotations", [ ...annotations, { key: "inputType", value: "select" }, ]); } setValue("validations", [ ...validators, { key: newValidator.id, value: newValidator.config }, ]); }} toggleDialog={toggleModal} /> )}
{validators.length !== 0 ? ( {validators.map((validator) => ( ))}
{t("validatorColNames.colName")} {t("validatorColNames.colConfig")}
{validator.key} {JSON.stringify(validator.value)}
) : ( {t("emptyValidators")} )}
); };