/* eslint-disable @typescript-eslint/no-unnecessary-condition */ import React, { useEffect, useState } from "react"; import { Button, ButtonVariant, Divider, Flex, FlexItem, Text, TextVariants, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import "../../realm-settings-section.css"; import { PlusCircleIcon } from "@patternfly/react-icons"; import { AddValidatorDialog } from "../attribute/AddValidatorDialog"; import { TableComposable, Tbody, Td, Th, Thead, Tr, } from "@patternfly/react-table"; import { useConfirmDialog } from "../../../components/confirm-dialog/ConfirmDialog"; import type { Validator } from "./Validators"; import useToggle from "../../../utils/useToggle"; import { useFormContext, useWatch } from "react-hook-form"; import "../../realm-settings-section.css"; export const AttributeValidations = () => { const { t } = useTranslation("realm-settings"); const [addValidatorModalOpen, toggleModal] = useToggle(); const [validatorToDelete, setValidatorToDelete] = useState<{ name: string }>(); const { setValue, control, register } = useFormContext(); const validators = useWatch({ name: "validations", control, defaultValue: [], }); useEffect(() => register("validations"), []); const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ titleKey: t("deleteValidatorConfirmTitle"), messageKey: t("deleteValidatorConfirmMsg", { validatorName: validatorToDelete?.name!, }), continueButtonLabel: "common:delete", continueButtonVariant: ButtonVariant.danger, onConfirm: async () => { console.log("TODO"); }, }); return ( <> {addValidatorModalOpen && ( { setValue("validations", [...validators, newValidator]); }} toggleDialog={toggleModal} /> )}
{t("validatorColNames.colName")} {t("validatorColNames.colConfig")} {validators.length ? ( validators.map((validator: Validator) => ( {validator.name} {JSON.stringify(validator.config)} )) ) : ( {t("realm-settings:emptyValidators")} )}
); };