keycloak-scim/src/realm-settings/user-profile/attribute/AddValidatorRoleDialog.tsx
agagancarczyk 7418bca8f4
Realm-settings -> User Profile -> Create/Edit Attribute tests (#2410)
* added tests for creating new attribute

* added more tests

* removed temporary skips

* added more tests

* added more tests

* fixed typo

* fixed focus bug

Co-authored-by: Agnieszka Gancarczyk <agancarc@redhat.com>
2022-04-11 15:00:08 +01:00

64 lines
1.7 KiB
TypeScript

import React from "react";
import { useTranslation } from "react-i18next";
import { Button, Modal, ModalVariant } from "@patternfly/react-core";
import { FormProvider, useForm } from "react-hook-form";
import { DynamicComponents } from "../../../components/dynamic/DynamicComponents";
import type { Validator } from "./Validators";
export type AddValidatorRoleDialogProps = {
open: boolean;
toggleDialog: () => void;
onConfirm: (newValidator: Validator) => void;
selected: Validator;
};
export const AddValidatorRoleDialog = ({
open,
toggleDialog,
onConfirm,
selected,
}: AddValidatorRoleDialogProps) => {
const { t } = useTranslation("realm-settings");
const form = useForm();
const { handleSubmit } = form;
const selectedRoleValidator = selected;
const save = (newValidator: Validator) => {
onConfirm({ ...newValidator, name: selected.name });
toggleDialog();
};
return (
<Modal
variant={ModalVariant.small}
title={t("addValidatorRole", {
validatorName: selectedRoleValidator.name,
})}
description={selectedRoleValidator.description}
isOpen={open}
onClose={toggleDialog}
actions={[
<Button
key="save"
data-testid="save-validator-role-button"
variant="primary"
onClick={() => handleSubmit(save)()}
>
{t("common:save")}
</Button>,
<Button
key="cancel"
data-testid="cancel-validator-role-button"
variant="link"
onClick={toggleDialog}
>
{t("common:cancel")}
</Button>,
]}
>
<FormProvider {...form}>
<DynamicComponents properties={selectedRoleValidator.config!} />
</FormProvider>
</Modal>
);
};